/* Generated by Nim Compiler v0.16.0 */
/*   (c) 2017 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Linux, amd64, gcc */
/* Command for C compiler:
   gcc -c  -w -O3 -fno-strict-aliasing -fPIC  -I/build/nim/src/Nim-0.16.0/lib -o lib/nimcache/stdlib_algorithm.o lib/nimcache/stdlib_algorithm.c */
#define NIM_INTBITS 64

#include "nimbase.h"
#undef linux
typedef struct NimStringDesc NimStringDesc;
typedef struct TGenericSeq TGenericSeq;
struct  TGenericSeq  {
NI len;
NI reserved;
};
struct  NimStringDesc  {
  TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
N_NIMCALL(void, reverse_XQiN4wExsmIg8NFBmG3ObA)(NimStringDesc** a0, NI a0Len0, NI first0, NI last0);
N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0);

N_NIMCALL(void, reverse_XQiN4wExsmIg8NFBmG3ObA)(NimStringDesc** a0, NI a0Len0, NI first0, NI last0) {
	NI x0;
	NI y0;
	x0 = first0;
	y0 = last0;
	{
		while (1) {
			NimStringDesc* LOC3;
			if (!(((NI) (x0)) < ((NI) (y0)))) goto LA2;
			LOC3 = (NimStringDesc*)0;
			LOC3 = a0[x0];
			unsureAsgnRef((void**) (&a0[x0]), a0[y0]);
			unsureAsgnRef((void**) (&a0[y0]), LOC3);
			y0 -= ((NI) 1);
			x0 += ((NI) 1);
		} LA2: ;
	}
}

N_NIMCALL(void, reverse_LoixoqZetR6FfezoPedx8w)(NimStringDesc** a0, NI a0Len0) {
	reverse_XQiN4wExsmIg8NFBmG3ObA(a0, a0Len0, ((NI) 0), ((NI) ((a0Len0-1))));
}
NIM_EXTERNC N_NOINLINE(void, stdlib_algorithmInit000)(void) {
}

NIM_EXTERNC N_NOINLINE(void, stdlib_algorithmDatInit000)(void) {
}

