Skip to content

Instantly share code, notes, and snippets.

@zah
Created January 3, 2012 15:11
Show Gist options
  • Select an option

  • Save zah/1555286 to your computer and use it in GitHub Desktop.

Select an option

Save zah/1555286 to your computer and use it in GitHub Desktop.
009A5BE7 pop edi
009A5BE8 pop esi
009A5BE9 pop ebp
009A5BEA pop ebx
009A5BEB mov esp,ebp
009A5BED pop ebp
009A5BEE ret
LOC10 = Nextpoweroftwo_53262(Strings_223635);
009A5BEF call @ILT+6745(@Nextpoweroftwo_53262@4) (982A5Eh)
Bitmask_223694 = (NI32)(LOC10 - 1);
Branches_223696 = 0;
Branches_223696 = (TY61619*) newSeq(NTI61619, (NI32)(Bitmask_223694 + 1));
009A5BF4 mov ecx,dword ptr [_NTI61619 (0A91604h)]
009A5BFA mov ebx,eax
009A5BFC lea edx,[ebx]
009A5BFE call @ILT+7545(@newSeq@8) (982D7Eh)
009A5C03 mov esi,eax
memset((void*)&A_223709, 0, sizeof(A_223709));
Initlocexpr_208878(P_223633, (*T_223634).KindU.S6.Sons->data[0], &A_223709);
009A5C05 mov eax,dword ptr [ebp+18h]
009A5C08 pxor xmm0,xmm0
009A5C0C movq mmword ptr [esp+38h],xmm0
009A5C12 movq mmword ptr [esp+40h],xmm0
009A5C18 mov ebp,dword ptr [eax+8]
009A5C1B mov ecx,dword ptr [ebp]
009A5C1E call @ILT+9095(@Getuniquetype_199401@4) (98338Ch)
009A5C23 mov ecx,eax
009A5C25 mov word ptr [esp+38h],0
009A5C2C call @ILT+9095(@Getuniquetype_199401@4) (98338Ch)
009A5C31 mov edx,eax
009A5C33 lea ecx,[esp+3Ch]
009A5C37 call @ILT+4770(@unsureAsgnRef@8) (9822A7h)
009A5C3C xor edx,edx
009A5C3E lea ecx,[esp+40h]
009A5C42 call @ILT+4770(@unsureAsgnRef@8) (9822A7h)
009A5C47 lea ecx,[esp+38h]
009A5C4B push ecx
009A5C4C mov edx,ebp
009A5C4E mov ecx,edi
009A5C50 mov dword ptr [esp+48h],0FFFFFFFFh
009A5C58 mov byte ptr [esp+3Eh],0
009A5C5D call @ILT+2440(@Expr_208872@12) (98198Dh)
Labid_223723 = (*P_223633).Labels;
I_223732 = 0;
HEX3Atmp_226721 = 0;
LOC11 = Sonslen_67829(T_223634);
009A5C62 mov eax,dword ptr [esp+14h]
009A5C66 mov eax,dword ptr [eax+18h]
009A5C69 mov edx,dword ptr [edi+1Ch]
009A5C6C mov dword ptr [esp+24h],edx
009A5C70 test eax,eax
009A5C72 je LA8+96h (9A5C78h)
009A5C74 mov eax,dword ptr [eax]
009A5C76 jmp LA8+98h (9A5C7Ah)
009A5C78 xor eax,eax
HEX3Atmp_226721 = (NI32)(LOC11 - 1);
009A5C7A dec eax
Res_226723 = 1;
while (1) {
if (!(Res_226723 <= HEX3Atmp_226721)) goto LA12;
009A5C7B mov ecx,1
009A5C80 cmp eax,ecx
009A5C82 jl LA12 (9A5CFFh)
HEX3Atmp_226721 = (NI32)(LOC11 - 1);
009A5C84 lea ebp,[ecx+0Bh]
009A5C87 mov dword ptr [esp+18h],eax
I_223732 = Res_226723;
(*P_223633).Labels += 1;
009A5C8B add dword ptr [edi+1Ch],ecx
if (!((*(*T_223634).KindU.S6.Sons->data[I_223732]).Kind == ((NU8) 75))) goto LA14;
009A5C8E mov edx,dword ptr [esp+14h]
009A5C92 mov edx,dword ptr [edx+18h]
009A5C95 mov edx,dword ptr [edx+ebp]
009A5C98 cmp byte ptr [edx+11h],4Bh
009A5C9C mov eax,dword ptr [edi+1Ch]
009A5C9F jne LA13 (9A5CF6h)
LOC16 = 0;
LOC16 = Torope_61049(((NI64) ((*P_223633).Labels)));
009A5CA1 cdq
009A5CA2 push edx
009A5CA3 push eax
LA14:
009A5CA4 call @ILT+7975(@Torope_61049@8) (982F2Ch)
LOC17 = 0;
LOC17 = Con_61023(((NimStringDesc*) &TMP2240), LOC16);
009A5CA9 mov edx,eax
009A5CAB mov ecx,offset TMP2240 (0A60ED0h)
009A5CB0 call @ILT+2910(@Con_61023@8) (981B63h)
Gencasestringbranch_223216(P_223633, (*T_223634).KindU.S6.Sons->data[I_223732], A_223709, LOC17, Branches_223696->data, Branches_223696->Sup.len);
009A5CB5 mov ecx,dword ptr [esi]
009A5CB7 movq xmm0,mmword ptr [esp+38h]
009A5CBD push ecx
009A5CBE lea edx,[esi+8]
009A5CC1 push edx
009A5CC2 push eax
009A5CC3 sub esp,10h
009A5CC6 mov eax,esp
009A5CC8 movq mmword ptr [eax],xmm0
009A5CCC movq xmm0,mmword ptr [esp+5Ch]
009A5CD2 movq mmword ptr [eax+8],xmm0
009A5CD7 mov eax,dword ptr [esp+30h]
009A5CDB mov ecx,dword ptr [eax+18h]
009A5CDE mov edx,dword ptr [ecx+ebp]
009A5CE1 mov ecx,edi
009A5CE3 call @ILT+8330(@Gencasestringbranch_223216@36) (98308Fh)
nimKeepAlive((TGenericSeq*)Branches_223696);
009A5CE8 push esi
009A5CE9 call @ILT+7445(_nimKeepAlive) (982D1Ah)
009A5CEE add esp,4
009A5CF1 mov ecx,1
goto LA13;
LA14: ;
LA13: ;
Res_226723 += 1;
009A5CF6 add ebp,4
009A5CF9 sub dword ptr [esp+18h],ecx
009A5CFD jne LA8+0A9h (9A5C8Bh)
} LA12: ;
memset((void*)LOC18, 0, sizeof(LOC18));
LOC18[0] = Rdloc_206283(A_223709);
009A5CFF mov edx,dword ptr [esp+38h]
009A5D03 mov ebp,dword ptr [esp+40h]
009A5D07 shr edx,10h
009A5D0A pxor xmm0,xmm0
009A5D0E movq mmword ptr [esp+28h],xmm0
009A5D14 mov eax,ebp
009A5D16 test dl,1
009A5D19 je LA12+2Fh (9A5D2Eh)
009A5D1B push ecx
009A5D1C lea edx,[esp+1Ch]
009A5D20 mov ecx,offset TMP2074 (0A5FB20h)
009A5D25 mov dword ptr [esp+1Ch],ebp
009A5D29 call @ILT+9870(@Ropef_61066@12) (983693h)
009A5D2E mov dword ptr [esp+28h],eax
LOC18[1] = Torope_61049(((NI64) (Bitmask_223694)));
009A5D32 lea eax,[ebx-1]
009A5D35 cdq
009A5D36 push edx
009A5D37 push eax
009A5D38 call @ILT+7975(@Torope_61049@8) (982F2Ch)
Appcg_202895(P_223633, ((NU8) 2), ((NimStringDesc*) &TMP2494), LOC18, 2);
009A5D3D mov ecx,dword ptr [edi+34h]
009A5D40 mov dword ptr [esp+2Ch],eax
009A5D44 push 2
009A5D46 lea eax,[esp+2Ch]
009A5D4A push eax
009A5D4B mov edx,offset TMP2494 (0A62D18h)
009A5D50 call @ILT+4860(@Ropecg_202606@16) (982301h)
009A5D55 lea ecx,[edi+8]
009A5D58 mov edx,eax
009A5D5A call @ILT+8580(@App_61031@8) (983189h)
J_223791 = 0;
HEX3Atmp_226724 = 0;
HEX3Atmp_226724 = (Branches_223696->Sup.len-1);
009A5D5F mov ebp,dword ptr [esi]
009A5D61 dec ebp
Res_226726 = 0;
009A5D62 mov ebx,0
while (1) {
if (!(Res_226726 <= HEX3Atmp_226724)) goto LA19;
009A5D67 js LA19 (9A5DFEh)
} LA12: ;
memset((void*)LOC18, 0, sizeof(LOC18));
LOC18[0] = Rdloc_206283(A_223709);
009A5D6D add esi,8
J_223791 = Res_226726;
if (!!((Branches_223696->data[J_223791] == NIM_NIL))) goto LA21;
009A5D70 cmp dword ptr [esi],0
009A5D73 je LA21 (9A5DF2h)
Gcfullcollect_3605();
009A5D75 call @ILT+10285(@Gcfullcollect_3605@0) (983832h)
Aaa_223805[0] = Intliteral_207891(((NI64) (J_223791)));
009A5D7A mov eax,ebx
009A5D7C cdq
009A5D7D push edx
009A5D7E push eax
009A5D7F call @ILT+9930(@Intliteral_207891@8) (9836CFh)
009A5D84 mov dword ptr [esp+30h],eax
Aaa_223805[1] = Branches_223696->data[J_223791];
009A5D88 mov ecx,dword ptr [esi]
009A5D8A mov dword ptr [esp+34h],ecx
nimGCref(Aaa_223805[(0)-0]);
009A5D8E add dword ptr [eax-8],8
009A5D92 mov edx,dword ptr [eax-4]
009A5D95 mov cl,byte ptr [edx+5]
009A5D98 add eax,0FFFFFFF8h
009A5D9B shr cl,1
009A5D9D not cl
009A5D9F test cl,1
009A5DA2 je LA12+0B3h (9A5DB2h)
009A5DA4 push eax
009A5DA5 push offset _Gch_13152+20h (0A91920h)
009A5DAA call @ILT+1840(_Incl_13014) (981735h)
009A5DAF add esp,8
if (!!((Aaa_223805[(1)-0] == NIM_NIL))) goto LA24;
009A5DB2 mov eax,dword ptr [esp+34h]
009A5DB6 test eax,eax
009A5DB8 je LA12+0DFh (9A5DDEh)
nimGCref(Aaa_223805[(1)-0]);
009A5DBA add dword ptr [eax-8],8
009A5DBE mov edx,dword ptr [eax-4]
009A5DC1 mov cl,byte ptr [edx+5]
009A5DC4 add eax,0FFFFFFF8h
009A5DC7 shr cl,1
009A5DC9 not cl
009A5DCB test cl,1
009A5DCE je LA12+0DFh (9A5DDEh)
009A5DD0 push eax
009A5DD1 push offset _Gch_13152+20h (0A91920h)
009A5DD6 call @ILT+1840(_Incl_13014) (981735h)
009A5DDB add esp,8
LA24: ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment