1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 64
3
4 #include "nimbase.h"
5 #include <string.h>
6 #undef LANGUAGE_C
7 #undef MIPSEB
8 #undef MIPSEL
9 #undef PPC
10 #undef R3000
11 #undef R4000
12 #undef i386
13 #undef linux
14 #undef mips
15 #undef near
16 #undef far
17 #undef powerpc
18 #undef unix
19 #define nimfr_(x, y)
20 #define nimln_(x, y)
21 typedef struct TNimType TNimType;
22 typedef struct TNimNode TNimNode;
23 typedef struct NimStringDesc NimStringDesc;
24 typedef struct TGenericSeq TGenericSeq;
25 typedef struct tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw;
26 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
27 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
28 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
29 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
30 struct TNimType {
31 NI size;
32 NI align;
33 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
34 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
35 TNimType* base;
36 TNimNode* node;
37 void* finalizer;
38 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
39 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
40 };
41 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
42 struct TNimNode {
43 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
44 NI offset;
45 TNimType* typ;
46 NCSTRING name;
47 NI len;
48 TNimNode** sons;
49 };
50 typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
51 struct TGenericSeq {
52 NI len;
53 NI reserved;
54 };
55 struct NimStringDesc {
56 TGenericSeq Sup;
57 NIM_CHAR data[SEQ_DECL_SIZE];
58 };
59 typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
60 typedef NU32 tyArray__JlnxiR65D9cjJpwi6uBZRtA[2];
61 typedef NU8 tyArray__w5VB8h5K8DB3oWrO5U2wqg[64];
62 struct tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw {
63 tyArray__FleBT9cC2nxhgiXmSYYnEKA state;
64 tyArray__JlnxiR65D9cjJpwi6uBZRtA count;
65 tyArray__w5VB8h5K8DB3oWrO5U2wqg buffer;
66 };
67 typedef NU32 tyArray__U0SiHM0pVagA9c71oWelQMA[16];
68 typedef NU8 tyArray__cdsir9aPB24hAk6k77P9b9bCA[8];
69 static N_INLINE(void, nimZeroMem)(void* p, NI size);
70 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
71 N_LIB_PRIVATE N_NIMCALL(void, md5Init__pureZmd53_160)(tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw* c);
72 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size);
73 N_LIB_PRIVATE N_NIMCALL(void, md5Update__pureZmd53_162)(tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw* c, NCSTRING input, NI len);
74 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
75 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
76 N_LIB_PRIVATE N_NIMCALL(void, transform__pureZmd53_143)(void* buffer, NU32* state);
77 N_LIB_PRIVATE N_NIMCALL(void, encode__pureZmd53_74)(NU32* dest, NCSTRING src);
78 N_LIB_PRIVATE N_NIMCALL(void, FF__pureZmd53_42)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac);
79 static N_INLINE(NU32, F__pureZmd53_11)(NU32 x, NU32 y, NU32 z);
80 static N_INLINE(void, rot__pureZmd53_31)(NU32* x, NU8 n);
81 N_LIB_PRIVATE N_NIMCALL(void, GG__pureZmd53_50)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac);
82 static N_INLINE(NU32, G__pureZmd53_16)(NU32 x, NU32 y, NU32 z);
83 N_LIB_PRIVATE N_NIMCALL(void, HH__pureZmd53_58)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac);
84 static N_INLINE(NU32, H__pureZmd53_21)(NU32 x, NU32 y, NU32 z);
85 N_LIB_PRIVATE N_NIMCALL(void, II__pureZmd53_66)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac);
86 static N_INLINE(NU32, I__pureZmd53_26)(NU32 x, NU32 y, NU32 z);
87 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s);
88 N_LIB_PRIVATE N_NIMCALL(void, md5Final__pureZmd53_166)(tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw* c, NU8* digest);
89 N_LIB_PRIVATE N_NIMCALL(void, decode__pureZmd53_115)(NU8* dest, NI destLen_0, NU32* src, NI srcLen_0);
90 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___pureZmd53_182)(tyArray__qtqsWM5aXmcpMIVmvq3kAA d);
91 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s, NIM_CHAR c);
92 extern TNimType NTIuint56__k3HXouOuhqAKq0dx450lXQ_;
93 N_LIB_PRIVATE TNimType NTImd53digest__qtqsWM5aXmcpMIVmvq3kAA_;
94 STRING_LITERAL(TM__evv4Z8qaB9aehA3eX73W1Cw_2, "0123456789abcdef", 16);
N_INLINE(void,nimSetMem__systemZmemory_7)95 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
96 void* T1_;
97 T1_ = (void*)0;
98 T1_ = memset(a, v, ((size_t) (size)));
99 }
N_INLINE(void,nimZeroMem)100 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
101 nimSetMem__systemZmemory_7(p, ((int) 0), size);
102 }
N_INLINE(void,zeroMem__system_1724)103 static N_INLINE(void, zeroMem__system_1724)(void* p, NI size) {
104 nimZeroMem(p, size);
105 }
N_NIMCALL(void,md5Init__pureZmd53_160)106 N_LIB_PRIVATE N_NIMCALL(void, md5Init__pureZmd53_160)(tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw* c) {
107 (*c).state[(((NI) 0))- 0] = ((NU32) 1732584193);
108 (*c).state[(((NI) 1))- 0] = ((NU32) IL64(4023233417));
109 (*c).state[(((NI) 2))- 0] = ((NU32) IL64(2562383102));
110 (*c).state[(((NI) 3))- 0] = ((NU32) 271733878);
111 (*c).count[(((NI) 0))- 0] = ((NU32) 0);
112 (*c).count[(((NI) 1))- 0] = ((NU32) 0);
113 zeroMem__system_1724(((void*) ((*c).buffer)), ((NI) 64));
114 }
N_INLINE(void,nimCopyMem)115 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
116 void* T1_;
117 T1_ = (void*)0;
118 T1_ = memcpy(dest, source, ((size_t) (size)));
119 }
N_INLINE(void,copyMem__system_1727)120 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
121 nimCopyMem(dest, source, size);
122 }
N_NIMCALL(void,encode__pureZmd53_74)123 N_LIB_PRIVATE N_NIMCALL(void, encode__pureZmd53_74)(NU32* dest, NCSTRING src) {
124 NI j;
125 j = ((NI) 0);
126 {
127 NI i;
128 NI res;
129 i = (NI)0;
130 res = ((NI) 0);
131 {
132 while (1) {
133 if (!(res <= ((NI) 15))) goto LA3;
134 i = res;
135 dest[(i)- 0] = (NU32)((NU32)((NU32)(((NU32) (((NU8)(src[j])))) | (NU32)((NU64)(((NU32) (((NU8)(src[(NI)(j + ((NI) 1))]))))) << (NU64)(((NI) 8)))) | (NU32)((NU64)(((NU32) (((NU8)(src[(NI)(j + ((NI) 2))]))))) << (NU64)(((NI) 16)))) | (NU32)((NU64)(((NU32) (((NU8)(src[(NI)(j + ((NI) 3))]))))) << (NU64)(((NI) 24))));
136 j += ((NI) 4);
137 res += ((NI) 1);
138 } LA3: ;
139 }
140 }
141 }
N_INLINE(NU32,F__pureZmd53_11)142 static N_INLINE(NU32, F__pureZmd53_11)(NU32 x, NU32 y, NU32 z) {
143 NU32 result;
144 result = (NU32)0;
145 result = (NU32)((NU32)(x & y) | (NU32)((NU32)((NU32) ~(x)) & z));
146 return result;
147 }
N_INLINE(void,rot__pureZmd53_31)148 static N_INLINE(void, rot__pureZmd53_31)(NU32* x, NU8 n) {
149 (*x) = (NU32)((NU32)((NU32)((*x)) << (NU32)(n)) | (NU32)((NU32)((*x)) >> (NU32)((NU32)((NU32)(((NU32) 32)) - (NU32)(((NU32) (n)))))));
150 }
N_NIMCALL(void,FF__pureZmd53_42)151 N_LIB_PRIVATE N_NIMCALL(void, FF__pureZmd53_42)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac) {
152 NU32 T1_;
153 T1_ = (NU32)0;
154 T1_ = F__pureZmd53_11(b, c, d);
155 (*a) = (NU32)((NU32)((NU32)((NU32)((NU32)((NU32)((*a)) + (NU32)(T1_))) + (NU32)(x))) + (NU32)(ac));
156 rot__pureZmd53_31(a, s);
157 (*a) = (NU32)((NU32)((*a)) + (NU32)(b));
158 }
N_INLINE(NU32,G__pureZmd53_16)159 static N_INLINE(NU32, G__pureZmd53_16)(NU32 x, NU32 y, NU32 z) {
160 NU32 result;
161 result = (NU32)0;
162 result = (NU32)((NU32)(x & z) | (NU32)(y & (NU32)((NU32) ~(z))));
163 return result;
164 }
N_NIMCALL(void,GG__pureZmd53_50)165 N_LIB_PRIVATE N_NIMCALL(void, GG__pureZmd53_50)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac) {
166 NU32 T1_;
167 T1_ = (NU32)0;
168 T1_ = G__pureZmd53_16(b, c, d);
169 (*a) = (NU32)((NU32)((NU32)((NU32)((NU32)((NU32)((*a)) + (NU32)(T1_))) + (NU32)(x))) + (NU32)(ac));
170 rot__pureZmd53_31(a, s);
171 (*a) = (NU32)((NU32)((*a)) + (NU32)(b));
172 }
N_INLINE(NU32,H__pureZmd53_21)173 static N_INLINE(NU32, H__pureZmd53_21)(NU32 x, NU32 y, NU32 z) {
174 NU32 result;
175 result = (NU32)0;
176 result = (NU32)((NU32)(x ^ y) ^ z);
177 return result;
178 }
N_NIMCALL(void,HH__pureZmd53_58)179 N_LIB_PRIVATE N_NIMCALL(void, HH__pureZmd53_58)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac) {
180 NU32 T1_;
181 T1_ = (NU32)0;
182 T1_ = H__pureZmd53_21(b, c, d);
183 (*a) = (NU32)((NU32)((NU32)((NU32)((NU32)((NU32)((*a)) + (NU32)(T1_))) + (NU32)(x))) + (NU32)(ac));
184 rot__pureZmd53_31(a, s);
185 (*a) = (NU32)((NU32)((*a)) + (NU32)(b));
186 }
N_INLINE(NU32,I__pureZmd53_26)187 static N_INLINE(NU32, I__pureZmd53_26)(NU32 x, NU32 y, NU32 z) {
188 NU32 result;
189 result = (NU32)0;
190 result = (NU32)(y ^ (NU32)(x | (NU32)((NU32) ~(z))));
191 return result;
192 }
N_NIMCALL(void,II__pureZmd53_66)193 N_LIB_PRIVATE N_NIMCALL(void, II__pureZmd53_66)(NU32* a, NU32 b, NU32 c, NU32 d, NU32 x, NU8 s, NU32 ac) {
194 NU32 T1_;
195 T1_ = (NU32)0;
196 T1_ = I__pureZmd53_26(b, c, d);
197 (*a) = (NU32)((NU32)((NU32)((NU32)((NU32)((NU32)((*a)) + (NU32)(T1_))) + (NU32)(x))) + (NU32)(ac));
198 rot__pureZmd53_31(a, s);
199 (*a) = (NU32)((NU32)((*a)) + (NU32)(b));
200 }
N_NIMCALL(void,transform__pureZmd53_143)201 N_LIB_PRIVATE N_NIMCALL(void, transform__pureZmd53_143)(void* buffer, NU32* state) {
202 tyArray__U0SiHM0pVagA9c71oWelQMA myBlock;
203 NU32 a;
204 NU32 b;
205 NU32 c;
206 NU32 d;
207 nimZeroMem((void*)myBlock, sizeof(tyArray__U0SiHM0pVagA9c71oWelQMA));
208 encode__pureZmd53_74(myBlock, ((NCSTRING) (buffer)));
209 a = state[(((NI) 0))- 0];
210 b = state[(((NI) 1))- 0];
211 c = state[(((NI) 2))- 0];
212 d = state[(((NI) 3))- 0];
213 FF__pureZmd53_42((&a), b, c, d, myBlock[(((NI) 0))- 0], ((NU8) 7), ((NU32) IL64(3614090360)));
214 FF__pureZmd53_42((&d), a, b, c, myBlock[(((NI) 1))- 0], ((NU8) 12), ((NU32) IL64(3905402710)));
215 FF__pureZmd53_42((&c), d, a, b, myBlock[(((NI) 2))- 0], ((NU8) 17), ((NU32) 606105819));
216 FF__pureZmd53_42((&b), c, d, a, myBlock[(((NI) 3))- 0], ((NU8) 22), ((NU32) IL64(3250441966)));
217 FF__pureZmd53_42((&a), b, c, d, myBlock[(((NI) 4))- 0], ((NU8) 7), ((NU32) IL64(4118548399)));
218 FF__pureZmd53_42((&d), a, b, c, myBlock[(((NI) 5))- 0], ((NU8) 12), ((NU32) 1200080426));
219 FF__pureZmd53_42((&c), d, a, b, myBlock[(((NI) 6))- 0], ((NU8) 17), ((NU32) IL64(2821735955)));
220 FF__pureZmd53_42((&b), c, d, a, myBlock[(((NI) 7))- 0], ((NU8) 22), ((NU32) IL64(4249261313)));
221 FF__pureZmd53_42((&a), b, c, d, myBlock[(((NI) 8))- 0], ((NU8) 7), ((NU32) 1770035416));
222 FF__pureZmd53_42((&d), a, b, c, myBlock[(((NI) 9))- 0], ((NU8) 12), ((NU32) IL64(2336552879)));
223 FF__pureZmd53_42((&c), d, a, b, myBlock[(((NI) 10))- 0], ((NU8) 17), ((NU32) IL64(4294925233)));
224 FF__pureZmd53_42((&b), c, d, a, myBlock[(((NI) 11))- 0], ((NU8) 22), ((NU32) IL64(2304563134)));
225 FF__pureZmd53_42((&a), b, c, d, myBlock[(((NI) 12))- 0], ((NU8) 7), ((NU32) 1804603682));
226 FF__pureZmd53_42((&d), a, b, c, myBlock[(((NI) 13))- 0], ((NU8) 12), ((NU32) IL64(4254626195)));
227 FF__pureZmd53_42((&c), d, a, b, myBlock[(((NI) 14))- 0], ((NU8) 17), ((NU32) IL64(2792965006)));
228 FF__pureZmd53_42((&b), c, d, a, myBlock[(((NI) 15))- 0], ((NU8) 22), ((NU32) 1236535329));
229 GG__pureZmd53_50((&a), b, c, d, myBlock[(((NI) 1))- 0], ((NU8) 5), ((NU32) IL64(4129170786)));
230 GG__pureZmd53_50((&d), a, b, c, myBlock[(((NI) 6))- 0], ((NU8) 9), ((NU32) IL64(3225465664)));
231 GG__pureZmd53_50((&c), d, a, b, myBlock[(((NI) 11))- 0], ((NU8) 14), ((NU32) 643717713));
232 GG__pureZmd53_50((&b), c, d, a, myBlock[(((NI) 0))- 0], ((NU8) 20), ((NU32) IL64(3921069994)));
233 GG__pureZmd53_50((&a), b, c, d, myBlock[(((NI) 5))- 0], ((NU8) 5), ((NU32) IL64(3593408605)));
234 GG__pureZmd53_50((&d), a, b, c, myBlock[(((NI) 10))- 0], ((NU8) 9), ((NU32) 38016083));
235 GG__pureZmd53_50((&c), d, a, b, myBlock[(((NI) 15))- 0], ((NU8) 14), ((NU32) IL64(3634488961)));
236 GG__pureZmd53_50((&b), c, d, a, myBlock[(((NI) 4))- 0], ((NU8) 20), ((NU32) IL64(3889429448)));
237 GG__pureZmd53_50((&a), b, c, d, myBlock[(((NI) 9))- 0], ((NU8) 5), ((NU32) 568446438));
238 GG__pureZmd53_50((&d), a, b, c, myBlock[(((NI) 14))- 0], ((NU8) 9), ((NU32) IL64(3275163606)));
239 GG__pureZmd53_50((&c), d, a, b, myBlock[(((NI) 3))- 0], ((NU8) 14), ((NU32) IL64(4107603335)));
240 GG__pureZmd53_50((&b), c, d, a, myBlock[(((NI) 8))- 0], ((NU8) 20), ((NU32) 1163531501));
241 GG__pureZmd53_50((&a), b, c, d, myBlock[(((NI) 13))- 0], ((NU8) 5), ((NU32) IL64(2850285829)));
242 GG__pureZmd53_50((&d), a, b, c, myBlock[(((NI) 2))- 0], ((NU8) 9), ((NU32) IL64(4243563512)));
243 GG__pureZmd53_50((&c), d, a, b, myBlock[(((NI) 7))- 0], ((NU8) 14), ((NU32) 1735328473));
244 GG__pureZmd53_50((&b), c, d, a, myBlock[(((NI) 12))- 0], ((NU8) 20), ((NU32) IL64(2368359562)));
245 HH__pureZmd53_58((&a), b, c, d, myBlock[(((NI) 5))- 0], ((NU8) 4), ((NU32) IL64(4294588738)));
246 HH__pureZmd53_58((&d), a, b, c, myBlock[(((NI) 8))- 0], ((NU8) 11), ((NU32) IL64(2272392833)));
247 HH__pureZmd53_58((&c), d, a, b, myBlock[(((NI) 11))- 0], ((NU8) 16), ((NU32) 1839030562));
248 HH__pureZmd53_58((&b), c, d, a, myBlock[(((NI) 14))- 0], ((NU8) 23), ((NU32) IL64(4259657740)));
249 HH__pureZmd53_58((&a), b, c, d, myBlock[(((NI) 1))- 0], ((NU8) 4), ((NU32) IL64(2763975236)));
250 HH__pureZmd53_58((&d), a, b, c, myBlock[(((NI) 4))- 0], ((NU8) 11), ((NU32) 1272893353));
251 HH__pureZmd53_58((&c), d, a, b, myBlock[(((NI) 7))- 0], ((NU8) 16), ((NU32) IL64(4139469664)));
252 HH__pureZmd53_58((&b), c, d, a, myBlock[(((NI) 10))- 0], ((NU8) 23), ((NU32) IL64(3200236656)));
253 HH__pureZmd53_58((&a), b, c, d, myBlock[(((NI) 13))- 0], ((NU8) 4), ((NU32) 681279174));
254 HH__pureZmd53_58((&d), a, b, c, myBlock[(((NI) 0))- 0], ((NU8) 11), ((NU32) IL64(3936430074)));
255 HH__pureZmd53_58((&c), d, a, b, myBlock[(((NI) 3))- 0], ((NU8) 16), ((NU32) IL64(3572445317)));
256 HH__pureZmd53_58((&b), c, d, a, myBlock[(((NI) 6))- 0], ((NU8) 23), ((NU32) 76029189));
257 HH__pureZmd53_58((&a), b, c, d, myBlock[(((NI) 9))- 0], ((NU8) 4), ((NU32) IL64(3654602809)));
258 HH__pureZmd53_58((&d), a, b, c, myBlock[(((NI) 12))- 0], ((NU8) 11), ((NU32) IL64(3873151461)));
259 HH__pureZmd53_58((&c), d, a, b, myBlock[(((NI) 15))- 0], ((NU8) 16), ((NU32) 530742520));
260 HH__pureZmd53_58((&b), c, d, a, myBlock[(((NI) 2))- 0], ((NU8) 23), ((NU32) IL64(3299628645)));
261 II__pureZmd53_66((&a), b, c, d, myBlock[(((NI) 0))- 0], ((NU8) 6), ((NU32) IL64(4096336452)));
262 II__pureZmd53_66((&d), a, b, c, myBlock[(((NI) 7))- 0], ((NU8) 10), ((NU32) 1126891415));
263 II__pureZmd53_66((&c), d, a, b, myBlock[(((NI) 14))- 0], ((NU8) 15), ((NU32) IL64(2878612391)));
264 II__pureZmd53_66((&b), c, d, a, myBlock[(((NI) 5))- 0], ((NU8) 21), ((NU32) IL64(4237533241)));
265 II__pureZmd53_66((&a), b, c, d, myBlock[(((NI) 12))- 0], ((NU8) 6), ((NU32) 1700485571));
266 II__pureZmd53_66((&d), a, b, c, myBlock[(((NI) 3))- 0], ((NU8) 10), ((NU32) IL64(2399980690)));
267 II__pureZmd53_66((&c), d, a, b, myBlock[(((NI) 10))- 0], ((NU8) 15), ((NU32) IL64(4293915773)));
268 II__pureZmd53_66((&b), c, d, a, myBlock[(((NI) 1))- 0], ((NU8) 21), ((NU32) IL64(2240044497)));
269 II__pureZmd53_66((&a), b, c, d, myBlock[(((NI) 8))- 0], ((NU8) 6), ((NU32) 1873313359));
270 II__pureZmd53_66((&d), a, b, c, myBlock[(((NI) 15))- 0], ((NU8) 10), ((NU32) IL64(4264355552)));
271 II__pureZmd53_66((&c), d, a, b, myBlock[(((NI) 6))- 0], ((NU8) 15), ((NU32) IL64(2734768916)));
272 II__pureZmd53_66((&b), c, d, a, myBlock[(((NI) 13))- 0], ((NU8) 21), ((NU32) 1309151649));
273 II__pureZmd53_66((&a), b, c, d, myBlock[(((NI) 4))- 0], ((NU8) 6), ((NU32) IL64(4149444226)));
274 II__pureZmd53_66((&d), a, b, c, myBlock[(((NI) 11))- 0], ((NU8) 10), ((NU32) IL64(3174756917)));
275 II__pureZmd53_66((&c), d, a, b, myBlock[(((NI) 2))- 0], ((NU8) 15), ((NU32) 718787259));
276 II__pureZmd53_66((&b), c, d, a, myBlock[(((NI) 9))- 0], ((NU8) 21), ((NU32) IL64(3951481745)));
277 state[(((NI) 0))- 0] = (NU32)((NU32)(state[(((NI) 0))- 0]) + (NU32)(a));
278 state[(((NI) 1))- 0] = (NU32)((NU32)(state[(((NI) 1))- 0]) + (NU32)(b));
279 state[(((NI) 2))- 0] = (NU32)((NU32)(state[(((NI) 2))- 0]) + (NU32)(c));
280 state[(((NI) 3))- 0] = (NU32)((NU32)(state[(((NI) 3))- 0]) + (NU32)(d));
281 }
N_NIMCALL(void,md5Update__pureZmd53_162)282 N_LIB_PRIVATE N_NIMCALL(void, md5Update__pureZmd53_162)(tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw* c, NCSTRING input, NI len) {
283 NCSTRING input_2;
284 NI Index;
285 NI PartLen;
286 input_2 = input;
287 Index = ((NI) ((NU32)((NU32)((NU32)((*c).count[(((NI) 0))- 0]) >> (NU64)(((NI) 3))) & ((NU32) 63))));
288 (*c).count[(((NI) 0))- 0] = (NU32)((NU32)((*c).count[(((NI) 0))- 0]) + (NU32)((NU32)((NU64)(((NU32) (len))) << (NU64)(((NI) 3)))));
289 {
290 if (!((NU32)((*c).count[(((NI) 0))- 0]) < (NU32)((NU32)((NU64)(((NU32) (len))) << (NU64)(((NI) 3)))))) goto LA3_;
291 (*c).count[(((NI) 1))- 0] = (NU32)((NU32)((*c).count[(((NI) 1))- 0]) + (NU32)(((NU32) 1)));
292 }
293 LA3_: ;
294 (*c).count[(((NI) 1))- 0] = (NU32)((NU32)((*c).count[(((NI) 1))- 0]) + (NU32)((NU32)((NU32)(((NU32) (len))) >> (NU64)(((NI) 29)))));
295 PartLen = (NI)(((NI) 64) - Index);
296 {
297 NI i;
298 if (!(PartLen <= len)) goto LA7_;
299 copyMem__system_1727(((void*) ((&(*c).buffer[(Index)- 0]))), ((void*) (input_2)), ((NI) (PartLen)));
300 transform__pureZmd53_143(((void*) ((*c).buffer)), (*c).state);
301 i = PartLen;
302 {
303 while (1) {
304 if (!((NI)(i + ((NI) 63)) < len)) goto LA10;
305 transform__pureZmd53_143(((void*) ((&input_2[i]))), (*c).state);
306 i += ((NI) 64);
307 } LA10: ;
308 }
309 copyMem__system_1727(((void*) ((&(*c).buffer[(((NI) 0))- 0]))), ((void*) ((&input_2[i]))), ((NI) ((NI)(len - i))));
310 }
311 goto LA5_;
312 LA7_: ;
313 {
314 copyMem__system_1727(((void*) ((&(*c).buffer[(Index)- 0]))), ((void*) ((&input_2[((NI) 0)]))), ((NI) (len)));
315 }
316 LA5_: ;
317 }
N_INLINE(NCSTRING,nimToCStringConv)318 static N_INLINE(NCSTRING, nimToCStringConv)(NimStringDesc* s) {
319 NCSTRING result;
320 result = (NCSTRING)0;
321 {
322 NIM_BOOL T3_;
323 T3_ = (NIM_BOOL)0;
324 T3_ = (s == ((NimStringDesc*) NIM_NIL));
325 if (T3_) goto LA4_;
326 T3_ = ((*s).Sup.len == ((NI) 0));
327 LA4_: ;
328 if (!T3_) goto LA5_;
329 result = "";
330 }
331 goto LA1_;
332 LA5_: ;
333 {
334 result = ((NCSTRING) ((*s).data));
335 }
336 LA1_: ;
337 return result;
338 }
N_NIMCALL(void,decode__pureZmd53_115)339 N_LIB_PRIVATE N_NIMCALL(void, decode__pureZmd53_115)(NU8* dest, NI destLen_0, NU32* src, NI srcLen_0) {
340 NI i;
341 i = ((NI) 0);
342 {
343 NI j;
344 NI colontmp_;
345 NI res;
346 j = (NI)0;
347 colontmp_ = (NI)0;
348 colontmp_ = (srcLen_0-1);
349 res = ((NI) 0);
350 {
351 while (1) {
352 if (!(res <= colontmp_)) goto LA3;
353 j = res;
354 dest[i] = ((NU8) ((NU32)(src[j] & ((NU32) 255))));
355 dest[(NI)(i + ((NI) 1))] = ((NU8) ((NU32)((NU32)((NU32)(src[j]) >> (NU64)(((NI) 8))) & ((NU32) 255))));
356 dest[(NI)(i + ((NI) 2))] = ((NU8) ((NU32)((NU32)((NU32)(src[j]) >> (NU64)(((NI) 16))) & ((NU32) 255))));
357 dest[(NI)(i + ((NI) 3))] = ((NU8) ((NU32)((NU32)((NU32)(src[j]) >> (NU64)(((NI) 24))) & ((NU32) 255))));
358 i += ((NI) 4);
359 res += ((NI) 1);
360 } LA3: ;
361 }
362 }
363 }
N_NIMCALL(void,md5Final__pureZmd53_166)364 N_LIB_PRIVATE N_NIMCALL(void, md5Final__pureZmd53_166)(tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw* c, NU8* digest) {
365 tyArray__cdsir9aPB24hAk6k77P9b9bCA Bits;
366 NI PadLen;
367 NI Index;
368 nimZeroMem((void*)Bits, sizeof(tyArray__cdsir9aPB24hAk6k77P9b9bCA));
369 PadLen = (NI)0;
370 decode__pureZmd53_115(Bits, 8, (*c).count, 2);
371 Index = ((NI) ((NU32)((NU32)((NU32)((*c).count[(((NI) 0))- 0]) >> (NU64)(((NI) 3))) & ((NU32) 63))));
372 {
373 if (!(Index < ((NI) 56))) goto LA3_;
374 PadLen = (NI)(((NI) 56) - Index);
375 }
376 goto LA1_;
377 LA3_: ;
378 {
379 PadLen = (NI)(((NI) 120) - Index);
380 }
381 LA1_: ;
382 md5Update__pureZmd53_162(c, "\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000", PadLen);
383 md5Update__pureZmd53_162(c, ((NCSTRING) (Bits)), ((NI) 8));
384 decode__pureZmd53_115(digest, 16, (*c).state, 4);
385 zeroMem__system_1724(((void*) (c)), ((NI) 88));
386 }
N_NIMCALL(NimStringDesc *,dollar___pureZmd53_182)387 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___pureZmd53_182)(tyArray__qtqsWM5aXmcpMIVmvq3kAA d) {
388 NimStringDesc* result;
389 result = NIM_NIL;
390 result = ((NimStringDesc*) NIM_NIL);
391 {
392 NI i;
393 NI res;
394 i = (NI)0;
395 res = ((NI) 0);
396 {
397 while (1) {
398 if (!(res <= ((NI) 15))) goto LA3;
399 i = res;
400 result = addChar(result, ((NimStringDesc*) &TM__evv4Z8qaB9aehA3eX73W1Cw_2)->data[(NI)((NI)((NI64)(((NI) (d[(i)- 0]))) >> (NU64)(((NI) 4))) & ((NI) 15))]);
401 result = addChar(result, ((NimStringDesc*) &TM__evv4Z8qaB9aehA3eX73W1Cw_2)->data[(NI)(((NI) (d[(i)- 0])) & ((NI) 15))]);
402 res += ((NI) 1);
403 } LA3: ;
404 }
405 }
406 return result;
407 }
N_NIMCALL(NimStringDesc *,getMD5__pureZmd53_195)408 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, getMD5__pureZmd53_195)(NimStringDesc* s) {
409 NimStringDesc* result;
410 tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw c;
411 tyArray__qtqsWM5aXmcpMIVmvq3kAA d;
412 result = NIM_NIL;
413 nimZeroMem((void*)(&c), sizeof(tyObject_MD5Context__oMciKUdSdCaIeMtcxbiPOw));
414 nimZeroMem((void*)d, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
415 md5Init__pureZmd53_160((&c));
416 md5Update__pureZmd53_162((&c), nimToCStringConv(s), (s ? s->Sup.len : 0));
417 md5Final__pureZmd53_166((&c), d);
418 result = dollar___pureZmd53_182(d);
419 return result;
420 }
N_NIMCALL(void,stdlib_md5DatInit000)421 N_LIB_PRIVATE N_NIMCALL(void, stdlib_md5DatInit000)(void) {
422 NTImd53digest__qtqsWM5aXmcpMIVmvq3kAA_.size = sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA);
423 NTImd53digest__qtqsWM5aXmcpMIVmvq3kAA_.align = NIM_ALIGNOF(tyArray__qtqsWM5aXmcpMIVmvq3kAA);
424 NTImd53digest__qtqsWM5aXmcpMIVmvq3kAA_.kind = 16;
425 NTImd53digest__qtqsWM5aXmcpMIVmvq3kAA_.base = (&NTIuint56__k3HXouOuhqAKq0dx450lXQ_);
426 NTImd53digest__qtqsWM5aXmcpMIVmvq3kAA_.flags = 1;
427 }
428
429