;------------------------------------------------------------------------------ ; ; Disassembly listing generated by PE Explorer version 1.99 ; Heaventools Software (http://www.heaventools.com) ; ;------------------------------------------------------------------------------ ; ; Name: .text (Code Section) ; Virtual Address: 00010320h Virtual Size: 000A1CE0h ; Pointer To RawData: 00000320h Size Of RawData: 000A1CE0h ; ;------------------------------------------------------------------------------ EntryPoint: mov eax,[esp+08h] sub esp,00000008h cmp eax,0000000Ch push esi mov esi,[esp+18h] jc L00010338 mov dword ptr [esi+08h],L000B27A0 L00010338: cmp eax,00000008h jc L00010346 mov ecx,[L000B2880] mov [esi+04h],ecx L00010346: cmp eax,00000004h jc L00010390 mov edx,[esp+10h] mov dword ptr [esp+04h],L00020000 mov dword ptr [esp+08h],L00030000 mov eax,00000001h lea ecx,[esp+08h] L00010368: cmp [ecx],edx jbe L0001037D dec eax sub ecx,00000004h test eax,eax jge L00010368 xor eax,eax pop esi add esp,00000008h retn 000Ch ;------------------------------------------------------------------------------ L0001037D: test eax,eax jge L0001038A xor eax,eax pop esi add esp,00000008h retn 000Ch ;------------------------------------------------------------------------------ L0001038A: mov edx,[esp+eax*4+04h] mov [esi],edx L00010390: mov eax,00000001h pop esi add esp,00000008h retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000103A0: sub esp,0000025Ch push ebx push 43544E49h push 000016C0h push 00000001h call jmp_WIN32K.SYS!EngAllocMem mov ebx,eax test ebx,ebx jnz L000103C8 pop ebx add esp,0000025Ch retn 002Ch ;------------------------------------------------------------------------------ L000103C8: mov eax,[esp+0000028Ch] lea ecx,[esp+04h] push ecx lea edx,[esp+00000134h] mov [ebx],eax mov eax,[esp+00000268h] push edx push eax push ebx call SUB_L000148B0 test eax,eax jnz L00010402 push ebx call jmp_WIN32K.SYS!EngFreeMem xor eax,eax pop ebx add esp,0000025Ch retn 002Ch ;------------------------------------------------------------------------------ L00010402: lea ecx,[esp+04h] push ecx push ebx call SUB_L00011900 test eax,eax jnz L00010423 push ebx call jmp_WIN32K.SYS!EngFreeMem xor eax,eax pop ebx add esp,0000025Ch retn 002Ch ;------------------------------------------------------------------------------ L00010423: mov ecx,[esp+0000027Ch] cmp ecx,0000012Ch jbe L00010437 mov ecx,0000012Ch L00010437: mov edx,ecx push esi shr ecx,02h push edi mov edi,[esp+00000288h] lea esi,[esp+0Ch] rep movsd mov ecx,edx and ecx,00000003h rep movsb mov ecx,[esp+0000027Ch] cmp ecx,00000130h jc L00010466 mov ecx,00000130h L00010466: mov edi,[esp+00000280h] mov eax,ecx shr ecx,02h lea esi,[esp+00000138h] rep movsd mov ecx,eax and ecx,00000003h rep movsb pop edi pop esi mov [L000B6F18],ebx mov eax,ebx pop ebx add esp,0000025Ch retn 002Ch ;------------------------------------------------------------------------------ Align 16 L000104A0: mov eax,[esp+08h] mov ecx,[esp+04h] mov [ecx+04h],eax retn 0008h ;------------------------------------------------------------------------------ Align 4 L000104B0: push esi mov esi,[esp+08h] push esi call SUB_L00011AD0 cmp [L000B6F18],esi jnz L000104CD mov dword ptr [L000B6F18],00000000h L000104CD: push esi call jmp_WIN32K.SYS!EngFreeMem pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L000104E0: push ebx push ebp push esi mov esi,[esp+10h] push edi push esi mov [L000B6F18],esi call SUB_L00024AC0 test eax,eax jz L00010637 push esi mov [esi+20h],eax call SUB_L00029330 cmp eax,FFFFFFFFh jz L00010637 push esi mov [esi+1Ch],eax call SUB_L00014C80 test eax,eax jz L00010637 push esi call SUB_L00014290 test eax,eax push esi jz L00010632 call SUB_L000108D0 test eax,eax push esi jz L0001062C call SUB_L00011A20 test eax,eax push esi jz L00010626 call SUB_L00017790 test eax,eax jz L00010625 mov eax,[esi+30h] add eax,FFFFFFF8h cmp eax,00000018h ja CASE_0001065C_PROC0004 xor ecx,ecx mov cl,[eax+CASE_00010670] jmp [CASE_PROCTABLE_0001065C+ecx*4] CASE_0001065C_PROC0000: mov eax,00000003h mov ecx,00000001h jmp L000105A9 CASE_0001065C_PROC0001: mov eax,00000004h mov ecx,00000002h jmp L000105A9 CASE_0001065C_PROC0002: mov eax,00000005h mov ecx,00000003h jmp L000105A9 CASE_0001065C_PROC0003: mov eax,00000006h mov ecx,00000004h jmp L000105A9 CASE_0001065C_PROC0004: mov eax,[esp+14h] mov ecx,[esp+14h] L000105A9: mov ebp,[esi+28h] mov ebx,[esi+2Ch] push 43544E49h push 00000070h push 00000001h mov [esi+38h],eax mov [esi+34h],ecx call jmp_WIN32K.SYS!EngAllocMem mov edi,eax test edi,edi jz L0001061F mov dword ptr [edi],00000003h mov edx,ebx imul edx,[esi+40h] mov [edi+0Ch],edx mov [edi+04h],esi mov eax,[esi+24h] mov [edi+08h],eax mov ecx,[esi+38h] push ecx push ebx push ebp push edi call jmp_WIN32K.SYS!EngCreateDeviceSurface mov ebx,eax test ebx,ebx jz L00010619 mov edx,[esi+40h] mov eax,[esi+24h] mov ecx,[esi+04h] push 00000000h push edx push eax push edi push 00000001h push 00009539h push ecx push ebx call jmp_WIN32K.SYS!EngModifySurface test eax,eax jnz L00010640 push ebx call jmp_WIN32K.SYS!EngDeleteSurface L00010619: push edi call jmp_WIN32K.SYS!EngFreeMem L0001061F: push esi call SUB_L00017810 L00010625: push esi L00010626: call SUB_L00010910 push esi L0001062C: call SUB_L00014310 push esi L00010632: call SUB_L00014EF0 L00010637: pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L00010640: mov dword ptr [edi+18h],00000000h mov [esi+0Ch],edi pop edi mov [esi+08h],ebx mov byte ptr [esi+18h],01h pop esi pop ebp mov eax,ebx pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0001065C: dd CASE_0001065C_PROC0000 dd CASE_0001065C_PROC0001 dd CASE_0001065C_PROC0002 dd CASE_0001065C_PROC0003 dd CASE_0001065C_PROC0004 CASE_00010670: db 00h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 01h, 04h, 04h, 04h, 04h, 04h, 04h, 04h db 02h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 03h Align 8 L00010690: push esi mov esi,[esp+08h] mov eax,[esi+08h] push eax call jmp_WIN32K.SYS!EngDeleteSurface mov ecx,[esi+0Ch] push ecx call jmp_WIN32K.SYS!EngFreeMem push esi call SUB_L00017810 push esi call SUB_L00010910 mov edx,[esi+1Ch] push edx call SUB_L000295D0 mov eax,[esi+20h] push eax call SUB_L00024DB0 push esi call SUB_L00014EF0 pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L000106D0: push ecx mov ecx,[esp+0Ch] mov eax,29E4129Fh mul ecx sub ecx,edx shr ecx,1 add ecx,edx mov edx,[esp+08h] push ebp shr ecx,07h lea eax,[esp+04h] mov ebp,ecx push eax lea ecx,[esp+10h] push ecx push edx call SUB_L00015080 test eax,eax mov [esp+10h],eax jnz L00010709 pop ebp pop ecx retn 000Ch ;------------------------------------------------------------------------------ L00010709: mov edx,[esp+14h] test edx,edx push ebx push esi push edi jnz L00010734 mov edx,[esp+18h] lea ecx,[eax+eax*4] lea ebx,[eax+ecx*2] lea ebx,[ebx+ebx*4] push edx shl ebx,02h call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi mov eax,ebx pop ebx pop ebp pop ecx retn 000Ch ;------------------------------------------------------------------------------ L00010734: mov ecx,[esp+18h] xor ebx,ebx lea esi,[ecx+14h] L0001073D: mov ecx,[esi-14h] test ecx,ecx jz L000107E9 test ebp,ebp jz L000107F8 xor eax,eax mov edi,edx mov ecx,00000037h rep stosd mov ecx,[L000B20AC] mov eax,edx mov [eax],ecx mov ecx,[L000B20B0] mov [eax+04h],ecx mov ecx,[L000B20B4] mov [eax+08h],ecx mov ecx,[L000B20B8] mov [eax+0Ch],ecx mov cx,[L000B20BC] mov [eax+10h],cx mov eax,00000401h mov [edx+40h],ax mov [edx+42h],ax xor eax,eax mov [edx+46h],ax mov word ptr [edx+44h],00DCh mov ecx,[esi+04h] imul ecx,[esi] mov [edx+000000A8h],ecx mov ecx,[esi-0Ch] mov [edx+000000ACh],ecx mov ecx,[esi-08h] mov [edx+000000B0h],ecx mov ecx,[esi+08h] mov [edx+000000B4h],eax mov eax,[esp+1Ch] mov [edx+000000B8h],ecx mov dword ptr [edx+48h],007C0000h dec ebp add edx,000000DCh add ebx,000000DCh L000107E9: add esi,[esp+10h] dec eax mov [esp+1Ch],eax jnz L0001073D L000107F8: mov edx,[esp+18h] push edx call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi mov eax,ebx pop ebx pop ebp pop ecx retn 000Ch ;------------------------------------------------------------------------------ Align 8 L00010810: mov eax,[esp+08h] test eax,eax push esi jz L0001084C mov esi,[esp+08h] push 00000001h push esi call SUB_L00014F60 push esi call SUB_L00014290 push esi call SUB_L000108D0 push 00000001h push esi call SUB_L00017860 mov byte ptr [esi+18h],01h mov [L000B6F18],esi mov eax,00000001h pop esi retn 0008h ;------------------------------------------------------------------------------ L0001084C: mov esi,[esp+08h] push 00000000h push esi call SUB_L000108B0 push 00000000h push esi call SUB_L00017860 push esi call SUB_L00010910 test eax,eax jnz L0001086E pop esi retn 0008h ;------------------------------------------------------------------------------ L0001086E: mov ecx,[esi+40h] imul ecx,[esi+2Ch] mov edx,ecx push edi mov edi,[esi+24h] shr ecx,02h xor eax,eax rep stosd mov ecx,edx and ecx,00000003h push esi rep stosb call SUB_L00014310 push 00000000h push esi call SUB_L00014F60 pop edi mov byte ptr [esi+18h],00h mov eax,00000001h pop esi retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000108B0: mov eax,[esp+04h] mov ecx,[eax+00000664h] push ecx call SUB_L00029670 retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000108D0: mov edx,[esp+04h] push edi xor eax,eax lea edi,[edx+00000698h] mov ecx,00000400h rep stosd mov eax,[edx+00000664h] mov ecx,[eax+64h] test ecx,ecx pop edi jz L00010901 mov byte ptr [edx+00000694h],00h mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ L00010901: mov eax,00000001h mov [edx+00000694h],al retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00010910: push ebx mov ebx,[esp+08h] mov eax,[ebx+00000664h] push esi push edi push eax call SUB_L00029670 push ebx call SUB_L00010BD0 xor esi,esi lea edi,[ebx+00000698h] L00010931: cmp dword ptr [edi],00000000h jz L00010941 push esi push ebx call SUB_L00010C10 test eax,eax jz L0001095F L00010941: inc esi add edi,00000004h cmp esi,00000400h jc L00010931 pop edi pop esi mov byte ptr [ebx+00000694h],00h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001095F: pop edi pop esi xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 L00010970: sub esp,0000004Ch push ebx push ebp push esi mov esi,[esp+5Ch] mov al,[esi+00000694h] test al,al push edi jz L00010A52 mov eax,[esp+6Ch] cmp eax,[esi+38h] jnz L00010A52 xor ebx,ebx mov [esp+6Ch],ebx lea ebp,[esi+00000698h] L000109A2: mov eax,[ebp+00h] test eax,eax jz L000109D7 mov cl,[eax+10h] test cl,cl jz L000109BB push ebx push esi call SUB_L00010B70 test eax,eax jnz L000109BF L000109BB: inc ebx add ebp,00000004h L000109BF: cmp ebx,00000400h jc L000109A2 pop edi pop esi pop ebp mov [esp+60h],ebx xor eax,eax pop ebx add esp,0000004Ch retn 0010h ;------------------------------------------------------------------------------ L000109D7: cmp ebx,00000400h mov [esp+6Ch],ebx jnc L00010A52 mov edx,[esi+30h] mov edi,[esp+68h] mov ebx,[esp+64h] mov eax,[esi+20h] lea ecx,[esp+18h] push ecx push edx push edi push ebx push 01010000h push eax call SUB_L000267C0 test eax,eax jz L00010A52 mov ecx,[esp+24h] mov edx,[esp+28h] push 43544E49h push 00000070h push 00000000h mov [esp+1Ch],ecx mov [esp+20h],edx call jmp_WIN32K.SYS!EngAllocMem mov ebp,eax test ebp,ebp jz L00010A44 mov edx,[esi+38h] push edx push edi push ebx push ebp call jmp_WIN32K.SYS!EngCreateDeviceBitmap mov ebx,eax test ebx,ebx jnz L00010A5E push ebp call jmp_WIN32K.SYS!EngFreeMem L00010A44: mov ecx,[esi+20h] lea eax,[esp+18h] push eax push ecx call SUB_L00026030 L00010A52: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000004Ch retn 0010h ;------------------------------------------------------------------------------ L00010A5E: mov edx,[esp+10h] mov eax,[esp+18h] mov ecx,[esi+04h] push 00000000h push edx push eax push ebp push 00000001h push 00009539h push ecx push ebx call jmp_WIN32K.SYS!EngModifySurface test eax,eax jnz L00010AA6 push ebx call jmp_WIN32K.SYS!EngDeleteSurface push ebp call jmp_WIN32K.SYS!EngFreeMem mov eax,[esi+20h] lea edx,[esp+18h] push edx push eax call SUB_L00026030 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000004Ch retn 0010h ;------------------------------------------------------------------------------ L00010AA6: mov ecx,[esp+64h] xor eax,eax mov [ebp+68h],ecx mov ecx,[esp+14h] mov [ebp+18h],eax mov [ebp+6Ch],edi mov [ebp+00h],eax mov [ebp+04h],esi mov [ebp+60h],ebx mov byte ptr [ebp+64h],00h mov edx,[esp+18h] mov [ebp+0Ch],ecx mov [ebp+10h],al mov [ebp+14h],eax mov eax,[esp+6Ch] mov [ebp+08h],edx mov edx,[esp+60h] lea edi,[ebp+1Ch] mov ecx,00000011h lea esi,[esp+18h] rep movsd pop edi pop esi mov [edx+eax*4+00000698h],ebp pop ebp mov eax,ebx pop ebx add esp,0000004Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L00010B00: push ebp push esi mov esi,[esp+0Ch] mov eax,[esi] test eax,eax mov ebp,[esi+04h] jnz L00010B2A mov [esi],eax mov [esi+18h],eax mov al,[esi+64h] test al,al mov byte ptr [esi+10h],01h jz L00010B56 push esi call jmp_WIN32K.SYS!EngFreeMem pop esi pop ebp retn 0004h ;------------------------------------------------------------------------------ L00010B2A: cmp eax,00000002h jnz L00010B56 mov eax,[esi+18h] push edi mov edi,[eax+04h] push eax call jmp_WIN32K.SYS!EngUnlockSurface push edi call jmp_WIN32K.SYS!EngDeleteSurface push esi mov dword ptr [esi],00000000h mov dword ptr [esi+18h],00000000h call jmp_WIN32K.SYS!EngFreeMem pop edi L00010B56: push ebp call SUB_L00010BD0 pop esi pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00010B70: push ebp mov ebp,[esp+0Ch] push esi push edi mov edi,[esp+10h] mov esi,[edi+ebp*4+00000698h] mov eax,[esi+14h] mov ecx,[edi+00000664h] push eax push ecx call SUB_L000296E0 test eax,eax jnz L00010BC8 mov eax,[edi+20h] push ebx lea edx,[esi+1Ch] push edx push eax call SUB_L00026030 xor ebx,ebx push esi mov [esi+08h],ebx mov [esi+0Ch],ebx mov [esi+10h],bl mov [esi+14h],ebx call jmp_WIN32K.SYS!EngFreeMem mov [edi+ebp*4+00000698h],ebx pop ebx pop edi pop esi xor eax,eax pop ebp retn 0008h ;------------------------------------------------------------------------------ L00010BC8: pop edi pop esi xor eax,eax pop ebp retn 0008h ;------------------------------------------------------------------------------ SUB_L00010BD0: push ebx mov ebx,[esp+08h] push esi push edi xor esi,esi lea edi,[ebx+00000698h] L00010BDF: mov eax,[edi] test eax,eax jz L00010BF3 mov cl,[eax+10h] test cl,cl jz L00010BF3 push esi push ebx call SUB_L00010B70 L00010BF3: inc esi add edi,00000004h cmp esi,00000400h jc L00010BDF pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00010C10: sub esp,0000000Ch mov eax,[esp+14h] push ebx push ebp push esi mov esi,[esp+1Ch] mov ecx,[esi+38h] mov ebp,[esi+eax*4+00000698h] mov edx,[ebp+6Ch] mov eax,[ebp+68h] push edi push 00000000h push 00000001h push ecx push 00000000h push edx push eax call jmp_WIN32K.SYS!EngCreateBitmap mov edi,eax test edi,edi mov [esp+18h],edi jnz L00010C58 call jmp_WIN32K.SYS!EngGetLastError pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000000Ch retn 0008h ;------------------------------------------------------------------------------ L00010C58: mov ecx,[esi+04h] push 00000000h push ecx push edi call jmp_WIN32K.SYS!EngAssociateSurface test eax,eax push edi jnz L00010C7A call jmp_WIN32K.SYS!EngDeleteSurface pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000000Ch retn 0008h ;------------------------------------------------------------------------------ L00010C7A: call jmp_WIN32K.SYS!EngLockSurface mov ebx,eax test ebx,ebx jnz L00010C97 push edi call jmp_WIN32K.SYS!EngDeleteSurface pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000000Ch retn 0008h ;------------------------------------------------------------------------------ L00010C97: mov ecx,[ebx+14h] test ecx,ecx mov edi,[ebx+1Ch] mov eax,[ebp+1Ch] mov [esp+10h],edi mov dword ptr [esp+14h],00000000h jle L00010CE9 mov ecx,[ebx+24h] L00010CB3: mov edx,ecx shr ecx,02h mov esi,eax rep movsd mov ecx,edx mov edx,[esp+14h] and ecx,00000003h rep movsb mov esi,[ebp+28h] mov edi,[esp+10h] mov ecx,[ebx+24h] add eax,esi mov esi,[ebx+14h] add edi,ecx inc edx cmp edx,esi mov [esp+10h],edi mov [esp+14h],edx jl L00010CB3 mov esi,[esp+20h] L00010CE9: mov eax,[ebx+24h] mov ecx,[ebx+1Ch] mov edx,[esi+04h] push 00000000h push eax mov eax,[ebp+60h] push ecx push ebp push 00000000h push 00000401h push edx push eax call jmp_WIN32K.SYS!EngModifySurface test eax,eax jnz L00010D22 mov ecx,[esp+18h] push ecx call jmp_WIN32K.SYS!EngDeleteSurface pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000000Ch retn 0008h ;------------------------------------------------------------------------------ L00010D22: mov edx,[esi+20h] lea eax,[ebp+1Ch] push eax push edx call SUB_L00026030 mov ecx,[esp+24h] xor eax,eax mov [ebp+18h],ebx mov [ebp+08h],eax mov [ebp+0Ch],eax mov [ebp+10h],al mov [ebp+14h],eax pop edi mov dword ptr [ebp+00h],00000002h mov [esi+ecx*4+00000698h],eax pop esi pop ebp mov eax,00000001h pop ebx add esp,0000000Ch retn 0008h ;------------------------------------------------------------------------------ Align 16 L00010D70: push ecx mov eax,[esp+0Ch] push ebx mov ebx,[esp+0Ch] push ebp push esi mov esi,[eax] push edi mov edi,[ebx] push 43544E49h push 00000070h push 00000000h mov [esp+1Ch],edi call jmp_WIN32K.SYS!EngAllocMem mov ebp,eax test ebp,ebp jz L00010E73 push ebx call GetDriverData push eax call SUB_L00017390 mov ecx,[esp+1Ch] mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L00010DBF add eax,0000003Ch mov [esp+18h],eax jmp L00010DC3 L00010DBF: mov [esp+18h],ecx L00010DC3: mov edx,[edi+38h] mov ecx,[esi+18h] mov eax,[esi+1Ch] push edx push ecx push eax push ebp call jmp_WIN32K.SYS!EngCreateDeviceBitmap mov ebx,eax test ebx,ebx jz L00010E6D mov eax,[esp+1Ch] test dword ptr [eax+08h],20000000h jz L00010DF1 mov eax,[esi+08h] jmp L00010DF7 L00010DF1: mov eax,[edi+24h] add eax,[esi+08h] L00010DF7: mov ecx,[esi+0Ch] mov edx,[edi+04h] push 00000000h push ecx L00010E00: push eax push ebp push 00000001h push 00009539h push edx push ebx call jmp_WIN32K.SYS!EngModifySurface test eax,eax jz L00010E67 mov eax,[esp+18h] mov edx,[esp+10h] add eax,00000038h mov dword ptr [ebp+18h],00000000h mov byte ptr [ebp+10h],00h mov esi,eax lea edi,[ebp+1Ch] mov ecx,00000011h rep movsd mov ecx,[eax] mov eax,[esp+18h] pop edi mov [ebp+08h],ecx mov [ebp+04h],edx mov ecx,[eax+48h] pop esi mov [ebp+60h],ebx mov [ebp+0Ch],ecx mov dword ptr [ebp+00h],00000000h mov dword ptr [ebp+14h],00000000h mov byte ptr [ebp+64h],01h pop ebp mov eax,ebx pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ L00010E67: push ebx call jmp_WIN32K.SYS!EngDeleteSurface L00010E6D: push ebp call jmp_WIN32K.SYS!EngFreeMem L00010E73: pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ Align 4 L00010E80: mov eax,[esp+04h] mov ecx,[eax+08h] mov eax,[esp+08h] cmp eax,00004549h ja L000110CB jz L0001108F cmp eax,00004353h ja L00011005 jz L00010FC6 cmp eax,00000008h jz L00010F41 cmp eax,00000C05h jz L00010F05 cmp eax,00001101h jnz L000111F3 mov edx,[ecx+00000664h] cmp dword ptr [edx+00000124h],00000001h jnz L000111F3 test ecx,ecx jz L000111BD mov eax,[esp+18h] mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax push edx push 00001101h push ecx call SUB_L00033041 retn 0018h ;------------------------------------------------------------------------------ L00010F05: test ecx,ecx jnz L00010F1F push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B2170_Custom_Escape_TvOut__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L00010F1F: mov eax,[esp+18h] mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax push edx push 00000C05h push ecx call SUB_L00015F90 retn 0018h ;------------------------------------------------------------------------------ L00010F41: mov eax,[esp+10h] mov eax,[eax] cmp eax,00004549h ja L00010F7F jz L00010F94 cmp eax,00001101h ja L00010F6D jz L00010FAF cmp eax,00000008h jz L00010F94 cmp eax,00000C05h jnz L00010FAA mov eax,00000001h retn 0018h ;------------------------------------------------------------------------------ L00010F6D: sub eax,00004353h jz L00010F94 dec eax jnz L00010FAA mov eax,00000001h retn 0018h ;------------------------------------------------------------------------------ L00010F7F: cmp eax,00004570h ja L00010F9C jz L00010F94 sub eax,00004555h jz L00010F94 sub eax,0000000Bh jnz L00010FAA L00010F94: mov eax,00000001h retn 0018h ;------------------------------------------------------------------------------ L00010F9C: cmp eax,00005050h jz L00010F94 cmp eax,00007918h jz L00010FAF L00010FAA: xor eax,eax retn 0018h ;------------------------------------------------------------------------------ L00010FAF: mov ecx,[ecx+00000664h] mov edx,[ecx+00000124h] xor eax,eax cmp edx,00000001h setz al retn 0018h ;------------------------------------------------------------------------------ L00010FC6: test ecx,ecx jnz L00010FE0 push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B215C_Custom_Escape_GMM__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L00010FE0: mov edx,[esp+18h] mov eax,[esp+14h] mov ecx,[ecx+20h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004353h push ecx db E8h; '¨' db 6Eh; 'n' db 4Eh; 'N' L00011000: db 00h; db 00h; db C2h; '‚' db 18h; db 00h; L00011005: cmp eax,00004354h jz L00011053 cmp eax,00004547h jnz L000111F3 test ecx,ecx jnz L00011031 push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B2144_Custom_Escape_Gamma__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L00011031: mov edx,[esp+18h] mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004547h push ecx call SUB_L00015D40 retn 0018h ;------------------------------------------------------------------------------ L00011053: test ecx,ecx jnz L0001106D push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B2130_Custom_Escape_VFW__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L0001106D: mov edx,[esp+18h] mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004354h push ecx call SUB_L00015CB0 retn 0018h ;------------------------------------------------------------------------------ L0001108F: test ecx,ecx jnz L000110A9 push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B211C_Custom_Escape_I2C__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L000110A9: mov edx,[esp+18h] mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004549h push ecx call SUB_L00015B60 retn 0018h ;------------------------------------------------------------------------------ L000110CB: cmp eax,00004570h ja L000111E5 jz L000111A9 sub eax,00004555h jz L0001116D sub eax,0000000Bh jz L00011131 sub eax,00000006h jnz L000111F3 test ecx,ecx jnz L0001110F push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B2104_Custom_Escape_INFO__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L0001110F: mov edx,[esp+18h] mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004566h push ecx call SUB_L00015970 retn 0018h ;------------------------------------------------------------------------------ L00011131: test ecx,ecx jnz L0001114B push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B20E8_Custom_Escape_REFRESHRATE__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L0001114B: mov edx,[esp+18h] mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004560h push ecx call SUB_L00015790 retn 0018h ;------------------------------------------------------------------------------ L0001116D: test ecx,ecx jnz L00011187 push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B20D4_Custom_Escape_EUD__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L00011187: mov edx,[esp+18h] mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004555h push ecx call SUB_L000156F0 retn 0018h ;------------------------------------------------------------------------------ L000111A9: test ecx,ecx jnz L000111C3 push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B20C0_Custom_Escape_DDC__ call jmp_WIN32K.SYS!EngDebugPrint L000111BD: or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L000111C3: mov edx,[esp+18h] mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx push eax push 00004570h push ecx call SUB_L000156B0 retn 0018h ;------------------------------------------------------------------------------ L000111E5: cmp eax,00005050h jz L0001122D cmp eax,00007918h jz L000111F8 L000111F3: xor eax,eax retn 0018h ;------------------------------------------------------------------------------ L000111F8: mov edx,[ecx+00000664h] cmp dword ptr [edx+00000124h],00000001h jnz L000111F3 test ecx,ecx jz L000111BD mov eax,[esp+18h] mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax push edx push 00007918h push ecx call SUB_L00032E00 retn 0018h ;------------------------------------------------------------------------------ L0001122D: test ecx,ecx jnz L00011247 push ecx push SSZ000B2188_NULL_PDEV__ push SSZ000B2104_Custom_Escape_INFO__ call jmp_WIN32K.SYS!EngDebugPrint or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ L00011247: mov eax,[esp+18h] mov edx,[esp+14h] push eax mov eax,[esp+14h] push edx mov edx,[esp+14h] push eax push edx push 00005050h push ecx call SUB_L000152B0 retn 0018h ;------------------------------------------------------------------------------ Align 8 L00011270: sub esp,00000410h push ebx mov ebx,[esp+00000428h] push ebp mov ebp,[ebx+04h] push esi mov esi,[esp+00000434h] mov eax,[esi] mov edx,[esi+08h] mov ecx,[esi+0Ch] sub edx,eax sub ecx,[esi+04h] mov eax,[ebx+08h] push edi mov edi,[ebx] sub eax,edi mov edi,[ebx+0Ch] sub edi,ebp cmp edx,eax mov [esp+20h],ecx mov [esp+3Ch],eax mov [esp+18h],edi jnz L0001184C cmp ecx,edi jnz L0001184C mov ecx,[esp+00000428h] mov eax,[ecx] mov [esp+1Ch],eax test eax,eax mov eax,[esp+00000424h] jz L0001185A mov edi,[eax] test edi,edi mov [esp+38h],edi jz L0001185A mov edi,[esp+00000430h] test edi,edi jz L00011313 test byte ptr [edi+04h],01h jnz L00011313 mov edx,[esp+00000440h] push edx mov edx,[esp+00000440h] push edx push esi push ebx push edi jmp L00011874 L00011313: mov eax,[eax+08h] test eax,eax jnz L0001131D mov eax,[ecx+08h] L0001131D: mov ebp,[esp+0000042Ch] test ebp,ebp mov [esp+10h],eax jnz L00011332 mov [esp+14h],ebp jmp L0001133B L00011332: xor ecx,ecx mov cl,[ebp+14h] mov [esp+14h],ecx L0001133B: xor eax,eax mov ecx,0000002Bh lea edi,[esp+50h] rep stosd mov edi,[esp+1Ch] mov ecx,[esp+00000428h] mov eax,[edi+20h] mov ecx,[ecx+24h] mov [esp+00000098h],eax mov [esp+0000009Ch],ecx cmp dword ptr [edi],00000002h jnz L00011415 mov word ptr [esp+000000CAh],0001h mov edi,[edi+18h] test edi,edi jnz L000113BE mov edx,[esp+00000440h] mov eax,[esp+0000043Ch] mov ecx,[esp+00000430h] push edx mov edx,[esp+0000042Ch] push eax mov eax,[esp+0000042Ch] push esi push ebx push ecx push ebp push edx push eax call SUB_L00011890 pop edi pop esi pop ebp pop ebx add esp,00000410h retn 0020h ;------------------------------------------------------------------------------ L000113BE: mov eax,[edi+20h] mov [esp+00000098h],eax mov ecx,[edi+24h] mov [esp+0000009Ch],ecx cmp dword ptr [edi+24h],00000000h jg L00011415 mov ecx,[esp+00000440h] mov edx,[esp+0000043Ch] mov eax,[esp+00000430h] push ecx mov ecx,[esp+0000042Ch] push edx mov edx,[esp+0000042Ch] push esi push ebx push eax push ebp push ecx push edx call SUB_L00011890 pop edi pop esi pop ebp pop ebx add esp,00000410h retn 0020h ;------------------------------------------------------------------------------ L00011415: mov edi,[esp+10h] mov [esp+34h],ecx mov ecx,[esp+00000424h] mov [esp+1Ch],eax mov eax,[edi+00000664h] mov [esp+50h],eax mov eax,[ecx+24h] mov ecx,[esp+38h] mov [esp+68h],eax mov eax,[ecx+20h] mov cx,[ebx] mov [esp+64h],eax mov ax,[ebx+04h] mov [esp+6Ch],cx mov cx,[esp+3Ch] mov [esp+6Eh],ax mov ax,[esp+18h] mov [esp+74h],cx mov [esp+76h],ax mov ax,[esi] mov byte ptr [esp+57h],04h mov word ptr [esp+54h],0001h mov ecx,[edi+30h] mov edi,[esp+0000043Ch] shr ecx,03h dec cl or cl,04h mov [esp+000000A0h],ax mov eax,[esp+14h] cmp eax,00000001h mov [esp+57h],cl mov cx,[esi+04h] mov [esp+000000A4h],dx mov dx,[esp+20h] mov byte ptr [esp+56h],CCh mov dword ptr [esp+58h],00000100h mov [esp+000000A2h],cx mov [esp+000000A6h],dx mov [esp+000000F4h],edi jnz L000115FC mov ecx,[ebx] cmp ecx,[ebp+0Ch] jge L0001183A mov eax,[ebp+04h] cmp [ebx+08h],eax jle L0001183A mov edx,[ebx+04h] cmp edx,[ebp+10h] jge L0001183A mov edx,[ebx+0Ch] cmp edx,[ebp+08h] jle L0001183A cmp ecx,eax jge L00011516 sub eax,ecx add eax,[esi] mov [esi],eax mov eax,[ebp+04h] mov [ebx],eax L00011516: mov ecx,[ebx+08h] mov eax,[ebp+0Ch] cmp ecx,eax jle L0001152B sub eax,ecx add [esi+08h],eax mov ecx,[ebp+0Ch] mov [ebx+08h],ecx L0001152B: mov ecx,[ebx+04h] mov eax,[ebp+08h] cmp ecx,eax jge L00011540 sub eax,ecx add [esi+04h],eax mov edx,[ebp+08h] mov [ebx+04h],edx L00011540: mov ecx,[ebx+0Ch] mov eax,[ebp+10h] cmp ecx,eax jle L00011555 sub eax,ecx add [esi+0Ch],eax mov eax,[ebp+10h] mov [ebx+0Ch],eax L00011555: mov cx,[ebx] mov ax,[ebx+08h] mov dx,[ebx+04h] sub ax,cx mov [esp+6Ch],cx mov cx,[ebx+0Ch] sub cx,dx mov [esp+6Eh],dx mov dx,[esi] mov [esp+76h],cx mov cx,[esi+08h] sub cx,dx mov [esp+74h],ax mov ax,[esi+04h] mov [esp+000000A0h],dx mov dx,[esi+0Ch] sub dx,ax mov [esp+000000A2h],ax lea eax,[esp+50h] push eax mov [esp+000000A8h],cx mov [esp+000000AAh],dx call SUB_L00029840 cmp eax,FFFFFFFFh jnz L0001183A mov ecx,[esp+00000440h] mov edx,[esp+00000430h] mov eax,[esp+00000428h] push ecx mov ecx,[esp+00000428h] push edi push esi push ebx push edx push ebp push eax push ecx call SUB_L00011890 pop edi pop esi pop ebp pop ebx add esp,00000410h retn 0020h ;------------------------------------------------------------------------------ L000115FC: cmp eax,00000003h jnz L000117F5 push 00000000h push 00000004h push 00000000h push 00000000h push ebp call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart L00011613: lea edx,[esp+000000FCh] push edx push 00000324h push ebp call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov [esp+18h],eax mov eax,[esp+000000FCh] test eax,eax mov [esp+14h],eax jz L00011792 lea ebp,[esp+00000104h] mov [esp+10h],ebp L00011648: mov eax,[esi] mov ecx,[esi+04h] mov edi,[esi+08h] mov esi,[esi+0Ch] mov [esp+24h],eax mov eax,ebx mov edx,[eax] cmp edx,[ebp+04h] mov [esp+28h],ecx mov ecx,[eax+04h] mov [esp+44h],ecx mov ecx,[eax+08h] mov eax,[eax+0Ch] jge L0001176E cmp ecx,[ebp-04h] jle L0001176E mov ebx,[esp+44h] cmp ebx,[ebp+08h] mov ebp,[esp+10h] jge L00011767 mov ebx,[ebp+00h] cmp eax,ebx mov [esp+20h],ebx jle L00011767 mov ebx,[ebp-04h] cmp edx,ebx jge L000116AE sub ebx,edx add [esp+24h],ebx mov edx,[ebp-04h] L000116AE: mov ebp,[ebp+04h] cmp ecx,ebp jle L000116BD mov ebx,ebp sub ebx,ecx add edi,ebx mov ecx,ebp L000116BD: mov ebx,[esp+44h] mov ebp,[esp+20h] cmp ebx,ebp jge L000116E2 sub ebp,ebx mov ebx,[esp+28h] add ebx,ebp mov ebp,[esp+10h] mov [esp+28h],ebx mov ebx,[ebp+00h] mov [esp+44h],ebx jmp L000116E6 L000116E2: mov ebp,[esp+10h] L000116E6: mov ebx,[ebp+08h] cmp eax,ebx jle L000116F4 sub ebx,eax mov eax,[ebp+08h] add esi,ebx L000116F4: mov ebx,[esp+1Ch] mov [esp+00000098h],ebx mov ebx,[esp+34h] mov [esp+0000009Ch],ebx mov bx,[esp+24h] mov [esp+000000A0h],bx mov bx,[esp+28h] mov [esp+000000A2h],bx sub edi,[esp+24h] mov [esp+000000A4h],di sub esi,[esp+28h] mov [esp+000000A6h],si mov esi,[esp+44h] sub ecx,edx mov [esp+6Ch],dx lea edx,[esp+50h] sub eax,esi push edx mov [esp+72h],si mov [esp+78h],cx mov [esp+7Ah],ax call SUB_L00029840 cmp eax,FFFFFFFFh jz L000117A3 L00011767: mov ebx,[esp+00000434h] L0001176E: mov eax,[esp+14h] mov esi,[esp+00000438h] add ebp,00000010h dec eax mov [esp+10h],ebp mov [esp+14h],eax jnz L00011648 mov ebp,[esp+0000042Ch] L00011792: mov eax,[esp+18h] test eax,eax jz L0001183A jmp L00011613 L000117A3: mov eax,[esp+00000440h] mov ecx,[esp+0000043Ch] mov edx,[esp+00000438h] push eax mov eax,[esp+00000438h] push ecx mov ecx,[esp+00000438h] push edx mov edx,[esp+00000438h] push eax mov eax,[esp+00000438h] push ecx mov ecx,[esp+00000438h] push edx push eax push ecx call SUB_L00011890 pop edi pop esi pop ebp pop ebx add esp,00000410h retn 0020h ;------------------------------------------------------------------------------ L000117F5: lea edx,[esp+50h] push edx call SUB_L00029840 cmp eax,FFFFFFFFh jnz L0001183A mov eax,[esp+00000440h] mov ecx,[esp+00000430h] mov edx,[esp+00000428h] push eax mov eax,[esp+00000428h] push edi push esi push ebx push ecx push ebp push edx push eax call SUB_L00011890 pop edi pop esi pop ebp pop ebx add esp,00000410h retn 0020h ;------------------------------------------------------------------------------ L0001183A: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000410h retn 0020h ;------------------------------------------------------------------------------ L0001184C: mov eax,[esp+00000424h] mov ecx,[esp+00000428h] L0001185A: mov edx,[esp+00000440h] push edx mov edx,[esp+00000440h] push edx mov edx,[esp+00000438h] push esi push ebx push edx L00011874: mov edx,[esp+00000440h] push edx push ecx push eax call SUB_L00011890 pop edi pop esi pop ebp pop ebx add esp,00000410h retn 0020h ;------------------------------------------------------------------------------ SUB_L00011890: mov eax,[esp+08h] push ebx push esi mov esi,[esp+0Ch] xor ecx,ecx test eax,eax push edi mov edi,esi mov ebx,eax jz L000118B6 mov edx,[eax] test edx,edx jz L000118B6 cmp dword ptr [edx],00000002h jnz L000118B3 mov ebx,[edx+18h] L000118B3: mov ecx,[eax+08h] L000118B6: mov eax,[esi] test eax,eax jz L000118C9 cmp dword ptr [eax],00000002h mov edi,esi jnz L000118C6 mov edi,[eax+18h] L000118C6: mov ecx,[esi+08h] L000118C9: mov eax,[ecx+00000664h] push eax call SUB_L00029670 mov ecx,[esp+2Ch] mov edx,[esp+28h] mov eax,[esp+24h] push ecx mov ecx,[esp+24h] push edx mov edx,[esp+24h] push eax mov eax,[esp+24h] push ecx push edx push eax push ebx push edi call jmp_WIN32K.SYS!EngTransparentBlt pop edi pop esi pop ebx retn 0020h ;------------------------------------------------------------------------------ SUB_L00011900: push esi mov esi,[esp+08h] cmp dword ptr [esi+30h],00000008h jnz L000119D4 push 43544E49h push 00000400h push 00000001h call jmp_WIN32K.SYS!EngAllocMem test eax,eax mov [esi+10h],eax jnz L0001192B pop esi retn 0008h ;------------------------------------------------------------------------------ L0001192B: push ebx xor dl,dl xor bl,bl xor cl,cl push edi xor eax,eax L00011935: mov edi,[esi+10h] mov [eax+edi],cl add cl,20h mov edi,[esi+10h] mov [eax+edi+01h],bl mov edi,[esi+10h] mov [eax+edi+02h],dl mov edi,[esi+10h] mov byte ptr [eax+edi+03h],00h jnz L0001195E add bl,20h jnz L0001195E add dl,40h L0001195E: add eax,00000004h cmp eax,00000400h jc L00011935 mov ecx,000003D8h xor eax,eax sub ecx,L000B21BC L00011975: mov edi,[eax+L000B2194] mov edx,[esi+10h] mov [eax+edx],edi mov ebx,[eax+L000B21BC] mov edi,[esi+10h] lea edx,[ecx+eax+L000B21BC] add eax,00000004h cmp eax,00000028h mov [edx+edi],ebx jc L00011975 mov eax,[esi+10h] push 00000000h push 00000000h push 00000000h push eax push 00000100h push 00000001h call jmp_WIN32K.SYS!EngCreatePalette test eax,eax mov ecx,[esp+14h] pop edi mov [ecx+00000124h],eax mov [esi+14h],eax pop ebx jnz L00011A00 mov edx,[esi+10h] push edx call jmp_WIN32K.SYS!EngFreeMem xor eax,eax pop esi retn 0008h ;------------------------------------------------------------------------------ L000119D4: mov eax,[esi+50h] mov ecx,[esi+4Ch] mov edx,[esi+48h] push eax push ecx push edx push 00000000h push 00000000h push 00000002h call jmp_WIN32K.SYS!EngCreatePalette test eax,eax mov ecx,[esp+0Ch] mov [ecx+00000124h],eax mov [esi+14h],eax jnz L00011A00 pop esi retn 0008h ;------------------------------------------------------------------------------ L00011A00: push esi call SUB_L00011CC0 push esi call SUB_L00011F00 mov eax,00000001h pop esi retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00011A20: sub esp,0000040Ch push esi mov esi,[esp+00000414h] cmp dword ptr [esi+30h],00000008h jnz L00011AB3 xor edx,edx push ebx mov word ptr [esp+0Ch],0100h mov [esp+0Eh],dx mov eax,000003FCh L00011A48: mov ecx,[esi+10h] mov bl,[ecx+eax] mov cl,[esi+58h] shr bl,cl mov [esp+eax+10h],bl mov ecx,[esi+10h] mov bl,[ecx+eax+01h] mov cl,[esi+58h] shr bl,cl mov [esp+eax+11h],bl mov ecx,[esi+10h] mov bl,[ecx+eax+02h] mov cl,[esi+58h] shr bl,cl mov ecx,eax sub eax,00000004h test ecx,ecx mov [esp+eax+16h],bl mov [esp+eax+17h],dl jnz L00011A48 lea eax,[esp+08h] push eax push edx push edx mov edx,[esi] push 00000408h lea ecx,[esp+1Ch] push ecx push 0023041Ch push edx call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax pop ebx jz L00011AB3 xor eax,eax pop esi add esp,0000040Ch retn 0004h ;------------------------------------------------------------------------------ L00011AB3: push esi call SUB_L00011E00 mov eax,00000001h pop esi add esp,0000040Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00011AD0: push esi mov esi,[esp+08h] mov eax,[esi+14h] test eax,eax jz L00011AE9 push eax call jmp_WIN32K.SYS!EngDeletePalette mov dword ptr [esi+14h],00000000h L00011AE9: mov eax,[esi+10h] test eax,eax jz L00011AFD push eax call jmp_WIN32K.SYS!EngFreeMem mov dword ptr [esi+10h],00000000h L00011AFD: pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L00011B10: sub esp,00000408h mov eax,[esp+0000041Ch] mov ecx,[esp+00000418h] push esi lea edx,[esp+08h] push edx push eax mov [esp+0Ch],ax mov eax,[esp+0000041Ch] push ecx push eax mov [esp+16h],cx call jmp_WIN32K.SYS!PALOBJ_cGetColors cmp [esp+00000420h],eax jz L00011B58 xor eax,eax pop esi add esp,00000408h retn 0014h ;------------------------------------------------------------------------------ L00011B58: mov esi,[esp+00000410h] push ebx push edi mov edi,FFFFFEA0h lea eax,[esi+0000025Fh] lea ecx,[esp+0000040Eh] sub edi,esi L00011B75: mov dl,[ecx-02h] mov [eax-00000100h],dl mov dl,[ecx-01h] mov [eax],dl mov dl,[ecx] mov [eax+00000100h],dl lea edx,[edi+eax] dec eax sub ecx,00000004h test edx,edx jnz L00011B75 mov eax,[esi+58h] xor ebx,ebx cmp eax,ebx mov eax,[esp+00000428h] mov ecx,eax jz L00011C0B dec eax test ecx,ecx mov [esp+00000428h],eax jz L00011C30 L00011BB4: mov dl,[esp+eax*4+10h] mov cl,[esi+58h] shr dl,cl lea eax,[esp+eax*4+10h] mov [eax],dl mov edx,[esp+00000428h] mov cl,[esi+58h] lea eax,[esp+edx*4+11h] shr dword ptr [eax],cl mov eax,[esp+00000428h] mov dl,[esp+eax*4+12h] mov cl,[esi+58h] lea eax,[esp+eax*4+12h] shr dl,cl mov [eax],dl mov ecx,[esp+00000428h] mov [esp+ecx*4+13h],bl mov eax,[esp+00000428h] mov edx,eax dec eax test edx,edx mov [esp+00000428h],eax jnz L00011BB4 jmp L00011C30 L00011C0B: dec eax test ecx,ecx mov [esp+00000428h],eax jz L00011C30 L00011C17: mov [esp+eax*4+13h],bl mov eax,[esp+00000428h] mov edx,eax dec eax test edx,edx mov [esp+00000428h],eax jnz L00011C17 L00011C30: mov eax,[esi+00000664h] push eax call SUB_L00029740 test eax,eax jnz L00011C50 L00011C40: mov ecx,[esi+00000664h] push ecx call SUB_L00029740 test eax,eax jz L00011C40 L00011C50: mov ecx,[esi] lea edx,[esp+00000428h] push edx push ebx push ebx push 00000408h lea eax,[esp+1Ch] push eax push 0023041Ch push ecx call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax pop edi pop ebx jz L00011C83 xor eax,eax pop esi add esp,00000408h retn 0014h ;------------------------------------------------------------------------------ L00011C83: mov edx,[esi+00000664h] push edx call SUB_L00029740 test eax,eax jnz L00011CA3 L00011C93: mov eax,[esi+00000664h] push eax call SUB_L00029740 test eax,eax jz L00011C93 L00011CA3: push esi call SUB_L00011F00 mov eax,00000001h pop esi add esp,00000408h retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L00011CC0: push ecx push ebx push ebp push esi push edi push 43544E49h push 00000004h push 00000001h call jmp_WIN32K.SYS!EngAllocMem push 43544E49h push 00000314h push 00000001h mov ebx,eax call jmp_WIN32K.SYS!EngAllocMem test ebx,ebx mov ebp,eax jz L00011DAC test ebp,ebp jz L00011DAC mov esi,[esp+18h] mov ecx,[esi] lea eax,[esp+10h] push eax push 00000314h push ebp push 00000004h push ebx push 00232104h push ecx call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax jz L00011D5C lea edx,[esi+00000460h] mov ecx,esi sub ecx,edx sub esi,edx xor eax,eax lea edi,[ecx+00000360h] add esi,00000560h L00011D35: lea ecx,[edx+eax] mov [edi+ecx],al mov [ecx],al mov [esi+ecx],al inc eax cmp eax,00000100h jc L00011D35 push ebx call jmp_WIN32K.SYS!EngFreeMem push ebp call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L00011D5C: lea ecx,[esi+00000460h] mov esi,FFFFFEFCh lea eax,[ebp+00000104h] sub esi,ebp L00011D6F: mov dl,[eax-00000100h] mov [ecx-00000100h],dl mov dl,[eax] mov [ecx],dl mov dl,[eax+00000100h] inc eax mov [ecx+00000100h],dl lea edx,[esi+eax] inc ecx cmp edx,00000100h jc L00011D6F push ebx call jmp_WIN32K.SYS!EngFreeMem push ebp call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L00011DAC: mov ecx,[esp+18h] lea edx,[ecx+00000460h] mov esi,ecx sub esi,edx xor eax,eax add esi,00000360h sub ecx,edx lea edi,[ecx+00000560h] L00011DCA: lea ecx,[edx+eax] mov [esi+ecx],al mov [ecx],al mov [edi+ecx],al inc eax cmp eax,00000100h jc L00011DCA test ebx,ebx jz L00011DE7 push ebx call jmp_WIN32K.SYS!EngFreeMem L00011DE7: test ebp,ebp jz L00011DF1 push ebp call jmp_WIN32K.SYS!EngFreeMem L00011DF1: pop edi pop esi pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00011E00: push ebx push ebp mov ebp,[esp+0Ch] push esi push edi mov edi,[ebp+00000664h] push 43544E49h push 00000004h push 00000001h call jmp_WIN32K.SYS!EngAllocMem mov ebx,eax test ebx,ebx jz L00011EF4 push 43544E49h push 00000314h push 00000001h call jmp_WIN32K.SYS!EngAllocMem mov esi,eax test esi,esi jz L00011EF4 mov ecx,[ebp+00h] lea eax,[esp+14h] push eax push 00000314h push esi push 00000004h push ebx push 00232104h push ecx call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax jz L00011EAE mov dword ptr [edi+000000ECh],00000000h mov edx,[esi+00000304h] mov [edi+000000F0h],edx mov eax,[esi+00000308h] mov [edi+000000F4h],eax mov ecx,[esi+0000030Ch] mov [edi+000000F8h],ecx mov edx,[esi+00000310h] push ebx mov [edi+000000FCh],edx call jmp_WIN32K.SYS!EngFreeMem push esi call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ L00011EAE: mov eax,[esi+00000304h] mov [edi+000000F0h],eax mov ecx,[esi+00000308h] mov [edi+000000F4h],ecx mov edx,[esi+0000030Ch] mov [edi+000000F8h],edx mov eax,[esi+00000310h] push ebx mov [edi+000000FCh],eax mov dword ptr [edi+000000ECh],00000001h call jmp_WIN32K.SYS!EngFreeMem push esi call jmp_WIN32K.SYS!EngFreeMem L00011EF4: pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00011F00: sub esp,0000040Ch mov eax,[esp+00000410h] push ebx push esi xor edx,edx mov esi,000000FFh mov word ptr [esp+0Ch],0100h mov [esp+0Eh],dx mov [esp+08h],esi L00011F26: cmp dword ptr [eax+30h],00000008h jz L00011F57 mov cl,[esi+eax+00000360h] mov [esp+esi*4+10h],cl mov ecx,[esp+08h] mov bl,[ecx+eax+00000460h] mov [esp+ecx*4+11h],bl mov ecx,[esp+08h] mov bl,[ecx+eax+00000560h] mov [esp+ecx*4+12h],bl jmp L00011FA7 L00011F57: xor ecx,ecx mov cl,[esi+eax+60h] mov bl,[ecx+eax+00000360h] mov cl,[eax+58h] shr bl,cl xor ecx,ecx mov [esp+esi*4+10h],bl mov esi,[esp+08h] mov cl,[esi+eax+00000160h] mov bl,[ecx+eax+00000460h] mov cl,[eax+58h] shr bl,cl xor ecx,ecx mov [esp+esi*4+11h],bl mov esi,[esp+08h] mov cl,[esi+eax+00000260h] mov bl,[ecx+eax+00000560h] mov cl,[eax+58h] shr bl,cl mov [esp+esi*4+12h],bl L00011FA7: mov ecx,[esp+08h] mov [esp+ecx*4+13h],dl mov esi,[esp+08h] mov ecx,esi dec esi test ecx,ecx mov [esp+08h],esi jnz L00011F26 mov eax,[eax] lea ecx,[esp+08h] push ecx push edx push edx push 00000408h lea edx,[esp+1Ch] push edx push 0023041Ch push eax call jmp_WIN32K.SYS!EngDeviceIoControl pop esi pop ebx add esp,0000040Ch retn 0004h ;------------------------------------------------------------------------------ Align 8 L00011FF0: sub esp,0000040Ch mov eax,[esp+00000414h] push esi xor edx,edx cmp eax,00000001h mov esi,00000100h mov [esp+08h],si mov [esp+0Ah],dx jnz L00012084 mov ecx,[esp+0000041Ch] push ebx lea eax,[esp+12h] add ecx,00000400h L00012026: xor ebx,ebx mov bl,[ecx-000003FFh] mov [eax-02h],bl xor ebx,ebx mov bl,[ecx-000001FFh] mov [eax-01h],bl xor ebx,ebx mov bl,[ecx+01h] mov [eax],bl mov [eax+01h],dl add ecx,00000002h add eax,00000004h dec esi jnz L00012026 lea eax,[esp+08h] push eax push edx push edx mov edx,[esp+00000424h] mov eax,[edx] push 00000408h lea ecx,[esp+1Ch] push ecx push 0023041Ch push eax call jmp_WIN32K.SYS!EngDeviceIoControl neg eax sbb eax,eax pop ebx inc eax pop esi add esp,0000040Ch retn 000Ch ;------------------------------------------------------------------------------ L00012084: xor eax,eax pop esi add esp,0000040Ch retn 000Ch ;------------------------------------------------------------------------------ L00012090: mov eax,[esp+08h] sub esp,00000020h cmp eax,00000002h push esi push edi jz L000120D6 mov ecx,[esp+34h] lea eax,[esp+08h] push eax push ecx call SUB_L00012160 mov edx,eax lea ecx,[esp+08h] sub edx,ecx sar edx,03h push edx push eax mov eax,[esp+40h] lea edx,[esp+10h] push edx push eax call SUB_L000123D0 pop edi mov eax,00000001h pop esi add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L000120D6: mov esi,[esp+38h] xor eax,eax mov ecx,00000008h mov edi,esi rep stosd mov eax,[esp+35h] and eax,000000FFh lea ecx,[eax+eax*2] lea ecx,[ecx+ecx*4] lea ecx,[ecx+ecx*4] lea edx,[eax+ecx*2] mov eax,[esp+36h] and eax,000000FFh lea ecx,[00000000h+eax*8] sub ecx,eax mov eax,[esp+34h] and eax,000000FFh lea edx,[edx+ecx*4] lea ecx,[eax+eax*8] lea ecx,[eax+ecx*2] lea eax,[eax+ecx*4] add edx,eax xor eax,eax mov al,dh inc eax shr eax,02h jz L0001214C L0001212D: dec eax xor ecx,ecx mov cl,[eax+L000B2884] mov edi,[esi+ecx*4] xor edx,edx mov dl,[eax+L000B28C4] lea ecx,[esi+ecx*4] or edi,edx test eax,eax mov [ecx],edi jnz L0001212D L0001214C: pop edi mov eax,00000001h pop esi add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 8 SUB_L00012160: mov eax,[esp+04h] push ebx mov ebx,[esp+0Ah] push ebp push esi push edi mov edi,[esp+15h] and eax,000000FFh and ebx,000000FFh and edi,000000FFh xor esi,esi cmp ebx,eax jbe L00012192 mov ecx,ebx mov ebx,eax mov eax,ecx mov esi,00000004h L00012192: cmp ebx,edi jbe L0001219F mov ecx,ebx mov ebx,edi mov edi,ecx or esi,00000002h L0001219F: cmp edi,eax jbe L000121AC mov ecx,edi mov edi,eax mov eax,ecx or esi,00000001h L000121AC: lea ecx,[edi+01h] lea edx,[eax+01h] lea ebp,[ebx+01h] add edi,eax shl esi,04h shr edx,02h shr ecx,02h shr ebp,02h cmp edi,00000100h jbe L000122C5 add ebx,eax cmp ebx,00000100h jbe L00012251 mov edi,[esp+18h] lea eax,[edx+edx] mov ebx,00000080h sub ebx,eax jz L000121F9 xor eax,eax mov [edi],ebx mov al,[esi+L000B290B] add edi,00000008h mov [edi-04h],eax L000121F9: lea edx,[edx+ebp-40h] mov eax,00000040h sub ecx,ebp sub eax,edx sub eax,ecx sub eax,ebx jz L0001221C mov [edi],eax xor eax,eax mov al,[esi+L000B290D] add edi,00000008h mov [edi-04h],eax L0001221C: test ecx,ecx jz L00012230 mov [edi],ecx xor ecx,ecx mov cl,[esi+L000B290F] add edi,00000008h mov [edi-04h],ecx L00012230: test edx,edx jz L000123C1 mov [edi],edx xor edx,edx mov dl,[esi+L000B2913] add edi,00000008h mov eax,edi mov [edi-04h],edx pop edi pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ L00012251: mov eax,[esp+18h] lea ebx,[ebp+ebp+00h] lea ebp,[ecx+edx-40h] mov edi,edx sub edi,ecx mov ecx,00000040h sub ecx,ebx sub ecx,ebp sub ecx,edi jz L0001227E mov [eax],ecx xor ecx,ecx mov cl,[esi+L000B2907] add eax,00000008h mov [eax-04h],ecx L0001227E: test ebx,ebx jz L00012292 xor edx,edx mov [eax],ebx mov dl,[esi+L000B290B] add eax,00000008h mov [eax-04h],edx L00012292: test edi,edi jz L000122A6 xor ecx,ecx mov [eax],edi mov cl,[esi+L000B290D] add eax,00000008h mov [eax-04h],ecx L000122A6: test ebp,ebp jz L000123C3 xor edx,edx mov [eax],ebp mov dl,[esi+L000B290F] pop edi pop esi pop ebp add eax,00000008h pop ebx mov [eax-04h],edx retn 0008h ;------------------------------------------------------------------------------ L000122C5: cmp eax,00000080h jbe L00012343 mov eax,[esp+18h] add ecx,edx shl ecx,1 mov edi,00000080h sub edi,ecx jz L000122ED xor ecx,ecx mov [eax],edi mov cl,[esi+L000B2905] add eax,00000008h mov [eax-04h],ecx L000122ED: lea edx,[edx+edx-40h] mov ecx,00000040h add ebp,ebp sub ecx,edx sub ecx,ebp sub ecx,edi jz L00012310 mov [eax],ecx xor ecx,ecx mov cl,[esi+L000B2907] add eax,00000008h mov [eax-04h],ecx L00012310: test ebp,ebp jz L00012324 xor ecx,ecx mov [eax],ebp mov cl,[esi+L000B290B] add eax,00000008h mov [eax-04h],ecx L00012324: test edx,edx jz L000123C3 mov [eax],edx xor edx,edx mov dl,[esi+L000B290D] pop edi pop esi pop ebp add eax,00000008h pop ebx mov [eax-04h],edx retn 0008h ;------------------------------------------------------------------------------ L00012343: lea eax,[edx+edx] mov edi,eax mov eax,00000040h sub eax,edi mov edi,[esp+18h] mov [esp+14h],eax jz L00012369 mov [edi],eax xor eax,eax mov al,[esi+L000B2904] add edi,00000008h mov [edi-04h],eax L00012369: mov ebx,ecx neg ebx shl ebx,1Fh sub ebx,ecx add ebx,edx shl ebx,1 jz L00012388 xor ecx,ecx mov [edi],ebx mov cl,[esi+L000B2905] add edi,00000008h mov [edi-04h],ecx L00012388: mov edx,[esp+14h] mov eax,00000040h sub eax,ebx lea ecx,[ebp+ebp+00h] sub eax,ecx sub eax,edx jz L000123AD xor edx,edx mov [edi],eax mov dl,[esi+L000B2907] add edi,00000008h mov [edi-04h],edx L000123AD: test ecx,ecx jz L000123C1 xor eax,eax mov [edi],ecx mov al,[esi+L000B290B] add edi,00000008h mov [edi-04h],eax L000123C1: mov eax,edi L000123C3: pop edi pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L000123D0: mov eax,[esp+10h] cmp eax,00000002h push ebx push esi push edi jbe L000124E7 cmp eax,00000003h mov edx,[esp+14h] jnz L000123FD mov ecx,[edx+08h] mov edi,[edx+10h] cmp ecx,edi lea eax,[edx+10h] lea esi,[edx+08h] jc L00012411 mov eax,esi jmp L00012413 L000123FD: mov ecx,[edx+10h] mov edi,[edx+18h] cmp ecx,edi lea eax,[edx+18h] lea esi,[edx+10h] jc L00012411 mov eax,esi jmp L00012413 L00012411: mov ecx,edi L00012413: mov edi,[edx+08h] cmp edi,ecx lea esi,[edx+08h] jbe L00012421 mov eax,esi mov ecx,edi L00012421: cmp [edx],ecx jbe L00012427 mov eax,edx L00012427: mov ecx,[eax+04h] mov ecx,[L000B2984+ecx*4] mov dword ptr [eax+04h],000000FFh mov eax,[esp+10h] push ebp mov [eax],ecx mov [eax+04h],ecx mov [eax+08h],ecx mov [eax+0Ch],ecx mov [eax+10h],ecx mov [eax+14h],ecx mov [eax+18h],ecx mov [eax+1Ch],ecx mov [eax+20h],ecx mov [eax+24h],ecx mov [eax+28h],ecx mov [eax+2Ch],ecx mov [eax+30h],ecx mov [eax+34h],ecx mov [eax+38h],ecx mov [eax+3Ch],ecx mov ecx,L000B29C4 mov ebp,edx L00012473: mov edx,[ebp+04h] cmp edx,000000FFh jnz L00012486 mov edx,[ebp+00h] lea ecx,[ecx+edx*4] jmp L000124D5 L00012486: mov edi,[ebp+00h] mov dl,[edx+L000B2AC4] mov esi,edi and esi,00000003h mov ebx,esi dec ebx jz L000124AB dec ebx jz L000124A5 dec ebx jnz L000124B3 mov ebx,[ecx+08h] mov [ebx+eax],dl L000124A5: mov ebx,[ecx+04h] mov [ebx+eax],dl L000124AB: mov ebx,[ecx] mov [ebx+eax],dl lea ecx,[ecx+esi*4] L000124B3: shr edi,02h jz L000124D5 L000124B8: mov esi,[ecx] mov [esi+eax],dl mov esi,[ecx+04h] mov [esi+eax],dl mov esi,[ecx+08h] mov [esi+eax],dl mov esi,[ecx+0Ch] add ecx,00000010h dec edi mov [esi+eax],dl jnz L000124B8 L000124D5: mov edx,[esp+1Ch] add ebp,00000008h cmp ebp,edx jc L00012473 pop ebp pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ L000124E7: jnz L000125AF mov eax,[esp+14h] mov edx,[eax] mov esi,[eax+08h] cmp edx,esi jc L00012516 mov ecx,[eax+04h] mov eax,[eax+0Ch] mov ecx,[L000B2984+ecx*4] mov bl,[eax+L000B2AC4] lea edx,[L000B29C4+edx*4] jmp L00012530 L00012516: mov ecx,[eax+0Ch] mov eax,[eax+04h] mov ecx,[L000B2984+ecx*4] mov bl,[eax+L000B2AC4] mov esi,edx mov edx,L000B29C4 L00012530: mov eax,[esp+10h] mov [eax],ecx mov [eax+04h],ecx mov [eax+08h],ecx mov [eax+0Ch],ecx mov [eax+10h],ecx mov [eax+14h],ecx mov [eax+18h],ecx mov [eax+1Ch],ecx mov [eax+20h],ecx mov [eax+24h],ecx mov [eax+28h],ecx mov [eax+2Ch],ecx mov [eax+30h],ecx mov [eax+34h],ecx mov [eax+38h],ecx mov [eax+3Ch],ecx mov ecx,esi and ecx,00000003h mov edi,ecx dec edi jz L0001257F dec edi jz L00012579 dec edi jnz L00012587 mov edi,[edx+08h] mov [edi+eax],bl L00012579: mov edi,[edx+04h] mov [edi+eax],bl L0001257F: mov edi,[edx] mov [edi+eax],bl lea edx,[edx+ecx*4] L00012587: shr esi,02h jz L000125F0 L0001258C: mov ecx,[edx] mov [ecx+eax],bl mov ecx,[edx+04h] mov [ecx+eax],bl mov ecx,[edx+08h] mov [ecx+eax],bl mov ecx,[edx+0Ch] add edx,00000010h dec esi mov [ecx+eax],bl jnz L0001258C pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ L000125AF: mov ecx,[esp+10h] mov edx,[esp+14h] mov eax,[edx+04h] mov eax,[L000B2984+eax*4] mov [ecx],eax mov [ecx+04h],eax mov [ecx+08h],eax mov [ecx+0Ch],eax mov [ecx+10h],eax mov [ecx+14h],eax mov [ecx+18h],eax mov [ecx+1Ch],eax mov [ecx+20h],eax mov [ecx+24h],eax mov [ecx+28h],eax mov [ecx+2Ch],eax mov [ecx+30h],eax mov [ecx+34h],eax mov [ecx+38h],eax mov [ecx+3Ch],eax L000125F0: pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 16 L00012600: mov eax,[esp+08h] push ebx push ebp push esi push edi mov edi,[eax+08h] mov eax,[esp+1Ch] mov edx,[eax+10h] mov ecx,00000008h cmp edx,ecx jnz L00012843 cmp [eax+14h],ecx jnz L00012843 mov ecx,[eax+2Ch] cmp ecx,00000001h mov edx,[eax+24h] mov ebp,[eax+20h] mov [esp+18h],edx jz L00012653 mov eax,[edi+38h] cmp ecx,eax jz L00012653 cmp ecx,00000002h jnz L00012843 cmp eax,00000003h jnz L00012843 L00012653: mov eax,[edi+38h] cmp eax,ecx jnz L00012754 mov ebx,[esp+24h] xor esi,esi cmp ebx,esi jz L000126E0 test byte ptr [ebx+04h],01h jnz L000126E0 cmp eax,00000003h jnz L00012843 mov ecx,[edi+30h] shr ecx,03h mov eax,00000040h shl eax,cl mov ecx,[esp+14h] add eax,00000020h push eax push ecx call jmp_WIN32K.SYS!BRUSHOBJ_pvAllocRbrush cmp eax,esi jz L00012843 mov [eax+14h],esi mov [eax+18h],esi mov [eax+04h],esi mov esi,[ebx+10h] lea ecx,[eax+1Ch] mov dword ptr [eax],00000040h mov edi,00000008h L000126B4: mov eax,00000008h L000126B9: xor edx,edx mov dl,[ebp+00h] inc ecx inc ebp dec eax mov dl,[esi+edx*4] mov [ecx-01h],dl jnz L000126B9 dec edi mov eax,[esp+18h] lea ebp,[eax+ebp-08h] jnz L000126B4 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ L000126E0: mov ecx,[edi+30h] mov eax,[esp+14h] shr ecx,03h mov edx,00000040h shl edx,cl add edx,00000020h push edx push eax call jmp_WIN32K.SYS!BRUSHOBJ_pvAllocRbrush cmp eax,esi jz L00012843 mov [eax+14h],esi mov [eax+18h],esi mov [eax+04h],esi mov edx,[edi+30h] lea ecx,[00000000h+edx*8] lea ebx,[eax+1Ch] mov [eax],ecx mov dword ptr [esp+14h],00000008h L00012723: mov ecx,edx mov eax,ecx shr ecx,02h mov esi,ebp mov edi,ebx rep movsd mov ecx,eax mov eax,[esp+14h] and ecx,00000003h rep movsb add ebp,[esp+18h] add ebx,edx dec eax mov [esp+14h],eax jnz L00012723 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ L00012754: cmp ecx,00000001h mov ecx,[edi+30h] jnz L000127CB mov eax,[esp+14h] shr ecx,03h mov edx,00000040h shl edx,cl add edx,00000020h push edx push eax call jmp_WIN32K.SYS!BRUSHOBJ_pvAllocRbrush xor esi,esi cmp eax,esi jz L00012843 mov [eax+14h],esi mov [eax+18h],esi mov [eax+04h],esi lea ecx,[eax+1Ch] mov dword ptr [eax],00000008h mov esi,00000008h L00012795: mov dl,[ebp+00h] mov edi,[esp+18h] mov [ecx],dl inc ecx add ebp,edi dec esi jnz L00012795 mov edx,[eax+04h] mov ecx,[esp+24h] mov ecx,[ecx+10h] or edx,00000001h mov [eax+04h],edx mov edx,[ecx+04h] pop edi mov [eax+0Ch],edx mov ecx,[ecx] pop esi pop ebp mov [eax+10h],ecx mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ L000127CB: mov eax,[esp+14h] shr ecx,03h mov edx,00000040h shl edx,cl add edx,00000020h push edx push eax call jmp_WIN32K.SYS!BRUSHOBJ_pvAllocRbrush xor esi,esi cmp eax,esi jz L00012843 mov edx,[esp+24h] mov [eax+14h],esi mov [eax+18h],esi mov [eax+04h],esi mov edx,[edx+10h] lea ecx,[eax+1Ch] mov dword ptr [eax],00000040h mov edi,00000008h L00012807: mov esi,00000004h L0001280C: xor eax,eax mov al,[ebp+00h] shr eax,04h mov al,[edx+eax*4] mov [ecx],al xor eax,eax mov al,[ebp+00h] inc ecx and eax,0000000Fh mov al,[edx+eax*4] mov [ecx],al inc ecx inc ebp dec esi jnz L0001280C dec edi mov eax,[esp+18h] lea ebp,[eax+ebp-04h] jnz L00012807 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ L00012843: pop edi pop esi pop ebp xor eax,eax pop ebx retn 0018h ;------------------------------------------------------------------------------ Align 8 L00012850: sub esp,000000B0h mov eax,[esp+000000B4h] mov edx,[eax] test edx,edx push ebx push ebp push esi mov esi,[eax+08h] push edi mov [esp+10h],edx jnz L000128C1 mov ecx,[esp+000000E4h] mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx push edx push eax call SUB_L00012B60 pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0024h ;------------------------------------------------------------------------------ L000128C1: cmp dword ptr [edx],00000002h jnz L00012919 mov ecx,[esp+000000E4h] mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx push edx push eax call SUB_L00012B60 pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0024h ;------------------------------------------------------------------------------ L00012919: test esi,esi jnz L00012970 mov ecx,[esp+000000E4h] mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push ecx push edx push eax call SUB_L00012B60 pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0024h ;------------------------------------------------------------------------------ L00012970: mov ebp,[esp+000000D4h] mov ebx,[esp+000000DCh] cmp ebp,ebx jz L000129C7 mov ecx,[esp+000000E4h] mov edx,[esp+000000E0h] push ecx mov ecx,[esp+000000DCh] push edx mov edx,[esp+000000D8h] push ebx push ecx mov ecx,[esp+000000DCh] push ebp push edx mov edx,[esp+000000E0h] push ecx push edx push eax call SUB_L00012B60 pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0024h ;------------------------------------------------------------------------------ L000129C7: xor eax,eax mov ecx,0000002Bh lea edi,[esp+14h] rep stosd mov eax,[esp+000000C8h] test eax,eax jnz L000129E3 xor cl,cl jmp L000129E6 L000129E3: mov cl,[eax+14h] L000129E6: cmp dword ptr [edx],00000002h mov eax,[esp+000000C4h] jnz L000129F5 mov eax,[edx+18h] L000129F5: mov esi,[esi+00000664h] mov edi,[esp+000000D0h] mov [esp+14h],esi mov edx,[edx+20h] mov esi,[esp+000000E4h] mov [esp+28h],edx mov eax,[eax+24h] mov edx,esi and edx,0000000Fh test cl,cl mov [esp+3Ah],bx mov ebx,[esp+000000CCh] mov [esp+2Ch],eax mov al,[edx+L000B2AD4] mov edx,[ebx] mov [esp+32h],bp mov ebp,[esp+000000D8h] mov [esp+1Ah],al mov word ptr [esp+18h],0001h mov [esp+30h],di mov [esp+38h],bp mov byte ptr [esp+1Bh],80h mov [esp+0000009Ch],edx jnz L00012A8C mov eax,[esp+000000E0h] mov cx,[eax] mov dx,[eax+04h] mov [esp+3Ch],cx mov cx,[eax+08h] mov [esp+3Eh],dx mov dx,[eax+0Ch] mov [esp+40h],cx jmp L00012ABC L00012A8C: mov eax,[esp+000000C8h] cmp byte ptr [eax+14h],01h jnz L00012B27 mov cx,[eax+04h] mov dx,[eax+08h] mov [esp+3Ch],cx mov cx,[eax+0Ch] mov [esp+3Eh],dx mov dx,[eax+10h] mov [esp+40h],cx L00012ABC: lea eax,[esp+14h] push eax mov [esp+46h],dx call SUB_L0002A1D0 cmp eax,FFFFFFFFh jnz L00012B0E mov ecx,[esp+000000E0h] mov edx,[esp+000000DCh] mov eax,[esp+000000D4h] push esi push ecx mov ecx,[esp+000000D0h] push edx mov edx,[esp+000000D0h] push ebp push eax push edi push ebx push ecx push edx call SUB_L00012B60 pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0024h ;------------------------------------------------------------------------------ L00012B0E: mov ecx,[esp+10h] pop edi pop esi pop ebp mov [ecx+14h],eax mov eax,00000001h pop ebx add esp,000000B0h retn 0024h ;------------------------------------------------------------------------------ L00012B27: mov edx,[esp+000000E0h] mov ecx,[esp+000000DCh] push esi push edx mov edx,[esp+000000DCh] push ecx push ebp push edx push edi push ebx push eax mov eax,[esp+000000E4h] push eax call SUB_L00012B60 pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0024h ;------------------------------------------------------------------------------ Align 4 SUB_L00012B60: push esi mov esi,[esp+08h] mov eax,[esi] test eax,eax push edi mov edi,[esi+08h] jz L00012BD1 mov eax,[eax+14h] mov ecx,[edi+00000664h] push eax push ecx call SUB_L000296E0 cmp eax,FFFFFFFFh jnz L00012B90 mov edx,[edi+00000664h] push edx call SUB_L00029670 L00012B90: mov eax,[esi] cmp dword ptr [eax],00000002h jz L00012B9B mov eax,esi jmp L00012B9E L00012B9B: mov eax,[eax+18h] L00012B9E: mov ecx,[esp+2Ch] mov edx,[esp+28h] push ecx mov ecx,[esp+28h] push edx mov edx,[esp+28h] push ecx mov ecx,[esp+28h] push edx mov edx,[esp+28h] push ecx mov ecx,[esp+28h] push edx mov edx,[esp+28h] push ecx push edx push eax call jmp_WIN32K.SYS!EngLineTo pop edi pop esi retn 0024h ;------------------------------------------------------------------------------ L00012BD1: mov eax,[esp+2Ch] mov ecx,[esp+28h] mov edx,[esp+24h] push eax mov eax,[esp+24h] push ecx mov ecx,[esp+24h] push edx mov edx,[esp+24h] push eax mov eax,[esp+24h] push ecx mov ecx,[esp+24h] push edx push eax push ecx push esi call jmp_WIN32K.SYS!EngLineTo pop edi pop esi retn 0024h ;------------------------------------------------------------------------------ Align 16 L00012C10: mov ecx,[esp+04h] mov eax,[ecx] test eax,eax jz L00012C22 cmp dword ptr [eax],00000002h jnz L00012C22 mov ecx,[eax+18h] L00012C22: mov eax,[esp+20h] mov edx,[esp+1Ch] push eax mov eax,[esp+1Ch] push edx mov edx,[esp+1Ch] push eax mov eax,[esp+1Ch] push edx mov edx,[esp+1Ch] push eax mov eax,[esp+1Ch] push edx push eax push ecx call jmp_WIN32K.SYS!EngStrokePath retn 0020h ;------------------------------------------------------------------------------ Align 4 L00012C50: sub esp,000000B8h push ebx push ebp mov ebp,[esp+000000C4h] mov edx,[ebp+08h] push esi push edi xor eax,eax mov ecx,0000002Bh lea edi,[esp+1Ch] rep stosd mov eax,[ebp+00h] test eax,eax mov [esp+14h],edx jz L00012D03 cmp dword ptr [eax],00000002h jnz L00012CE0 mov eax,[esp+000000F0h] mov ecx,[esp+000000ECh] mov edx,[esp+000000E8h] push eax mov eax,[esp+000000E8h] push ecx mov ecx,[esp+000000E8h] push edx mov edx,[esp+000000E8h] push eax mov eax,[esp+000000E8h] push ecx mov ecx,[esp+000000E8h] push edx mov edx,[esp+000000E8h] push eax push ecx push edx push ebp call SUB_L000135C0 pop edi pop esi pop ebp pop ebx add esp,000000B8h retn 0028h ;------------------------------------------------------------------------------ L00012CE0: mov ecx,[edx+00000664h] mov [esp+1Ch],ecx mov edx,[eax+20h] mov [esp+18h],eax mov [esp+30h],edx mov eax,[ebp+24h] mov [esp+34h],eax mov word ptr [esp+20h],0001h L00012D03: mov edi,[esp+000000D8h] test edi,edi jnz L00012D12 xor bl,bl jmp L00012D15 L00012D12: mov bl,[edi+14h] L00012D15: mov esi,[esp+000000E0h] test esi,esi mov [esp+13h],bl jz L00012EF0 mov ecx,[esp+000000E8h] mov edx,[ecx] mov cx,[esi] xor ebp,ebp mov bp,[esi+0Ch] xor eax,eax mov ax,[esi+04h] mov [esp+000000A4h],edx mov byte ptr [esp+23h],80h mov [esp+3Ah],ax mov [esp+38h],cx mov edx,ebp sub edx,eax mov [esp+42h],dx xor edx,edx mov dx,[esi+08h] mov ebx,edx sub ebx,ecx mov [esp+40h],bx mov bl,[esp+13h] test bl,bl jnz L00012DF1 mov [esp+46h],ax lea eax,[esp+1Ch] push eax mov [esp+48h],cx mov [esp+4Ch],dx mov [esp+4Eh],bp call SUB_L0002A720 cmp eax,FFFFFFFFh jnz L00012EE9 mov ecx,[esp+000000F0h] mov edx,[esp+000000ECh] mov eax,[esp+000000E8h] push ecx mov ecx,[esp+000000E8h] push edx mov edx,[esp+000000E4h] push eax mov eax,[esp+000000E0h] push ecx mov ecx,[esp+000000E0h] push esi push edx mov edx,[esp+000000E4h] push edi push eax push ecx push edx call SUB_L000135C0 pop edi pop esi pop ebp pop ebx add esp,000000B8h retn 0028h ;------------------------------------------------------------------------------ L00012DF1: cmp bl,01h jnz L00012E85 mov cx,[edi+0Ch] mov ax,[edi+04h] mov dx,[edi+08h] mov [esp+48h],cx mov [esp+44h],ax mov ax,[edi+10h] lea ecx,[esp+1Ch] push ecx mov [esp+4Ah],dx mov [esp+4Eh],ax call SUB_L0002A720 cmp eax,FFFFFFFFh jnz L00012EE9 mov edx,[esp+000000F0h] mov eax,[esp+000000ECh] mov ecx,[esp+000000E8h] push edx mov edx,[esp+000000E8h] push eax mov eax,[esp+000000E4h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push esi push eax mov eax,[esp+000000E4h] push edi push ecx push edx push eax call SUB_L000135C0 pop edi pop esi pop ebp pop ebx add esp,000000B8h retn 0028h ;------------------------------------------------------------------------------ L00012E85: lea ecx,[esp+1Ch] push ecx push edi call SUB_L00012FF0 cmp eax,FFFFFFFFh jnz L00012EE9 mov edx,[esp+000000F0h] mov eax,[esp+000000ECh] mov ecx,[esp+000000E8h] push edx mov edx,[esp+000000E8h] push eax mov eax,[esp+000000E4h] push ecx mov ecx,[esp+000000E0h] push edx mov edx,[esp+000000E0h] push esi push eax mov eax,[esp+000000E4h] push edi push ecx push edx push eax call SUB_L000135C0 pop edi pop esi pop ebp pop ebx add esp,000000B8h retn 0028h ;------------------------------------------------------------------------------ L00012EE9: mov ebp,[esp+000000CCh] L00012EF0: mov ecx,[esp+000000E4h] mov edx,[ecx] mov eax,[esp+000000D4h] mov ecx,[eax+0Ch] and ecx,00010000h or ecx,L00040000 shr ecx,02h test bl,bl mov [esp+78h],edx mov byte ptr [esp+23h],20h mov [esp+24h],ecx jnz L00012F37 mov ebx,[esp+000000D0h] lea edx,[esp+1Ch] push edx push ebx call SUB_L000130B0 jmp L00012F64 L00012F37: cmp bl,01h jnz L00012F51 mov ebx,[esp+000000D0h] lea eax,[esp+1Ch] push eax push edi push ebx call SUB_L00013220 jmp L00012F64 L00012F51: mov ebx,[esp+000000D0h] lea ecx,[esp+1Ch] push ecx push edi push ebx call SUB_L00013390 L00012F64: cmp eax,FFFFFFFFh jnz L00012FAF mov edx,[esp+000000F0h] mov eax,[esp+000000ECh] mov ecx,[esp+000000E8h] push edx mov edx,[esp+000000E8h] push eax mov eax,[esp+000000E4h] push ecx mov ecx,[esp+000000E0h] push edx push esi push eax push edi push ecx push ebx push ebp call SUB_L000135C0 pop edi pop esi pop ebp pop ebx add esp,000000B8h retn 0028h ;------------------------------------------------------------------------------ L00012FAF: mov edx,[esp+14h] mov word ptr [esp+20h],0001h mov eax,[edx+00000664h] lea ecx,[esp+1Ch] push ecx mov [esp+20h],eax call SUB_L0002A3E0 mov edx,[esp+18h] pop edi pop esi pop ebp mov [edx+14h],eax mov eax,00000001h pop ebx add esp,000000B8h retn 0028h ;------------------------------------------------------------------------------ Align 16 SUB_L00012FF0: mov eax,[esp+04h] sub esp,00000324h push ebx push ebp push esi push edi xor esi,esi push esi push 00000004h push esi push esi push eax or ebx,FFFFFFFFh call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov edi,[esp+0000033Ch] L00013015: mov edx,[esp+00000338h] lea ecx,[esp+10h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov ebp,eax mov eax,[esp+10h] test eax,eax jz L0001303A lea esi,[esp+14h] L0001303A: test esi,esi jz L00013082 test eax,eax jz L0001307C L00013042: mov ax,[esi] mov cx,[esi+08h] mov dx,[esi+04h] mov [edi+28h],ax mov ax,[esi+0Ch] push edi mov [edi+2Ch],cx mov [edi+2Ah],dx mov [edi+2Eh],ax call SUB_L0002A720 mov ebx,eax cmp ebx,FFFFFFFFh jz L00013082 mov eax,[esp+10h] add esi,00000010h dec eax mov [esp+10h],eax jnz L00013042 L0001307C: test ebp,ebp jz L00013092 jmp L00013015 L00013082: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000324h retn 0008h ;------------------------------------------------------------------------------ L00013092: pop edi pop esi pop ebp mov eax,ebx pop ebx add esp,00000324h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000130B0: sub esp,00000010h push ebx push ebp push esi mov esi,[esp+20h] push edi lea eax,[esi+0Ch] mov edi,eax mov eax,[edi] mov ecx,[edi+04h] mov edx,[edi+08h] mov ebx,[edi+0Ch] mov edi,[esp+28h] push edi mov [edi+28h],ax mov [edi+2Ch],dx mov [edi+2Ah],cx mov [edi+2Eh],bx call SUB_L0002A460 mov ebx,eax cmp ebx,FFFFFFFFh jnz L000130F9 L000130EC: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000010h retn 0008h ;------------------------------------------------------------------------------ L000130F9: mov eax,[esi+1Ch] test eax,eax jz L00013114 mov ecx,[esi] mov [esp+10h],eax mov [esp+28h],ecx mov dword ptr [esp+18h],00000000h jmp L00013135 L00013114: lea edx,[esp+10h] push edx lea eax,[esp+2Ch] push eax push esi call jmp_WIN32K.SYS!STROBJ_bEnum cmp eax,FFFFFFFFh mov [esp+18h],eax jz L0001320D mov eax,[esp+10h] L00013135: mov ecx,[esp+28h] test ecx,ecx jz L0001320D mov edx,[eax+04h] mov ecx,[esi+08h] mov esi,[edx] mov ebx,[eax+08h] mov edx,[esi] mov ebp,[esi+04h] mov [esp+1Ch],ecx mov ecx,[eax+0Ch] mov eax,[esp+28h] add ebx,edx add ebp,ecx dec eax mov [esp+28h],eax L00013165: mov [edi+1Ch],bx mov [edi+1Eh],bp mov ax,[esi+08h] mov [edi+24h],ax mov cx,[esi+0Ch] mov eax,[edi+08h] test ah,40h lea edx,[esi+10h] mov [edi+26h],cx mov [edi+48h],edx push edi jz L000131A0 call SUB_L0002A890 cmp eax,FFFFFFFFh mov [esp+14h],eax jz L000130EC jmp L000131B2 L000131A0: call SUB_L0002A580 cmp eax,FFFFFFFFh mov [esp+14h],eax jz L000130EC L000131B2: mov ecx,[esp+28h] test ecx,ecx jz L000131E5 mov ecx,[esp+10h] add ecx,00000010h mov [esp+10h],ecx mov edx,[ecx+04h] mov esi,[edx] mov edx,[esp+1Ch] test edx,edx jnz L000131E3 mov ebp,[esi] mov ebx,[ecx+08h] mov edx,[ecx+0Ch] add ebx,ebp mov ebp,[esi+04h] add ebp,edx jmp L000131E5 L000131E3: add ebx,edx L000131E5: mov ecx,[esp+28h] mov edx,ecx dec ecx test edx,edx mov [esp+28h],ecx jnz L00013165 mov ecx,[esp+18h] test ecx,ecx jz L0001320F mov ebx,[esp+14h] mov esi,[esp+24h] jmp L000130F9 L0001320D: mov eax,ebx L0001320F: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00013220: mov eax,[esp+08h] mov cx,[eax+04h] sub esp,0000000Ch push ebx push ebp push esi push edi mov edi,[esp+28h] mov [edi+28h],cx mov dx,[eax+0Ch] mov [edi+2Ch],dx mov cx,[eax+08h] mov [edi+2Ah],cx mov dx,[eax+10h] push edi mov [edi+2Eh],dx call SUB_L0002A460 mov ebx,eax cmp ebx,FFFFFFFFh jnz L00013269 L0001325C: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,0000000Ch retn 000Ch ;------------------------------------------------------------------------------ L00013269: mov esi,[esp+20h] mov eax,[esi+1Ch] test eax,eax jz L00013288 mov ecx,[esi] mov [esp+28h],eax mov [esp+24h],ecx mov dword ptr [esp+14h],00000000h jmp L000132A9 L00013288: lea edx,[esp+28h] push edx lea eax,[esp+28h] push eax push esi call jmp_WIN32K.SYS!STROBJ_bEnum cmp eax,FFFFFFFFh mov [esp+14h],eax jz L0001337D mov eax,[esp+28h] L000132A9: mov ecx,[esp+24h] test ecx,ecx jz L0001337D mov edx,[eax+04h] mov ecx,[esi+08h] mov esi,[edx] mov ebx,[eax+08h] mov edx,[esi] mov ebp,[esi+04h] mov [esp+18h],ecx mov ecx,[eax+0Ch] mov eax,[esp+24h] add ebx,edx add ebp,ecx dec eax mov [esp+24h],eax L000132D9: mov [edi+1Ch],bx mov [edi+1Eh],bp mov ax,[esi+08h] mov [edi+24h],ax mov cx,[esi+0Ch] mov eax,[edi+08h] test ah,40h lea edx,[esi+10h] mov [edi+26h],cx mov [edi+48h],edx push edi jz L00013314 call SUB_L0002A890 cmp eax,FFFFFFFFh mov [esp+10h],eax jz L0001325C jmp L00013326 L00013314: call SUB_L0002A580 cmp eax,FFFFFFFFh mov [esp+10h],eax jz L0001325C L00013326: mov ecx,[esp+24h] test ecx,ecx jz L00013359 mov ecx,[esp+28h] add ecx,00000010h mov [esp+28h],ecx mov edx,[ecx+04h] mov esi,[edx] mov edx,[esp+18h] test edx,edx jnz L00013357 mov ebp,[esi] mov ebx,[ecx+08h] mov edx,[ecx+0Ch] add ebx,ebp mov ebp,[esi+04h] add ebp,edx jmp L00013359 L00013357: add ebx,edx L00013359: mov ecx,[esp+24h] mov edx,ecx dec ecx test edx,edx mov [esp+24h],ecx jnz L000132D9 mov ecx,[esp+14h] test ecx,ecx jz L0001337F mov ebx,[esp+10h] jmp L00013269 L0001337D: mov eax,ebx L0001337F: pop edi pop esi pop ebp pop ebx add esp,0000000Ch retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00013390: sub esp,00000348h push ebx push ebp push esi mov esi,[esp+00000360h] push edi mov dword ptr [esp+10h],FFFFFFFFh L000133A9: mov edi,[esp+0000035Ch] mov eax,[edi+1Ch] test eax,eax jz L000133CB mov [esp+2Ch],eax mov eax,[edi] mov [esp+24h],eax mov dword ptr [esp+1Ch],00000000h jmp L000133E8 L000133CB: lea ecx,[esp+2Ch] push ecx lea edx,[esp+28h] push edx push edi call jmp_WIN32K.SYS!STROBJ_bEnum cmp eax,FFFFFFFFh mov [esp+1Ch],eax jz L000135AD L000133E8: mov eax,[esp+24h] test eax,eax jz L000135AD mov ecx,[esp+00000360h] mov eax,[edi+08h] push 00000000h push 00000004h push 00000000h push 00000000h push ecx mov [esp+44h],eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart L00013410: mov eax,[esp+00000360h] lea edx,[esp+34h] push edx push 00000324h push eax call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov ecx,[esp+34h] test ecx,ecx mov [esp+28h],eax lea eax,[esp+38h] mov [esp+20h],eax jz L00013584 jmp L00013445 L00013441: mov eax,[esp+20h] L00013445: mov ecx,[esp+24h] mov [esp+14h],ecx mov ecx,[esp+2Ch] mov edx,[ecx+04h] mov edi,[edx] mov ebx,[ecx+08h] mov ebp,[edi] lea edx,[ecx+08h] mov [esp+18h],edx mov edx,[ecx+0Ch] mov cx,[eax] add ebx,ebp mov ebp,[edi+04h] add ebp,edx mov dx,[eax+08h] mov [esi+28h],cx mov cx,[eax+04h] mov [esi+2Ch],dx mov dx,[eax+0Ch] push esi mov [esi+2Ah],cx mov [esi+2Eh],dx call SUB_L0002A460 cmp eax,FFFFFFFFh mov [esp+10h],eax jz L0001359D mov eax,[esp+14h] mov ecx,eax dec eax test ecx,ecx mov [esp+14h],eax jz L00013547 mov edx,[esp+18h] mov [esp+18h],edx L000134B9: mov [esi+1Ch],bx mov [esi+1Eh],bp mov ax,[edi+08h] mov [esi+24h],ax mov cx,[edi+0Ch] mov eax,[esi+08h] test ah,40h lea edx,[edi+10h] mov [esi+26h],cx mov [esi+48h],edx push esi jz L000134F4 call SUB_L0002A890 cmp eax,FFFFFFFFh mov [esp+10h],eax jz L0001359D jmp L00013506 L000134F4: call SUB_L0002A580 cmp eax,FFFFFFFFh mov [esp+10h],eax jz L0001359D L00013506: mov edx,[esp+14h] test edx,edx jz L00013538 mov eax,[esp+18h] mov ecx,[eax+0Ch] mov edi,[ecx] mov ecx,[esp+30h] add eax,00000010h test ecx,ecx mov [esp+18h],eax jnz L00013536 mov ebx,[eax] mov ebp,[eax+04h] mov ecx,[edi] mov eax,[edi+04h] add ebx,ecx add ebp,eax jmp L00013538 L00013536: add ebx,ecx L00013538: mov eax,edx dec edx test eax,eax mov [esp+14h],edx jnz L000134B9 L00013547: cmp dword ptr [esp+34h],00000001h jg L0001355E mov eax,[esp+28h] test eax,eax jnz L0001355E mov eax,[esp+1Ch] test eax,eax jz L00013568 L0001355E: push esi call SUB_L0002A3E0 mov [esp+10h],eax L00013568: mov eax,[esp+34h] mov edx,[esp+20h] dec eax add edx,00000010h test eax,eax mov [esp+34h],eax mov [esp+20h],edx jnz L00013441 L00013584: mov eax,[esp+28h] test eax,eax jnz L00013410 mov eax,[esp+1Ch] test eax,eax jz L000135AD jmp L000133A9 L0001359D: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000348h retn 000Ch ;------------------------------------------------------------------------------ L000135AD: mov eax,[esp+10h] pop edi pop esi pop ebp pop ebx add esp,00000348h retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L000135C0: mov ecx,[esp+04h] mov eax,[ecx] test eax,eax jz L000135D2 cmp dword ptr [eax],00000002h jnz L000135D2 mov ecx,[eax+18h] L000135D2: mov eax,[esp+28h] mov edx,[esp+24h] push eax mov eax,[esp+24h] push edx mov edx,[esp+24h] push eax mov eax,[esp+24h] push edx mov edx,[esp+24h] push eax mov eax,[esp+24h] push edx mov edx,[esp+24h] push eax mov eax,[esp+24h] push edx push eax push ecx call jmp_WIN32K.SYS!EngTextOut retn 0028h ;------------------------------------------------------------------------------ Align 16 L00013610: mov eax,[esp+14h] mov ecx,eax xor edx,edx shr ecx,08h mov dh,[ecx+L000B2AD4] mov ecx,[esp+0Ch] and eax,0000000Fh mov dl,[eax+L000B2AD4] mov eax,edx push eax mov eax,[esp+14h] push eax mov eax,[esp+10h] push ecx push 00000000h push 00000000h lea edx,[eax+04h] push edx push 00000000h push eax mov eax,[esp+24h] push 00000000h push 00000000h push eax call SUB_L00013660 retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L00013660: sub esp,000000D0h push ebx mov ebx,[esp+000000D8h] push ebp xor edx,edx push esi mov esi,[ebx+08h] cmp esi,edx push edi mov [esp+24h],edx mov [esp+20h],edx mov dword ptr [esp+18h],00000001h mov [esp+1Ch],edx mov dword ptr [esp+14h],FFFFFFFFh mov [esp+2Ch],esi jz L00013E17 xor eax,eax mov ecx,0000002Bh lea edi,[esp+34h] rep stosd mov eax,[ebx] cmp eax,edx mov [esp+30h],eax jz L00013E17 cmp dword ptr [eax],00000002h jnz L00013721 mov ecx,[esp+0000010Ch] mov edx,[esp+00000108h] mov eax,[esp+00000104h] push ecx mov ecx,[esp+00000104h] push edx mov edx,[esp+00000104h] push eax mov eax,[esp+00000104h] push ecx mov ecx,[esp+00000104h] push edx mov edx,[esp+00000104h] push eax mov eax,[esp+00000104h] push ecx mov ecx,[esp+00000104h] push edx push eax push ecx push ebx call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L00013721: mov ebp,[esp+000000F0h] cmp ebp,edx jnz L00013733 mov byte ptr [esp+10h],00h jmp L0001373A L00013733: mov dl,[ebp+14h] mov [esp+10h],dl L0001373A: mov ecx,[esi+00000664h] mov esi,[esp+000000F8h] mov [esp+34h],ecx mov edx,[eax+20h] mov ax,[esi+04h] mov cx,[esi] mov [esp+48h],edx mov [esp+50h],cx mov [esp+52h],ax mov dx,[ebx+10h] mov [esp+58h],dx mov ax,[ebx+14h] mov [esp+5Ah],ax mov ecx,[ebx+24h] mov eax,[esp+0000010Ch] mov [esp+4Ch],ecx mov edx,eax mov ecx,eax and edx,000000FFh shr ecx,08h cmp ecx,edx mov dword ptr [esp+28h],00000004h mov [esp+3Ah],al mov word ptr [esp+38h],0001h jz L000137F5 mov edx,[esp+00000108h] mov ecx,[esp+00000100h] push eax mov eax,[esp+00000108h] push edx mov edx,[esp+00000104h] push eax mov eax,[esp+00000100h] push ecx mov ecx,[esp+000000FCh] push edx mov edx,[esp+000000FCh] push esi push eax push ebp push ecx push edx push ebx call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L000137F5: mov cl,al and cl,0Fh shr al,04h xor cl,al jz L000138EB mov edx,[esp+00000104h] mov eax,[edx] cmp eax,FFFFFFFFh jnz L00013899 mov eax,[edx+04h] test eax,eax jnz L00013866 push edx call jmp_WIN32K.SYS!BRUSHOBJ_pvGetRbrush test eax,eax jnz L0001385F mov edx,[esp+0000010Ch] mov eax,[esp+00000108h] mov ecx,[esp+00000104h] push edx mov edx,[esp+00000104h] push eax mov eax,[esp+00000104h] push ecx mov ecx,[esp+00000100h] push edx push eax push esi push ecx push ebp jmp L00013E57 L0001385F: mov edx,[esp+00000104h] L00013866: mov edi,[esp+00000108h] lea ecx,[eax+1Ch] mov [esp+000000B0h],ecx mov ecx,[edi+04h] mov [esp+000000B4h],ecx mov ecx,[edi] mov [esp+000000B8h],ecx mov dword ptr [esp+18h],00000000h mov ecx,00000001h jmp L000138B5 L00013899: mov edi,[esp+00000108h] mov ecx,00000001h mov [esp+18h],ecx mov byte ptr [esp+3Bh],80h mov [esp+000000BCh],eax L000138B5: mov ebx,[esp+18h] test ebx,ebx mov [esp+20h],ecx jnz L000138E1 test byte ptr [eax+04h],01h jz L000138E1 mov ebx,[eax+10h] mov [esp+000000BCh],ebx mov ebx,[eax+0Ch] mov [esp+1Ch],ecx mov [esp+000000C0h],ebx jmp L00013902 L000138E1: mov dword ptr [esp+1Ch],00000000h jmp L00013902 L000138EB: mov eax,[esp+2Ch] mov edi,[esp+00000108h] mov edx,[esp+00000104h] mov ecx,00000001h L00013902: mov ebx,[esp+000000E8h] test ebx,ebx jnz L000139E6 mov ecx,[esp+20h] test ecx,ecx jz L00013966 mov ecx,[esp+18h] test ecx,ecx jz L00013936 mov edx,[esp+10h] push edx push 00000004h push esi push ebp lea eax,[esp+44h] push eax call SUB_L00016020 jmp L00013979 L00013936: test byte ptr [eax+04h],01h jz L00013951 mov ecx,[esp+10h] push ecx push 00000004h push esi push ebp lea edx,[esp+44h] push edx call SUB_L00016490 jmp L00013979 L00013951: mov eax,[esp+10h] push eax push 00000004h push esi push ebp lea ecx,[esp+44h] push ecx call SUB_L00016310 jmp L00013979 L00013966: mov edx,[esp+10h] push edx push 00000004h push esi push ebp lea eax,[esp+44h] push eax call SUB_L00016190 L00013979: cmp eax,FFFFFFFFh jnz L000139CD mov ecx,[esp+0000010Ch] mov edx,[esp+00000104h] mov eax,[esp+00000100h] push ecx mov ecx,[esp+00000100h] push edi push edx mov edx,[esp+00000100h] push eax mov eax,[esp+000000FCh] push ecx mov ecx,[esp+000000F8h] push esi push edx push ebp push eax push 00000000h push ecx call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L000139CD: mov edx,[esp+30h] pop edi pop esi pop ebp mov [edx+14h],eax mov eax,00000001h pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L000139E6: mov eax,[ebx] test eax,eax jz L00013B14 cmp dword ptr [eax],00000002h jnz L00013A95 mov [esp+000000AEh],cx mov [esp+24h],eax mov eax,[eax+18h] test eax,eax jnz L00013A53 mov eax,[esp+0000010Ch] mov ecx,[esp+00000100h] push eax mov eax,[esp+000000F8h] push edi push edx mov edx,[esp+00000108h] push ecx mov ecx,[esp+000000FCh] push edx mov edx,[esp+000000F8h] push esi push eax push ebp push ecx push ebx push edx call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L00013A53: mov edx,[eax+20h] mov ecx,[eax+2Ch] mov edi,[esp+000000FCh] mov [esp+7Ch],edx mov dx,[edi+04h] mov [esp+00000086h],dx mov dx,[edi] mov [esp+00000084h],dx mov edx,[eax+24h] mov [esp+00000080h],edx mov edx,[eax+24h] test edx,edx jg L00013B99 jmp L00013D80 L00013A95: mov ecx,[ebx+24h] test ecx,ecx mov [esp+24h],eax jg L00013AE7 mov ecx,[esp+0000010Ch] mov eax,[esp+000000FCh] push ecx mov ecx,[esp+000000F8h] push edi push edx mov edx,[esp+0000010Ch] push edx mov edx,[esp+000000FCh] push eax mov eax,[esp+000000F8h] push esi push ecx push ebp push edx push ebx push eax call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L00013AE7: mov edx,[eax+20h] mov ecx,[ebx+2Ch] mov edi,[esp+000000FCh] mov ax,[edi+04h] mov [esp+7Ch],edx mov dx,[edi] mov [esp+00000086h],ax mov [esp+00000084h],dx mov eax,[ebx+24h] jmp L00013B92 L00013B14: mov eax,[ebx+24h] test eax,eax mov [esp+000000AEh],cx mov ecx,[ebx+2Ch] jg L00013B6D mov ecx,[esp+0000010Ch] mov eax,[esp+000000FCh] push ecx mov ecx,[esp+000000F8h] push edi push edx mov edx,[esp+0000010Ch] push edx mov edx,[esp+000000FCh] push eax mov eax,[esp+000000F8h] push esi push ecx push ebp push edx push ebx push eax call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L00013B6D: mov edx,[ebx+20h] mov edi,[esp+000000FCh] mov [esp+7Ch],edx mov dx,[edi+04h] mov [esp+00000086h],dx mov dx,[edi] mov [esp+00000084h],dx L00013B92: mov [esp+00000080h],eax L00013B99: mov eax,[esp+000000E4h] cmp eax,ebx jz L00013CEC mov edx,[esp+2Ch] cmp ecx,[edx+38h] jnz L00013C1C mov eax,[esp+000000F4h] test eax,eax jz L00013BC6 test byte ptr [eax+04h],01h jz L00013D77 L00013BC6: mov eax,[esp+20h] test eax,eax jz L00013C10 mov eax,[esp+1Ch] test eax,eax jnz L00013BF7 mov eax,[esp+18h] test eax,eax jnz L00013BF7 mov eax,[esp+10h] push eax push 00000004h push edi push esi push ebp lea ecx,[esp+48h] push ecx call SUB_L00016A10 jmp L00013D73 L00013BF7: mov edx,[esp+10h] push edx push 00000004h push edi push esi push ebp lea eax,[esp+48h] push eax call SUB_L00016E10 jmp L00013D73 L00013C10: mov ecx,[esp+10h] push ecx push 00000004h jmp L00013D66 L00013C1C: cmp ecx,00000001h jnz L00013CA5 mov eax,[esp+000000F4h] mov eax,[eax+10h] mov ecx,[eax+04h] mov [esp+0000008Ch],ecx mov edx,[eax] mov eax,[esp+20h] test eax,eax mov [esp+00000090h],edx jz L00013C8C mov eax,[esp+1Ch] test eax,eax jnz L00013C73 mov eax,[esp+18h] test eax,eax jnz L00013C73 mov eax,[esp+10h] push eax push 00000004h push edi push esi push ebp lea ecx,[esp+48h] push ecx call SUB_L00016C10 jmp L00013D73 L00013C73: mov edx,[esp+10h] push edx push 00000004h push edi push esi push ebp lea eax,[esp+48h] push eax call SUB_L00017010 jmp L00013D73 L00013C8C: mov ecx,[esp+10h] push ecx push 00000004h push edi push esi push ebp lea edx,[esp+48h] push edx call SUB_L00016810 jmp L00013D73 L00013CA5: mov ecx,[esp+0000010Ch] mov edx,[esp+00000108h] push ecx mov ecx,[esp+00000108h] push edx mov edx,[esp+00000108h] push ecx mov ecx,[esp+00000100h] push edx mov edx,[esp+000000FCh] push edi push esi push ecx push ebp push edx push ebx push eax call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L00013CEC: cmp byte ptr [esp+10h],03h jnz L00013D1A mov eax,[edi+04h] cmp eax,[esi+04h] jl L00013D08 mov ecx,[edi] mov edx,[esi] xor eax,eax cmp ecx,edx setl al jmp L00013D1E L00013D08: mov edx,[edi] mov ecx,[esi] xor eax,eax cmp edx,ecx setl al add eax,00000002h mov [esp+28h],eax L00013D1A: mov eax,[esp+28h] L00013D1E: mov ecx,[esp+20h] test ecx,ecx jz L00013D60 mov ecx,[esp+1Ch] test ecx,ecx jnz L00013D4B mov ecx,[esp+18h] test ecx,ecx jnz L00013D4B mov ecx,[esp+10h] push ecx push eax push edi push esi push ebp lea edx,[esp+48h] push edx call SUB_L00016A10 jmp L00013D73 L00013D4B: mov ecx,[esp+10h] push ecx push eax push edi push esi push ebp lea edx,[esp+48h] push edx call SUB_L00016E10 jmp L00013D73 L00013D60: mov ecx,[esp+10h] push ecx push eax L00013D66: push edi push esi push ebp lea edx,[esp+48h] push edx call SUB_L00016610 L00013D73: mov [esp+14h],eax L00013D77: mov eax,[esp+14h] cmp eax,FFFFFFFFh jnz L00013DCE L00013D80: mov eax,[esp+0000010Ch] mov ecx,[esp+00000108h] mov edx,[esp+00000104h] push eax mov eax,[esp+00000104h] push ecx mov ecx,[esp+000000FCh] push edx mov edx,[esp+000000F8h] push eax mov eax,[esp+000000F4h] push edi push esi push ecx push ebp push edx push ebx push eax call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L00013DCE: mov ecx,[esp+30h] mov [ecx+14h],eax mov ecx,[esp+24h] test ecx,ecx jz L00013E05 mov [ecx+14h],eax mov edx,[esp+34h] push eax push edx call SUB_L00029710 test eax,eax jz L00013E05 L00013DEF: mov eax,[esp+24h] mov ecx,[eax+14h] mov edx,[esp+34h] push ecx push edx call SUB_L00029710 test eax,eax jnz L00013DEF L00013E05: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ L00013E17: mov eax,[esp+0000010Ch] mov ecx,[esp+00000108h] mov edx,[esp+00000104h] push eax mov eax,[esp+00000104h] push ecx mov ecx,[esp+00000104h] push edx mov edx,[esp+00000104h] push eax mov eax,[esp+00000104h] push ecx mov ecx,[esp+00000104h] push edx push eax push ecx L00013E57: mov edx,[esp+0000010Ch] mov eax,[esp+00000108h] push edx push eax push ebx call SUB_L00013F80 pop edi pop esi pop ebp pop ebx add esp,000000D0h retn 002Ch ;------------------------------------------------------------------------------ Align 8 L00013E80: mov eax,[esp+04h] mov ecx,[eax+08h] test ecx,ecx push esi jnz L00013EAF mov ecx,[esp+1Ch] mov edx,[esp+18h] push ecx mov ecx,[esp+18h] push edx mov edx,[esp+18h] push ecx mov ecx,[esp+18h] push edx push ecx push eax call SUB_L00014000 pop esi retn 0018h ;------------------------------------------------------------------------------ L00013EAF: mov edx,[eax] test edx,edx mov esi,[esp+14h] mov ecx,[esp+0Ch] jz L00013F60 cmp dword ptr [edx],00000002h jz L00013F60 cmp dword ptr [ecx],00000000h jz L00013EF9 mov edx,[esp+1Ch] push 0000CCCCh push 00000000h push 00000000h push 00000000h push edx mov edx,[esp+2Ch] push edx mov edx,esi push edx mov edx,[esp+2Ch] push edx push 00000000h push ecx push eax call SUB_L00013660 pop esi retn 0018h ;------------------------------------------------------------------------------ L00013EF9: mov edx,[ecx+2Ch] cmp edx,[eax+2Ch] jnz L00013F33 test esi,esi jz L00013F0B test byte ptr [esi+04h],01h jz L00013F33 L00013F0B: mov edx,[esp+1Ch] push 0000CCCCh push 00000000h push 00000000h push 00000000h push edx mov edx,[esp+2Ch] push edx mov edx,[esp+28h] push esi push edx push 00000000h push ecx push eax call SUB_L00013660 pop esi retn 0018h ;------------------------------------------------------------------------------ L00013F33: cmp edx,00000001h jnz L00013F60 mov edx,[esp+1Ch] push 0000CCCCh push 00000000h push 00000000h push 00000000h push edx mov edx,[esp+2Ch] push edx mov edx,[esp+28h] push esi push edx push 00000000h push ecx push eax call SUB_L00013660 pop esi retn 0018h ;------------------------------------------------------------------------------ L00013F60: mov edx,[esp+1Ch] push edx mov edx,[esp+1Ch] push edx mov edx,[esp+18h] push esi push edx push ecx push eax call SUB_L00014000 pop esi retn 0018h ;------------------------------------------------------------------------------ Align 8 SUB_L00013F80: mov eax,[esp+08h] push ebx push esi mov esi,[esp+0Ch] xor ecx,ecx test eax,eax push edi mov edi,esi mov ebx,eax jz L00013FA6 mov edx,[eax] test edx,edx jz L00013FA6 cmp dword ptr [edx],00000002h jnz L00013FA3 mov ebx,[edx+18h] L00013FA3: mov ecx,[eax+08h] L00013FA6: mov eax,[esi] test eax,eax jz L00013FB9 cmp dword ptr [eax],00000002h mov edi,esi jnz L00013FB6 mov edi,[eax+18h] L00013FB6: mov ecx,[esi+08h] L00013FB9: mov eax,[ecx+00000664h] push eax call SUB_L00029670 mov ecx,[esp+38h] mov edx,[esp+34h] mov eax,[esp+30h] push ecx mov ecx,[esp+30h] push edx mov edx,[esp+30h] push eax mov eax,[esp+30h] push ecx mov ecx,[esp+30h] push edx mov edx,[esp+30h] push eax mov eax,[esp+30h] push ecx push edx push eax push ebx push edi call jmp_WIN32K.SYS!EngBitBlt pop edi pop esi pop ebx retn 002Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00014000: mov ecx,[esp+08h] mov eax,[ecx] push ebx push esi mov esi,[esp+0Ch] xor edx,edx test eax,eax push edi mov ebx,ecx mov edi,esi jz L00014022 cmp dword ptr [eax],00000002h jnz L0001401F mov ebx,[eax+18h] L0001401F: mov edx,[ecx+08h] L00014022: mov eax,[esi] test eax,eax jz L00014035 cmp dword ptr [eax],00000002h mov edi,esi jnz L00014032 mov edi,[eax+18h] L00014032: mov edx,[esi+08h] L00014035: mov eax,[edx+00000664h] push eax call SUB_L00029670 mov ecx,[esp+24h] mov edx,[esp+20h] mov eax,[esp+1Ch] push ecx mov ecx,[esp+1Ch] push edx push eax push ecx push ebx push edi call jmp_WIN32K.SYS!EngCopyBits pop edi pop esi pop ebx retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00014070: mov ecx,[esp+0Ch] xor eax,eax test ecx,ecx jz L000140DB push ebx mov ebx,[esp+08h] push ebp push esi mov esi,[esp+14h] push edi lea edi,[esi+04h] mov ebp,ecx L0001408B: mov ecx,[esi] mov edx,[ebx] cmp ecx,edx jg L00014095 mov ecx,edx L00014095: mov [edi-04h],ecx mov ecx,[esi+08h] mov edx,[ebx+08h] cmp ecx,edx jl L000140A4 mov ecx,edx L000140A4: cmp [edi-04h],ecx mov [edi+04h],ecx jge L000140D1 mov ecx,[esi+04h] mov edx,[ebx+04h] cmp ecx,edx jg L000140B8 mov ecx,edx L000140B8: mov [edi],ecx mov ecx,[esi+0Ch] mov edx,[ebx+0Ch] cmp ecx,edx jl L000140C6 mov ecx,edx L000140C6: cmp [edi],ecx mov [edi+08h],ecx jge L000140D1 add edi,00000010h inc eax L000140D1: add esi,00000010h dec ebp jnz L0001408B pop edi pop esi pop ebp pop ebx L000140DB: retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L000140E0: mov edx,[esp+04h] mov eax,[edx] push ebx push esi mov esi,[esp+10h] push edi mov edi,[esi] cmp eax,edi jle L000140F5 mov edi,eax L000140F5: mov ebx,[esp+18h] mov [ebx],edi mov eax,[edx+08h] mov ecx,[esi+08h] cmp eax,ecx jl L00014107 mov eax,ecx L00014107: cmp edi,eax mov [ebx+08h],eax jge L0001413B mov eax,[edx+04h] mov edi,[esi+04h] cmp eax,edi jle L0001411A mov edi,eax L0001411A: mov [ebx+04h],edi mov eax,[edx+0Ch] mov ecx,[esi+0Ch] cmp eax,ecx jl L00014129 mov eax,ecx L00014129: cmp edi,eax mov [ebx+0Ch],eax jge L0001413B pop edi pop esi mov eax,00000001h pop ebx retn 000Ch ;------------------------------------------------------------------------------ L0001413B: pop edi pop esi xor eax,eax pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00014150: sub esp,0000000Ch mov eax,[esp+18h] push ebx push ebp push esi mov esi,[esp+30h] mov ebp,eax shr esi,03h shr ebp,03h and eax,00000007h mov [esp+14h],eax mov al,[esp+38h] push edi mov [esp+34h],al jnz L0001417E dec ebp mov byte ptr [esp+34h],00h L0001417E: mov ecx,[esp+24h] test ecx,ecx mov ebx,[esp+2Ch] jbe L00014236 mov edx,[esp+20h] mov edi,ebx mov dword ptr [esp+28h],00000000h mov [esp+10h],edi mov [esp+20h],edx mov [esp+14h],ecx L000141A8: xor eax,eax test ebp,ebp jbe L000141B9 L000141AE: mov cl,[edx+eax] mov [edi+eax],cl inc eax cmp eax,ebp jc L000141AE L000141B9: mov al,[esp+34h] mov cl,[esp+18h] shr al,cl mov cl,[edx+ebp] or cl,al lea eax,[ebp+01h] cmp eax,esi mov [edi+ebp],cl jnc L00014209 mov edx,[esp+28h] lea edi,[edx+eax] add edi,ebx mov ecx,esi sub ecx,eax mov al,[esp+3Ch] mov bl,al mov bh,bl mov edx,ecx shr ecx,02h mov eax,ebx shl eax,10h mov ax,bx mov ebx,[esp+2Ch] rep stosd mov ecx,edx mov edx,[esp+20h] and ecx,00000003h rep stosb mov edi,[esp+10h] L00014209: mov eax,[esp+28h] mov ecx,[esp+38h] add eax,esi mov [esp+28h],eax mov eax,[esp+14h] add edx,ecx add edi,esi dec eax mov [esp+20h],edx mov [esp+10h],edi mov [esp+14h],eax jnz L000141A8 mov ecx,[esp+24h] L00014236: mov eax,[esp+30h] cmp ecx,eax jnc L0001427E mov ebp,esi imul ebp,ecx add ebp,ebx sub eax,ecx mov [esp+2Ch],eax L0001424B: test esi,esi jbe L00014271 mov al,[esp+3Ch] mov bl,al mov bh,bl mov ecx,esi mov edx,ecx shr ecx,02h mov edi,ebp mov eax,ebx shl eax,10h mov ax,bx rep stosd mov ecx,edx and ecx,00000003h rep stosb L00014271: mov eax,[esp+2Ch] add ebp,esi dec eax mov [esp+2Ch],eax jnz L0001424B L0001427E: pop edi pop esi pop ebp pop ebx add esp,0000000Ch retn 0020h ;------------------------------------------------------------------------------ Align 16 SUB_L00014290: push esi mov esi,[esp+08h] mov eax,[esi+54h] test al,01h mov ecx,[esi+00000678h] push edi jz L000142A8 and ecx,FFFFFFF7h jmp L000142AB L000142A8: or ecx,00000008h L000142AB: mov edx,[esi+2Ch] mov [esi+00000678h],ecx mov ecx,[esi+28h] xor edi,edi shr ecx,1 shr edx,1 test al,04h mov [esi+00000670h],ecx mov [esi+00000674h],edx mov [esi+00000668h],edi mov [esi+0000066Ch],edi mov [esi+00000680h],edi mov [esi+0000067Ch],edi jz L000142EB push esi call SUB_L000148A0 L000142EB: push esi call SUB_L00014810 push edi push esi call SUB_L00014730 pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00014310: mov eax,[esp+04h] push 00000000h push eax call SUB_L00014730 retn 0004h ;------------------------------------------------------------------------------ Align 4 L00014320: mov eax,[esp+04h] push ebx mov ebx,[esp+0Ch] cmp ebx,FFFFFFFFh push esi mov esi,[eax+08h] jnz L0001433F push 00000000h push esi call SUB_L00014730 pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ L0001433F: push edi mov edi,[esp+18h] test edi,edi mov [esi+00000670h],ebx jge L000143F8 add edi,[esi+2Ch] push esi mov [esi+00000674h],edi call SUB_L000148A0 test byte ptr [esi+00000678h],04h jz L0001440F cmp ebx,[esi+0000067Ch] jge L0001438C mov ecx,[esi+0000068Ch] add ecx,ebx mov [esi+0000067Ch],ebx mov [esi+00000684h],ecx jmp L000143A8 L0001438C: cmp ebx,[esi+00000684h] jl L000143A8 mov eax,[esi+0000068Ch] mov [esi+00000684h],ebx sub ebx,eax mov [esi+0000067Ch],ebx L000143A8: cmp edi,[esi+00000680h] jge L000143D0 mov edx,[esi+00000690h] add edx,edi push esi mov [esi+00000680h],edi mov [esi+00000688h],edx call SUB_L00014810 pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ L000143D0: cmp edi,[esi+00000688h] jl L0001440F mov eax,[esi+00000690h] mov [esi+00000688h],edi sub edi,eax push esi mov [esi+00000680h],edi call SUB_L00014810 pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ L000143F8: test byte ptr [esi+00000678h],02h mov [esi+00000674h],edi jnz L0001440F push 00000001h push esi call SUB_L00014730 L0001440F: push esi call SUB_L00014810 pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 8 L00014420: mov eax,[esp+04h] push ebp push esi mov esi,[eax+08h] test byte ptr [esi+54h],01h jz L00014468 mov eax,[esi+00000678h] test al,08h jnz L00014468 mov ecx,[esp+14h] test ecx,ecx jz L0001447A cmp dword ptr [ecx+2Ch],00000006h jnz L0001445F test byte ptr [esp+30h],10h jz L0001445F mov ebp,[ecx+10h] mov edx,[ecx+14h] or eax,00000040h mov [esi+00000678h],eax jmp L000144A6 L0001445F: and eax,FFFFFFBFh mov [esi+00000678h],eax L00014468: push 00000000h push esi call SUB_L00014730 pop esi mov eax,00000001h pop ebp retn 0028h ;------------------------------------------------------------------------------ L0001447A: and eax,FFFFFFBFh mov [esi+00000678h],eax mov eax,[esp+10h] test eax,eax jnz L0001449C push eax push esi call SUB_L00014730 pop esi mov eax,00000002h pop ebp retn 0028h ;------------------------------------------------------------------------------ L0001449C: mov edx,[eax+14h] mov ebp,[eax+10h] sar edx,1 mov ecx,eax L000144A6: cmp ebp,00000040h mov eax,[esp+1Ch] mov [esi+00000668h],eax mov eax,[esp+20h] mov [esi+0000066Ch],eax mov eax,[esp+24h] mov [esi+00000670h],eax mov eax,[esp+28h] mov [esi+00000674h],eax ja L00014468 cmp edx,00000040h ja L00014468 test byte ptr [ecx+32h],01h jz L00014468 mov eax,[esi+00000678h] and eax,FFFFFFF7h cmp ebp,00000020h push edi mov [esi+00000678h],eax ja L0001450A cmp edx,00000020h ja L0001450A and eax,FFFFFFFEh mov [esi+00000678h],eax mov eax,00000020h mov edi,eax jmp L0001451A L0001450A: or eax,00000001h mov [esi+00000678h],eax mov eax,00000040h mov edi,eax L0001451A: push edi push eax push ecx push edx push ebp push esi call SUB_L00014570 test eax,eax pop edi jnz L0001454A mov edx,[esi+00000678h] push eax or edx,00000008h push esi mov [esi+00000678h],edx call SUB_L00014730 pop esi mov eax,00000001h pop ebp retn 0028h ;------------------------------------------------------------------------------ L0001454A: cmp dword ptr [esi+00000670h],FFFFFFFFh jz L00014468 push esi call SUB_L00014810 push 00000001h push esi call SUB_L00014730 pop esi mov eax,00000002h pop ebp retn 0028h ;------------------------------------------------------------------------------ Align 4 SUB_L00014570: sub esp,000000B0h push ebx push ebp push esi mov esi,[esp+000000CCh] mov ecx,[esi+20h] mov ebp,[esi+24h] push edi mov edi,[esp+000000C4h] mov eax,[edi+00000664h] mov [esp+14h],eax test byte ptr [edi+00000678h],40h mov [esp+10h],ecx jz L0001461F push 00004000h push 00000001h call OsAllocMem mov ebx,eax test ebx,ebx jnz L000145C4 pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0018h ;------------------------------------------------------------------------------ L000145C4: mov edx,[esp+000000D4h] mov eax,[esp+000000D8h] mov ecx,[esp+000000C8h] push 00000000h push ebp shl edx,05h push edx mov edx,[esp+000000D8h] push eax mov eax,[esp+20h] push ebx shl ecx,05h push ecx push edx push eax call SUB_L00014150 mov ecx,[edi+00000678h] and cl,01h dec cl neg cl sbb ecx,ecx and ecx,FFDFFFE0h add ecx,00400041h mov [esp+000000B4h],ecx jmp L000146CC L0001461F: push 00000400h push 00000001h call OsAllocMem mov ebx,eax test ebx,ebx jnz L0001463E pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0018h ;------------------------------------------------------------------------------ L0001463E: mov eax,[esp+000000CCh] mov edx,[esi+20h] mov esi,[esp+000000D4h] mov ecx,[esp+000000C8h] mov edi,ebp imul edi,eax push 000000FFh push ebp push esi add edi,edx mov edx,[esp+000000E4h] push edx mov edx,[esp+20h] push ebx push ecx push eax push edx call SUB_L00014150 mov eax,[esp+000000D8h] mov ecx,[esp+000000CCh] push 00000000h push ebp push esi imul esi,eax push eax mov eax,[esp+000000D8h] sar esi,03h add esi,ebx push esi push eax push ecx push edi call SUB_L00014150 mov edx,[esp+000000C4h] mov eax,[edx+00000678h] and al,01h dec al neg al mov edi,edx sbb eax,eax and eax,FFDFFFE0h add eax,00400040h mov [esp+000000B4h],eax L000146CC: mov ecx,[edi+0000067Ch] mov edx,[edi+00000670h] mov eax,[edi+00000668h] sub edx,ecx mov ecx,[edi+00000680h] sub edx,eax mov eax,[edi+0000066Ch] mov [esp+30h],dx mov edx,[edi+00000674h] sub edx,ecx lea ecx,[esp+14h] sub edx,eax push ecx mov [esp+2Ch],ebx mov [esp+36h],dx call SUB_L0002AAE0 xor edx,edx cmp eax,FFFFFFFFh setnz dl push ebx mov esi,edx call OsFreeMem pop edi mov eax,esi pop esi pop ebp pop ebx add esp,000000B0h retn 0018h ;------------------------------------------------------------------------------ Align 4 SUB_L00014730: sub esp,000000ACh mov ecx,[esp+000000B4h] push esi mov esi,[esp+000000B4h] mov edx,[esi+00000678h] mov eax,[esi+00000664h] and edx,FFFFFFFDh test ecx,ecx mov [esp+04h],eax mov [esi+00000678h],edx mov eax,edx jz L000147EE mov ecx,[esi+0000067Ch] mov edx,[esi+00000670h] sub edx,ecx mov ecx,[esi+00000668h] sub edx,ecx mov ecx,[esi+00000674h] mov [esp+20h],dx mov edx,[esi+00000680h] sub ecx,edx mov edx,[esi+0000066Ch] sub ecx,edx mov [esp+22h],cx mov ecx,eax and ecx,00000001h cmp cl,01h jnz L000147BA and eax,000000FFh shr eax,06h and eax,00000001h or eax,00400040h jmp L000147CA L000147BA: and eax,000000FFh shr eax,06h and eax,00000001h or eax,00200020h L000147CA: push 00000001h lea edx,[esp+08h] push edx mov [esp+000000ACh],eax call SUB_L0002AA40 or dword ptr [esi+00000678h],00000002h pop esi add esp,000000ACh retn 0008h ;------------------------------------------------------------------------------ L000147EE: push 00000000h lea eax,[esp+08h] push eax call SUB_L0002AA40 pop esi add esp,000000ACh retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00014810: sub esp,000000ACh push esi mov esi,[esp+000000B4h] mov eax,[esi+00000670h] mov ecx,[esi+00000668h] mov edx,[esi+00000664h] push edi sub eax,[esi+0000067Ch] mov edi,[esi+00000680h] sub eax,ecx mov ecx,[esi+00000674h] sub ecx,edi sub ecx,[esi+0000066Ch] push ecx push eax push edx lea edi,[esi+000016A8h] push edi mov [esp+18h],edx mov [esp+34h],ax mov [esp+36h],cx call SUB_L0002AE30 cmp dword ptr [edi],00000001h jnz L00014887 mov ax,[esi+000016ACh] mov cx,[esi+000016B0h] sub [esp+24h],ax sub [esp+26h],cx L00014887: lea edx,[esp+08h] push edx call SUB_L0002AC20 pop edi pop esi add esp,000000ACh retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000148A0: mov eax,[esp+04h] and dword ptr [eax+00000678h],FFFFFFFBh retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L000148B0: push ecx push ebx mov ebx,[esp+0Ch] mov edx,[ebx] push ebp push esi push edi lea eax,[esp+10h] push eax lea ecx,[esp+1Ch] push ecx push edx call SUB_L00015080 xor edx,edx cmp eax,edx jnz L000148DB pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0010h ;------------------------------------------------------------------------------ L000148DB: mov esi,[esp+1Ch] cmp [esi+000000ACh],edx jnz L00014912 cmp [esi+000000B0h],edx jnz L00014912 cmp [esi+000000A8h],edx jnz L00014912 cmp [esi+000000B4h],edx jnz L00014912 cmp [esi+000000B8h],edx jnz L00014912 mov ebp,00000001h mov [esp+1Ch],ebp jmp L0001491B L00014912: mov [esp+1Ch],edx mov ebp,00000001h L0001491B: mov ecx,[esp+18h] dec eax L00014920: cmp [ecx],edx jz L0001495E cmp [esp+1Ch],edx jnz L0001497D mov edi,[esi+000000ACh] cmp [ecx+08h],edi jnz L0001495E mov edi,[ecx+0Ch] cmp edi,[esi+000000B0h] jnz L0001495E mov edi,[ecx+18h] imul edi,[ecx+14h] cmp edi,[esi+000000A8h] jnz L0001495E mov edi,[esi+000000B8h] cmp [ecx+1Ch],edi jz L0001497D cmp edi,edx jz L0001497D L0001495E: add ecx,[esp+10h] mov edi,eax dec eax test edi,edi jnz L00014920 mov eax,[esp+18h] push eax call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0010h ;------------------------------------------------------------------------------ L0001497D: cmp ecx,edx jnz L00014995 mov eax,[esp+18h] push eax call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0010h ;------------------------------------------------------------------------------ L00014995: mov eax,[ecx+04h] mov [ebx+3Ch],eax mov eax,[ecx+14h] imul eax,[ecx+18h] mov [ebx+30h],eax mov eax,[ecx+08h] mov [ebx+28h],eax mov eax,[ecx+0Ch] mov [ebx+2Ch],eax mov eax,[ecx+10h] mov [ebx+40h],eax mov eax,[ecx+34h] mov [ebx+48h],eax mov eax,[ecx+38h] mov [ebx+4Ch],eax mov eax,[ecx+3Ch] mov [ebx+50h],eax mov eax,[ecx+4Ch] mov [ebx+54h],eax mov eax,[ecx+1Ch] mov [ebx+5Ch],eax mov eax,[esp+20h] mov dword ptr [eax],00004020h mov [eax+04h],ebp mov edi,[ecx+20h] mov [eax+08h],edi mov edi,[ecx+24h] mov [eax+0Ch],edi mov edi,[ebx+28h] mov [eax+10h],edi mov edi,[ebx+2Ch] mov [eax+14h],edi mov edi,[ebx+28h] mov [eax+00000100h],edi mov edi,[ebx+2Ch] mov [eax+00000104h],edi mov edi,[ecx+18h] mov [eax+18h],edi mov edi,[ecx+14h] mov [eax+1Ch],edi mov edi,[ecx+1Ch] mov [eax+000000F8h],edi mov [eax+000000FCh],ebp xor edi,edi mov di,[esi+000000A6h] mov [eax+28h],edi xor edi,edi mov di,[esi+000000A6h] mov [eax+2Ch],edi mov dword ptr [eax+30h],00002000h mov [eax+24h],edx mov esi,[ecx+28h] mov [eax+34h],esi mov esi,[ecx+2Ch] mov [eax+38h],esi mov ecx,[ecx+30h] mov [eax+3Ch],ecx mov ecx,00000024h mov [eax+40h],ecx mov [eax+44h],ecx mov dword ptr [eax+48h],00000033h mov [eax+4Ch],ebp mov [eax+50h],ebp mov esi,00000003h mov [eax+54h],esi mov [eax+58h],edx mov [eax+5Ch],edx mov [eax+60h],edx mov [eax+64h],edx mov dword ptr [eax+6Ch],00001A2Ch mov dword ptr [eax+70h],00000CE4h mov [eax+74h],edx mov dword ptr [eax+78h],00000834h mov dword ptr [eax+7Ch],00001BBCh mov [eax+00000080h],edx mov dword ptr [eax+00000084h],00000578h mov dword ptr [eax+00000088h],00000320h mov [eax+0000008Ch],edx mov dword ptr [eax+000000B4h],00000C37h mov dword ptr [eax+000000B8h],00000CDAh mov [eax+000000BCh],edx mov ebp,[esp+24h] mov ecx,00004E20h mov [eax+000000C0h],ecx mov [eax+000000C4h],ecx mov [eax+000000C8h],ecx mov ecx,00000004h mov [eax+000000E8h],ecx mov [eax+000000ECh],esi mov [eax+000000F4h],ecx mov [eax+00000090h],edx mov [eax+00000094h],edx mov [eax+00000098h],edx mov [eax+0000009Ch],edx mov [eax+000000A0h],edx mov [eax+000000A4h],edx mov [eax+000000A8h],edx mov [eax+000000ACh],edx mov [eax+000000B0h],edx mov [eax+000000CCh],edx mov [eax+000000D0h],edx mov [eax+000000D4h],edx mov [eax+000000D8h],edx mov [eax+000000DCh],edx mov [eax+000000E0h],edx mov [eax+000000E4h],edx mov ecx,0000004Bh mov esi,L000B21E8 mov edi,ebp rep movsd cmp dword ptr [ebx+30h],00000008h jnz L00014BC5 mov dword ptr [eax+20h],00000014h mov ecx,[ebx+30h] mov edx,00000001h shl edx,cl mov ecx,00000008h mov [eax+68h],edx or dword ptr [ebp+00h],L00080020 mov dword ptr [eax+000000F0h],00000004h mov dword ptr [ebp+0000011Ch],00000003h sub ecx,[eax+34h] mov [ebx+58h],ecx jmp L00014C5E L00014BC5: mov [eax+68h],edx mov dword ptr [eax+20h],FFFFFFFFh mov edx,[ebp+00h] mov ecx,[ebp+00000128h] or edx,02000000h mov [ebp+00h],edx mov esi,edx mov edx,00000010h or ecx,edx mov [ebp+00000128h],ecx test byte ptr [ebx+54h],08h jz L00014BFF or ecx,00000020h mov [ebp+00000128h],ecx L00014BFF: test [ebx+54h],dl jz L00014C0D or esi,01000000h mov [ebp+00h],esi L00014C0D: mov ebx,[ebx+30h] cmp ebx,edx jnz L00014C2A mov dword ptr [eax+000000F0h],00000005h mov dword ptr [ebp+0000011Ch],00000004h jmp L00014C5E L00014C2A: cmp ebx,00000018h jnz L00014C45 mov dword ptr [eax+000000F0h],00000006h mov dword ptr [ebp+0000011Ch],00000005h jmp L00014C5E L00014C45: cmp ebx,00000020h jnz L00014C5E mov dword ptr [eax+000000F0h],00000007h mov dword ptr [ebp+0000011Ch],00000006h L00014C5E: mov edx,[esp+18h] push edx call jmp_WIN32K.SYS!EngFreeMem pop edi pop esi pop ebp mov eax,00000001h pop ebx pop ecx retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00014C80: push ebp mov ebp,esp sub esp,00000078h push esi mov esi,[ebp+08h] mov edx,[esi] lea eax,[ebp+08h] push eax push 00000018h lea ecx,[ebp-34h] push ecx push 00000000h push 00000000h push 00230460h push edx call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax jz L00014CB2 xor eax,eax pop esi mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L00014CB2: mov eax,[ebp-2Ch] mov ecx,[ebp-20h] lea edx,[ebp+08h] push edx mov edx,[esi] push 00000010h mov [esi+00000660h],eax lea eax,[ebp-1Ch] push eax push 00000004h mov [esi+00000664h],ecx lea ecx,[ebp-04h] push ecx push 00230458h push edx mov dword ptr [ebp-04h],00000000h call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax jz L00014D22 mov eax,[esi+00000660h] mov ecx,[esi+00000664h] lea edx,[ebp+08h] push edx push 00000000h push 00000000h push 00000008h mov [ebp-0Ch],eax lea eax,[ebp-0Ch] push eax mov [ebp-08h],ecx mov ecx,[esi] push 00230464h push ecx call jmp_WIN32K.SYS!EngDeviceIoControl xor eax,eax pop esi mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L00014D22: mov edx,[ebp-14h] mov eax,[ebp-18h] push esi mov [esi+24h],edx mov [esi+44h],eax call SUB_L000151B0 mov ecx,[esi+00000660h] mov edx,[esi+00000664h] mov eax,[esi+1Ch] push 00000000h push 00000000h push ecx mov ecx,[esi+20h] push 00000000h push edx push eax push ecx call SUB_L00024AF0 test eax,eax jnz L00014DB0 mov edx,[esi+24h] lea eax,[ebp+08h] push eax push 00000000h push 00000000h push 00000004h lea ecx,[ebp-04h] push ecx mov [ebp-04h],edx mov edx,[esi] push 0023045Ch push edx call jmp_WIN32K.SYS!EngDeviceIoControl mov eax,[esi+00000660h] mov ecx,[esi+00000664h] lea edx,[ebp+08h] push edx push 00000000h push 00000000h push 00000008h mov [ebp-0Ch],eax lea eax,[ebp-0Ch] push eax mov [ebp-08h],ecx mov ecx,[esi] push 00230464h push ecx call jmp_WIN32K.SYS!EngDeviceIoControl xor eax,eax pop esi mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L00014DB0: mov ecx,[ebp-10h] mov eax,[esi+40h] lea edx,[ebp-78h] push edx mov edx,[esi+24h] push ecx mov ecx,[esi+2Ch] push edx mov edx,[esi+20h] push 00000000h push ecx push eax push 01000000h push edx call SUB_L00025190 test eax,eax jnz L00014E2F mov eax,[esi+24h] lea ecx,[ebp+08h] push ecx push 00000000h push 00000000h push 00000004h lea edx,[ebp-04h] push edx mov [ebp-04h],eax mov eax,[esi] push 0023045Ch push eax call jmp_WIN32K.SYS!EngDeviceIoControl mov ecx,[esi+00000660h] mov edx,[esi+00000664h] lea eax,[ebp+08h] push eax push 00000000h push 00000000h push 00000008h mov [ebp-0Ch],ecx lea ecx,[ebp-0Ch] push ecx mov [ebp-08h],edx mov edx,[esi] push 00230464h push edx call jmp_WIN32K.SYS!EngDeviceIoControl xor eax,eax pop esi mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L00014E2F: mov eax,[ebp-6Ch] mov ecx,[esi+00000664h] mov [esi+40h],eax mov [ecx+24h],eax mov edx,[esi+44h] mov eax,[esi+40h] mov ecx,[esi+30h] push edx mov edx,[esi+2Ch] push eax mov eax,[esi+28h] push ecx mov ecx,[esi+24h] push edx mov edx,[esi+00000660h] push eax mov eax,[esi+00000664h] push ecx mov ecx,[esi+20h] push 00000000h push 00000000h push edx mov edx,[esi+1Ch] push eax push ecx push edx call SUB_L00029350 test eax,eax jnz L00014ED9 mov eax,[esi+20h] push eax call SUB_L00024DB0 mov ecx,[esi+24h] lea edx,[ebp+08h] push edx push 00000000h push 00000000h push 00000004h lea eax,[ebp-04h] push eax mov [ebp-04h],ecx mov ecx,[esi] push 0023045Ch push ecx call jmp_WIN32K.SYS!EngDeviceIoControl mov edx,[esi+00000660h] mov eax,[esi+00000664h] lea ecx,[ebp+08h] push ecx push 00000000h push 00000000h push 00000008h mov [ebp-0Ch],edx lea edx,[ebp-0Ch] push edx mov [ebp-08h],eax mov eax,[esi] push 00230464h push eax call jmp_WIN32K.SYS!EngDeviceIoControl xor eax,eax pop esi mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L00014ED9: push 00000001h push esi call SUB_L00014F60 mov eax,00000001h pop esi mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00014EF0: sub esp,0000000Ch push esi mov esi,[esp+14h] mov eax,[esi+24h] lea ecx,[esp+04h] push ecx push 00000000h push 00000000h push 00000004h lea edx,[esp+24h] push edx mov [esp+28h],eax mov eax,[esi] push 0023045Ch push eax call jmp_WIN32K.SYS!EngDeviceIoControl mov ecx,[esi+00000660h] mov edx,[esi+00000664h] lea eax,[esp+04h] push eax push 00000000h push 00000000h push 00000008h mov [esp+18h],ecx lea ecx,[esp+18h] push ecx mov [esp+20h],edx mov edx,[esi] push 00230464h push edx call jmp_WIN32K.SYS!EngDeviceIoControl pop esi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00014F60: mov eax,[esp+08h] sub esp,00000014h test eax,eax push esi jz L00015038 mov esi,[esp+1Ch] lea eax,[esp+20h] push eax push 00000010h lea ecx,[esp+10h] push ecx push 00000004h lea edx,[esp+14h] push edx push 00233404h push esi call OsDeviceIoControl mov eax,[esp+08h] test eax,eax jnz L00014FD5 cmp dword ptr [esp+0Ch],00000001h jnz L00014FD5 mov eax,[esp+10h] mov ecx,[esp+14h] mov dword ptr [esi+000016A8h],00000001h mov dword ptr [esi+000016ACh],00000000h mov dword ptr [esi+000016B0h],00000000h mov [esi+000016B4h],eax mov [esi+000016B8h],ecx jmp L00014FDF L00014FD5: mov dword ptr [esi+000016A8h],00000000h L00014FDF: mov ecx,[esi] lea edx,[esp+1Ch] push edx push 00000000h push 00000000h push 00000004h lea eax,[esi+3Ch] push eax push 0023040Ch push ecx call jmp_WIN32K.SYS!EngDeviceIoControl push esi call SUB_L000151B0 mov edx,[esi+20h] push 00000001h push edx call SUB_L00024D40 mov eax,[esi+1Ch] push 00000001h push eax call SUB_L000295A0 mov ecx,[esi+30h] mov edx,[esi+00000664h] shr ecx,03h dec ecx push ecx push edx call SUB_L00029650 push esi call SUB_L00011F00 pop esi add esp,00000014h retn 0008h ;------------------------------------------------------------------------------ L00015038: mov esi,[esp+1Ch] push 00000000h push esi call SUB_L000108B0 mov eax,[esi+1Ch] push 00000000h push eax call SUB_L000295A0 mov ecx,[esi+20h] push 00000000h push ecx call SUB_L00024D40 mov eax,[esi] lea edx,[esp+1Ch] push edx push 00000000h push 00000000h push 00000000h push 00000000h push 00230410h push eax call jmp_WIN32K.SYS!EngDeviceIoControl pop esi add esp,00000014h retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00015080: sub esp,00000014h push esi push edi mov edi,[esp+20h] lea eax,[esp+20h] push eax push 00000008h lea ecx,[esp+14h] push ecx push 00000000h push 00000000h push 00230404h push edi call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax jz L000150B2 pop edi xor eax,eax pop esi add esp,00000014h retn 000Ch ;------------------------------------------------------------------------------ L000150B2: mov eax,[esp+10h] mov ecx,[esp+0Ch] mov edx,[esp+28h] imul ecx,eax push 43544E49h push ecx push 00000001h mov [edx],eax call jmp_WIN32K.SYS!EngAllocMem test eax,eax mov esi,[esp+24h] mov [esi],eax jnz L000150E2 pop edi pop esi add esp,00000014h retn 000Ch ;------------------------------------------------------------------------------ L000150E2: mov ecx,[esp+0Ch] imul ecx,[esp+10h] lea edx,[esp+20h] push edx push ecx push eax push 00000000h push 00000000h push 00230400h push edi call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax jz L0001511D mov edx,[esi] push edx call jmp_WIN32K.SYS!EngFreeMem pop edi mov dword ptr [esi],00000000h xor eax,eax pop esi add esp,00000014h retn 000Ch ;------------------------------------------------------------------------------ L0001511D: lea eax,[esp+20h] push eax push 00000008h lea ecx,[esp+1Ch] push ecx push 00000004h lea edx,[esp+18h] push edx push 00232044h push edi call jmp_WIN32K.SYS!EngDeviceIoControl mov eax,[esp+14h] test eax,eax jz L0001514D pop edi xor eax,eax pop esi add esp,00000014h retn 000Ch ;------------------------------------------------------------------------------ L0001514D: mov eax,[esp+0Ch] test eax,eax mov esi,[esi] jz L000151A6 lea edi,[eax] L00015159: cmp dword ptr [esi+14h],00000001h jnz L00015195 test byte ptr [esi+40h],02h jz L00015195 mov eax,[esi+18h] cmp eax,00000008h jz L0001517C cmp eax,00000010h jz L0001517C cmp eax,00000018h jz L0001517C cmp eax,00000020h jnz L00015195 L0001517C: mov ecx,[esi+08h] mov edx,[esp+18h] push eax mov eax,[esi+0Ch] push eax push ecx push edx push 00000000h call SUB_L00024E40 test eax,eax jnz L0001519B L00015195: mov dword ptr [esi],00000000h L0001519B: add esi,[esp+10h] dec edi jnz L00015159 mov eax,[esp+0Ch] L000151A6: pop edi pop esi add esp,00000014h retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L000151B0: push ebx mov eax,[esp+08h] mov ecx,[eax+00000664h] mov edx,[eax+1Ch] mov [ecx+000000A4h],edx mov ecx,[eax+00000664h] mov edx,[eax+20h] mov [ecx+000000A8h],edx mov ecx,[eax+00000664h] mov edx,[eax+24h] mov [ecx+1Ch],edx mov ecx,[eax+00000664h] mov edx,[eax+44h] mov [ecx+20h],edx mov ecx,[eax+00000664h] mov edx,[eax+40h] mov [ecx+24h],edx mov ecx,[eax+00000664h] mov edx,[eax+30h] mov [ecx+28h],edx mov ecx,[eax+30h] mov edx,[eax+00000664h] shr ecx,03h imul ecx,[eax+28h] mov [edx+2Ch],ecx mov ecx,[eax+00000664h] mov edx,[eax+28h] mov [ecx+30h],edx mov ecx,[eax+00000664h] mov edx,[eax+2Ch] mov [ecx+34h],edx mov ecx,[eax+00000664h] mov edx,[eax+00000660h] mov [ecx+04h],edx mov ecx,[eax+00000664h] mov [ecx+000000E8h],eax mov ecx,[eax+5Ch] mov edx,[eax+00000664h] mov [edx+38h],ecx mov ecx,000000FFh L0001525A: mov bl,[eax+ecx+00000360h] mov edx,[eax+00000664h] mov [edx+ecx+00000140h],bl mov bl,[eax+ecx+00000460h] mov edx,[eax+00000664h] mov [edx+ecx+00000240h],bl mov edx,[eax+00000664h] mov bl,[eax+ecx+00000560h] mov [edx+ecx+00000340h],bl mov edx,ecx dec ecx test edx,edx jnz L0001525A pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000152B0: mov eax,[esp+10h] sub esp,00000010h push ebx push ebp push esi xor esi,esi cmp eax,esi jz L00015679 mov ebx,[esp+34h] cmp ebx,esi jz L00015679 mov ebp,[esp+20h] cmp [ebp+000016A0h],esi jnz L00015318 cmp [eax],esi jnz L0001530D cmp dword ptr [eax+04h],B295F38Dh jnz L0001530D mov dword ptr [ebx],70CA14E6h mov [ebp+000016A4h],esi pop esi mov dword ptr [ebp+000016A0h],00000001h pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ L0001530D: pop esi pop ebp xor eax,eax pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ L00015318: mov eax,[eax] cmp eax,00000008h ja L0001566F jmp [CASE_PROCTABLE_00015688+eax*4] CASE_00015688_PROC0000: mov dword ptr [ebx],70CA14E6h mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0001: mov [ebp+000016A0h],esi mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0002: mov eax,[ebp+000016A4h] mov [ebx],eax mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0003: lea ecx,[esp+34h] push ecx push 00000008h lea edx,[esp+1Ch] push edx push 00000004h lea eax,[esp+30h] push eax push 00233000h push ebp mov dword ptr [esp+3Ch],00000001h call OsDeviceIoControl cmp [esp+14h],esi jnz L00015679 mov ecx,[esp+18h] lea edx,[esp+34h] push edx push 00000008h lea eax,[esp+1Ch] push eax push 00000004h mov [ebx],ecx lea ecx,[esp+30h] push ecx push 00233000h push ebp mov dword ptr [esp+3Ch],00000002h call OsDeviceIoControl cmp [esp+14h],esi jnz L00015679 mov edx,[esp+18h] lea eax,[esp+34h] push eax push 00000008h lea ecx,[esp+1Ch] push ecx push 00000004h mov [ebx+04h],edx lea edx,[esp+30h] push edx push 00233000h push ebp mov dword ptr [esp+3Ch],00000003h call OsDeviceIoControl cmp [esp+14h],esi jnz L00015679 mov eax,[esp+18h] mov [ebx+08h],eax mov [ebx+0Ch],esi mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0004: mov dword ptr [ebx],00010000h mov dword ptr [ebx+04h],00000017h mov dword ptr [ebx+08h],00000007h mov dword ptr [ebx+0Ch],000007D2h push edi lea edi,[ebx+10h] mov ecx,00000005h mov esi,SSZ000B232C_Intel_R__Corporation rep movsd movsb mov edx,[L000B2324] lea ecx,[ebx+60h] mov [ecx],edx mov al,[L000B2328] mov [ecx+04h],al mov ecx,[L000B2314] add ebx,000000B0h mov [ebx],ecx mov edx,[L000B2318] mov [ebx+04h],edx mov eax,[L000B231C] mov [ebx+08h],eax mov cx,[L000B2320] xor esi,esi pop edi mov [ebx+0Ch],cx mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0005: mov edx,[ebp+20h] push 05000000h push edx call SUB_L00025A00 mov [ebx],eax mov [ebx+04h],esi mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0006: lea eax,[esp+34h] push eax push 00000008h lea ecx,[esp+14h] push ecx push 00000004h lea edx,[esp+3Ch] push edx push 00233004h push ebp mov dword ptr [esp+48h],00000050h call OsDeviceIoControl cmp [esp+0Ch],esi jnz L00015679 mov eax,[esp+10h] mov ecx,eax and cl,20h sub cl,20h neg cl sbb ecx,ecx and ecx,FFFFB1E0h add ecx,L000186A0 and eax,00000010h cmp al,10h mov [ebx],ecx jnz L0001554C mov dword ptr [ebx+04h],L00020788 mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ L0001554C: mov dword ptr [ebx+04h],L000186A0 mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0007: lea edx,[esp+34h] push edx push 00000008h lea eax,[esp+14h] push eax push 00000004h lea ecx,[esp+3Ch] push ecx push 00233004h push ebp mov [esp+48h],esi call OsDeviceIoControl cmp [esp+0Ch],esi jnz L00015679 mov edx,[esp+10h] lea eax,[esp+34h] push eax push 00000008h lea ecx,[esp+14h] push ecx push 00000004h mov [ebx],edx lea edx,[esp+3Ch] push edx push 00233004h push ebp mov dword ptr [esp+48h],00000008h call OsDeviceIoControl cmp [esp+0Ch],esi jnz L00015679 mov eax,[esp+10h] lea ecx,[esp+34h] push ecx push 00000008h lea edx,[esp+14h] push edx push 00000004h mov [ebx+04h],eax lea eax,[esp+3Ch] push eax push 00233004h push ebp mov dword ptr [esp+48h],0000002Ch call OsDeviceIoControl cmp [esp+0Ch],esi jnz L00015679 mov ecx,[esp+10h] lea edx,[esp+34h] push edx push 00000008h lea eax,[esp+14h] push eax push 00000004h mov [ebx+08h],ecx lea ecx,[esp+3Ch] push ecx push 00233004h push ebp mov dword ptr [esp+48h],00000010h call OsDeviceIoControl cmp [esp+0Ch],esi jnz L00015679 mov edx,[esp+10h] and edx,FC000000h mov [ebx+0Ch],edx mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ CASE_00015688_PROC0008: mov [ebx],esi mov [ebx+04h],esi mov [ebx+08h],esi mov [ebx+0Ch],esi mov [ebp+000016A4h],esi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ L0001566F: mov dword ptr [ebp+000016A4h],00000003h L00015679: pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00015688: dd CASE_00015688_PROC0000 dd CASE_00015688_PROC0001 dd CASE_00015688_PROC0002 dd CASE_00015688_PROC0003 dd CASE_00015688_PROC0004 dd CASE_00015688_PROC0005 dd CASE_00015688_PROC0006 dd CASE_00015688_PROC0007 dd CASE_00015688_PROC0008 Align 8 SUB_L000156B0: mov eax,[esp+10h] test eax,eax jz L000156E2 cmp dword ptr [esp+0Ch],00000004h jc L000156E2 mov eax,[eax] dec eax jnz L000156E2 mov eax,[esp+18h] test eax,eax jz L000156E2 cmp dword ptr [esp+14h],00000008h jc L000156E2 mov dword ptr [eax+04h],00000002h mov eax,00000001h retn 0018h ;------------------------------------------------------------------------------ L000156E2: or eax,FFFFFFFFh retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L000156F0: push ebx mov ebx,[esp+1Ch] push ebp mov ebp,[esp+18h] mov eax,[ebp+00h] dec eax push esi push edi jz L0001571C dec eax jnz L00015733 mov edx,00232844h lea esi,[ebp+04h] lea edi,[ebx+04h] mov eax,00000013h mov ecx,00000200h jmp L00015747 L0001571C: mov edx,00232840h lea esi,[ebp+04h] lea edi,[ebx+04h] mov eax,00000004h mov ecx,00000120h jmp L00015747 L00015733: mov edx,[esp+20h] mov esi,[esp+20h] mov edi,[esp+20h] mov eax,[esp+20h] mov ecx,[esp+20h] L00015747: test ebp,ebp jz L00015786 lea ebp,[eax+04h] cmp [esp+1Ch],ebp ja L00015786 test ebx,ebx jz L00015786 lea ebp,[ecx+04h] cmp [esp+24h],ebp jc L00015786 lea ebp,[esp+20h] push ebp push ecx push edi push eax mov eax,[esp+24h] push esi push edx push eax call OsDeviceIoControl mov [ebx],eax neg eax pop edi sbb eax,eax pop esi and eax,FFFFFFFEh pop ebp inc eax pop ebx retn 0018h ;------------------------------------------------------------------------------ L00015786: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx retn 0018h ;------------------------------------------------------------------------------ SUB_L00015790: mov eax,[esp+10h] sub esp,0000005Ch test eax,eax push esi push edi jz CASE_00015940_PROC0001 cmp dword ptr [esp+70h],00000004h jc CASE_00015940_PROC0001 mov esi,[esp+7Ch] test esi,esi jz CASE_00015940_PROC0001 cmp dword ptr [esp+78h],00000008h jc CASE_00015940_PROC0001 mov ecx,[eax] add ecx,FFFFFFFEh cmp ecx,00000008h ja CASE_00015940_PROC0001 jmp [CASE_PROCTABLE_00015940+ecx*4] CASE_00015940_PROC0000: mov edx,[esp+68h] lea eax,[esp+68h] push eax push 00000050h lea ecx,[esp+1Ch] push ecx push 00000000h push 00000000h push 00230408h push edx call OsDeviceIoControl lea edi,[esi+04h] mov ecx,00000014h lea esi,[esp+14h] rep movsd pop edi mov eax,00000001h pop esi add esp,0000005Ch retn 0018h ;------------------------------------------------------------------------------ CASE_00015940_PROC0003: mov edx,[esp+68h] lea eax,[esp+68h] push eax push 00000008h lea ecx,[esp+10h] push ecx push 00000000h push 00000000h push 00230404h push edx call OsDeviceIoControl mov eax,[esp+08h] mov ecx,[esp+0Ch] mov [esi+04h],eax pop edi mov [esi+08h],ecx mov eax,00000001h pop esi add esp,0000005Ch retn 0018h ;------------------------------------------------------------------------------ CASE_00015940_PROC0004: mov edi,[esp+68h] lea edx,[esp+68h] push edx push 00000008h lea eax,[esp+10h] push eax push 00000000h push 00000000h push 00230404h push edi call OsDeviceIoControl mov eax,[esp+08h] lea ecx,[esp+68h] push ecx lea edx,[eax+eax*4] shl edx,04h push edx add esi,00000004h push esi push 00000000h push 00000000h push 00230400h push edi call OsDeviceIoControl pop edi mov eax,00000001h pop esi add esp,0000005Ch retn 0018h ;------------------------------------------------------------------------------ CASE_00015940_PROC0007: mov eax,[eax+04h] lea ecx,[esp+68h] push ecx mov ecx,[esp+6Ch] push 00000008h lea edx,[esp+10h] push edx push 00000004h mov [esp+00000084h],eax lea eax,[esp+00000084h] push eax push 0023248Ch push ecx call OsDeviceIoControl test eax,eax jnz CASE_00015940_PROC0001 mov edx,[esp+08h] mov eax,[esp+0Ch] mov [esi+04h],edx mov [esi+08h],eax pop edi mov eax,00000001h pop esi add esp,0000005Ch retn 0018h ;------------------------------------------------------------------------------ CASE_00015940_PROC0008: mov ecx,[eax+0Ch] mov edx,[eax+04h] mov eax,[eax+08h] mov [esp+08h],ecx mov [esp+0Ch],edx lea edx,[eax+eax*4] lea ecx,[esp+68h] push ecx mov ecx,[esp+6Ch] shl edx,04h push edx add esi,00000004h push esi push 0000000Ch mov [esp+20h],eax lea eax,[esp+18h] push eax push 00232490h push ecx call OsDeviceIoControl neg eax sbb eax,eax and eax,FFFFFFFEh pop edi inc eax pop esi add esp,0000005Ch retn 0018h ;------------------------------------------------------------------------------ CASE_00015940_PROC0001: pop edi or eax,FFFFFFFFh pop esi add esp,0000005Ch retn 0018h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00015940: dd CASE_00015940_PROC0000 dd CASE_00015940_PROC0001 dd CASE_00015940_PROC0001 dd CASE_00015940_PROC0003 dd CASE_00015940_PROC0004 dd CASE_00015940_PROC0001 dd CASE_00015940_PROC0001 dd CASE_00015940_PROC0007 dd CASE_00015940_PROC0008 Align 16 SUB_L00015970: mov eax,[esp+10h] sub esp,00000118h test eax,eax push esi jz CASE_00015B30_PROC0001 mov esi,[esp+00000134h] test esi,esi jz CASE_00015B30_PROC0001 mov eax,[eax] dec eax cmp eax,00000008h ja CASE_00015B30_PROC0001 jmp [CASE_PROCTABLE_00015B30+eax*4] CASE_00015B30_PROC0000: mov eax,[esp+00000120h] mov ecx,[eax+00000664h] mov edx,[ecx+00000138h] mov eax,[edx] add esi,00000004h mov [esi],eax mov cl,[edx+04h] mov [esi+04h],cl mov eax,00000001h pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ CASE_00015B30_PROC0003: mov edx,[esp+00000120h] mov eax,[edx+20h] push 05000000h push eax call SUB_L00025A00 mov [esi+04h],eax mov eax,00000001h pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ CASE_00015B30_PROC0004: push edi lea ecx,[esp+08h] push ecx mov ecx,[esp+00000128h] push 00000104h lea edx,[esp+24h] push edx push 00000004h lea eax,[esp+28h] push eax push 00232108h push ecx call OsDeviceIoControl lea edi,[esi+04h] mov ecx,00000040h lea esi,[esp+20h] rep movsd pop edi mov eax,00000001h pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ CASE_00015B30_PROC0008: cmp dword ptr [esp+00000130h],00000104h jc CASE_00015B30_PROC0001 mov edx,[esp+00000120h] mov eax,[edx+20h] push 01000000h push eax call SUB_L00025A70 mov [esi+04h],eax mov eax,00000001h pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ CASE_00015B30_PROC0006: cmp dword ptr [esp+00000130h],00000104h jc CASE_00015B30_PROC0001 mov ecx,[esp+00000120h] mov edx,[ecx+20h] push 02000000h push edx call SUB_L00025A70 mov [esi+04h],eax mov eax,00000001h pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ CASE_00015B30_PROC0007: cmp dword ptr [esp+00000130h],00000010h jc CASE_00015B30_PROC0001 mov edx,[esp+00000120h] lea eax,[esp+04h] push eax push 0000000Ch lea ecx,[esp+10h] push ecx push 00000000h push 00000000h push 0023204Ch push edx call OsDeviceIoControl mov eax,[esp+08h] mov ecx,[esp+0Ch] mov edx,[esp+10h] add esi,00000004h mov [esi],eax mov [esi+04h],ecx mov [esi+08h],edx mov eax,00000001h pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ CASE_00015B30_PROC0005: mov eax,[esp+00000120h] push eax call SUB_L00011E00 mov eax,00000001h pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ CASE_00015B30_PROC0001: or eax,FFFFFFFFh pop esi add esp,00000118h retn 0018h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00015B30: dd CASE_00015B30_PROC0000 dd CASE_00015B30_PROC0001 dd CASE_00015B30_PROC0001 dd CASE_00015B30_PROC0003 dd CASE_00015B30_PROC0004 dd CASE_00015B30_PROC0005 dd CASE_00015B30_PROC0006 dd CASE_00015B30_PROC0007 dd CASE_00015B30_PROC0008 Align 16 SUB_L00015B60: mov eax,[esp+10h] sub esp,00000038h xor edx,edx cmp eax,edx push ebp push esi jz L00015C75 mov esi,[esp+4Ch] mov ecx,0000001Ch cmp esi,ecx jc L00015C75 mov ebp,[esp+58h] cmp ebp,edx jz L00015C75 cmp [esp+54h],ecx jc L00015C75 lea esi,[eax+04h] mov eax,[eax] push edi dec eax cmp eax,00000009h mov ecx,00000007h lea edi,[esp+0Ch] rep movsd ja CASE_00015C80_PROC0003 jmp [CASE_PROCTABLE_00015C80+eax*4] CASE_00015C80_PROC0007: mov eax,00232140h mov dword ptr [esp+24h],00000002h jmp L00015C3B CASE_00015C80_PROC0008: mov eax,00232144h mov dword ptr [esp+24h],00000002h jmp L00015C3B CASE_00015C80_PROC0009: mov eax,00232148h mov dword ptr [esp+24h],00000002h jmp L00015C3B CASE_00015C80_PROC0000: mov eax,00232140h mov dword ptr [esp+24h],00000001h jmp L00015C3B CASE_00015C80_PROC0001: mov eax,00232144h mov dword ptr [esp+24h],00000001h jmp L00015C3B CASE_00015C80_PROC0002: mov eax,00232148h mov dword ptr [esp+24h],00000001h jmp L00015C3B CASE_00015C80_PROC0004: mov eax,00232140h mov [esp+24h],edx jmp L00015C3B CASE_00015C80_PROC0005: mov eax,00232144h mov [esp+24h],edx jmp L00015C3B CASE_00015C80_PROC0006: mov eax,00232148h mov [esp+24h],edx jmp L00015C3B CASE_00015C80_PROC0003: mov eax,[esp+54h] L00015C3B: lea ecx,[esp+54h] push ecx push 0000001Ch lea edx,[esp+30h] push edx mov edx,[esp+54h] push 0000001Ch lea ecx,[esp+1Ch] push ecx push eax push edx call OsDeviceIoControl lea edi,[ebp+04h] mov ecx,00000007h lea esi,[esp+28h] rep movsd pop edi pop esi mov eax,00000001h pop ebp add esp,00000038h retn 0018h ;------------------------------------------------------------------------------ L00015C75: pop esi or eax,FFFFFFFFh pop ebp add esp,00000038h retn 0018h ;------------------------------------------------------------------------------ CASE_PROCTABLE_00015C80: dd CASE_00015C80_PROC0000 dd CASE_00015C80_PROC0001 dd CASE_00015C80_PROC0002 dd CASE_00015C80_PROC0003 dd CASE_00015C80_PROC0004 dd CASE_00015C80_PROC0005 dd CASE_00015C80_PROC0006 dd CASE_00015C80_PROC0007 dd CASE_00015C80_PROC0008 dd CASE_00015C80_PROC0009 Align 16 SUB_L00015CB0: mov eax,[esp+10h] sub esp,00000028h test eax,eax push ebx push esi push edi jz L00015D2B cmp dword ptr [esp+40h],00000604h jc L00015D2B mov ebx,[esp+4Ch] test ebx,ebx jz L00015D2B cmp dword ptr [esp+48h],00005004h jc L00015D2B lea esi,[eax+04h] mov eax,[eax] dec eax mov ecx,00000005h lea edi,[esp+0Ch] rep movsd jnz L00015D2B lea eax,[esp+44h] push eax mov eax,[esp+3Ch] push 00000014h lea ecx,[esp+28h] push ecx push 00000014h lea edx,[esp+1Ch] push edx push 00232488h push eax call OsDeviceIoControl lea edi,[ebx+04h] mov ecx,00000005h lea esi,[esp+20h] rep movsd pop edi pop esi mov eax,00000001h pop ebx add esp,00000028h retn 0018h ;------------------------------------------------------------------------------ L00015D2B: pop edi pop esi or eax,FFFFFFFFh pop ebx add esp,00000028h retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00015D40: mov ecx,[esp+10h] test ecx,ecx push esi push edi mov edi,[esp+0Ch] mov edx,[edi+00000664h] jz L00015E5D mov esi,[esp+14h] mov eax,00000600h cmp esi,eax jc L00015E5D cmp [esp+1Ch],eax jc L00015E5D mov eax,[ecx] cmp eax,00000002h jnz L00015DCC mov ecx,[esp+20h] mov esi,FFFFFBA0h add ecx,00000402h lea eax,[edi+0000055Fh] sub esi,edi L00015D91: xor edx,edx mov dh,[eax-00000100h] sub ecx,00000002h mov [ecx-000001FEh],dx xor edx,edx mov dh,[eax] mov [ecx+02h],dx xor edx,edx mov dh,[eax+00000100h] mov [ecx+00000202h],dx lea edx,[esi+eax] dec eax test edx,edx jnz L00015D91 pop edi mov eax,00000001h pop esi retn 0018h ;------------------------------------------------------------------------------ L00015DCC: cmp eax,00000001h jnz L00015E5D push ebx push ebp lea ebp,[edi+0000055Fh] mov esi,FFFFFBA0h add ecx,00000402h mov eax,ebp sub esi,edi L00015DEC: xor ebx,ebx mov bl,[ecx-000001FFh] mov [eax-00000100h],bl xor ebx,ebx mov bl,[ecx+01h] mov [eax],bl xor ebx,ebx mov bl,[ecx+00000201h] mov [eax+00000100h],bl lea ebx,[eax+esi] sub ecx,00000002h dec eax test ebx,ebx jnz L00015DEC test edx,edx jz L00015E4B lea ecx,[edx+0000033Fh] mov eax,ebp L00015E26: mov dl,[eax-00000100h] mov [ecx-00000100h],dl mov dl,[eax] mov [ecx],dl mov dl,[eax+00000100h] mov [ecx+00000100h],dl lea edx,[eax+esi] dec eax dec ecx test edx,edx jnz L00015E26 L00015E4B: push edi call SUB_L00011F00 pop ebp pop ebx pop edi mov eax,00000001h pop esi retn 0018h ;------------------------------------------------------------------------------ L00015E5D: pop edi or eax,FFFFFFFFh pop esi retn 0018h ;------------------------------------------------------------------------------ db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' db 90h; '?' mov eax,[esp+10h] test eax,eax push esi jz CASE_00015F6C_PROC0003 cmp dword ptr [esp+10h],00000604h jnz CASE_00015F6C_PROC0003 mov ecx,[eax] dec ecx cmp ecx,00000005h ja CASE_00015F6C_PROC0003 jmp [CASE_PROCTABLE_00015F6C+ecx*4] CASE_00015F6C_PROC0000: cmp dword ptr [esp+18h],00005004h jnz CASE_00015F6C_PROC0003 mov esi,[esp+1Ch] mov edx,[eax+04h] mov eax,[eax+08h] lea ecx,[esi+04h] push ecx mov ecx,[esp+0Ch] push edx push eax push ecx call SUB_L00026250 jmp L00015F0B CASE_00015F6C_PROC0001: mov edx,[esp+08h] add eax,00000004h push eax push edx call SUB_L00026030 mov eax,00000001h pop esi retn 0018h ;------------------------------------------------------------------------------ CASE_00015F6C_PROC0002: cmp dword ptr [esp+18h],00005004h jnz CASE_00015F6C_PROC0003 mov esi,[esp+1Ch] mov edx,[eax+10h] lea ecx,[esi+04h] push ecx mov ecx,[eax+0Ch] push edx mov edx,[eax+08h] mov eax,[eax+04h] push ecx mov ecx,[esp+14h] push edx push eax push ecx call SUB_L000267C0 L00015F0B: test esi,esi mov [esi],eax jz L00015F15 test eax,eax jz CASE_00015F6C_PROC0003 L00015F15: mov eax,00000001h pop esi retn 0018h ;------------------------------------------------------------------------------ CASE_00015F6C_PROC0005: mov ecx,[eax+04h] test ecx,ecx jz L00015F46 mov esi,[esp+1Ch] mov eax,[esp+08h] lea edx,[esi+00005004h] push edx push eax call SUB_L000287B0 mov [esi+04h],eax mov eax,00000001h pop esi retn 0018h ;------------------------------------------------------------------------------ L00015F46: mov ecx,[esp+08h] push 00000000h push ecx call SUB_L000287B0 mov edx,[esp+1Ch] mov [edx+04h],eax mov eax,00000001h pop esi retn 0018h ;------------------------------------------------------------------------------ CASE_00015F6C_PROC0003: or eax,FFFFFFFFh pop esi retn 0018h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00015F6C: dd CASE_00015F6C_PROC0000 dd CASE_00015F6C_PROC0001 dd CASE_00015F6C_PROC0002 dd CASE_00015F6C_PROC0003 dd CASE_00015F6C_PROC0003 dd CASE_00015F6C_PROC0005 Align 16 SUB_L00015F90: push ebx push esi push edi mov edi,[esp+1Ch] test edi,edi jnz L00015FA4 pop edi pop esi or eax,FFFFFFFFh pop ebx retn 0018h ;------------------------------------------------------------------------------ L00015FA4: mov esi,[esp+18h] push esi push 00000001h call OsAllocMem mov ebx,eax test ebx,ebx jnz L00015FBF pop edi pop esi or eax,FFFFFFFFh pop ebx retn 0018h ;------------------------------------------------------------------------------ L00015FBF: mov ecx,[esp+10h] push ebp lea eax,[esp+20h] push eax push esi push ebx push esi push edi push 002321C0h push ecx call OsDeviceIoControl mov edi,[esp+28h] test edi,edi mov ebp,eax jz L00015FFA cmp esi,[esp+24h] ja L00015FFA mov ecx,esi mov edx,ecx shr ecx,02h mov esi,ebx rep movsd mov ecx,edx and ecx,00000003h rep movsb L00015FFA: push ebx call OsFreeMem mov eax,ebp neg eax pop ebp sbb eax,eax pop edi and eax,FFFFFFFEh pop esi inc eax pop ebx retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00016020: mov al,[esp+14h] sub esp,00000338h push ebp push esi mov esi,[esp+00000344h] or ebp,FFFFFFFFh test al,al mov dword ptr [esi+000000A8h],00000002h jnz L00016082 mov eax,[esp+0000034Ch] mov cx,[eax+04h] mov [esi+1Eh],cx mov dx,[eax] mov [esi+1Ch],dx mov cx,[eax+08h] sub cx,[eax] push esi mov [esi+24h],cx mov dx,[eax+0Ch] sub dx,[eax+04h] mov [esi+26h],dx call SUB_L0002AF80 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L00016082: cmp al,01h jnz L000160E0 mov ecx,[esp+00000348h] mov edx,[esp+0000034Ch] lea eax,[esp+0Ch] push eax add ecx,00000004h push ecx push edx call SUB_L000140E0 test eax,eax jz L00016183 mov ecx,[esp+0Ch] mov edx,[esp+14h] mov eax,[esp+10h] sub edx,ecx mov [esi+1Ch],cx mov ecx,[esp+18h] sub ecx,eax push esi mov [esi+1Eh],ax mov [esi+24h],dx mov [esi+26h],cx call SUB_L0002AF80 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L000160E0: mov edx,[esp+00000350h] mov eax,[esp+00000348h] push ebx push edi push 00000000h push edx push 00000000h push 00000000h push eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart L000160FD: mov edx,[esp+00000350h] lea ecx,[esp+24h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov edx,[esp+00000354h] mov [esp+10h],eax mov eax,[esp+24h] push eax lea ecx,[esp+2Ch] push ecx push edx call SUB_L00014070 test eax,eax jz L0001616C lea edi,[esp+2Ch] mov ebx,eax L00016139: mov cx,[edi-04h] mov dx,[edi+04h] mov ax,[edi] sub dx,cx mov [esi+1Ch],cx mov cx,[edi+08h] sub cx,ax push esi mov [esi+1Eh],ax mov [esi+24h],dx mov [esi+26h],cx call SUB_L0002AF80 add edi,00000010h dec ebx mov ebp,eax jnz L00016139 L0001616C: mov eax,[esp+10h] test eax,eax jnz L000160FD pop edi pop ebx pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L00016183: pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ SUB_L00016190: mov al,[esp+14h] sub esp,00000338h push ebp or ebp,FFFFFFFFh test al,al push esi jnz L000161E8 mov eax,[esp+0000034Ch] mov dx,[eax+04h] mov ecx,[esp+00000344h] mov [ecx+1Eh],dx mov dx,[eax] mov [ecx+1Ch],dx mov dx,[eax+08h] sub dx,[eax] push ecx mov [ecx+24h],dx mov dx,[eax+0Ch] sub dx,[eax+04h] mov [ecx+26h],dx call SUB_L0002B380 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L000161E8: cmp al,01h jnz L0001624D mov ecx,[esp+00000348h] mov edx,[esp+0000034Ch] lea eax,[esp+0Ch] push eax add ecx,00000004h push ecx push edx call SUB_L000140E0 test eax,eax jz L000162F7 mov eax,[esp+00000344h] mov edx,[esp+0Ch] mov esi,[esp+14h] mov ecx,[esp+10h] sub esi,edx mov [eax+1Ch],dx mov edx,[esp+18h] sub edx,ecx push eax mov [eax+1Eh],cx mov [eax+24h],si mov [eax+26h],dx call SUB_L0002B380 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L0001624D: mov eax,[esp+00000350h] mov ecx,[esp+00000348h] push ebx push edi push 00000000h push eax push 00000000h push 00000000h push ecx call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov edi,[esp+0000034Ch] L00016271: mov eax,[esp+00000350h] lea edx,[esp+24h] push edx push 00000324h push eax call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov ecx,[esp+24h] push ecx lea edx,[esp+2Ch] mov [esp+14h],eax mov eax,[esp+00000358h] push edx push eax call SUB_L00014070 test eax,eax jz L000162E0 lea esi,[esp+2Ch] mov ebx,eax L000162AD: mov cx,[esi-04h] mov dx,[esi+04h] mov ax,[esi] sub dx,cx mov [edi+1Ch],cx mov cx,[esi+08h] sub cx,ax push edi mov [edi+1Eh],ax mov [edi+24h],dx mov [edi+26h],cx call SUB_L0002B380 add esi,00000010h dec ebx mov ebp,eax jnz L000162AD L000162E0: mov eax,[esp+10h] test eax,eax jnz L00016271 pop edi pop ebx pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L000162F7: pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L00016310: mov al,[esp+14h] sub esp,00000338h push ebp or ebp,FFFFFFFFh test al,al push esi jnz L00016368 mov eax,[esp+0000034Ch] mov dx,[eax+04h] mov ecx,[esp+00000344h] mov [ecx+1Eh],dx mov dx,[eax] mov [ecx+1Ch],dx mov dx,[eax+08h] sub dx,[eax] push ecx mov [ecx+24h],dx mov dx,[eax+0Ch] sub dx,[eax+04h] mov [ecx+26h],dx call SUB_L0002B0E0 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L00016368: cmp al,01h jnz L000163CD mov ecx,[esp+00000348h] mov edx,[esp+0000034Ch] lea eax,[esp+0Ch] push eax add ecx,00000004h push ecx push edx call SUB_L000140E0 test eax,eax jz L00016477 mov eax,[esp+00000344h] mov edx,[esp+0Ch] mov esi,[esp+14h] mov ecx,[esp+10h] sub esi,edx mov [eax+1Ch],dx mov edx,[esp+18h] sub edx,ecx push eax mov [eax+1Eh],cx mov [eax+24h],si mov [eax+26h],dx call SUB_L0002B0E0 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L000163CD: mov eax,[esp+00000350h] mov ecx,[esp+00000348h] push ebx push edi push 00000000h push eax push 00000000h push 00000000h push ecx call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov edi,[esp+0000034Ch] L000163F1: mov eax,[esp+00000350h] lea edx,[esp+24h] push edx push 00000324h push eax call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov ecx,[esp+24h] push ecx lea edx,[esp+2Ch] mov [esp+14h],eax mov eax,[esp+00000358h] push edx push eax call SUB_L00014070 test eax,eax jz L00016460 lea esi,[esp+2Ch] mov ebx,eax L0001642D: mov cx,[esi-04h] mov dx,[esi+04h] mov ax,[esi] sub dx,cx mov [edi+1Ch],cx mov cx,[esi+08h] sub cx,ax push edi mov [edi+1Eh],ax mov [edi+24h],dx mov [edi+26h],cx call SUB_L0002B0E0 add esi,00000010h dec ebx mov ebp,eax jnz L0001642D L00016460: mov eax,[esp+10h] test eax,eax jnz L000163F1 pop edi pop ebx pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L00016477: pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L00016490: mov al,[esp+14h] sub esp,00000338h push ebp or ebp,FFFFFFFFh test al,al push esi jnz L000164E8 mov eax,[esp+0000034Ch] mov dx,[eax+04h] mov ecx,[esp+00000344h] mov [ecx+1Eh],dx mov dx,[eax] mov [ecx+1Ch],dx mov dx,[eax+08h] sub dx,[eax] push ecx mov [ecx+24h],dx mov dx,[eax+0Ch] sub dx,[eax+04h] mov [ecx+26h],dx call SUB_L0002B230 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L000164E8: cmp al,01h jnz L0001654D mov ecx,[esp+00000348h] mov edx,[esp+0000034Ch] lea eax,[esp+0Ch] push eax add ecx,00000004h push ecx push edx call SUB_L000140E0 test eax,eax jz L000165F7 mov eax,[esp+00000344h] mov edx,[esp+0Ch] mov esi,[esp+14h] mov ecx,[esp+10h] sub esi,edx mov [eax+1Ch],dx mov edx,[esp+18h] sub edx,ecx push eax mov [eax+1Eh],cx mov [eax+24h],si mov [eax+26h],dx call SUB_L0002B230 pop esi pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L0001654D: mov eax,[esp+00000350h] mov ecx,[esp+00000348h] push ebx push edi push 00000000h push eax push 00000000h push 00000000h push ecx call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov edi,[esp+0000034Ch] L00016571: mov eax,[esp+00000350h] lea edx,[esp+24h] push edx push 00000324h push eax call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov ecx,[esp+24h] push ecx lea edx,[esp+2Ch] mov [esp+14h],eax mov eax,[esp+00000358h] push edx push eax call SUB_L00014070 test eax,eax jz L000165E0 lea esi,[esp+2Ch] mov ebx,eax L000165AD: mov cx,[esi-04h] mov dx,[esi+04h] mov ax,[esi] sub dx,cx mov [edi+1Ch],cx mov cx,[esi+08h] sub cx,ax push edi mov [edi+1Eh],ax mov [edi+24h],dx mov [edi+26h],cx call SUB_L0002B230 add esi,00000010h dec ebx mov ebp,eax jnz L000165AD L000165E0: mov eax,[esp+10h] test eax,eax jnz L00016571 pop edi pop ebx pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ L000165F7: pop esi mov eax,ebp pop ebp add esp,00000338h retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L00016610: sub esp,00000348h push ebx push ebp push esi mov esi,[esp+00000358h] mov eax,[esi+48h] mov cx,[esi+4Ch] mov [esp+10h],eax mov al,[esp+0000036Ch] or ebp,FFFFFFFFh test al,al push edi mov [esp+20h],cx jnz L00016693 mov eax,[esp+00000364h] mov dx,[eax+04h] mov [esi+1Eh],dx mov cx,[eax] mov [esi+1Ch],cx mov dx,[eax+08h] sub dx,[eax] push esi mov [esi+24h],dx mov cx,[eax+0Ch] sub cx,[eax+04h] mov eax,[esp+0000036Ch] mov [esi+26h],cx mov ecx,[eax+04h] mov edx,[eax] mov [esi+50h],dx mov [esi+52h],cx call SUB_L0002B5D0 pop edi pop esi pop ebp pop ebx add esp,00000348h retn 0018h ;------------------------------------------------------------------------------ L00016693: cmp al,01h jnz L00016714 mov ecx,[esp+00000360h] mov edi,[esp+00000364h] lea eax,[esp+24h] push eax add ecx,00000004h push ecx push edi call SUB_L000140E0 test eax,eax jz L000167F9 mov edx,[esp+24h] mov eax,[esp+2Ch] mov ecx,[esp+28h] mov ebx,[esp+00000368h] sub eax,edx mov [esi+24h],ax mov eax,[esp+30h] sub eax,ecx mov [esi+26h],ax mov [esi+1Eh],cx mov [esi+1Ch],dx mov ebp,[edi+04h] mov eax,[ebx+04h] sub eax,ebp add eax,ecx mov ecx,[edi] mov edi,[ebx] sub edi,ecx add edi,edx push esi mov [esi+50h],di mov [esi+52h],ax call SUB_L0002B5D0 pop edi pop esi pop ebp pop ebx add esp,00000348h retn 0018h ;------------------------------------------------------------------------------ L00016714: mov edx,[esp+0000036Ch] mov eax,[esp+00000360h] push 00000000h push edx push 00000000h push 00000000h push eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov ebx,[esp+00000364h] L00016736: mov edx,[esp+00000360h] lea ecx,[esp+34h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov [esp+18h],eax mov eax,[esp+34h] push eax lea ecx,[esp+3Ch] push ecx push ebx call SUB_L00014070 test eax,eax mov [esp+10h],eax jz L000167E8 mov ebp,[esp+20h] and ebp,0000FFFFh mov [esp+1Ch],ebp lea edi,[esp+3Ch] jmp L00016781 L0001677D: mov ebp,[esp+1Ch] L00016781: mov cx,[edi-04h] mov dx,[edi+04h] mov ax,[edi] sub dx,cx mov [esi+24h],dx mov dx,[edi+08h] sub dx,ax mov [esi+26h],dx mov edx,[esp+14h] mov [esi+48h],edx mov edx,[esp+00000368h] mov [esi+1Eh],ax mov [esi+1Ch],cx sub cx,[ebx] push esi add cx,[edx] mov [esi+50h],cx sub ax,[ebx+04h] add ax,[edx+04h] mov [esi+4Ch],ebp mov [esi+52h],ax call SUB_L0002B5D0 mov ebp,eax cmp ebp,FFFFFFFFh jz L000167F9 mov eax,[esp+10h] add edi,00000010h dec eax mov [esp+10h],eax jnz L0001677D L000167E8: cmp ebp,FFFFFFFFh jz L000167F9 mov eax,[esp+18h] test eax,eax jnz L00016736 L000167F9: pop edi pop esi mov eax,ebp pop ebp pop ebx add esp,00000348h retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00016810: sub esp,0000034Ch push ebx push ebp push esi mov esi,[esp+0000035Ch] mov eax,[esi+48h] mov cx,[esi+4Ch] mov [esp+20h],eax mov al,[esp+00000370h] push edi or edi,FFFFFFFFh test al,al mov [esp+20h],cx jnz L00016893 mov eax,[esp+00000368h] mov dx,[eax+04h] mov [esi+1Eh],dx mov cx,[eax] mov [esi+1Ch],cx mov dx,[eax+08h] sub dx,[eax] push esi mov [esi+24h],dx mov cx,[eax+0Ch] sub cx,[eax+04h] mov eax,[esp+00000370h] mov [esi+26h],cx mov ecx,[eax+04h] mov edx,[eax] mov [esi+50h],dx mov [esi+52h],cx call SUB_L0002B850 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016893: cmp al,01h jnz L00016914 mov ecx,[esp+00000364h] mov ebx,[esp+00000368h] lea eax,[esp+28h] push eax add ecx,00000004h push ecx push ebx call SUB_L000140E0 test eax,eax jz L000169FC mov edx,[esp+28h] mov eax,[esp+30h] mov ecx,[esp+2Ch] mov edi,[esp+0000036Ch] sub eax,edx mov [esi+24h],ax mov eax,[esp+34h] sub eax,ecx mov [esi+26h],ax mov [esi+1Eh],cx mov [esi+1Ch],dx mov eax,[edi+04h] mov ebp,[ebx+04h] mov edi,[edi] sub eax,ebp add eax,ecx mov ecx,[ebx] sub edi,ecx add edi,edx push esi mov [esi+50h],di mov [esi+52h],ax call SUB_L0002B850 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016914: mov edx,[esp+00000370h] mov eax,[esp+00000364h] push 00000000h push edx push 00000000h push 00000000h push eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov ebp,[esp+0000036Ch] mov ebx,[esp+00000368h] L0001693D: mov edx,[esp+00000364h] lea ecx,[esp+38h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov [esp+1Ch],eax mov eax,[esp+38h] push eax lea ecx,[esp+40h] push ecx push ebx call SUB_L00014070 test eax,eax jz L000169E8 mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+14h],ecx lea edi,[esp+40h] mov [esp+10h],eax L00016982: mov cx,[edi-04h] mov dx,[edi+04h] mov ax,[edi] sub dx,cx mov [esi+24h],dx mov dx,[edi+08h] sub dx,ax mov [esi+26h],dx mov edx,[esp+24h] mov [esi+1Eh],ax mov [esi+1Ch],cx mov [esi+48h],edx sub cx,[ebx] push esi add cx,[ebp+00h] mov [esi+50h],cx sub ax,[ebx+04h] add ax,[ebp+04h] mov [esi+52h],ax mov eax,[esp+18h] mov [esi+4Ch],eax call SUB_L0002B850 mov [esp+18h],eax mov eax,[esp+10h] add edi,00000010h dec eax mov [esp+10h],eax jnz L00016982 mov edi,[esp+18h] L000169E8: mov ecx,[esi] push ecx call SUB_L00029670 mov eax,[esp+1Ch] test eax,eax jnz L0001693D L000169FC: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ Align 8 SUB_L00016A10: sub esp,0000034Ch push ebx push ebp push esi mov esi,[esp+0000035Ch] mov eax,[esi+48h] mov cx,[esi+4Ch] mov [esp+20h],eax mov al,[esp+00000370h] push edi or edi,FFFFFFFFh test al,al mov [esp+20h],cx jnz L00016A93 mov eax,[esp+00000368h] mov dx,[eax+04h] mov [esi+1Eh],dx mov cx,[eax] mov [esi+1Ch],cx mov dx,[eax+08h] sub dx,[eax] push esi mov [esi+24h],dx mov cx,[eax+0Ch] sub cx,[eax+04h] mov eax,[esp+00000370h] mov [esi+26h],cx mov ecx,[eax+04h] mov edx,[eax] mov [esi+50h],dx mov [esi+52h],cx call SUB_L00029840 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016A93: cmp al,01h jnz L00016B14 mov ecx,[esp+00000364h] mov ebx,[esp+00000368h] lea eax,[esp+28h] push eax add ecx,00000004h push ecx push ebx call SUB_L000140E0 test eax,eax jz L00016BF4 mov edx,[esp+28h] mov eax,[esp+30h] mov ecx,[esp+2Ch] mov edi,[esp+0000036Ch] sub eax,edx mov [esi+24h],ax mov eax,[esp+34h] sub eax,ecx mov [esi+26h],ax mov [esi+1Eh],cx mov [esi+1Ch],dx mov eax,[edi+04h] mov ebp,[ebx+04h] mov edi,[edi] sub eax,ebp add eax,ecx mov ecx,[ebx] sub edi,ecx add edi,edx push esi mov [esi+50h],di mov [esi+52h],ax call SUB_L00029840 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016B14: mov edx,[esp+00000370h] mov eax,[esp+00000364h] push 00000000h push edx push 00000000h push 00000000h push eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov ebp,[esp+0000036Ch] mov ebx,[esp+00000368h] L00016B3D: mov edx,[esp+00000364h] lea ecx,[esp+38h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov [esp+1Ch],eax mov eax,[esp+38h] push eax lea ecx,[esp+40h] push ecx push ebx call SUB_L00014070 test eax,eax jz L00016BE8 mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+14h],ecx lea edi,[esp+40h] mov [esp+10h],eax L00016B82: mov cx,[edi-04h] mov dx,[edi+04h] mov ax,[edi] sub dx,cx mov [esi+24h],dx mov dx,[edi+08h] sub dx,ax mov [esi+26h],dx mov edx,[esp+24h] mov [esi+1Eh],ax mov [esi+1Ch],cx mov [esi+48h],edx sub cx,[ebx] push esi add cx,[ebp+00h] mov [esi+50h],cx sub ax,[ebx+04h] add ax,[ebp+04h] mov [esi+52h],ax mov eax,[esp+18h] mov [esi+4Ch],eax call SUB_L00029840 mov [esp+18h],eax mov eax,[esp+10h] add edi,00000010h dec eax mov [esp+10h],eax jnz L00016B82 mov edi,[esp+18h] L00016BE8: mov eax,[esp+1Ch] test eax,eax jnz L00016B3D L00016BF4: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00016C10: sub esp,0000034Ch push ebx push ebp push esi mov esi,[esp+0000035Ch] mov eax,[esi+48h] mov cx,[esi+4Ch] mov [esp+20h],eax mov al,[esp+00000370h] push edi or edi,FFFFFFFFh test al,al mov [esp+20h],cx jnz L00016C93 mov eax,[esp+00000368h] mov dx,[eax+04h] mov [esi+1Eh],dx mov cx,[eax] mov [esi+1Ch],cx mov dx,[eax+08h] sub dx,[eax] push esi mov [esi+24h],dx mov cx,[eax+0Ch] sub cx,[eax+04h] mov eax,[esp+00000370h] mov [esi+26h],cx mov ecx,[eax+04h] mov edx,[eax] mov [esi+50h],dx mov [esi+52h],cx call SUB_L00029B60 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016C93: cmp al,01h jnz L00016D14 mov ecx,[esp+00000364h] mov ebx,[esp+00000368h] lea eax,[esp+28h] push eax add ecx,00000004h push ecx push ebx call SUB_L000140E0 test eax,eax jz L00016DF4 mov edx,[esp+28h] mov eax,[esp+30h] mov ecx,[esp+2Ch] mov edi,[esp+0000036Ch] sub eax,edx mov [esi+24h],ax mov eax,[esp+34h] sub eax,ecx mov [esi+26h],ax mov [esi+1Eh],cx mov [esi+1Ch],dx mov eax,[edi+04h] mov ebp,[ebx+04h] mov edi,[edi] sub eax,ebp add eax,ecx mov ecx,[ebx] sub edi,ecx add edi,edx push esi mov [esi+50h],di mov [esi+52h],ax call SUB_L00029B60 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016D14: mov edx,[esp+00000370h] mov eax,[esp+00000364h] push 00000000h push edx push 00000000h push 00000000h push eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov ebp,[esp+0000036Ch] mov ebx,[esp+00000368h] L00016D3D: mov edx,[esp+00000364h] lea ecx,[esp+38h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov [esp+1Ch],eax mov eax,[esp+38h] push eax lea ecx,[esp+40h] push ecx push ebx call SUB_L00014070 test eax,eax jz L00016DE8 mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+14h],ecx lea edi,[esp+40h] mov [esp+10h],eax L00016D82: mov cx,[edi-04h] mov dx,[edi+04h] mov ax,[edi] sub dx,cx mov [esi+24h],dx mov dx,[edi+08h] sub dx,ax mov [esi+26h],dx mov edx,[esp+24h] mov [esi+1Eh],ax mov [esi+1Ch],cx mov [esi+48h],edx sub cx,[ebx] push esi add cx,[ebp+00h] mov [esi+50h],cx sub ax,[ebx+04h] add ax,[ebp+04h] mov [esi+52h],ax mov eax,[esp+18h] mov [esi+4Ch],eax call SUB_L00029B60 mov [esp+18h],eax mov eax,[esp+10h] add edi,00000010h dec eax mov [esp+10h],eax jnz L00016D82 mov edi,[esp+18h] L00016DE8: mov eax,[esp+1Ch] test eax,eax jnz L00016D3D L00016DF4: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00016E10: sub esp,0000034Ch push ebx push ebp push esi mov esi,[esp+0000035Ch] mov eax,[esi+48h] mov cx,[esi+4Ch] mov [esp+20h],eax mov al,[esp+00000370h] push edi or edi,FFFFFFFFh test al,al mov [esp+20h],cx jnz L00016E93 mov eax,[esp+00000368h] mov dx,[eax+04h] mov [esi+1Eh],dx mov cx,[eax] mov [esi+1Ch],cx mov dx,[eax+08h] sub dx,[eax] push esi mov [esi+24h],dx mov cx,[eax+0Ch] sub cx,[eax+04h] mov eax,[esp+00000370h] mov [esi+26h],cx mov ecx,[eax+04h] mov edx,[eax] mov [esi+50h],dx mov [esi+52h],cx call SUB_L00029D00 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016E93: cmp al,01h jnz L00016F14 mov ecx,[esp+00000364h] mov ebx,[esp+00000368h] lea eax,[esp+28h] push eax add ecx,00000004h push ecx push ebx call SUB_L000140E0 test eax,eax jz L00016FF4 mov edx,[esp+28h] mov eax,[esp+30h] mov ecx,[esp+2Ch] mov edi,[esp+0000036Ch] sub eax,edx mov [esi+24h],ax mov eax,[esp+34h] sub eax,ecx mov [esi+26h],ax mov [esi+1Eh],cx mov [esi+1Ch],dx mov eax,[edi+04h] mov ebp,[ebx+04h] mov edi,[edi] sub eax,ebp add eax,ecx mov ecx,[ebx] sub edi,ecx add edi,edx push esi mov [esi+50h],di mov [esi+52h],ax call SUB_L00029D00 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00016F14: mov edx,[esp+00000370h] mov eax,[esp+00000364h] push 00000000h push edx push 00000000h push 00000000h push eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov ebp,[esp+0000036Ch] mov ebx,[esp+00000368h] L00016F3D: mov edx,[esp+00000364h] lea ecx,[esp+38h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov [esp+1Ch],eax mov eax,[esp+38h] push eax lea ecx,[esp+40h] push ecx push ebx call SUB_L00014070 test eax,eax jz L00016FE8 mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+14h],ecx lea edi,[esp+40h] mov [esp+10h],eax L00016F82: mov cx,[edi-04h] mov dx,[edi+04h] mov ax,[edi] sub dx,cx mov [esi+24h],dx mov dx,[edi+08h] sub dx,ax mov [esi+26h],dx mov edx,[esp+24h] mov [esi+1Eh],ax mov [esi+1Ch],cx mov [esi+48h],edx sub cx,[ebx] push esi add cx,[ebp+00h] mov [esi+50h],cx sub ax,[ebx+04h] add ax,[ebp+04h] mov [esi+52h],ax mov eax,[esp+18h] mov [esi+4Ch],eax call SUB_L00029D00 mov [esp+18h],eax mov eax,[esp+10h] add edi,00000010h dec eax mov [esp+10h],eax jnz L00016F82 mov edi,[esp+18h] L00016FE8: mov eax,[esp+1Ch] test eax,eax jnz L00016F3D L00016FF4: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00017010: sub esp,0000034Ch push ebx push ebp push esi mov esi,[esp+0000035Ch] mov eax,[esi+48h] mov cx,[esi+4Ch] mov [esp+20h],eax mov al,[esp+00000370h] push edi or edi,FFFFFFFFh test al,al mov [esp+20h],cx jnz L00017093 mov eax,[esp+00000368h] mov dx,[eax+04h] mov [esi+1Eh],dx mov cx,[eax] mov [esi+1Ch],cx mov dx,[eax+08h] sub dx,[eax] push esi mov [esi+24h],dx mov cx,[eax+0Ch] sub cx,[eax+04h] mov eax,[esp+00000370h] mov [esi+26h],cx mov ecx,[eax+04h] mov edx,[eax] mov [esi+50h],dx mov [esi+52h],cx call SUB_L0002A020 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00017093: cmp al,01h jnz L00017114 mov ecx,[esp+00000364h] mov ebx,[esp+00000368h] lea eax,[esp+28h] push eax add ecx,00000004h push ecx push ebx call SUB_L000140E0 test eax,eax jz L000171F4 mov edx,[esp+28h] mov eax,[esp+30h] mov ecx,[esp+2Ch] mov edi,[esp+0000036Ch] sub eax,edx mov [esi+24h],ax mov eax,[esp+34h] sub eax,ecx mov [esi+26h],ax mov [esi+1Eh],cx mov [esi+1Ch],dx mov eax,[edi+04h] mov ebp,[ebx+04h] mov edi,[edi] sub eax,ebp add eax,ecx mov ecx,[ebx] sub edi,ecx add edi,edx push esi mov [esi+50h],di mov [esi+52h],ax call SUB_L0002A020 pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ L00017114: mov edx,[esp+00000370h] mov eax,[esp+00000364h] push 00000000h push edx push 00000000h push 00000000h push eax call jmp_WIN32K.SYS!CLIPOBJ_cEnumStart mov ebp,[esp+0000036Ch] mov ebx,[esp+00000368h] L0001713D: mov edx,[esp+00000364h] lea ecx,[esp+38h] push ecx push 00000324h push edx call jmp_WIN32K.SYS!CLIPOBJ_bEnum mov [esp+1Ch],eax mov eax,[esp+38h] push eax lea ecx,[esp+40h] push ecx push ebx call SUB_L00014070 test eax,eax jz L000171E8 mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+14h],ecx lea edi,[esp+40h] mov [esp+10h],eax L00017182: mov cx,[edi-04h] mov dx,[edi+04h] mov ax,[edi] sub dx,cx mov [esi+24h],dx mov dx,[edi+08h] sub dx,ax mov [esi+26h],dx mov edx,[esp+24h] mov [esi+1Eh],ax mov [esi+1Ch],cx mov [esi+48h],edx sub cx,[ebx] push esi add cx,[ebp+00h] mov [esi+50h],cx sub ax,[ebx+04h] add ax,[ebp+04h] mov [esi+52h],ax mov eax,[esp+18h] mov [esi+4Ch],eax call SUB_L0002A020 mov [esp+18h],eax mov eax,[esp+10h] add edi,00000010h dec eax mov [esp+10h],eax jnz L00017182 mov edi,[esp+18h] L000171E8: mov eax,[esp+1Ch] test eax,eax jnz L0001713D L000171F4: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,0000034Ch retn 0018h ;------------------------------------------------------------------------------ Align 16 OsDeviceIoControl: mov eax,[esp+1Ch] mov ecx,[esp+18h] mov edx,[esp+14h] push eax mov eax,[esp+14h] push ecx mov ecx,[esp+14h] push edx mov edx,[esp+14h] push eax mov eax,[esp+14h] push ecx mov ecx,[eax] push edx push ecx call jmp_WIN32K.SYS!EngDeviceIoControl retn 001Ch ;------------------------------------------------------------------------------ Align 4 OsAllocMem: mov ecx,[L000B6F18] sub esp,00000118h test ecx,ecx push ebx push esi jz L000172D1 mov ebx,[esp+00000128h] lea eax,[ebx+00000FFFh] shr eax,0Ch cmp eax,00000040h ja L000172D1 mov [esp+0Ch],eax lea eax,[esp+10h] push eax push 0000010Ch lea edx,[esp+1Ch] push edx push 00000008h lea eax,[esp+18h] push eax push 002320C0h mov esi,00000001h push ecx mov [esp+24h],esi call OsDeviceIoControl mov eax,[esp+14h] test eax,eax jnz L000172D1 push edi mov edi,[esp+20h] test edi,edi mov edx,edi jz L000172C3 cmp [esp+00000128h],esi jnz L000172C3 mov ecx,ebx mov esi,ecx shr ecx,02h xor eax,eax rep stosd mov ecx,esi and ecx,00000003h rep stosb L000172C3: pop edi pop esi mov eax,edx pop ebx add esp,00000118h retn 0008h ;------------------------------------------------------------------------------ L000172D1: pop esi xor eax,eax pop ebx add esp,00000118h retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L000172E0: mov eax,[esp+08h] push 43544E49h push eax call jmp_WIN32K.SYS!EngAllocUserMem retn 0008h ;------------------------------------------------------------------------------ Align 16 OsFreeMem: mov eax,[L000B6F18] sub esp,0000000Ch test eax,eax jz L0001733A mov ecx,[esp+10h] lea edx,[esp+10h] push edx push 00000004h mov [esp+10h],ecx lea ecx,[esp+08h] push ecx push 00000008h lea edx,[esp+14h] push edx push 002320C4h push eax mov dword ptr [esp+20h],00000001h call OsDeviceIoControl L0001733A: add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ SUB_L00017340: mov eax,[esp+04h] push eax call jmp_WIN32K.SYS!EngFreeUserMem retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00017350: mov eax,[esp+04h] push esi mov esi,[eax] push 00000000h push esi call SUB_L000108B0 push esi call SUB_L00010910 pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00017370: mov eax,[esp+04h] mov ecx,[eax] mov byte ptr [ecx+00000694h],01h retn 0004h ;------------------------------------------------------------------------------ GetDriverData: mov eax,[esp+04h] mov ecx,[eax] mov eax,[ecx+00000664h] retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00017390: mov eax,[esp+04h] mov eax,[eax+58h] retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000173A0: sub esp,00000010h push esi push edi lea eax,[esp+10h] push eax call jmp_WIN32K.SYS!EngQueryPerformanceFrequency lea ecx,[esp+08h] push ecx call jmp_WIN32K.SYS!EngQueryPerformanceCounter mov esi,[esp+14h] test esi,esi mov edi,[esp+10h] jl L000173F4 jg L000173CF cmp edi,L000186A0 jbe L000173F4 L000173CF: push 00000000h push 000003E8h push esi push edi call SUB_L000AF440 push edx mov edx,[esp+10h] push eax mov eax,[esp+10h] push edx push eax call SUB_L000AF440 pop edi pop esi add esp,00000010h retn ;------------------------------------------------------------------------------ L000173F4: mov ecx,[esp+0Ch] mov edx,[esp+08h] push 00000000h push 000003E8h push ecx push edx call SUB_L000AF400 push esi push edi push edx push eax call SUB_L000AF440 pop edi pop esi add esp,00000010h retn ;------------------------------------------------------------------------------ Align 8 L00017420: sub esp,0000001Ch push ebx push esi mov esi,[esp+28h] mov eax,[esi] push edi mov edi,[eax] push eax call GetDriverData mov eax,[esi+04h] xor ebx,ebx cmp eax,ebx jz L000174B0 mov eax,[esi+08h] mov [esp+18h],eax mov [esp+24h],ebx mov [esp+1Ch],ebx mov ecx,[edi+44h] lea edx,[esp+2Ch] push edx push 0000000Ch add ecx,0000FFFFh and ecx,FFFF0000h lea eax,[esp+14h] push eax mov [esp+2Ch],ecx mov edx,[edi] push 00000010h lea ecx,[esp+28h] push ecx push 00230474h push edx call jmp_WIN32K.SYS!EngDeviceIoControl test eax,eax jz L00017498 pop edi mov dword ptr [esi+10h],80004005h pop esi mov eax,00000001h pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ L00017498: mov eax,[esp+14h] pop edi mov [esi+0Ch],eax mov [esi+10h],ebx pop esi mov eax,00000001h pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ L000174B0: mov ecx,[esi+08h] mov edx,[esi+0Ch] lea eax,[esp+2Ch] push eax push ebx push ebx mov [esp+24h],ecx push 00000010h lea ecx,[esp+28h] push ecx mov [esp+30h],ebx mov [esp+34h],ebx mov [esp+38h],edx mov edx,[edi] push 00230478h push edx call jmp_WIN32K.SYS!EngDeviceIoControl pop edi mov [esi+10h],ebx pop esi mov eax,00000001h pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 L00017500: mov eax,[esp+04h] push ebx mov ebx,[eax+00000664h] push ebp push esi mov esi,[esp+14h] mov dword ptr [esi],000001A0h mov ecx,[eax+24h] mov [esi+4Ch],ecx mov edx,[eax+28h] mov [esi+0Ch],edx mov ecx,[eax+2Ch] mov [esi+10h],ecx mov edx,[eax+40h] mov [esi+14h],edx mov dword ptr [esi+18h],00000020h mov dword ptr [esi+1Ch],00000040h mov ecx,[ebx+28h] mov [esi+24h],ecx cmp dword ptr [eax+38h],00000003h push edi jnz L00017551 mov dword ptr [esi+1Ch],00000060h L00017551: mov edx,[eax+48h] mov [esi+28h],edx mov ecx,[eax+4Ch] mov [esi+2Ch],ecx mov edx,[eax+50h] mov [esi+30h],edx mov ecx,[eax+38h] xor edx,edx cmp ecx,00000006h jnz L00017581 mov ecx,[eax+50h] mov edi,[eax+48h] mov ebp,[eax+4Ch] or ecx,edi or ecx,ebp not ecx mov [esi+34h],ecx jmp L00017584 L00017581: mov [esi+34h],edx L00017584: mov ecx,00000008h mov [esi+3Ch],ecx mov [esi+38h],ecx mov ecx,[esp+24h] mov [esi+04h],edx mov edi,[L000B2B00] mov [ecx],edi mov ecx,[esp+28h] cmp ecx,edx jz L000175C8 cmp [L000B2B00],edx jbe L000175C8 mov edi,L000B2AF0 sub edi,ecx L000175B5: mov ebp,[edi+ecx] mov [ecx],ebp mov ebp,[L000B2B00] inc edx add ecx,00000004h cmp edx,ebp jc L000175B5 L000175C8: mov edx,[eax+44h] mov eax,[esp+1Ch] lea ecx,[esi+50h] push ecx mov [esi+0000008Ch],edx push ebx mov dword ptr [eax],00000000h call SUB_L00017EC0 mov edx,[esi+00000190h] push esi or edx,00000004h push ebx mov [esi+00000190h],edx mov dword ptr [esi+0000018Ch],L00017AA0 call SUB_L00033FF0 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ Align 16 L00017620: push ebx mov ebx,[esp+08h] push ebp push esi push edi mov edi,[ebx+00000664h] push edi call SUB_L00017390 mov esi,eax mov eax,[edi+28h] mov [esi+10h],eax mov ecx,[ebx+48h] mov [esi+14h],ecx mov edx,[ebx+4Ch] mov [esi+18h],edx mov eax,[ebx+50h] mov [esi+1Ch],eax mov dword ptr [esi+08h],00000040h cmp dword ptr [ebx+38h],00000003h jnz L00017662 mov dword ptr [esi+08h],00000020h L00017662: mov eax,[ebx+38h] mov ecx,00000006h xor ebp,ebp cmp eax,ecx jnz L00017684 mov edx,[ebx+50h] mov eax,[ebx+48h] mov edi,[ebx+4Ch] or edx,eax or edx,edi not edx mov [esi+20h],edx jmp L00017687 L00017684: mov [esi+20h],ebp L00017687: xor eax,eax mov dword ptr [esi+00000690h],00000001h mov dword ptr [esi+00000694h],00000005h mov [esi+00000698h],ebp mov [esi+0000069Ch],ebp lea edi,[esi+24h] push esi rep stosd call SUB_L00018290 mov eax,[esi+00000264h] mov edi,[esp+18h] mov [edi+18h],eax mov ecx,[esi+00000260h] mov [edi+0Ch],ecx mov edx,[esi+00000268h] mov [edi+1Ch],edx mov eax,[esi+0000026Ch] push edi mov [edi+24h],eax call SUB_L00018280 mov edx,[edi+04h] mov eax,[esp+1Ch] mov dword ptr [edi+28h],L00017420 or edx,80000000h mov [edi+04h],edx mov [eax+04h],ebp mov ecx,[esi+00000280h] mov [eax+1Ch],ecx mov edx,[esi+00000274h] mov [eax+0Ch],edx mov ecx,[esi+00000278h] mov [eax+14h],ecx mov edx,[esi+0000027Ch] mov [eax+18h],edx mov ecx,[esi+00000284h] mov [eax+28h],ecx mov edx,[esi+00000288h] mov [eax+2Ch],edx mov ecx,[esi+00000270h] mov [eax+08h],ecx mov edx,[esi+0000028Ch] mov [eax+30h],edx mov ecx,[esi+00000290h] mov [eax+34h],ecx mov edx,[esi+00000294h] push eax mov [eax+20h],edx call SUB_L00018270 mov [esi+44h],ebp mov [esi+4Ch],ebp mov [esi+48h],ebp mov [esi+74h],ebp mov [esi+78h],ebp mov eax,[ebx+40h] pop edi mov [esi+00000080h],eax pop esi pop ebp mov eax,00000001h pop ebx retn 0010h ;------------------------------------------------------------------------------ SUB_L00017780: retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00017790: push esi push edi mov edi,[esp+0Ch] mov esi,[edi+00000664h] push 000006B8h push 00000001h call OsAllocMem test eax,eax mov [edi+00001698h],eax jnz L000177B7 pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ L000177B7: mov [esi+58h],eax mov eax,[edi+00001698h] push 00000B68h push 00000001h mov [eax+000002A4h],esi call OsAllocMem test eax,eax jnz L000177E9 mov ecx,[edi+00001698h] push ecx call OsFreeMem pop edi xor eax,eax pop esi retn 0004h ;------------------------------------------------------------------------------ L000177E9: mov [eax+000000C8h],esi mov dword ptr [eax+00000084h],00000000h mov [edi+0000169Ch],eax mov [esi+7Ch],eax pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00017810: push esi mov esi,[esp+08h] mov eax,[esi+00001698h] push edi mov edi,[eax+000006B4h] push eax call OsFreeMem cmp edi,00000001h mov eax,[esi+0000169Ch] jnz L00017847 mov ecx,[eax+00000B60h] or ecx,00000001h pop edi mov [eax+00000B60h],ecx pop esi retn 0004h ;------------------------------------------------------------------------------ L00017847: push eax call OsFreeMem pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00017860: mov edx,[esp+08h] test edx,edx mov eax,[esp+04h] mov ecx,[eax+00000664h] jz L00017884 mov edx,[eax+00001698h] mov [ecx+58h],edx mov eax,[eax+0000169Ch] mov [ecx+7Ch],eax L00017884: retn 0008h ;------------------------------------------------------------------------------ Align 16 L00017890: push esi mov esi,[esp+08h] mov eax,[esi] push edi push eax call GetDriverData mov edi,eax mov eax,[esi+04h] test eax,10000000h jz L000178E3 mov ecx,[edi+000000A8h] push 01000000h push ecx call SUB_L00025A00 mov [esi+08h],eax mov edx,[edi+000000A8h] push 01000000h push edx call SUB_L00025A70 mov [esi+0Ch],eax pop edi mov dword ptr [esi+10h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L000178E3: test eax,20000000h jz L00017923 mov eax,[edi+000000A8h] push 02000000h push eax call SUB_L00025A00 mov [esi+08h],eax mov ecx,[edi+000000A8h] push 02000000h push ecx call SUB_L00025A70 mov [esi+0Ch],eax pop edi mov dword ptr [esi+10h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00017923: test ah,10h jz L00017961 mov edx,[edi+000000A8h] push L00020000 push edx call SUB_L00025A00 mov [esi+08h],eax mov eax,[edi+000000A8h] push L00020000 push eax call SUB_L00025A70 mov [esi+0Ch],eax pop edi mov dword ptr [esi+10h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00017961: test ah,40h jz L000179CC mov ecx,[edi+000000A8h] push 01000000h push ecx call SUB_L00025A00 mov [esi+08h],eax mov edx,[edi+000000A8h] push 01000000h push edx call SUB_L00025A70 mov [esi+0Ch],eax mov eax,[edi+000000A8h] push 02000000h push eax call SUB_L00025A00 add [esi+08h],eax mov ecx,[edi+000000A8h] push 02000000h push ecx call SUB_L00025A70 mov ecx,[esi+0Ch] add ecx,eax pop edi mov [esi+0Ch],ecx mov dword ptr [esi+10h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L000179CC: test ah,02h jz L00017A0A mov edx,[edi+000000A8h] push 02000000h push edx call SUB_L00025A00 mov [esi+08h],eax mov eax,[edi+000000A8h] push 02000000h push eax call SUB_L00025A70 mov [esi+0Ch],eax pop edi mov dword ptr [esi+10h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00017A0A: pop edi mov dword ptr [esi+08h],00000000h mov dword ptr [esi+0Ch],00000000h mov dword ptr [esi+10h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 L00017A30: push esi push edi mov edi,[esp+0Ch] mov eax,[edi] push eax call GetDriverData mov esi,eax push esi call SUB_L00018410 mov eax,[edi+04h] test eax,eax jz L00017A5E mov dword ptr [esi+64h],00000001h mov ecx,[edi] push ecx call SUB_L00017350 jmp L00017A6D L00017A5E: mov dword ptr [esi+64h],00000000h mov edx,[edi] push edx call SUB_L00017370 L00017A6D: mov eax,[esi+10h] and eax,FFFFFF00h cmp eax,00010300h jnz L00017A88 push esi call SUB_L00029670 push esi call SUB_L000248F0 L00017A88: mov dword ptr [edi+0Ch],00000000h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 L00017AA0: sub esp,0000003Ch push ebx mov ebx,[esp+44h] push ebp push esi push edi lea edx,[ebx+0Ch] mov ecx,00000004h mov edi,L000B2758 mov esi,edx xor eax,eax mov dword ptr [ebx+28h],88760028h repe cmpsd jnz L00017B19 mov eax,[ebx+1Ch] mov esi,0000000Ch cmp eax,esi mov [esp+10h],esi mov [ebx+24h],esi jc L00017ADC mov eax,esi L00017ADC: mov edi,[ebx+20h] mov ecx,eax mov edx,ecx shr ecx,02h mov dword ptr [esp+14h],00000001h mov dword ptr [esp+18h],L00017890 lea esi,[esp+10h] rep movsd mov ecx,edx and ecx,00000003h rep movsb pop edi pop esi pop ebp mov dword ptr [ebx+28h],00000000h mov eax,00000001h pop ebx add esp,0000003Ch retn 0004h ;------------------------------------------------------------------------------ L00017B19: xor eax,eax mov ecx,00000004h mov edi,L000B2748 mov esi,edx repe cmpsd mov ebp,eax jnz L00017B85 mov ecx,00000006h lea edi,[esp+10h] rep stosd mov eax,[ebx+1Ch] mov ecx,00000018h cmp eax,ecx mov [esp+10h],ecx mov dword ptr [esp+14h],0000000Eh mov dword ptr [esp+20h],L00033FD0 mov dword ptr [esp+1Ch],L000ABC20 mov dword ptr [esp+24h],L00033FB0 mov [ebx+24h],ecx ja L00017B6D mov ecx,eax L00017B6D: mov edi,[ebx+20h] mov eax,ecx shr ecx,02h lea esi,[esp+10h] rep movsd mov ecx,eax and ecx,00000003h rep movsb mov [ebx+28h],ebp L00017B85: mov ecx,00000004h mov edi,L000B2688 mov esi,edx xor eax,eax repe cmpsd jnz L00017BED mov eax,[ebx+1Ch] mov ecx,00000014h cmp eax,ecx mov [esp+10h],ecx mov dword ptr [esp+14h],00000002h mov [esp+18h],ebp mov [esp+20h],ebp mov dword ptr [esp+1Ch],L00017A30 mov [ebx+24h],ecx jc L00017BC4 mov eax,ecx L00017BC4: mov edi,[ebx+20h] mov ecx,eax mov edx,ecx shr ecx,02h lea esi,[esp+10h] rep movsd mov ecx,edx and ecx,00000003h rep movsb pop edi pop esi mov [ebx+28h],ebp pop ebp mov eax,00000001h pop ebx add esp,0000003Ch retn 0004h ;------------------------------------------------------------------------------ L00017BED: mov ecx,00000004h mov edi,L000B2718 mov esi,edx xor eax,eax repe cmpsd jnz L00017C97 mov eax,[ebx+1Ch] mov ecx,00000030h cmp eax,ecx mov [esp+10h],ecx mov dword ptr [esp+14h],000003FFh mov dword ptr [esp+18h],L0001D870 mov dword ptr [esp+1Ch],L0001D970 mov dword ptr [esp+20h],L0001E090 mov dword ptr [esp+24h],L0001DB00 mov dword ptr [esp+28h],L0001DA60 mov dword ptr [esp+2Ch],L0001E2B0 mov dword ptr [esp+30h],L0001E3F0 mov dword ptr [esp+34h],L0001E520 mov dword ptr [esp+38h],L0001F540 mov dword ptr [esp+3Ch],L0001E200 mov [ebx+24h],ecx jnc L00017C70 mov ecx,eax L00017C70: mov edi,[ebx+20h] mov edx,ecx shr ecx,02h lea esi,[esp+10h] rep movsd mov ecx,edx and ecx,00000003h rep movsb pop edi pop esi mov [ebx+28h],ebp pop ebp mov eax,00000001h pop ebx add esp,0000003Ch retn 0004h ;------------------------------------------------------------------------------ L00017C97: mov ecx,00000004h mov edi,L000B2728 mov esi,edx xor eax,eax repe cmpsd jnz L00017CF5 lea ecx,[esp+40h] mov esi,0000000Ch push ecx mov [esp+44h],esi call SUB_L00018330 test eax,eax jz L00017CC3 mov [ebx+28h],ebp L00017CC3: mov eax,[ebx+1Ch] cmp eax,esi mov [ebx+24h],esi jc L00017CCF mov eax,esi L00017CCF: mov edi,[ebx+20h] mov ecx,eax mov edx,ecx shr ecx,02h lea esi,[esp+40h] rep movsd mov ecx,edx and ecx,00000003h rep movsb pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,0000003Ch retn 0004h ;------------------------------------------------------------------------------ L00017CF5: push ebx mov dword ptr [ebx+28h],88760028h call SUB_L000347C0 cmp eax,00000001h jnz L00017D11 pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0004h ;------------------------------------------------------------------------------ L00017D11: push ebx call SUB_L00018F20 dec eax pop edi neg eax pop esi sbb eax,eax pop ebp inc eax pop ebx add esp,0000003Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 L00017D30: push esi mov esi,[esp+08h] mov eax,[esi] push edi push eax call GetDriverData mov edi,eax push edi call SUB_L00017390 add eax,000002A8h mov [eax+00000134h],edi mov ecx,[esi+0Ch] mov edi,00000001h cmp ecx,edi jnz L00017DEF mov ecx,[eax+14h] test ch,20h jz L00017D9B mov ecx,[esi+08h] mov edx,[eax+00000118h] mov [ecx+08h],edx mov ecx,[esi+08h] mov edx,[eax+0000011Ch] mov [ecx+0Ch],edx mov ecx,[esi+08h] mov edx,[eax+00000120h] mov [ecx+14h],edx mov ecx,[esi+08h] mov edx,[eax+00000124h] mov [ecx+1Ch],edx jmp L00017DBC L00017D9B: mov eax,[esi+08h] mov dword ptr [eax+08h],000002EEh mov ecx,[esi+08h] mov eax,00002710h mov [ecx+0Ch],eax mov edx,[esi+08h] mov [edx+14h],eax mov eax,[esi+08h] mov [eax+1Ch],edi L00017DBC: mov ecx,[esi+08h] mov dword ptr [ecx+04h],00000002h mov eax,[esi+08h] or [eax+04h],edi mov eax,[esi+08h] or dword ptr [eax+04h],00000020h mov eax,[esi+08h] or dword ptr [eax+04h],00000008h mov eax,[esi+08h] and dword ptr [eax+04h],FFFFFFABh mov eax,edi pop edi mov dword ptr [esi+10h],00000000h pop esi retn 0004h ;------------------------------------------------------------------------------ L00017DEF: cmp ecx,00000002h jnz L00017E9F mov edx,[esi+08h] mov ecx,[edx+04h] test cl,54h jz L00017E11 mov eax,edi pop edi mov dword ptr [esi+10h],80004001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00017E11: test cl,03h jz L00017E4C mov ecx,[eax+14h] and ecx,FFFFFFFCh mov [eax+14h],ecx mov edx,[esi+08h] test byte ptr [edx+04h],01h jz L00017E36 mov edx,[edx+08h] or ecx,edi mov [eax+00000118h],edx mov [eax+14h],ecx L00017E36: mov ecx,[esi+08h] test byte ptr [ecx+04h],02h jz L00017E4C mov ecx,[ecx+0Ch] mov [eax+0000011Ch],ecx or dword ptr [eax+14h],00000002h L00017E4C: mov ecx,[esi+08h] test byte ptr [ecx+04h],08h jz L00017E67 mov edx,[ecx+14h] mov ecx,[eax+14h] or ecx,00000004h mov [eax+00000120h],edx mov [eax+14h],ecx L00017E67: mov ecx,[esi+08h] test byte ptr [ecx+04h],20h jz L00017E7D mov ecx,[ecx+1Ch] mov [eax+00000124h],ecx or dword ptr [eax+14h],00000040h L00017E7D: push eax call SUB_L00018480 test eax,eax jnz L00017E91 mov [esi+10h],eax mov eax,edi pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ L00017E91: mov eax,edi pop edi mov dword ptr [esi+10h],88760241h pop esi retn 0004h ;------------------------------------------------------------------------------ L00017E9F: and dword ptr [eax+14h],FFFFDFFFh mov eax,edi pop edi mov dword ptr [esi+10h],80070057h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00017EC0: mov ecx,[esp+04h] mov edx,[ecx+30h] push ebx push ebp push esi mov ebp,00000400h cmp edx,ebp push edi mov ebx,00000300h mov esi,0000004Bh jc L00017EF2 cmp [ecx+34h],ebx jc L00017EF2 cmp dword ptr [ecx+28h],00000010h jc L00017EF2 cmp [ecx+38h],esi ja L00017F8C L00017EF2: cmp edx,00000480h mov eax,00000360h mov edi,00000008h jc L00017F2C cmp [ecx+34h],eax jc L00017F13 cmp [ecx+28h],edi jnz L00017F13 cmp [ecx+38h],esi ja L00017F8C L00017F13: cmp edx,00000480h jc L00017F2C cmp [ecx+34h],eax jc L00017F2C cmp dword ptr [ecx+28h],00000010h jc L00017F2C cmp dword ptr [ecx+38h],00000046h ja L00017F8C L00017F2C: cmp edx,00000500h jc L00017F5F cmp [ecx+34h],ebx jc L00017F3F cmp dword ptr [ecx+28h],00000018h jnc L00017F8C L00017F3F: cmp edx,00000500h jc L00017F5F cmp [ecx+34h],ebp jc L00017F5F cmp [ecx+28h],edi jnz L00017F5F mov eax,[ecx+38h] mov edi,0000003Ch cmp eax,edi ja L00017F91 jmp L00017F64 L00017F5F: mov edi,0000003Ch L00017F64: cmp edx,00000500h jc L00017F77 cmp [ecx+34h],ebp jc L00017F77 cmp dword ptr [ecx+28h],00000010h jnc L00017F91 L00017F77: cmp edx,00000640h jc L00017F95 cmp dword ptr [ecx+34h],000004B0h jc L00017F95 xor eax,eax jmp L00017F9A L00017F8C: mov edi,0000003Ch L00017F91: xor eax,eax jmp L00017F9A L00017F95: mov eax,00000001h L00017F9A: mov esi,[ecx+00000440h] test esi,esi jz L00018012 mov esi,[ecx+00000444h] test esi,esi jz L00018012 test eax,eax jnz L0001800D cmp edx,00000500h jnz L00017FD2 cmp [ecx+34h],ebp jnz L00017FD2 mov esi,[ecx+28h] mov eax,00000018h cmp esi,eax ja L00017FD7 cmp [ecx+38h],edi jz L0001800D jmp L00017FD7 L00017FD2: mov eax,00000018h L00017FD7: cmp edx,00000500h jnz L00018009 cmp dword ptr [ecx+34h],000003C0h jnz L00017FF2 cmp [ecx+28h],eax jnz L00017FF2 cmp [ecx+38h],edi jz L0001800D L00017FF2: cmp edx,00000500h jnz L00018009 cmp [ecx+34h],ebx jnz L00018009 cmp [ecx+28h],eax jnz L00018009 cmp [ecx+38h],edi jz L0001800D L00018009: xor eax,eax jmp L00018012 L0001800D: mov eax,00000001h L00018012: mov esi,[ecx+10h] cmp esi,00010203h jnz L00018053 test eax,eax jnz L0001804E cmp edx,00000500h jc L0001804A mov eax,[ecx+34h] cmp eax,ebp jc L0001804A cmp edx,00000640h jnc L0001804A cmp eax,000004B0h jnc L0001804A cmp dword ptr [ecx+28h],00000018h jnc L0001804A cmp [ecx+38h],edi jz L0001804E L0001804A: xor eax,eax jmp L00018053 L0001804E: mov eax,00000001h L00018053: and esi,FFFFFF00h cmp esi,00010300h jnz L00018117 test eax,eax jnz L0001811B cmp edx,ebp jnz L00018086 cmp [ecx+34h],ebx jnz L00018086 cmp dword ptr [ecx+28h],00000018h ja L00018086 cmp dword ptr [ecx+38h],00000055h jbe L0001811B L00018086: cmp edx,00000500h jnz L0001809E cmp [ecx+34h],ebp jnz L0001809E cmp dword ptr [ecx+28h],00000018h ja L0001809E cmp [ecx+38h],edi jz L0001811B L0001809E: xor ebx,ebx L000180A0: mov eax,[esp+18h] mov edi,[eax+04h] or edi,04020040h test ebx,ebx mov [eax+04h],edi mov edx,edi jz L000180FA mov edi,[ecx+28h] mov esi,00000010h cmp edi,esi jnz L000180CB or edx,00000100h mov [eax+04h],edx L000180CB: cmp [ecx+28h],esi jnz L000180FA cmp dword ptr [ecx+30h],00000578h jnc L000180FA cmp dword ptr [ecx+34h],0000041Ah jnc L000180FA mov esi,[eax+04h] mov edx,[eax+10h] or esi,00000200h or edx,L0003FC30 mov [eax+04h],esi mov [eax+10h],edx L000180FA: mov esi,[eax+04h] or esi,01400000h mov [eax+04h],esi cmp dword ptr [ecx+28h],00000018h mov edx,[eax+0Ch] jnc L00018133 or edx,00000201h jmp L00018139 L00018117: test eax,eax jz L0001809E L0001811B: mov eax,[ecx+00000118h] test eax,eax jnz L0001809E mov ebx,00000001h jmp L000180A0 L00018133: and edx,FFFFFDFEh L00018139: mov ebp,[eax+00000084h] mov edi,[eax+08h] or ebp,0000427Ch or edi,00000A00h mov [eax+0Ch],edx mov [eax+00000084h],ebp mov edx,ebp mov [eax+08h],edi cmp dword ptr [ecx+28h],00000010h jnz L0001816B or edi,00008000h mov [eax+08h],edi L0001816B: mov edi,[eax+08h] or edi,00403070h xor ebp,ebp cmp ebx,ebp mov [eax+08h],edi mov edi,00000040h jz L000181B6 mov ecx,[eax+0Ch] or edx,00000080h or esi,00007800h mov [eax+00000084h],edx mov edx,[eax+14h] mov [eax+04h],esi mov esi,[eax+10h] or esi,1FFC0000h or edx,edi mov [eax+10h],esi mov [eax+14h],edx or ecx,L0002E090 jmp L000181E9 L000181B6: mov ecx,[eax+0Ch] and edx,FFFFFF7Fh and esi,FFFF87FFh mov [eax+00000084h],edx mov edx,[eax+14h] mov [eax+04h],esi mov esi,[eax+10h] and esi,E503FFFFh and edx,FFFFFFBFh mov [eax+10h],esi mov [eax+14h],edx and ecx,FFFD1F6Fh L000181E9: mov [eax+0Ch],ecx or dword ptr [eax+04h],80000000h mov dword ptr [eax+44h],00000001h mov [eax+48h],ebp mov dword ptr [eax+00000088h],0000007Dh mov dword ptr [eax+0000008Ch],001F4000h mov [eax+00000130h],ebp mov [eax+00000134h],ebp mov [eax+00000104h],ebp mov [eax+000000ACh],ebp mov [eax+000000D8h],ebp mov ecx,L000B5C60 lea edx,[eax+000000B8h] L0001823A: mov esi,[ecx] mov [edx],esi add ecx,00000004h add edx,00000004h cmp ecx,L000B5C80 jl L0001823A mov [eax+000000ACh],edi pop edi pop esi mov [eax+000000B0h],ebp mov [eax+000000B4h],ebp pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00018270: mov eax,[esp+04h] mov dword ptr [eax+04h],00000F7Bh retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00018280: mov eax,[esp+04h] or dword ptr [eax+04h],000000B2h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00018290: mov eax,[esp+04h] mov dword ptr [eax+00000264h],L0001AA70 mov dword ptr [eax+0000026Ch],L0001A880 mov dword ptr [eax+00000268h],L0001ABB0 mov dword ptr [eax+00000260h],L0001ABF0 mov dword ptr [eax+00000280h],L00019AE0 mov dword ptr [eax+00000274h],L0001A380 mov dword ptr [eax+00000278h],L0001A8D0 mov dword ptr [eax+0000027Ch],L0001AA30 mov dword ptr [eax+00000284h],L0001A710 mov dword ptr [eax+00000288h],L0001A770 mov dword ptr [eax+00000270h],L0001ABD0 mov dword ptr [eax+0000028Ch],L00019410 mov dword ptr [eax+00000290h],L000199C0 mov dword ptr [eax+00000294h],L00019A30 retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00018330: mov eax,[esp+04h] mov dword ptr [eax+04h],00000001h mov dword ptr [eax+08h],L00017D30 mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00018350: mov eax,[esp+04h] xor ecx,ecx mov dword ptr [eax],00000048h mov dword ptr [eax+04h],00007FBFh mov dword ptr [eax+08h],L00018910 mov dword ptr [eax+0Ch],L000189D0 mov dword ptr [eax+10h],L000193B0 mov dword ptr [eax+14h],L000190A0 mov dword ptr [eax+18h],L00019270 mov dword ptr [eax+1Ch],L00019310 mov [eax+20h],ecx mov dword ptr [eax+24h],L00018AB0 mov dword ptr [eax+28h],SUB_L00018B40 mov dword ptr [eax+2Ch],L00018E60 mov dword ptr [eax+30h],L00018A40 mov dword ptr [eax+34h],L00019220 mov dword ptr [eax+38h],L00019400 mov dword ptr [eax+3Ch],L00018C90 mov dword ptr [eax+40h],L00018BC0 mov [eax+44h],ecx mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000183E0: mov eax,[esp+04h] mov dword ptr [eax],00000010h mov dword ptr [eax+04h],00000003h mov dword ptr [eax+08h],L00019340 mov dword ptr [eax+0Ch],L00019370 mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00018410: xor eax,eax retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00018420: mov ecx,[esp+08h] mov eax,[esp+04h] mov edx,[esp+14h] push esi mov esi,[esp+14h] sub edx,esi sub eax,ecx imul eax,edx push edi mov edi,[esp+14h] sub edi,ecx xor edx,edx div edi pop edi add eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ Align 8 SUB_L00018450: fld dword ptr [esp+04h] fsub dword ptr [esp+08h] fld dword ptr [esp+14h] fsub dword ptr [esp+10h] fmulp ST(1),ST fld dword ptr [esp+0Ch] fsub dword ptr [esp+08h] fdivp ST(1),ST fadd dword ptr [esp+10h] retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L00018480: push ebp mov ebp,esp sub esp,00000018h push ebx push esi push edi emms ; MMX mov esi,[ebp+08h] test byte ptr [esi+00000138h],02h mov edi,[esi+00000134h] jz L000184A8 mov eax,[esi+00000148h] mov [ebp-18h],eax jmp L000184B1 L000184A8: mov ecx,[esi+0000013Ch] mov [ebp-18h],ecx L000184B1: test byte ptr [esi+14h],40h jz L00018721 mov eax,[esi+00000124h] cmp eax,00000001h jc L00018726 push 40A00000h push 3F800000h push 43FA0000h mov [ebp-14h],eax mov dword ptr [ebp-10h],00000000h fild qword ptr [ebp-14h] push 3F800000h push ecx fstp dword ptr [esp] call SUB_L00018450 fld dword ptr [L000B2380] fdiv ST,ST(1) fstp dword ptr [ebp+08h] fstp ST(0) fld qword ptr [L000B2378] fld dword ptr [ebp+08h] call SUB_L000AF514 fmul qword ptr [L000B2370] call SUB_L000AF4EC fld qword ptr [L000B2368] fld dword ptr [ebp+08h] mov ebx,eax call SUB_L000AF514 fmul qword ptr [L000B2370] call SUB_L000AF4EC fld qword ptr [L000B2360] fld dword ptr [ebp+08h] mov [ebp-04h],eax call SUB_L000AF514 fmul qword ptr [L000B2370] call SUB_L000AF4EC fld qword ptr [L000B2358] fld dword ptr [ebp+08h] mov [ebp-08h],eax call SUB_L000AF514 fmul qword ptr [L000B2370] call SUB_L000AF4EC fld qword ptr [L000B2350] fld dword ptr [ebp+08h] mov [ebp-0Ch],eax call SUB_L000AF514 fmul qword ptr [L000B2370] call SUB_L000AF4EC fld qword ptr [L000B2348] fld dword ptr [ebp+08h] mov [ebp-10h],eax call SUB_L000AF514 fmul qword ptr [L000B2370] call SUB_L000AF4EC mov ecx,eax cmp dword ptr [esi],00000000h mov [ebp+08h],ecx jz L00018675 mov eax,[edi+0000011Ch] test eax,eax jnz L000185C9 pop edi pop esi or eax,FFFFFFFFh pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L000185C9: push edi call SUB_L00029740 test eax,eax jnz L000185DD L000185D3: push edi call SUB_L00029740 test eax,eax jz L000185D3 L000185DD: mov eax,ebx and eax,0000FFFFh mov edx,eax shl edx,08h or edx,eax shl edx,08h or edx,eax mov eax,[edi+04h] mov [eax+L00030024],edx mov eax,[ebp-04h] mov edx,[edi+04h] and eax,0000FFFFh mov ecx,eax shl ecx,08h or ecx,eax shl ecx,08h or ecx,eax mov eax,[ebp-08h] mov [edx+L00030020],ecx mov edx,[edi+04h] and eax,0000FFFFh mov ecx,eax shl ecx,08h or ecx,eax shl ecx,08h or ecx,eax mov eax,[ebp-0Ch] mov [edx+L0003001C],ecx mov edx,[edi+04h] and eax,0000FFFFh mov ecx,eax shl ecx,08h or ecx,eax shl ecx,08h or ecx,eax mov eax,[ebp-10h] mov [edx+L00030018],ecx mov edx,[edi+04h] and eax,0000FFFFh mov ecx,eax shl ecx,08h or ecx,eax shl ecx,08h or ecx,eax mov eax,[ebp+08h] mov [edx+L00030014],ecx jmp L00018707 L00018675: mov eax,ebx and eax,0000FFFFh mov edx,eax shl edx,08h or edx,eax shl edx,08h or edx,eax mov eax,[edi+04h] mov [eax+L00030024],edx mov eax,[ebp-04h] and eax,0000FFFFh mov edx,eax shl edx,08h or edx,eax L000186A0: shl edx,08h or edx,eax mov eax,[edi+04h] mov [eax+L00030020],edx mov eax,[ebp-08h] and eax,0000FFFFh mov edx,eax shl edx,08h or edx,eax shl edx,08h or edx,eax mov eax,[edi+04h] mov [eax+L0003001C],edx mov eax,[ebp-0Ch] and eax,0000FFFFh mov edx,eax shl edx,08h or edx,eax shl edx,08h or edx,eax mov eax,[edi+04h] mov [eax+L00030018],edx mov eax,[ebp-10h] and eax,0000FFFFh mov edx,eax shl edx,08h or edx,eax shl edx,08h or edx,eax mov eax,[edi+04h] mov [eax+L00030014],edx mov eax,ecx L00018707: mov edx,[edi+04h] and eax,0000FFFFh mov ecx,eax shl ecx,08h or ecx,eax shl ecx,08h or ecx,eax mov [edx+L00030010],ecx L00018721: cmp dword ptr [esi],00000000h jnz L00018732 L00018726: pop edi pop esi or eax,FFFFFFFFh pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L00018732: test byte ptr [esi+14h],01h mov dword ptr [esi+0000012Ch],00000040h mov dword ptr [esi+00000130h],00000080h mov dword ptr [esi+00000128h],00000000h jz L0001878A mov eax,[esi+00000118h] cmp eax,000002EEh ja L00018770 push 00000000h push FFFFFF80h push 000002EEh push 00000000h jmp L0001877E L00018770: push 0000007Fh push 00000000h push 00002710h push 000002EEh L0001877E: push eax call SUB_L00018420 mov [esi+00000128h],eax L0001878A: test byte ptr [esi+14h],02h jz L000187C7 mov eax,[esi+0000011Ch] cmp eax,00002710h ja L000187AA push 00000040h push 00000000h push 00002710h push 00000000h jmp L000187BB L000187AA: push 000001FFh push 00000040h push 00004E20h push 00002710h L000187BB: push eax call SUB_L00018420 mov [esi+0000012Ch],eax L000187C7: test byte ptr [esi+14h],04h jz L0001880A mov eax,[esi+00000120h] cmp eax,00002710h ja L000187EA push 00000080h push 00000000h push 00002710h push 00000000h jmp L000187FE L000187EA: push 000003FFh push 00000080h push 00004E20h push 00002710h L000187FE: push eax call SUB_L00018420 mov [esi+00000130h],eax L0001880A: test byte ptr [esi+10h],01h jz L00018876 mov eax,[esi+0000012Ch] mov ecx,eax shl ecx,08h sub ecx,eax mov eax,2B404AD1h mul ecx sub ecx,edx shr ecx,1 add ecx,edx shr ecx,07h cmp ecx,000001FFh mov [esi+0000012Ch],ecx jbe L00018845 mov dword ptr [esi+0000012Ch],000001FFh L00018845: mov ecx,[esi+00000130h] shl ecx,07h mov eax,24924925h mul ecx sub ecx,edx shr ecx,1 add ecx,edx shr ecx,06h cmp ecx,000003FFh mov [esi+00000130h],ecx jbe L00018876 mov dword ptr [esi+00000130h],000003FFh L00018876: mov eax,[esi+14h] mov ecx,[esi+0000012Ch] mov edx,[esi+00000128h] and ecx,000001FFh or eax,00002000h mov [esi+14h],eax mov eax,[ebp-18h] shl ecx,08h and edx,000000FFh or ecx,edx mov [eax+48h],ecx mov ecx,[esi+00000130h] push 00000002h mov [eax+4Ch],ecx mov ebx,[edi+000000A4h] push edi call HS_MM_GetRingSpace mov dword ptr [ebx+000022A4h],08800000h test byte ptr [esi+00000138h],02h jz L000188DC mov edx,[esi+0000014Ch] mov [ebx+000022A8h],edx jmp L000188E8 L000188DC: mov ecx,[esi+00000140h] mov [ebx+000022A8h],ecx L000188E8: mov edx,[ebx+000022A4h] mov [eax],edx mov ecx,[ebx+000022A8h] push 00000002h push edi mov [eax+04h],ecx call HS_FireRing pop edi pop esi xor eax,eax pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 8 L00018910: push esi push edi mov edi,[esp+0Ch] mov eax,[edi] mov ecx,[eax] push ecx call GetDriverData push eax call SUB_L00017390 mov esi,[edi+04h] lea edx,[esi+28h] push edx call SUB_L0001AC20 cmp eax,FFFFFFFFh jnz L00018948 mov dword ptr [edi+08h],88760231h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00018948: mov eax,[esi+24h] push eax call SUB_L0002E210 cmp eax,FFFFFFFFh jnz L00018967 mov dword ptr [edi+08h],80004005h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00018967: call SUB_L0001ADA0 mov ecx,[esi+38h] not eax test eax,ecx jz L00018986 mov dword ptr [edi+08h],88760064h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00018986: mov eax,[esi+04h] cmp eax,00000400h ja L000189BF test al,03h jnz L000189BF cmp dword ptr [esi+0Ch],00000400h jbe L000189AE mov dword ptr [edi+08h],887601D6h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L000189AE: mov dword ptr [edi+08h],00000000h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L000189BF: mov dword ptr [edi+08h],887601EAh pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L000189D0: push ebx mov ebx,[esp+08h] mov eax,[ebx] mov ecx,[eax] push esi push edi push ecx call GetDriverData mov esi,eax push esi call SUB_L00017390 mov edi,eax mov eax,[ebx+04h] add eax,00000028h push eax add edi,00000624h call SUB_L0001AC20 push 00000044h push 00000001h mov [edi+60h],eax call OsAllocMem mov [esi+00000108h],eax xor eax,eax mov [esi+0000010Ch],eax mov [esi+00000110h],eax mov [esi+00000114h],eax pop edi mov [ebx+0Ch],eax pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 L00018A40: push ebx mov ebx,[esp+08h] mov eax,[ebx] mov ecx,[eax] push esi push edi push ecx call GetDriverData mov esi,eax mov eax,[esi+0000010Ch] xor edi,edi cmp eax,edi jz L00018A72 mov edx,[esi+00000108h] mov eax,[esi+000000A8h] push edx push eax call SUB_L00026030 L00018A72: mov ecx,[esi+00000108h] push ecx call OsFreeMem mov [esi+00000108h],edi mov [esi+0000010Ch],edi mov [esi+00000110h],edi mov [esi+00000114h],edi mov [ebx+08h],edi pop edi pop esi xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 L00018AB0: push esi mov esi,[esp+08h] mov eax,[esi] mov ecx,[eax] push edi push ecx call GetDriverData mov edi,eax push edi call SUB_L00017390 mov ecx,[eax+00000630h] add eax,00000624h mov [eax+68h],edi xor edi,edi cmp ecx,edi jnz L00018AED pop edi mov dword ptr [esi+0Ch],887602B7h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00018AED: mov edx,[esi+04h] test byte ptr [edx+3Ch],20h jz L00018B24 push eax call SUB_L0002E210 test eax,eax jnz L00018B10 mov [esi+08h],edi mov [esi+0Ch],edi pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00018B10: mov [esi+0Ch],edi pop edi mov dword ptr [esi+08h],00000001h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00018B24: pop edi mov dword ptr [esi+0Ch],80004005h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00018B40: push ebx mov ebx,[esp+08h] mov eax,[ebx] mov ecx,[eax] push esi push edi push ecx call GetDriverData mov edi,eax push edi call SUB_L00017390 mov esi,eax add esi,00000624h push edi mov [esi+68h],edi call SUB_L0002E210 test eax,eax jz L00018B87 pop edi pop esi mov dword ptr [ebx+08h],00000000h mov dword ptr [ebx+0Ch],88760219h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00018B87: mov eax,[esi+0Ch] test eax,eax jnz L00018BA0 pop edi pop esi mov dword ptr [ebx+0Ch],887602B7h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00018BA0: push esi call SUB_L0002E210 pop edi mov [ebx+08h],eax pop esi mov dword ptr [ebx+0Ch],00000000h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 8 L00018BC0: sub esp,00000018h push ebx push ebp push esi push edi mov edi,[esp+2Ch] mov eax,[edi] mov ecx,[eax] push ecx xor ebx,ebx call GetDriverData push eax call SUB_L00017390 mov esi,eax add esi,00000624h call SUB_L000173A0 mov edx,[esi+0Ch] mov dword ptr [esi+0Ch],00000001h mov [esp+2Ch],eax mov eax,[edi] lea ecx,[esp+14h] push ecx mov [esp+14h],edx mov [esp+18h],eax call SUB_L00018B40 mov ebp,[esp+1Ch] call SUB_L000173A0 sub eax,[esp+2Ch] cmp eax,00000005h jnc L00018C46 L00018C1E: lea edx,[esp+14h] push edx call SUB_L00018B40 mov eax,[esp+1Ch] cmp ebp,eax jz L00018C38 inc ebx cmp ebx,00000019h mov ebp,eax jnc L00018C66 L00018C38: call SUB_L000173A0 sub eax,[esp+2Ch] cmp eax,00000005h jc L00018C1E L00018C46: mov ecx,[esp+10h] mov [esi+0Ch],ecx mov eax,00000001h mov [edi+08h],eax mov dword ptr [edi+0Ch],00000000h pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ L00018C66: mov eax,[esp+10h] mov [esi+0Ch],eax mov dword ptr [edi+08h],00000002h mov dword ptr [edi+0Ch],00000000h pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ Align 8 L00018C90: sub esp,00000014h push ebp push edi mov edi,[esp+20h] mov eax,[edi] mov ecx,[eax] push ecx call GetDriverData mov ebp,eax push ebp call SUB_L00017390 mov ecx,[eax+00000630h] add eax,00000624h test ecx,ecx mov [esp+20h],eax jnz L00018CD2 mov dword ptr [edi+14h],887602B7h pop edi mov eax,00000001h pop ebp add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ L00018CD2: push ebx push esi call SUB_L000173A0 mov ebx,eax cmp dword ptr [edi+08h],00000001h jnz L00018D60 push ebp call SUB_L0002E210 test eax,eax push ebp jz L00018D3B call SUB_L0002E210 test eax,eax jz L00018D11 L00018CF5: call SUB_L000173A0 mov esi,eax mov eax,[edi+10h] sub esi,ebx cmp esi,eax jnc L00018D15 push ebp call SUB_L0002E210 test eax,eax jnz L00018CF5 jmp L00018D15 L00018D11: mov esi,[esp+28h] L00018D15: push ebp call SUB_L0002E210 test eax,eax jnz L00018D64 L00018D1F: call SUB_L000173A0 mov esi,eax mov eax,[edi+10h] sub esi,ebx cmp esi,eax jnc L00018D64 push ebp call SUB_L0002E210 test eax,eax jz L00018D1F jmp L00018D64 L00018D3B: call SUB_L0002E210 test eax,eax jnz L00018D60 L00018D44: call SUB_L000173A0 mov esi,eax mov eax,[edi+10h] sub esi,ebx cmp esi,eax jnc L00018D64 push ebp call SUB_L0002E210 test eax,eax jz L00018D44 jmp L00018D64 L00018D60: mov esi,[esp+28h] L00018D64: cmp dword ptr [edi+08h],00000002h jnz L00018DE1 push ebp call SUB_L0002E210 test eax,eax push ebp jz L00018D9A call SUB_L0002E210 test eax,eax jz L00018DE1 L00018D7E: call SUB_L000173A0 mov esi,eax mov eax,[edi+10h] sub esi,ebx cmp esi,eax jnc L00018DE1 push ebp call SUB_L0002E210 test eax,eax jnz L00018D7E jmp L00018DE1 L00018D9A: call SUB_L0002E210 test eax,eax jnz L00018DBD L00018DA3: call SUB_L000173A0 mov esi,eax mov eax,[edi+10h] sub esi,ebx cmp esi,eax jnc L00018DBD push ebp call SUB_L0002E210 test eax,eax jz L00018DA3 L00018DBD: push ebp call SUB_L0002E210 test eax,eax jz L00018DE1 L00018DC7: call SUB_L000173A0 mov esi,eax mov eax,[edi+10h] sub esi,ebx cmp esi,eax jnc L00018DE1 push ebp call SUB_L0002E210 test eax,eax jnz L00018DC7 L00018DE1: cmp dword ptr [edi+08h],00000003h jnz L00018E3C mov ebp,[esp+28h] mov edx,[ebp+0Ch] mov dword ptr [ebp+0Ch],00000001h mov eax,[edi] lea ecx,[esp+10h] push ecx mov [esp+2Ch],edx mov [esp+14h],eax call SUB_L00018B40 mov edx,[esp+18h] cmp edx,[edi+0Ch] jz L00018E35 L00018E12: call SUB_L000173A0 mov esi,eax mov eax,[edi+10h] sub esi,ebx cmp esi,eax jnc L00018E35 lea eax,[esp+10h] push eax call SUB_L00018B40 mov ecx,[esp+18h] cmp ecx,[edi+0Ch] jnz L00018E12 L00018E35: mov edx,[esp+28h] mov [ebp+0Ch],edx L00018E3C: cmp [edi+10h],esi sbb eax,eax pop esi and eax,887602B7h pop ebx mov [edi+14h],eax pop edi mov eax,00000001h pop ebp add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ Align 16 L00018E60: sub esp,00000008h push ebx push ebp push esi push edi mov edi,[esp+1Ch] mov eax,[edi] mov ecx,[eax] push ecx call GetDriverData push eax call SUB_L00017390 call SUB_L0001ADA0 xor ebx,ebx mov [esp+14h],eax mov [edi+0Ch],ebx mov [esp+10h],ebx mov esi,00000008h L00018E92: push esi call SUB_L0002E210 test eax,eax jnz L00018EF5 cmp [edi+08h],ebx jz L00018EF1 mov edx,[esp+10h] mov ecx,L000B2B04 L00018EAA: mov eax,[edi+08h] add eax,edx mov dword ptr [eax],00000020h mov [eax+04h],esi mov ebx,[ecx] mov ebp,[ebx] lea edi,[eax+08h] mov [edi],ebp mov ebp,[ebx+04h] mov [edi+04h],ebp mov ebp,[ebx+08h] mov [edi+08h],ebp mov ebx,[ebx+0Ch] mov [edi+0Ch],ebx mov edi,[esp+14h] xor ebx,ebx add ecx,00000004h add edx,00000020h cmp ecx,L000B2B18 mov [eax+18h],edi mov edi,[esp+1Ch] mov [eax+1Ch],ebx jc L00018EAA L00018EF1: add dword ptr [edi+0Ch],00000005h L00018EF5: mov ecx,[esp+10h] add esi,00000008h add ecx,000000A0h cmp esi,00000010h mov [esp+10h],ecx jbe L00018E92 mov [edi+10h],ebx pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00018F20: sub esp,000000ACh push ebx mov ebx,[esp+000000B4h] push esi push edi lea eax,[ebx+0Ch] mov ecx,00000004h mov edi,L000B2738 mov esi,eax xor edx,edx mov dword ptr [ebx+28h],88760028h repe cmpsd jnz L00018F6B lea eax,[esp+28h] push eax call SUB_L00018350 mov eax,[ebx+1Ch] cmp eax,00000048h jc L00018F63 mov eax,00000048h L00018F63: mov ecx,eax lea esi,[esp+28h] jmp L00018F9A L00018F6B: mov ecx,00000004h mov edi,L000B2708 mov esi,eax xor edx,edx repe cmpsd jnz L00018FCA lea eax,[esp+70h] push eax call SUB_L0001AD20 mov eax,[ebx+1Ch] cmp eax,00000048h jc L00018F94 mov eax,00000048h L00018F94: mov ecx,eax lea esi,[esp+70h] L00018F9A: mov edi,[ebx+20h] mov edx,ecx shr ecx,02h rep movsd mov ecx,edx and ecx,00000003h rep movsb pop edi pop esi mov dword ptr [ebx+24h],00000048h mov dword ptr [ebx+28h],00000000h mov eax,00000001h pop ebx add esp,000000ACh retn 0004h ;------------------------------------------------------------------------------ L00018FCA: mov ecx,00000004h mov edi,L000B26C8 mov esi,eax xor edx,edx repe cmpsd jnz L00019029 lea eax,[esp+18h] push eax call SUB_L000183E0 mov eax,[ebx+1Ch] cmp eax,00000010h jc L00018FF3 mov eax,00000010h L00018FF3: mov edi,[ebx+20h] mov ecx,eax mov edx,ecx shr ecx,02h lea esi,[esp+18h] rep movsd mov ecx,edx and ecx,00000003h rep movsb pop edi pop esi mov dword ptr [ebx+24h],00000010h mov dword ptr [ebx+28h],00000000h mov eax,00000001h pop ebx add esp,000000ACh retn 0004h ;------------------------------------------------------------------------------ L00019029: mov esi,eax mov ecx,00000004h mov edi,L000B26B8 xor eax,eax repe cmpsd jnz L00019088 lea ecx,[esp+0Ch] push ecx call SUB_L0001ADB0 mov eax,[ebx+1Ch] cmp eax,0000000Ch jc L00019052 mov eax,0000000Ch L00019052: mov edi,[ebx+20h] mov ecx,eax mov edx,ecx shr ecx,02h lea esi,[esp+0Ch] rep movsd mov ecx,edx and ecx,00000003h rep movsb pop edi pop esi mov dword ptr [ebx+24h],0000000Ch mov dword ptr [ebx+28h],00000000h mov eax,00000001h pop ebx add esp,000000ACh retn 0004h ;------------------------------------------------------------------------------ L00019088: pop edi pop esi xor eax,eax pop ebx add esp,000000ACh retn 0004h ;------------------------------------------------------------------------------ Align 16 L000190A0: sub esp,00000060h push ebx push ebp push esi mov esi,[esp+70h] mov eax,[esi] mov ecx,[eax] push edi push ecx call GetDriverData push eax call SUB_L00017390 lea edx,[esp+10h] mov edi,eax push edx add edi,00000624h call SUB_L0001AC60 mov ecx,[esi+18h] mov dword ptr [ecx],00000020h mov edx,[esi+18h] mov dword ptr [edx+04h],00000001h mov ecx,[esi+14h] dec ecx jz L00019190 dec ecx jz L0001910C sub ecx,00000002h jnz L00019208 pop edi mov dword ptr [esi+1Ch],00000000h pop esi pop ebp mov eax,00000001h pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0001910C: mov edx,[esi+10h] mov ecx,00000400h cmp edx,ecx ja L00019208 cmp [esi+0Ch],ecx ja L00019208 xor ebx,ebx cmp eax,ebx mov dword ptr [esi+1Ch],88760091h jbe L00019149 mov edx,[esi+08h] lea ecx,[esp+18h] L00019139: mov ebp,[edx+08h] cmp ebp,[ecx] jnz L00019143 mov [esi+1Ch],ebx L00019143: add ecx,00000020h dec eax jnz L00019139 L00019149: cmp [esi+1Ch],ebx jnz L0001920F mov eax,[esi+08h] mov ecx,[eax+08h] push edi mov [edi+50h],ecx call SUB_L0002E210 mov edx,[esi+18h] mov eax,000003E8h mov [edx+08h],eax mov ecx,[esi+18h] mov [ecx+0Ch],eax mov edx,[esi+18h] mov [edx+10h],eax mov ecx,[esi+18h] pop edi mov [ecx+14h],eax mov [esi+1Ch],ebx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L00019190: mov edx,[esi+10h] mov ecx,00000400h cmp edx,ecx ja L00019208 cmp [esi+0Ch],ecx ja L00019208 xor ebx,ebx cmp eax,ebx mov dword ptr [esi+1Ch],88760091h jbe L000191C5 mov edx,[esi+08h] lea ecx,[esp+18h] L000191B5: mov ebp,[edx+08h] cmp ebp,[ecx] jnz L000191BF mov [esi+1Ch],ebx L000191BF: add ecx,00000020h dec eax jnz L000191B5 L000191C5: cmp [esi+1Ch],ebx jnz L0001920F mov edx,[esi+08h] mov eax,[edx+08h] push edi mov [edi+50h],eax call SUB_L0002E210 mov ecx,[esi+18h] mov eax,000003E8h mov [ecx+08h],eax mov edx,[esi+18h] mov [edx+0Ch],eax mov ecx,[esi+18h] mov [ecx+10h],eax mov edx,[esi+18h] pop edi mov [edx+14h],eax mov [esi+1Ch],ebx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L00019208: mov dword ptr [esi+1Ch],80070057h L0001920F: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ Align 4 L00019220: push esi push edi mov edi,[esp+0Ch] mov eax,[edi] mov ecx,[eax] push ecx call GetDriverData mov esi,eax push esi call SUB_L00017390 add eax,00000624h push eax mov [eax+68h],esi call SUB_L0002E210 test eax,eax jnz L00019257 mov [edi+08h],eax pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L00019257: mov dword ptr [edi+08h],8876021Ch pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L00019270: sub esp,00000060h push ebx mov ebx,[esp+68h] mov eax,[ebx] mov ecx,[eax] push ebp push esi push edi push ecx call GetDriverData push eax call SUB_L00017390 mov al,[ebx+08h] xor ebp,ebp test al,01h mov [ebx+10h],ebp jz L000192C2 lea edx,[esp+10h] push edx call SUB_L0001AC60 mov edi,[ebx+0Ch] cmp edi,ebp mov [ebx+10h],eax jz L000192C2 mov ecx,eax shl ecx,05h mov eax,ecx shr ecx,02h lea esi,[esp+10h] rep movsd mov ecx,eax and ecx,00000003h rep movsb L000192C2: test byte ptr [ebx+08h],02h jz L000192F3 lea ecx,[esp+10h] push ecx call SUB_L0001ACE0 mov edi,[ebx+0Ch] cmp edi,ebp mov [ebx+10h],eax jz L000192F3 mov ecx,eax shl ecx,05h mov edx,ecx shr ecx,02h lea esi,[esp+10h] rep movsd mov ecx,edx and ecx,00000003h rep movsb L000192F3: pop edi pop esi mov [ebx+14h],ebp pop ebp mov eax,00000001h pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ Align 16 L00019310: push esi mov esi,[esp+08h] push esi call SUB_L0002E210 test eax,eax mov dword ptr [esi+18h],00000000h jnz L0001932F mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L0001932F: xor eax,eax pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L00019340: push esi push edi mov edi,[esp+0Ch] mov eax,[edi] mov ecx,[eax] push ecx call GetDriverData mov esi,eax push esi call SUB_L00017390 mov [eax+000003DCh],esi mov dword ptr [edi+28h],00000000h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L00019370: push esi mov esi,[esp+08h] mov eax,[esi] mov ecx,[eax] push edi push ecx call GetDriverData mov edi,eax push edi call SUB_L00017390 mov edx,[eax+00000634h] add eax,00000624h mov [eax+68h],edi pop edi mov [esi+08h],edx mov dword ptr [esi+20h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 L000193B0: push esi push edi mov edi,[esp+0Ch] mov eax,[edi] mov ecx,[eax] push ecx call GetDriverData mov esi,eax push esi call SUB_L00017390 lea ecx,[eax+00000624h] mov [ecx+68h],esi mov edx,[edi+0Ch] mov edx,[edx] mov edx,[edx+20h] test edx,edx jnz L000193E0 lea edx,[eax+3Ch] L000193E0: mov eax,[edx+3Ch] push ecx mov [ecx+10h],eax call SUB_L0002E210 mov dword ptr [edi+10h],00000000h pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L00019400: mov eax,[esp+04h] push eax call SUB_L0002E210 retn 0004h ;------------------------------------------------------------------------------ Align 4 L00019410: sub esp,00000014h push ebx push ebp push esi push edi mov edi,[esp+28h] mov eax,[edi] push eax call GetDriverData mov ebx,eax push ebx mov [esp+24h],ebx call SUB_L00017390 mov [eax+000002A4h],ebx lea esi,[eax+000002A8h] mov [esi+00000134h],ebx mov edx,[edi+2Ch] xor ecx,ecx mov [edi+68h],ecx mov ebp,[ebx+28h] mov [esp+28h],eax mov eax,[esi+0Ch] mov [esi+0Ch],ecx cmp [ebx+0000011Ch],ecx mov [esp+14h],eax mov eax,[edi+18h] mov [esp+1Ch],ebp mov [esp+10h],eax jnz L00019483 mov dword ptr [edi+68h],80004001h pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ L00019483: mov eax,[eax+24h] test eax,eax jz L00019491 L0001948A: mov eax,[eax] inc ecx test eax,eax jnz L0001948A L00019491: test dh,02h mov [esi+08h],ecx mov eax,[edi+18h] mov [esp+18h],ecx jz L0001952B mov ebx,[eax] mov ebp,[esi+1Ch] xor edx,edx cmp ebp,[ebx+48h] jz L000194B5 mov edx,00000001h L000194B5: xor ebp,ebp cmp ecx,ebp jz L000194DB mov ebx,[esi+20h] L000194BE: mov edx,[eax] cmp [edx+08h],ebx jz L000194D5 dec ecx mov eax,[eax+24h] mov eax,[eax+04h] mov edx,00000001h jnz L000194BE jmp L000194DB L000194D5: xor edx,edx cmp ecx,ebp jnz L00019506 L000194DB: mov ecx,[eax] mov eax,[ecx+08h] cmp eax,[esi+20h] jnz L000194E9 cmp edx,ebp jz L00019506 L000194E9: cmp [esi],ebp jz L00019506 mov ecx,[esp+14h] mov [edi+68h],ebp pop edi mov [esi+0Ch],ecx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ L00019506: push esi mov dword ptr [esi+0Ch],00000001h mov [esi+20h],ebp mov [esi+24h],ebp call SUB_L0002E380 mov [edi+68h],ebp pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ L0001952B: test dh,40h mov ebx,00000002h jz L00019666 xor edx,edx cmp [esi+20h],edx jz L000195A3 mov ebx,[eax] mov ebp,[esi+1Ch] cmp ebp,[ebx+48h] jz L0001954F mov edx,00000001h L0001954F: test ecx,ecx jz L00019573 L00019553: mov ebx,[eax] mov edx,[esi+20h] cmp [ebx+08h],edx jz L0001956D dec ecx mov edx,[eax+24h] mov eax,[edx+04h] mov edx,00000001h jnz L00019553 jmp L00019573 L0001956D: xor edx,edx test ecx,ecx jnz L000195AD L00019573: mov ecx,[eax] mov eax,[esi+20h] cmp [ecx+08h],eax jnz L00019581 test edx,edx jz L000195AD L00019581: cmp dword ptr [esi],00000000h jz L000195AD mov ecx,[esp+14h] mov dword ptr [edi+68h],88760168h pop edi mov [esi+0Ch],ecx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ L000195A3: mov edx,[eax] mov eax,[edx+48h] mov [esi+1Ch],eax jmp L000195B6 L000195AD: mov ebp,[esp+1Ch] mov ebx,00000002h L000195B6: mov edx,[esp+10h] mov [esi+0Ch],ebx mov eax,[edx] mov ecx,[eax+08h] mov [esi+20h],ecx mov eax,[edi+18h] mov eax,[eax] mov eax,[eax+20h] xor ecx,ecx cmp eax,ecx jnz L000195DA mov eax,[esp+28h] add eax,0000003Ch L000195DA: mov eax,[eax+3Ch] mov [esi+28h],eax mov [esi+24h],ecx mov [esi+2Ch],ecx mov eax,[edi+24h] sub eax,[edi+1Ch] mov [esi+60h],eax mov eax,[edi+28h] sub eax,[edi+20h] mov [esi+64h],eax mov edx,[edx] mov eax,[edx+0Ch] mov [esi+70h],eax mov eax,[edi+08h] mov edx,[edi+10h] sub edx,eax mov [esi+68h],edx mov edx,[edi+0Ch] mov eax,[edi+14h] sub eax,edx mov [esi+6Ch],eax mov edx,[edi+08h] mov [esi+00000098h],edx mov eax,[edi+10h] mov [esi+0000009Ch],eax mov edx,[edi+14h] mov [esi+000000A4h],edx mov eax,[edi+0Ch] mov [esi+000000A0h],eax mov edx,[edi+1Ch] mov [esi+000000A8h],edx mov eax,[edi+24h] mov [esi+000000ACh],eax mov edx,[edi+28h] mov [esi+000000B4h],edx mov eax,[edi+20h] mov [esi+000000B0h],eax mov [esi+00000088h],ecx jmp L00019668 L00019666: xor ecx,ecx L00019668: mov eax,[esp+10h] test byte ptr [eax+05h],20h mov edx,00000010h jz L00019732 mov ecx,eax mov eax,[ecx] mov ecx,[eax+28h] add eax,00000024h test cl,04h jz L000196D5 mov ecx,[eax+08h] mov [esi+000000B8h],ecx mov dword ptr [esi+10h],00000001h cmp dword ptr [eax+08h],43414D49h jnz L000196AD mov dword ptr [esi+000000B8h],33434D49h L000196AD: mov eax,[esi+000000B8h] cmp eax,43414D49h jz L000196C5 cmp eax,524F4749h jnz L00019792 L000196C5: mov eax,[edi+18h] mov ecx,[eax] mov eax,[ecx+08h] mov [esi+28h],eax jmp L00019792 L000196D5: test cl,40h jz L00019792 mov [esi+10h],ebx mov dword ptr [esi+000000B8h],00000000h cmp [eax+0Ch],edx jnz L00019792 mov [esi+10h],ebx cmp dword ptr [eax+10h],0000F800h mov ecx,0000001Fh jnz L00019719 cmp dword ptr [eax+14h],000007E0h jnz L00019719 cmp [eax+18h],ecx jnz L00019719 mov [esi+000000BCh],edx L00019719: cmp dword ptr [eax+10h],00007C00h jnz L00019792 cmp dword ptr [eax+14h],000003E0h jnz L00019792 cmp [eax+18h],ecx jnz L00019792 jmp L00019788 L00019732: mov [esi+000000B8h],ecx mov ecx,[esp+28h] mov [esi+10h],ebx cmp [ecx+10h],edx jnz L00019792 mov eax,[esp+28h] mov [esi+10h],ebx cmp dword ptr [eax+14h],0000F800h mov ecx,0000001Fh jnz L0001976D cmp dword ptr [eax+18h],000007E0h jnz L0001976D cmp [eax+1Ch],ecx jnz L0001976D mov [esi+000000BCh],edx L0001976D: cmp dword ptr [eax+14h],00007C00h jnz L00019792 mov eax,[esp+28h] cmp dword ptr [eax+18h],000003E0h jnz L00019792 cmp [eax+1Ch],ecx jnz L00019792 L00019788: mov dword ptr [esi+000000BCh],0000000Fh L00019792: mov eax,[edi+2Ch] test ah,0Ch jz L000197D8 mov ecx,[esi+14h] and ecx,00002000h or ecx,00000020h mov [esi+14h],ecx mov eax,[edi+2Ch] test ah,04h jz L000197C6 mov edx,[edi+04h] mov eax,[edx+1Ch] push esi push ebp mov [esi+000000ECh],eax call SUB_L0002FC20 jmp L00019834 L000197C6: mov ecx,[edi+54h] push esi push ebp mov [esi+000000ECh],ecx call SUB_L0002FC20 jmp L00019834 L000197D8: test ah,30h mov eax,[esi+14h] jz L0001982E and eax,00002000h or eax,edx mov [esi+14h],eax mov eax,[edi+2Ch] test ah,10h jz L00019813 mov ecx,[edi+18h] mov edx,[ecx+14h] mov [esi+000000C0h],edx mov eax,[edi+18h] mov ecx,[eax+10h] push esi push ebp mov [esi+000000C4h],ecx call SUB_L0002FC20 jmp L00019834 L00019813: mov edx,[edi+5Ch] mov [esi+000000C0h],edx mov eax,[edi+58h] push esi push ebp mov [esi+000000C4h],eax call SUB_L0002FC20 jmp L00019834 L0001982E: and eax,FFFFFFCFh mov [esi+14h],eax L00019834: mov edx,[esi+14h] and edx,FFFFF9FFh mov [esi+14h],edx test dword ptr [edi+2Ch],L00080000 mov eax,edx jz L00019865 test [edi+60h],bl jz L00019858 or eax,00000400h mov [esi+14h],eax L00019858: test byte ptr [edi+60h],04h jz L00019865 or dword ptr [esi+14h],00000200h L00019865: test dword ptr [edi+2Ch],00800000h jz L00019898 mov eax,[esi+64h] cmp eax,ebx jnc L0001988B mov dword ptr [edi+68h],88760096h pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ L0001988B: and eax,FFFFFFFEh mov [esi+64h],eax or dword ptr [esi+0Ch],00004000h L00019898: test dword ptr [edi+2Ch],00100000h mov ebp,00200000h jz L0001994C mov edx,[esi+0Ch] or edx,00000040h mov [esi+0Ch],edx mov ecx,[edi+18h] mov ebx,edx mov edx,[ecx+24h] mov eax,[edx+04h] mov ecx,[esp+18h] xor edx,edx test ecx,ecx jbe L0001993E L000198C8: mov ecx,edx sub ecx,00000000h jz L0001990D dec ecx jz L000198F1 dec ecx jnz L00019927 test eax,eax jz L00019935 mov ecx,[eax] mov ecx,[ecx+20h] test ecx,ecx jnz L000198E9 mov ecx,[esp+28h] add ecx,0000003Ch L000198E9: mov ecx,[ecx+3Ch] mov [esi+34h],ecx jmp L00019927 L000198F1: test eax,eax jz L00019935 mov ecx,[eax] mov ecx,[ecx+20h] test ecx,ecx jnz L00019905 mov ecx,[esp+28h] add ecx,0000003Ch L00019905: mov ecx,[ecx+3Ch] mov [esi+30h],ecx jmp L00019927 L0001990D: test eax,eax jz L00019935 mov ecx,[eax] mov ecx,[ecx+20h] test ecx,ecx jnz L00019921 mov ecx,[esp+28h] add ecx,0000003Ch L00019921: mov ecx,[ecx+3Ch] mov [esi+2Ch],ecx L00019927: test eax,eax jz L00019935 mov ecx,[eax+24h] test ecx,ecx jz L00019935 mov eax,[ecx+04h] L00019935: mov ecx,[esp+18h] inc edx cmp edx,ecx jc L000198C8 L0001993E: test [edi+2Ch],ebp jz L00019958 or ebx,00000080h mov [esi+0Ch],ebx L0001994C: test [edi+2Ch],ebp jz L00019958 or dword ptr [esi+0Ch],00000100h L00019958: mov edx,[esi+28h] mov eax,[esi+2Ch] push esi mov [esi+40h],edx mov [esi+44h],eax call SUB_L0002E380 test eax,eax jz L00019984 mov dword ptr [edi+68h],8007000Eh pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ L00019984: mov ecx,[esp+20h] push ecx call SUB_L0002E360 mov edx,[esp+10h] mov ecx,[edx] mov ecx,[ecx+20h] test ecx,ecx jnz L000199A2 mov edx,[esp+28h] lea ecx,[edx+3Ch] L000199A2: mov [ecx+10h],eax mov dword ptr [edi+68h],00000000h pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000014h retn 0004h ;------------------------------------------------------------------------------ Align 8 L000199C0: push esi mov esi,[esp+08h] mov eax,[esi] push edi push eax call GetDriverData mov edi,eax push edi call SUB_L00017390 mov edx,[eax+00000310h] add eax,000002A8h mov [eax+00000134h],edi mov ecx,[esi+0Ch] mov [eax+00000098h],ecx add edx,[esi+0Ch] mov [eax+0000009Ch],edx mov ecx,[esi+10h] mov edx,[eax+6Ch] mov [eax+000000A0h],ecx add edx,[esi+10h] push eax mov [eax+000000A4h],edx call SUB_L0002F7A0 pop edi mov dword ptr [esi+14h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L00019A30: push esi mov esi,[esp+08h] mov eax,[esi] push edi push eax call GetDriverData mov edi,eax push edi call SUB_L00017390 lea ecx,[eax+000002A8h] mov [ecx+00000134h],edi mov edx,[esi+08h] test dl,04h jz L00019A76 mov dword ptr [ecx+14h],00000020h mov edx,[esi+10h] mov [ecx+000000ECh],edx mov eax,[eax+10h] push ecx push eax call SUB_L0002FC20 jmp L00019AA5 L00019A76: test dl,10h jz L00019AA0 mov dword ptr [ecx+14h],00000010h mov edx,[esi+10h] mov [ecx+000000C0h],edx mov edx,[esi+0Ch] mov [ecx+000000C4h],edx mov eax,[eax+10h] push ecx push eax call SUB_L0002FC20 jmp L00019AA5 L00019AA0: test dl,0Ah jz L00019AC3 L00019AA5: mov ecx,[esi+04h] mov dword ptr [esi+14h],00000000h mov eax,[ecx+08h] test ah,10h jz L00019ACA push esi call [L000B6F20] pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ L00019AC3: mov dword ptr [esi+14h],80004001h L00019ACA: pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L00019AE0: sub esp,000000FCh push ebx mov ebx,[esp+00000104h] mov eax,[ebx] push ebp push esi push edi push eax call GetDriverData mov edi,eax push edi mov [esp+28h],edi call SUB_L00017390 mov ebp,[ebx+04h] mov ecx,[ebp+00h] mov edx,[ebx+18h] mov esi,eax mov eax,[esi+0000069Ch] mov [esp+18h],ecx cmp eax,[esi+00000694h] mov [esp+28h],esi mov [esp+1Ch],ebp mov [esp+10h],edx jbe L00019B5A mov ecx,[esi+00000698h] push ecx push edi call SUB_L00029710 test eax,eax jz L00019B50 L00019B3F: mov edx,[esi+00000698h] push edx push edi call SUB_L00029710 test eax,eax jnz L00019B3F L00019B50: mov dword ptr [esi+0000069Ch],00000000h L00019B5A: mov edx,[esi+0000069Ch] xor eax,eax inc edx mov [esi+0000069Ch],edx mov ecx,0000002Bh lea edi,[esp+40h] rep stosd mov eax,[esp+24h] mov [esp+40h],eax mov ecx,[ebp+00h] mov eax,[ecx+20h] test eax,eax lea ecx,[esi+3Ch] jz L00019B8B mov ecx,eax L00019B8B: mov edx,[esi+000006A0h] cmp edx,[ecx+3Ch] jz L00019BAA test eax,eax lea ecx,[esi+3Ch] jz L00019B9F mov ecx,eax L00019B9F: mov edx,[esi+000006A4h] cmp edx,[ecx+3Ch] jnz L00019BF2 L00019BAA: test eax,eax mov ecx,[esi+000002A4h] mov edx,[ecx+58h] jnz L00019BBA lea eax,[edx+3Ch] L00019BBA: mov eax,[eax+0Ch] push eax push ecx call GHAL_UpdateFlipStatus test eax,eax jz L00019BF2 lea eax,[esp+40h] push eax call SUB_L0002E310 test eax,eax jz L00019BF2 pop edi pop esi pop ebp mov dword ptr [ebx+00000098h],8876021Ch mov eax,00000001h pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L00019BF2: mov eax,[ebx+3Ch] mov ebp,[ebp+00h] mov ecx,[ebx+2Ch] shr eax,10h mov [esp+2Ch],eax mov eax,[ebp+30h] test eax,eax mov [esp+20h],ecx jnz L00019C14 mov edx,[esp+24h] mov eax,[edx+28h] L00019C14: shr eax,03h mov [esp+14h],eax mov eax,[esp+18h] test byte ptr [eax+28h],04h jz L00019C6F mov eax,[eax+2Ch] cmp eax,34344149h ja L00019C48 jz L00019C67 cmp eax,32315659h jz L00019C67 cmp eax,32595559h jz L00019C5D cmp eax,33434D49h jz L00019C67 jmp L00019C6F L00019C48: cmp eax,34344941h jz L00019C67 cmp eax,55595659h jz L00019C5D cmp eax,59565955h jnz L00019C6F L00019C5D: mov dword ptr [esp+14h],00000002h jmp L00019C6F L00019C67: mov dword ptr [esp+14h],00000001h L00019C6F: mov eax,[esp+10h] test eax,eax jz L00019CBD mov ecx,[eax] mov eax,[ecx+30h] test eax,eax jnz L00019C87 mov eax,[esp+24h] mov eax,[eax+28h] L00019C87: mov edx,[esp+14h] shr eax,03h cmp eax,edx mov [esp+34h],eax jz L00019CBD mov dl,[ecx+28h] mov al,40h test al,dl jz L00019CBD test [ebp+28h],al jz L00019CBD mov dword ptr [ebx+00000098h],80004001h L00019CAE: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L00019CBD: push ebx call SUB_L0001BD10 test eax,eax jnz L00019CD9 pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L00019CD9: mov ecx,[ebx+08h] mov ebp,[ebx+10h] mov edi,[esp+1Ch] mov edx,[ebx+0Ch] mov edi,[edi] mov ebx,[ebx+14h] mov edi,[edi+20h] mov eax,[esp+18h] mov ax,[eax+0Ch] sub ebp,ecx sub ebx,edx test edi,edi jnz L00019D01 lea edi,[esi+3Ch] L00019D01: mov esi,[edi+3Ch] mov edi,[esp+1Ch] and eax,0000FFFFh mov [esp+5Eh],dx mov [esp+5Ch],cx mov [esp+58h],eax mov [esp+54h],esi mov [esp+64h],bp mov [esp+66h],bx mov ecx,[edi] mov edx,[ecx+18h] mov [esp+7Ch],edx mov eax,[edi] mov ecx,[eax+1Ch] mov dl,[esp+14h] mov eax,[esp+2Ch] mov [esp+00000080h],ecx mov ecx,[esp+00000110h] dec dl mov dword ptr [ecx+00000098h],00000000h mov ecx,[esp+10h] or dl,04h test ecx,ecx mov word ptr [esp+44h],0001h mov [esp+46h],al mov [esp+47h],dl jz L0001A229 test dword ptr [esp+20h],L00020000 jz L0001A1CA cmp eax,000000CCh jnz L0001A1CA mov ecx,[esp+00000110h] mov esi,[ecx+20h] mov edi,[ecx+1Ch] mov eax,[ecx+24h] mov edx,[ecx+28h] mov ecx,[esp+10h] mov ecx,[ecx] sub edx,esi mov [esp+38h],esi mov si,[ecx+0Ch] mov ecx,[ecx+20h] sub eax,edi test ecx,ecx jnz L00019DC3 mov ecx,[esp+28h] add ecx,0000003Ch L00019DC3: mov ecx,[ecx+3Ch] mov [esp+3Ch],ecx mov ecx,[esp+20h] and ecx,SUB_L00014000 mov [esp+30h],ecx jz L00019E31 test dword ptr [esp+20h],00010000h jz L00019DFD mov ecx,[esp+00000110h] mov ecx,[ecx+00000090h] mov [esp+18h],ecx mov dword ptr [esp+2Ch],00000100h L00019DFD: mov ecx,[esp+20h] test ch,40h jz L00019E1E mov ecx,[esp+00000110h] mov ecx,[ecx+00000088h] mov [esp+18h],ecx mov ecx,00000700h jmp L00019E22 L00019E1E: mov ecx,[esp+2Ch] L00019E22: mov [esp+48h],ecx mov ecx,[esp+18h] mov [esp+000000E4h],ecx L00019E31: mov ecx,[esp+3Ch] mov [esp+00000088h],ecx mov cx,[esp+38h] and esi,0000FFFFh mov [esp+00000092h],cx mov ecx,[esp+10h] mov [esp+0000008Ch],esi mov [esp+00000090h],di mov [esp+00000094h],ax mov [esp+00000096h],dx mov esi,[ecx] mov esi,[esi+18h] mov [esp+000000B0h],esi mov esi,[ecx] mov esi,[esi+1Ch] mov [esp+000000B4h],esi mov esi,[ecx] add esi,00000024h mov ecx,00000008h lea edi,[esp+000000ECh] rep movsd test byte ptr [esp+000000F0h],04h jz L0001A088 mov esi,[esp+10h] mov eax,[esp+1Ch] mov ecx,00000004h mov [esp+000000A8h],ecx mov edx,[esi] mov edx,[edx+2Ch] mov [esp+000000A4h],edx mov edi,[eax] test [edi+28h],cl jnz L00019F79 mov ecx,00000010h mov esi,00000002h mov [esp+74h],esi mov dword ptr [esp+70h],00000000h mov [esp+00000084h],cx mov eax,[eax] cmp [eax+30h],ecx jnz L00019F44 cmp dword ptr [eax+34h],00007C00h jnz L00019F1D cmp dword ptr [eax+38h],000003E0h jnz L00019F1D cmp dword ptr [eax+3Ch],0000001Fh jnz L00019F1D mov word ptr [esp+00000084h],000Fh L00019F1D: cmp edx,32595559h jz L00019F6A cmp edx,59565955h jz L00019F6A cmp edx,55595659h jz L00019F6A lea ecx,[esp+40h] push ecx call SUB_L0002CA60 jmp L0001A1CE L00019F44: cmp [esp+14h],esi jz L00019F1D mov eax,[esp+00000110h] pop edi pop esi pop ebp mov dword ptr [eax+00000098h],80004001h xor eax,eax pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L00019F6A: lea edx,[esp+40h] push edx call SUB_L0002CA40 jmp L0001A1CE L00019F79: mov [esp+74h],ecx mov eax,[eax] mov ecx,[eax+2Ch] mov eax,[esp+000000F4h] cmp eax,32595559h mov [esp+70h],ecx jz L0001A052 cmp eax,59565955h jz L0001A052 cmp eax,55595659h jz L0001A052 cmp eax,32315659h jz L0001A01C cmp eax,33434D49h jz L0001A01C cmp eax,34344941h jz L00019FCA cmp eax,34344149h jnz L00019FFC L00019FCA: cmp ecx,33434D49h jnz L00019FFC mov eax,[esi+24h] test eax,eax jnz L00019FE9 push eax lea ecx,[esp+44h] push ecx call SUB_L0002DCA0 jmp L0001A1CE L00019FE9: mov eax,[eax+04h] push eax lea ecx,[esp+44h] push ecx call SUB_L0002DCA0 jmp L0001A1CE L00019FFC: mov edx,[esp+00000110h] pop edi pop esi pop ebp mov dword ptr [edx+00000098h],80070057h xor eax,eax pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L0001A01C: cmp ecx,32595559h jz L0001A043 cmp ecx,59565955h jz L0001A043 cmp ecx,55595659h jz L0001A043 lea eax,[esp+40h] push eax call SUB_L0002C1C0 jmp L0001A1CE L0001A043: lea ecx,[esp+40h] push ecx call SUB_L0002C6D0 jmp L0001A1CE L0001A052: cmp ecx,32595559h jz L0001A079 cmp ecx,59565955h jz L0001A079 cmp ecx,55595659h jz L0001A079 lea edx,[esp+40h] push edx call SUB_L0002C380 jmp L0001A1CE L0001A079: lea eax,[esp+40h] push eax call SUB_L0002C180 jmp L0001A1CE L0001A088: cmp eax,ebp jnz L0001A0B6 cmp edx,ebx jnz L0001A0B6 mov eax,[esp+30h] test eax,eax jz L0001A0A7 lea ecx,[esp+40h] push ecx call SUB_L00029840 jmp L0001A1CE L0001A0A7: lea edx,[esp+40h] push edx call SUB_L0002B5D0 jmp L0001A1CE L0001A0B6: mov esi,[esp+1Ch] xor edx,edx mov ecx,00000010h mov [esp+70h],edx mov [esp+00000084h],cx mov [esp+74h],edx mov eax,[esi] cmp [eax+30h],ecx mov edi,00007C00h mov ebx,000003E0h mov ebp,0000001Fh jnz L0001A13C cmp [eax+34h],edi jnz L0001A100 cmp [eax+38h],ebx jnz L0001A100 cmp [eax+3Ch],ebp jnz L0001A100 mov word ptr [esp+00000084h],000Fh L0001A100: mov [esp+000000A4h],edx mov [esp+000000A8h],edx mov edx,[esp+10h] mov [esp+000000B8h],cx mov eax,[edx] cmp [eax+30h],ecx jnz L0001A163 cmp [eax+34h],edi jnz L0001A18A cmp [eax+38h],ebx jnz L0001A18A cmp [eax+3Ch],ebp jnz L0001A18A mov word ptr [esp+000000B8h],000Fh jmp L0001A18A L0001A13C: cmp dword ptr [esp+14h],00000002h jz L0001A100 mov eax,[esp+00000110h] pop edi pop esi pop ebp mov dword ptr [eax+00000098h],80070057h xor eax,eax pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L0001A163: cmp dword ptr [esp+34h],00000002h jz L0001A18A mov ecx,[esp+00000110h] pop edi pop esi pop ebp mov dword ptr [ecx+00000098h],80070057h xor eax,eax pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L0001A18A: mov ecx,[edx+04h] mov eax,00002000h test eax,ecx jnz L0001A19E mov ecx,[edx+08h] test ch,22h jz L0001A1A9 L0001A19E: mov dword ptr [esp+000000A8h],00000002h L0001A1A9: test [esi+04h],eax jnz L0001A1B6 mov eax,[esi+08h] test ah,22h jz L0001A1BE L0001A1B6: mov dword ptr [esp+74h],00000002h L0001A1BE: lea edx,[esp+40h] push edx call SUB_L0002D260 jmp L0001A1CE L0001A1CA: mov eax,[esp+30h] L0001A1CE: cmp eax,FFFFFFFFh jz L0001A206 mov esi,[esp+28h] mov ecx,[esp+10h] mov [esi+00000698h],eax mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L0001A1ED lea ecx,[esi+3Ch] L0001A1ED: mov [ecx+08h],eax mov ecx,[esp+1Ch] mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L0001A302 jmp L0001A2FF L0001A206: mov eax,[esp+00000110h] pop edi pop esi pop ebp mov dword ptr [eax+00000098h],80004005h mov eax,00000001h pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L0001A229: test dword ptr [esp+20h],02000400h jz L00019CAE mov esi,[esp+00000110h] mov eax,[esi+00000084h] mov [esp+000000C8h],eax mov eax,[esp+18h] mov byte ptr [esp+46h],F0h mov dword ptr [esp+000000E8h],00000002h test byte ptr [eax+28h],04h jz L0001A2DD mov eax,[eax+2Ch] cmp eax,34344149h ja L0001A2AC jz L0001A2D1 cmp eax,32315659h jz L0001A28A cmp eax,32595559h jz L0001A2C5 cmp eax,33434D49h jnz L0001A357 L0001A28A: mov dword ptr [esp+74h],00000004h mov ecx,[edi] mov edx,[ecx+2Ch] lea eax,[esp+40h] push eax mov [esp+74h],edx mov byte ptr [esp+4Bh],04h call SUB_L0002B4A0 jmp L0001A2E7 L0001A2AC: cmp eax,34344941h jz L0001A2D1 cmp eax,55595659h jz L0001A2C5 cmp eax,59565955h jnz L0001A357 L0001A2C5: lea ecx,[esp+40h] mov byte ptr [esp+47h],05h push ecx jmp L0001A2E2 L0001A2D1: lea edx,[esp+40h] mov byte ptr [esp+47h],04h push edx jmp L0001A2E2 L0001A2DD: lea eax,[esp+40h] push eax L0001A2E2: call SUB_L0002AF80 L0001A2E7: cmp eax,FFFFFFFFh jz L0001A357 mov esi,[esp+28h] mov [esi+00000698h],eax mov ecx,[edi] mov ecx,[ecx+20h] test ecx,ecx jnz L0001A302 L0001A2FF: lea ecx,[esi+3Ch] L0001A302: mov edx,[esp+00000110h] mov [ecx+08h],eax test dword ptr [edx+2Ch],01000000h jz L0001A345 mov eax,[esi+00000698h] mov edi,[esp+24h] push eax push edi call SUB_L00029710 test eax,eax jz L0001A33B L0001A32A: mov ecx,[esi+00000698h] push ecx push edi call SUB_L00029710 test eax,eax jnz L0001A32A L0001A33B: mov dword ptr [esi+0000069Ch],00000000h L0001A345: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ L0001A357: pop edi mov dword ptr [esi+00000098h],80004005h pop esi pop ebp mov eax,00000001h pop ebx add esp,000000FCh retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001A380: sub esp,000000B4h push ebx push ebp push esi mov esi,[esp+000000C4h] mov eax,[esi] push edi push eax call GetDriverData mov ebp,eax push ebp call SUB_L00017390 mov edi,eax mov eax,[ebp+0000011Ch] test eax,eax mov [esp+10h],edi jnz L0001A3CA pop edi mov dword ptr [esi+10h],80004001h pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001A3CA: mov eax,[esi+0Ch] test al,08h jz L0001A3E9 cmp dword ptr [ebp+30h],00000400h jnc L0001A3E9 cmp dword ptr [ebp+34h],00000300h jnc L0001A3E9 and eax,FFFFFFF7h mov [esi+0Ch],eax L0001A3E9: lea ebx,[edi+000002A8h] mov [ebx+00000134h],ebp mov ecx,[esi+04h] test byte ptr [ecx+08h],80h push ebp jnz L0001A42C call SUB_L0002E340 push eax push ebp call GHAL_UpdateFlipStatus cmp eax,[edi+00000690h] jc L0001A47B pop edi mov dword ptr [esi+10h],8876021Ch pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001A42C: call SUB_L0002E360 push eax push ebp call SUB_L0002FE20 test eax,eax jz L0001A455 pop edi mov dword ptr [esi+10h],8876021Ch pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001A455: cmp dword ptr [edi+000006B4h],00000001h jnz L0001A47B L0001A45E: mov eax,[esi+08h] mov edx,[eax] mov eax,[edx+20h] test eax,eax jnz L0001A46D lea eax,[edi+3Ch] L0001A46D: mov eax,[eax+14h] push eax push ebp call SUB_L00029710 test eax,eax jnz L0001A45E L0001A47B: mov edx,[esi+08h] mov eax,[edx] add eax,00000024h mov [esp+14h],eax xor eax,eax mov ecx,0000002Bh lea edi,[esp+18h] rep stosd mov ecx,[esi+04h] test byte ptr [ecx+08h],80h jz L0001A5D1 mov edi,[ebx+20h] test edi,edi jz L0001A4E4 mov eax,[ecx+24h] mov ecx,[ecx] cmp [ecx+08h],edi jz L0001A4E4 test eax,eax jz L0001A4C6 L0001A4B6: mov ecx,[eax+04h] mov ecx,[ecx] cmp [ecx+08h],edi jz L0001A4E4 mov eax,[eax] test eax,eax jnz L0001A4B6 L0001A4C6: cmp dword ptr [ebx],00000000h jz L0001A4E4 pop edi mov dword ptr [esi+10h],88760168h pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001A4E4: mov edx,[edx] mov eax,[edx+20h] test eax,eax mov edi,[esp+10h] jnz L0001A4F4 lea eax,[edi+3Ch] L0001A4F4: mov eax,[eax+3Ch] mov [ebx+28h],eax mov ecx,[esi+08h] mov edx,[ecx] mov eax,[edx+08h] mov ecx,[esp+14h] mov [ebx+20h],eax mov eax,[ecx+08h] cmp eax,43414D49h jz L0001A51A cmp eax,524F4749h jnz L0001A525 L0001A51A: mov edx,[esi+08h] mov eax,[edx] mov ecx,[eax+08h] mov [ebx+28h],ecx L0001A525: mov eax,[ebx+0Ch] and eax,FFFFE7FFh mov [ebx+0Ch],eax mov ecx,[esi+0Ch] test cl,04h jz L0001A53F or eax,00000800h jmp L0001A549 L0001A53F: test cl,02h jz L0001A54C or eax,00001000h L0001A549: mov [ebx+0Ch],eax L0001A54C: mov eax,[esi+08h] mov edx,[eax] mov eax,[edx+20h] test eax,eax mov ecx,[ebp+58h] jnz L0001A55E lea eax,[ecx+3Ch] L0001A55E: mov eax,[eax+08h] push eax push ebp call SUB_L00029710 test eax,eax jnz L0001A54C push ebx call SUB_L0002F890 push ebp call SUB_L0002E360 mov ecx,[esi+04h] mov ecx,[ecx] mov ecx,[ecx+20h] test ecx,ecx jnz L0001A587 lea ecx,[edi+3Ch] L0001A587: mov [ecx+10h],eax mov ecx,[esi+08h] mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L0001A599 lea ecx,[edi+3Ch] L0001A599: mov [ecx+10h],eax mov eax,[esi+04h] mov eax,[eax] mov eax,[eax+20h] test eax,eax jnz L0001A5AB lea eax,[edi+3Ch] L0001A5AB: mov ecx,[eax+3Ch] mov [edi+000006A8h],ecx mov eax,[esi+08h] mov edx,[eax] mov eax,[edx+20h] test eax,eax jnz L0001A5C3 lea eax,[edi+3Ch] L0001A5C3: mov eax,[eax+3Ch] mov [edi+000006ACh],eax jmp L0001A6EE L0001A5D1: mov ecx,[edx] mov eax,[ecx+20h] test eax,eax mov edi,[esp+10h] jnz L0001A5E1 lea eax,[edi+3Ch] L0001A5E1: mov eax,[eax+3Ch] mov [esp+2Ch],eax mov ecx,[edx] mov edx,[ecx+0Ch] test byte ptr [esi+0Ch],08h mov [esp+30h],edx mov word ptr [esp+1Ch],0001h mov [esp+18h],ebp jz L0001A607 or dword ptr [esp+20h],00000010h L0001A607: lea eax,[esp+18h] push eax call SUB_L0002E250 cmp eax,FFFFFFFFh jnz L0001A62F pop edi mov dword ptr [esi+10h],80004005h pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001A62F: mov ecx,[esi+04h] mov ecx,[ecx] mov ecx,[ecx+20h] test ecx,ecx jnz L0001A63E lea ecx,[edi+3Ch] L0001A63E: mov [ecx+08h],eax mov ecx,[esi+08h] mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L0001A650 lea ecx,[edi+3Ch] L0001A650: mov [ecx+08h],eax mov eax,[esi+08h] mov ecx,[eax] mov edx,[ecx+08h] mov [ebp+3Ch],edx mov eax,[esi+08h] mov eax,[eax] mov eax,[eax+20h] test eax,eax jnz L0001A66D lea eax,[edi+3Ch] L0001A66D: mov ecx,[eax+3Ch] mov [ebp+40h],ecx mov edx,[esi+08h] mov eax,[edx] mov ecx,[eax+1Ch] mov [ebp+44h],ecx mov edx,[esi+08h] mov eax,[edx] mov ecx,[eax+18h] mov [ebp+48h],ecx mov edx,[esi+08h] mov eax,[edx] mov ecx,[eax+0Ch] mov [ebp+4Ch],ecx mov eax,[esi+04h] mov edx,[eax] mov eax,[edx+20h] test eax,eax jnz L0001A6A3 lea eax,[edi+3Ch] L0001A6A3: mov eax,[eax+3Ch] mov [edi+000006A0h],eax mov eax,[esi+08h] mov ecx,[eax] mov eax,[ecx+20h] test eax,eax jnz L0001A6BB lea eax,[edi+3Ch] L0001A6BB: mov edx,[eax+3Ch] push ebp mov [edi+000006A4h],edx call SUB_L0002E340 mov ecx,[esi+04h] mov ecx,[ecx] mov ecx,[ecx+20h] test ecx,ecx jnz L0001A6D9 lea ecx,[edi+3Ch] L0001A6D9: mov [ecx+0Ch],eax mov ecx,[esi+08h] mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L0001A6EB lea ecx,[edi+3Ch] L0001A6EB: mov [ecx+0Ch],eax L0001A6EE: pop edi mov dword ptr [esi+10h],00000000h pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001A710: push esi mov esi,[esp+08h] mov eax,[esi] push edi push eax call GetDriverData mov edi,eax push edi call SUB_L00017390 mov ecx,eax cmp dword ptr [esi+08h],00000001h jnz L0001A73F pop edi mov dword ptr [esi+0Ch],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L0001A73F: mov eax,[esi+04h] mov edx,[eax] mov eax,[edx+20h] test eax,eax jnz L0001A74E lea eax,[ecx+3Ch] L0001A74E: mov eax,[eax+08h] push eax push edi call SUB_L00029710 neg eax sbb eax,eax and eax,8876021Ch mov [esi+0Ch],eax pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001A770: push ebx push ebp push esi push edi mov edi,[esp+14h] mov eax,[edi] push eax call GetDriverData mov esi,eax push esi call SUB_L00017390 mov ebx,eax mov eax,[edi+04h] mov cl,[eax+08h] mov edx,00000080h test dl,cl jz L0001A7E3 mov [ebx+000006B0h],edx mov eax,[edi+04h] mov ecx,[eax] mov ecx,[ecx+20h] test ecx,ecx jnz L0001A7AE lea ecx,[ebx+3Ch] L0001A7AE: mov ebp,[ebx+000006A8h] cmp ebp,[ecx+3Ch] jz L0001A7E3 mov ecx,[eax] mov ecx,[ecx+20h] test ecx,ecx jnz L0001A7C5 lea ecx,[ebx+3Ch] L0001A7C5: mov ebp,[ebx+000006ACh] cmp ebp,[ecx+3Ch] jz L0001A7E3 mov dword ptr [edi+0Ch],00000000h pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001A7E3: cmp dword ptr [edi+08h],00000001h mov cl,[eax+08h] jnz L0001A827 test dl,cl push esi jnz L0001A820 call SUB_L0002E340 push eax push esi call GHAL_UpdateFlipStatus cmp eax,[ebx+00000690h] sbb edx,edx and edx,7789FDE4h add edx,8876021Ch mov [edi+0Ch],edx pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001A820: call SUB_L0002E360 jmp L0001A855 L0001A827: test dl,cl mov ecx,[esi+58h] jnz L0001A846 mov eax,[eax] mov eax,[eax+20h] test eax,eax jnz L0001A83A lea eax,[ecx+3Ch] L0001A83A: mov eax,[eax+0Ch] push eax push esi call GHAL_UpdateFlipStatus jmp L0001A85C L0001A846: mov edx,[eax] mov eax,[edx+20h] test eax,eax jnz L0001A852 lea eax,[ecx+3Ch] L0001A852: mov eax,[eax+10h] L0001A855: push eax push esi call SUB_L0002FE20 L0001A85C: neg eax sbb eax,eax and eax,8876021Ch mov [edi+0Ch],eax pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001A880: push esi mov esi,[esp+08h] mov eax,[esi] push edi push eax call GetDriverData mov edi,eax push edi call SUB_L00029740 test eax,eax jz L0001A8AB pop edi mov dword ptr [esi+08h],88760219h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L0001A8AB: push edi call SUB_L00029760 mov [esi+04h],eax pop edi mov dword ptr [esi+08h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001A8D0: push ebx mov ebx,[esp+08h] mov eax,[ebx] push esi push edi push eax call GetDriverData mov esi,eax push esi call SUB_L00017390 mov ecx,[esi+54h] test ecx,ecx jz L0001A8F5 mov dword ptr [esi+54h],00000000h L0001A8F5: mov ecx,[L000B70B0] test ecx,ecx jz L0001A917 mov ecx,[ebx+04h] test dword ptr [ecx+08h],L00020000 jz L0001A917 push ebx call SUB_L00035220 pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001A917: mov edx,[ebx+04h] mov ecx,[edx+08h] test ch,10h jz L0001A933 test ch,20h jnz L0001A933 push ebx call SUB_L00034D50 pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001A933: mov dword ptr [eax+000006B0h],00000000h mov ecx,[ebx+04h] mov edx,00000080h test [ecx+08h],dl jnz L0001A97D mov eax,[ecx] mov eax,[eax+20h] test eax,eax mov edx,[esi+58h] jnz L0001A959 lea eax,[edx+3Ch] L0001A959: mov eax,[eax+0Ch] push eax push esi call GHAL_UpdateFlipStatus test eax,eax jz L0001A9EE pop edi pop esi mov dword ptr [ebx+20h],8876021Ch mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001A97D: mov edi,[eax+000006A8h] test edi,edi mov [eax+000006B0h],edx jz L0001A9BC mov edx,[ebx+04h] mov ecx,[edx] mov ecx,[ecx+20h] test ecx,ecx jnz L0001A99C lea ecx,[eax+3Ch] L0001A99C: cmp edi,[ecx+3Ch] jz L0001A9BC mov edi,[eax+000006ACh] test edi,edi jz L0001A9BC mov edx,[edx] mov ecx,[edx+20h] test ecx,ecx jnz L0001A9B7 lea ecx,[eax+3Ch] L0001A9B7: cmp edi,[ecx+3Ch] jnz L0001A9EE L0001A9BC: mov eax,[ebx+04h] mov eax,[eax] mov eax,[eax+20h] test eax,eax mov ecx,[esi+58h] jnz L0001A9CE lea eax,[ecx+3Ch] L0001A9CE: mov eax,[eax+10h] push eax push esi call SUB_L0002FE20 test eax,eax jz L0001A9EE pop edi pop esi mov dword ptr [ebx+20h],8876021Ch mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001A9EE: mov eax,[ebx+04h] mov edx,[eax] mov eax,[edx+20h] test eax,eax mov ecx,[esi+58h] jnz L0001AA00 lea eax,[ecx+3Ch] L0001AA00: mov eax,[eax+08h] push eax push esi call SUB_L00029710 test eax,eax jz L0001AA20 pop edi pop esi mov dword ptr [ebx+20h],8876021Ch mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001AA20: push esi call SUB_L00029670 pop edi pop esi xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001AA30: push esi mov esi,[esp+08h] mov eax,[esi+04h] mov eax,[eax+08h] test ah,10h jz L0001AA4F test ah,20h jnz L0001AA4F push esi call SUB_L000356B0 pop esi retn 0004h ;------------------------------------------------------------------------------ L0001AA4F: push esi call SUB_L0001BE10 test eax,eax jz L0001AA66 mov dword ptr [esi+08h],00000000h xor eax,eax pop esi retn 0004h ;------------------------------------------------------------------------------ L0001AA66: mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001AA70: push ebx push esi push edi mov edi,[esp+10h] mov eax,[edi] push eax call GetDriverData mov esi,eax push esi call SUB_L00017390 mov ebx,eax mov eax,[edi+04h] cmp eax,00000001h jz L0001AB33 cmp eax,00000004h jz L0001AAC4 cmp eax,80000006h jz L0001AAA9 pop edi pop esi xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001AAA9: push esi mov dword ptr [edi+10h],00000000h call SUB_L00029740 mov [edi+08h],eax pop edi pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001AAC4: push esi call SUB_L00029740 test eax,eax push esi jz L0001AAF4 call SUB_L00029740 test eax,eax jz L0001AB1B L0001AAD8: push esi call SUB_L00029740 test eax,eax jnz L0001AAD8 mov [ebx+2Ch],ax mov [edi+10h],eax pop edi pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001AAF4: call SUB_L00029740 test eax,eax jnz L0001AB07 L0001AAFD: push esi call SUB_L00029740 test eax,eax jz L0001AAFD L0001AB07: push esi call SUB_L00029740 test eax,eax jz L0001AB1B L0001AB11: push esi call SUB_L00029740 test eax,eax jnz L0001AB11 L0001AB1B: mov word ptr [ebx+2Ch],0000h mov dword ptr [edi+10h],00000000h pop edi pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001AB33: push esi call SUB_L00029740 test eax,eax jz L0001AB77 push esi call SUB_L00029740 test eax,eax jz L0001AB51 L0001AB47: push esi call SUB_L00029740 test eax,eax jnz L0001AB47 L0001AB51: push esi call SUB_L00029740 test eax,eax jnz L0001AB95 L0001AB5B: push esi call SUB_L00029740 test eax,eax jz L0001AB5B mov dword ptr [edi+10h],00000000h pop edi pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001AB77: mov eax,[esi+0000011Ch] test eax,eax jz L0001AB9C push esi call SUB_L00029740 test eax,eax jnz L0001AB95 L0001AB8B: push esi call SUB_L00029740 test eax,eax jz L0001AB8B L0001AB95: mov dword ptr [edi+10h],00000000h L0001AB9C: pop edi pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001ABB0: push esi mov esi,[esp+08h] push esi call SUB_L0001D470 test eax,eax jnz L0001ABC3 pop esi retn 0004h ;------------------------------------------------------------------------------ L0001ABC3: push esi call SUB_L00035830 pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001ABD0: push esi mov esi,[esp+08h] push esi call [L000B6F44] push esi call SUB_L0001D590 neg eax sbb eax,eax neg eax pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 L0001ABF0: push esi mov esi,[esp+08h] push esi call SUB_L0001C0B0 test eax,eax jnz L0001AC08 mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L0001AC08: push esi call SUB_L00035B10 pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001AC20: push ebx mov ebx,[esp+08h] push ebp push esi push edi xor eax,eax mov edx,L000B2B04 L0001AC2F: mov esi,[edx] mov ecx,00000004h mov edi,ebx xor ebp,ebp repe cmpsd jz L0001AC4D add edx,00000004h inc eax cmp edx,L000B2B14 jle L0001AC2F or eax,FFFFFFFFh L0001AC4D: pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001AC60: mov eax,[esp+04h] xor ecx,ecx mov edx,00000010h mov dword ptr [eax],00000020h mov dword ptr [eax+04h],00000004h mov dword ptr [eax+08h],32595559h mov [eax+0Ch],edx mov [eax+10h],ecx mov [eax+14h],ecx mov [eax+18h],ecx mov [eax+1Ch],ecx mov dword ptr [eax+20h],00000020h mov dword ptr [eax+24h],00000004h mov dword ptr [eax+28h],59565955h mov [eax+2Ch],edx mov [eax+30h],ecx mov [eax+34h],ecx mov [eax+38h],ecx mov [eax+3Ch],ecx mov dword ptr [eax+40h],00000020h mov dword ptr [eax+44h],00000004h mov dword ptr [eax+48h],55595659h mov [eax+4Ch],edx mov [eax+50h],ecx mov [eax+54h],ecx mov [eax+58h],ecx mov [eax+5Ch],ecx mov eax,00000003h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0001ACE0: mov eax,[esp+04h] xor ecx,ecx mov dword ptr [eax],00000020h mov dword ptr [eax+04h],00000004h mov dword ptr [eax+08h],44494256h mov dword ptr [eax+0Ch],00000008h mov [eax+10h],ecx mov [eax+14h],ecx mov [eax+18h],ecx mov [eax+1Ch],ecx mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001AD20: mov eax,[esp+04h] mov ecx,00000400h mov [eax+08h],ecx mov [eax+0Ch],ecx mov [eax+10h],ecx mov ecx,00000008h mov edx,00000002h mov [eax+24h],ecx mov [eax+28h],ecx mov [eax+30h],ecx mov ecx,00000100h mov dword ptr [eax],00000048h mov dword ptr [eax+04h],000000FFh mov dword ptr [eax+14h],00000000h mov dword ptr [eax+18h],00000ADFh mov dword ptr [eax+1Ch],000E000Eh mov [eax+20h],edx mov dword ptr [eax+2Ch],00000004h mov [eax+34h],ecx mov [eax+38h],ecx mov [eax+3Ch],edx mov [eax+40h],edx mov word ptr [eax+44h],0000h mov word ptr [eax+46h],0000h mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001ADA0: mov eax,0000003Fh retn ;------------------------------------------------------------------------------ Align 16 SUB_L0001ADB0: mov eax,[esp+04h] mov dword ptr [eax],0000000Ch mov dword ptr [eax+04h],0000013Fh mov dword ptr [eax+08h],00000005h mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ SUB_L0001ADD0: mov eax,00000010h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0001ADE0: push ebx push esi mov esi,[esp+10h] push edi mov edi,[esp+20h] xor edx,edx mov eax,edi div esi mov ecx,[esp+18h] imul ecx,[esp+1Ch] xor edx,edx mov ebx,eax imul ebx,[esp+10h] mov eax,ecx shr eax,06h shl eax,06h add ebx,eax mov eax,edi imul ebx,esi div esi and ecx,0000003Fh pop edi pop esi shl edx,06h add ebx,edx add ebx,ecx mov eax,ebx pop ebx retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L0001AE30: sub esp,00000020h push ebx xor edx,edx push ebp push esi mov esi,[esp+48h] mov eax,00000800h div esi xor edx,edx push edi mov edi,[esp+3Ch] mov ebp,[esp+44h] mov ebx,eax shr eax,03h mov [esp+14h],eax mov eax,edi div ebx xor edx,edx mov [esp+1Ch],ebx mov ecx,eax mov eax,ebp div esi xor edx,edx mov [esp+28h],ecx mov [esp+10h],eax mov eax,edi div ebx mov eax,ebp mov ebx,[esp+48h] mov ebp,[esp+40h] imul ebx,esi lea edi,[esi-01h] imul ebp,esi mov [esp+3Ch],edx xor edx,edx div esi cmp edi,0000003Fh mov [esp+18h],edx ja CASE_0001B1DC_PROC0001 xor eax,eax mov al,[edi+CASE_0001B1E4] jmp [CASE_PROCTABLE_0001B1DC+eax*4] CASE_0001B1DC_PROC0000: mov eax,[esp+10h] test eax,eax jbe L0001AF30 mov edx,[esp+38h] mov edi,[esp+34h] mov [esp+44h],edx mov [esp+20h],edi mov [esp+24h],eax L0001AEC8: test ecx,ecx mov eax,[esp+44h] mov [esp+4Ch],eax jbe L0001AF11 mov [esp+48h],ecx L0001AED8: mov ecx,[esp+14h] mov edx,[esp+40h] mov eax,[esp+4Ch] push esi push ecx push edx push eax push edi call SUB_L0001B230 mov ecx,[esp+4Ch] mov edx,[esp+1Ch] mov eax,[esp+48h] add ecx,00000800h add edi,edx dec eax mov [esp+4Ch],ecx mov [esp+48h],eax jnz L0001AED8 mov ecx,[esp+28h] L0001AF11: mov edi,[esp+20h] mov edx,[esp+44h] mov eax,[esp+24h] add edi,ebp add edx,ebx dec eax mov [esp+20h],edi mov [esp+44h],edx mov [esp+24h],eax jnz L0001AEC8 L0001AF30: mov eax,[esp+18h] test eax,eax jz L0001AF9D mov edx,[esp+10h] mov eax,[esp+34h] mov edi,ebp imul edi,edx add edi,eax mov eax,ebx imul eax,edx add eax,[esp+38h] test ecx,ecx mov [esp+4Ch],eax jbe L0001AF9D mov [esp+44h],ecx jmp L0001AF62 L0001AF5E: mov eax,[esp+4Ch] L0001AF62: mov ecx,[esp+14h] mov edx,[esp+40h] push esi push ecx push edx mov edx,[esp+24h] push edx push ecx push eax push edi call SUB_L0001B280 mov ecx,[esp+4Ch] mov edx,[esp+1Ch] mov eax,[esp+44h] add ecx,00000800h add edi,edx dec eax mov [esp+4Ch],ecx mov [esp+44h],eax jnz L0001AF5E mov ecx,[esp+28h] L0001AF9D: mov edi,[esp+3Ch] test edi,edi jz L0001B1BE shr edi,03h mov eax,edi imul eax,esi mov edx,[esp+34h] shl eax,03h mov [esp+20h],eax and dword ptr [esp+3Ch],00000007h mov eax,ecx imul eax,[esp+1Ch] shl ecx,0Bh mov [esp+24h],eax add eax,edx mov edx,[esp+38h] mov [esp+2Ch],ecx add ecx,edx test edi,edi mov edx,[esp+3Ch] mov [esp+44h],eax mov [esp+4Ch],ecx jz L0001B0DB test edx,edx mov edx,[esp+10h] jz L0001B08C test edx,edx jbe L0001B126 lea edx,[eax+edi*8] mov [esp+48h],edx mov edx,[esp+20h] add edx,ecx mov [esp+1Ch],edx mov edx,[esp+10h] mov [esp+28h],edx jmp L0001B026 L0001B01E: mov eax,[esp+44h] mov ecx,[esp+4Ch] L0001B026: mov edx,[esp+14h] push esi push edx mov edx,[esp+48h] push edx push esi push edi push ecx push eax call SUB_L0001B280 mov eax,[esp+40h] mov ecx,[esp+3Ch] mov edx,[esp+1Ch] push eax mov eax,[esp+4Ch] push esi push ecx push edx push eax call SUB_L0001B2E0 mov ecx,[esp+44h] mov eax,[esp+48h] mov edx,[esp+4Ch] add ecx,ebp add eax,ebp mov [esp+44h],ecx mov ecx,[esp+1Ch] mov [esp+48h],eax mov eax,[esp+28h] add edx,ebx add ecx,ebx dec eax mov [esp+4Ch],edx mov [esp+1Ch],ecx mov [esp+28h],eax jnz L0001B01E jmp L0001B126 L0001B08C: test edx,edx jbe L0001B126 mov edx,[esp+10h] mov [esp+48h],edx jmp L0001B0A6 L0001B09E: mov eax,[esp+44h] mov ecx,[esp+4Ch] L0001B0A6: mov edx,[esp+14h] push esi push edx mov edx,[esp+48h] push edx push esi push edi push ecx push eax call SUB_L0001B280 mov edx,[esp+44h] mov ecx,[esp+4Ch] mov eax,[esp+48h] add edx,ebp add ecx,ebx dec eax mov [esp+44h],edx mov [esp+4Ch],ecx mov [esp+48h],eax jnz L0001B09E jmp L0001B126 L0001B0DB: test edx,edx jz L0001B126 mov edx,[esp+10h] test edx,edx jbe L0001B126 mov [esp+48h],edx jmp L0001B0F5 L0001B0ED: mov eax,[esp+44h] mov ecx,[esp+4Ch] L0001B0F5: mov edx,[esp+40h] push edx mov edx,[esp+40h] push esi push edx push ecx push eax call SUB_L0001B2E0 mov edx,[esp+44h] mov ecx,[esp+4Ch] mov eax,[esp+48h] add edx,ebp add ecx,ebx dec eax mov [esp+44h],edx mov [esp+4Ch],ecx mov [esp+48h],eax jnz L0001B0ED L0001B126: mov ecx,[esp+18h] test ecx,ecx jz L0001B1BE mov eax,[esp+10h] mov edx,[esp+24h] imul ebp,eax imul ebx,eax mov eax,[esp+2Ch] add ebp,edx add ebp,[esp+34h] mov edx,[esp+38h] add ebx,eax mov eax,[esp+3Ch] add ebx,edx test edi,edi jz L0001B1A2 test eax,eax push esi jz L0001B183 mov eax,[esp+18h] mov edx,[esp+44h] push eax push edx push ecx push edi push ebx push ebp call SUB_L0001B280 mov eax,[esp+40h] mov ecx,[esp+18h] mov edx,[esp+3Ch] push eax push ecx push edx jmp L0001B1AD L0001B183: mov edx,[esp+18h] mov eax,[esp+44h] push edx push eax push ecx push edi push ebx push ebp call SUB_L0001B280 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000020h retn 001Ch ;------------------------------------------------------------------------------ L0001B1A2: test eax,eax jz L0001B1BE mov edx,[esp+40h] push edx push ecx push eax L0001B1AD: mov eax,[esp+2Ch] add eax,ebx push eax lea ecx,[ebp+edi*8+00h] push ecx call SUB_L0001B2E0 L0001B1BE: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000020h retn 001Ch ;------------------------------------------------------------------------------ CASE_0001B1DC_PROC0001: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 001Ch ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0001B1DC: dd CASE_0001B1DC_PROC0000 dd CASE_0001B1DC_PROC0001 CASE_0001B1E4: db 00h, 00h, 01h, 00h, 01h, 01h, 01h, 00h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 00h db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 00h db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 00h Align 16 SUB_L0001B230: mov eax,[esp+10h] test eax,eax jbe L0001B27C mov ecx,[esp+08h] push ebx mov ebx,[esp+18h] push ebp push esi mov esi,[esp+18h] push edi mov edi,[esp+14h] mov [esp+20h],eax L0001B250: test ebx,ebx mov eax,edi jbe L0001B26A mov edx,ebx L0001B258: mov ebp,[eax] mov [ecx],ebp mov ebp,[eax+04h] mov [ecx+04h],ebp add ecx,00000008h add eax,esi dec edx jnz L0001B258 L0001B26A: mov eax,[esp+20h] add edi,00000008h dec eax mov [esp+20h],eax jnz L0001B250 pop edi pop esi pop ebp pop ebx L0001B27C: retn 0014h ;------------------------------------------------------------------------------ Align 4 SUB_L0001B280: mov eax,[esp+0Ch] test eax,eax push esi mov esi,[esp+0Ch] jbe L0001B2D6 mov edx,[esp+14h] push ebx mov ebx,[esp+0Ch] push ebp push edi mov edi,[esp+24h] mov [esp+18h],eax L0001B2A0: test edx,edx mov ecx,ebx jbe L0001B2BE mov eax,esi L0001B2A8: mov ebp,[ecx] mov [eax],ebp mov ebp,[ecx+04h] mov [eax+04h],ebp add ecx,edi add eax,00000008h dec edx jnz L0001B2A8 mov edx,[esp+20h] L0001B2BE: mov eax,[esp+2Ch] lea esi,[esi+eax*8] mov eax,[esp+18h] add ebx,00000008h dec eax mov [esp+18h],eax jnz L0001B2A0 pop edi pop ebp pop ebx L0001B2D6: pop esi retn 001Ch ;------------------------------------------------------------------------------ Align 8 SUB_L0001B2E0: mov eax,[esp+10h] test eax,eax jbe L0001B329 mov edx,[esp+0Ch] push ebx push ebp mov ebp,[esp+0Ch] push esi mov esi,[esp+14h] push edi mov [esp+20h],eax L0001B2FC: test edx,edx jbe L0001B311 mov ecx,ebp mov eax,esi sub ecx,esi mov edi,edx L0001B308: mov bl,[ecx+eax] mov [eax],bl inc eax dec edi jnz L0001B308 L0001B311: mov edi,[esp+24h] mov eax,[esp+20h] add ebp,edi add esi,00000008h dec eax mov [esp+20h],eax jnz L0001B2FC pop edi pop esi pop ebp pop ebx L0001B329: retn 0014h ;------------------------------------------------------------------------------ Align 8 SUB_L0001B330: sub esp,00000020h push ebx xor edx,edx push ebp push esi mov esi,[esp+48h] mov eax,00000800h div esi xor edx,edx push edi mov edi,[esp+3Ch] mov ebp,[esp+44h] mov ebx,eax shr eax,03h mov [esp+14h],eax mov eax,edi div ebx xor edx,edx mov [esp+1Ch],ebx mov ecx,eax mov eax,ebp div esi xor edx,edx mov [esp+28h],ecx mov [esp+10h],eax mov eax,edi div ebx mov eax,ebp mov ebx,[esp+48h] mov ebp,[esp+40h] imul ebx,esi lea edi,[esi-01h] imul ebp,esi mov [esp+3Ch],edx xor edx,edx div esi cmp edi,0000003Fh mov [esp+18h],edx ja CASE_0001B6DC_PROC0001 xor eax,eax mov al,[edi+CASE_0001B6E4] jmp [CASE_PROCTABLE_0001B6DC+eax*4] CASE_0001B6DC_PROC0000: mov eax,[esp+10h] test eax,eax jbe L0001B430 mov edx,[esp+38h] mov edi,[esp+34h] mov [esp+44h],edx mov [esp+20h],edi mov [esp+24h],eax L0001B3C8: test ecx,ecx mov eax,[esp+44h] mov [esp+4Ch],eax jbe L0001B411 mov [esp+48h],ecx L0001B3D8: mov ecx,[esp+14h] mov edx,[esp+40h] mov eax,[esp+4Ch] push esi push ecx push edx push eax push edi call SUB_L0001B730 mov ecx,[esp+4Ch] mov edx,[esp+1Ch] mov eax,[esp+48h] add ecx,00000800h add edi,edx dec eax mov [esp+4Ch],ecx mov [esp+48h],eax jnz L0001B3D8 mov ecx,[esp+28h] L0001B411: mov edi,[esp+20h] mov edx,[esp+44h] mov eax,[esp+24h] add edi,ebp add edx,ebx dec eax mov [esp+20h],edi mov [esp+44h],edx mov [esp+24h],eax jnz L0001B3C8 L0001B430: mov eax,[esp+18h] test eax,eax jz L0001B49D mov edx,[esp+10h] mov eax,[esp+34h] mov edi,ebp imul edi,edx add edi,eax mov eax,ebx imul eax,edx add eax,[esp+38h] test ecx,ecx mov [esp+4Ch],eax jbe L0001B49D mov [esp+44h],ecx jmp L0001B462 L0001B45E: mov eax,[esp+4Ch] L0001B462: mov ecx,[esp+14h] mov edx,[esp+40h] push esi push ecx push edx mov edx,[esp+24h] push edx push ecx push eax push edi call SUB_L0001B780 mov ecx,[esp+4Ch] mov edx,[esp+1Ch] mov eax,[esp+44h] add ecx,00000800h add edi,edx dec eax mov [esp+4Ch],ecx mov [esp+44h],eax jnz L0001B45E mov ecx,[esp+28h] L0001B49D: mov edi,[esp+3Ch] test edi,edi jz L0001B6BE shr edi,03h mov eax,edi imul eax,esi mov edx,[esp+34h] shl eax,03h mov [esp+20h],eax and dword ptr [esp+3Ch],00000007h mov eax,ecx imul eax,[esp+1Ch] shl ecx,0Bh mov [esp+24h],eax add eax,edx mov edx,[esp+38h] mov [esp+2Ch],ecx add ecx,edx test edi,edi mov edx,[esp+3Ch] mov [esp+44h],eax mov [esp+4Ch],ecx jz L0001B5DB test edx,edx mov edx,[esp+10h] jz L0001B58C test edx,edx jbe L0001B626 lea edx,[eax+edi*8] mov [esp+48h],edx mov edx,[esp+20h] add edx,ecx mov [esp+1Ch],edx mov edx,[esp+10h] mov [esp+28h],edx jmp L0001B526 L0001B51E: mov eax,[esp+44h] mov ecx,[esp+4Ch] L0001B526: mov edx,[esp+14h] push esi push edx mov edx,[esp+48h] push edx push esi push edi push ecx push eax call SUB_L0001B780 mov eax,[esp+40h] mov ecx,[esp+3Ch] mov edx,[esp+1Ch] push eax mov eax,[esp+4Ch] push esi push ecx push edx push eax call SUB_L0001B7E0 mov ecx,[esp+44h] mov eax,[esp+48h] mov edx,[esp+4Ch] add ecx,ebp add eax,ebp mov [esp+44h],ecx mov ecx,[esp+1Ch] mov [esp+48h],eax mov eax,[esp+28h] add edx,ebx add ecx,ebx dec eax mov [esp+4Ch],edx mov [esp+1Ch],ecx mov [esp+28h],eax jnz L0001B51E jmp L0001B626 L0001B58C: test edx,edx jbe L0001B626 mov edx,[esp+10h] mov [esp+48h],edx jmp L0001B5A6 L0001B59E: mov eax,[esp+44h] mov ecx,[esp+4Ch] L0001B5A6: mov edx,[esp+14h] push esi push edx mov edx,[esp+48h] push edx push esi push edi push ecx push eax call SUB_L0001B780 mov edx,[esp+44h] mov ecx,[esp+4Ch] mov eax,[esp+48h] add edx,ebp add ecx,ebx dec eax mov [esp+44h],edx mov [esp+4Ch],ecx mov [esp+48h],eax jnz L0001B59E jmp L0001B626 L0001B5DB: test edx,edx jz L0001B626 mov edx,[esp+10h] test edx,edx jbe L0001B626 mov [esp+48h],edx jmp L0001B5F5 L0001B5ED: mov eax,[esp+44h] mov ecx,[esp+4Ch] L0001B5F5: mov edx,[esp+40h] push edx mov edx,[esp+40h] push esi push edx push ecx push eax call SUB_L0001B7E0 mov edx,[esp+44h] mov ecx,[esp+4Ch] mov eax,[esp+48h] add edx,ebp add ecx,ebx dec eax mov [esp+44h],edx mov [esp+4Ch],ecx mov [esp+48h],eax jnz L0001B5ED L0001B626: mov ecx,[esp+18h] test ecx,ecx jz L0001B6BE mov eax,[esp+10h] mov edx,[esp+24h] imul ebp,eax imul ebx,eax mov eax,[esp+2Ch] add ebp,edx add ebp,[esp+34h] mov edx,[esp+38h] add ebx,eax mov eax,[esp+3Ch] add ebx,edx test edi,edi jz L0001B6A2 test eax,eax push esi jz L0001B683 mov eax,[esp+18h] mov edx,[esp+44h] push eax push edx push ecx push edi push ebx push ebp call SUB_L0001B780 mov eax,[esp+40h] mov ecx,[esp+18h] mov edx,[esp+3Ch] push eax push ecx push edx jmp L0001B6AD L0001B683: mov edx,[esp+18h] mov eax,[esp+44h] push edx push eax push ecx push edi push ebx push ebp call SUB_L0001B780 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000020h retn 001Ch ;------------------------------------------------------------------------------ L0001B6A2: test eax,eax jz L0001B6BE mov edx,[esp+40h] push edx push ecx push eax L0001B6AD: mov eax,[esp+2Ch] add eax,ebx push eax lea ecx,[ebp+edi*8+00h] push ecx call SUB_L0001B7E0 L0001B6BE: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000020h retn 001Ch ;------------------------------------------------------------------------------ CASE_0001B6DC_PROC0001: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 001Ch ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0001B6DC: dd CASE_0001B6DC_PROC0000 dd CASE_0001B6DC_PROC0001 CASE_0001B6E4: db 00h, 00h, 01h, 00h, 01h, 01h, 01h, 00h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 00h db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 00h db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h, 00h Align 16 SUB_L0001B730: mov eax,[esp+10h] test eax,eax jbe L0001B77C mov ecx,[esp+08h] push ebx mov ebx,[esp+18h] push ebp push esi mov esi,[esp+18h] push edi mov edi,[esp+14h] mov [esp+20h],eax L0001B750: test ebx,ebx mov eax,edi jbe L0001B76A mov edx,ebx L0001B758: mov ebp,[ecx] mov [eax],ebp mov ebp,[ecx+04h] mov [eax+04h],ebp add ecx,00000008h add eax,esi dec edx jnz L0001B758 L0001B76A: mov eax,[esp+20h] add edi,00000008h dec eax mov [esp+20h],eax jnz L0001B750 pop edi pop esi pop ebp pop ebx L0001B77C: retn 0014h ;------------------------------------------------------------------------------ Align 4 SUB_L0001B780: mov eax,[esp+0Ch] test eax,eax push esi mov esi,[esp+0Ch] jbe L0001B7D6 mov edx,[esp+14h] push ebx mov ebx,[esp+0Ch] push ebp push edi mov edi,[esp+24h] mov [esp+18h],eax L0001B7A0: test edx,edx mov ecx,ebx jbe L0001B7BE mov eax,esi L0001B7A8: mov ebp,[eax] mov [ecx],ebp mov ebp,[eax+04h] mov [ecx+04h],ebp add ecx,edi add eax,00000008h dec edx jnz L0001B7A8 mov edx,[esp+20h] L0001B7BE: mov eax,[esp+2Ch] lea esi,[esi+eax*8] mov eax,[esp+18h] add ebx,00000008h dec eax mov [esp+18h],eax jnz L0001B7A0 pop edi pop ebp pop ebx L0001B7D6: pop esi retn 001Ch ;------------------------------------------------------------------------------ Align 8 SUB_L0001B7E0: mov eax,[esp+10h] test eax,eax jbe L0001B829 mov edx,[esp+0Ch] push ebx push ebp mov ebp,[esp+10h] push esi mov esi,[esp+10h] push edi mov [esp+20h],eax L0001B7FC: test edx,edx jbe L0001B811 mov ecx,ebp mov eax,esi sub ecx,esi mov edi,edx L0001B808: mov bl,[ecx+eax] mov [eax],bl inc eax dec edi jnz L0001B808 L0001B811: mov edi,[esp+24h] mov eax,[esp+20h] add esi,edi add ebp,00000008h dec eax mov [esp+20h],eax jnz L0001B7FC pop edi pop esi pop ebp pop ebx L0001B829: retn 0014h ;------------------------------------------------------------------------------ Align 8 SUB_L0001B830: sub esp,00000010h push ebx mov ebx,[esp+18h] mov eax,[ebx+18h] mov ecx,[eax] mov eax,[ebx+08h] mov edx,[ebx+0Ch] push ebp mov ebp,[ebx+1Ch] push esi mov esi,[ebx+04h] push edi mov edi,[ebx+10h] sub edi,eax mov [esp+14h],eax mov eax,[ebx+14h] sub eax,edx mov edx,[ebx+20h] mov [esp+18h],eax mov eax,[esi+04h] test ah,20h mov [esp+24h],ecx mov ecx,[esi] mov [esp+10h],ecx jz L0001B8AB mov ecx,[ecx+30h] lea eax,[ecx-01h] cmp eax,00000017h ja CASE_0001B988_PROC0004 xor ecx,ecx mov cl,[eax+CASE_0001B99C] jmp [CASE_PROCTABLE_0001B988+ecx*4] CASE_0001B988_PROC0001: mov ecx,00000001h jmp L0001B8B5 CASE_0001B988_PROC0002: mov ecx,00000002h jmp L0001B8B5 CASE_0001B988_PROC0003: mov ecx,00000003h jmp L0001B8B5 CASE_0001B988_PROC0004: mov eax,[esp+28h] mov ecx,[eax+10h] jmp L0001B8B2 L0001B8AB: mov ecx,[esp+28h] mov ecx,[ecx+10h] L0001B8B2: shr ecx,03h L0001B8B5: mov eax,ecx imul eax,ebp mov ebp,[esp+24h] imul edx,[ebp+0Ch] mov esi,[esi+08h] add eax,edx mov edx,[esp+10h] mov edx,[edx+0Ch] imul edx,[ebx+0Ch] mov ebp,ecx imul ecx,edi imul ebp,[esp+14h] mov [esp+1Ch],ecx mov ecx,[esp+10h] mov edi,[ecx+08h] add edx,ebp test esi,10000000h mov [esp+28h],edi jnz L0001B901 test esi,00004000h jz L0001B90C test edi,edi jnz L0001B926 L0001B901: mov ecx,[ebx] mov ecx,[ecx] add edi,[ecx+24h] mov [esp+28h],edi L0001B90C: test edi,edi jnz L0001B926 pop edi pop esi pop ebp mov dword ptr [ebx+00000098h],88760037h xor eax,eax pop ebx add esp,00000010h retn 0008h ;------------------------------------------------------------------------------ L0001B926: mov ecx,[esp+18h] test ecx,ecx jbe L0001B972 mov ebp,[esp+24h] mov [esp+14h],ecx jmp L0001B93C L0001B938: mov edi,[esp+28h] L0001B93C: mov ecx,[esp+1Ch] mov esi,eax add esi,[ebp+08h] mov ebp,ecx shr ecx,02h add edi,edx rep movsd mov ecx,ebp mov ebp,[esp+24h] and ecx,00000003h rep movsb mov ecx,[esp+10h] mov esi,[ecx+0Ch] mov edi,[ebp+0Ch] mov ecx,[esp+14h] add eax,edi add edx,esi dec ecx mov [esp+14h],ecx jnz L0001B938 L0001B972: mov dword ptr [ebx+00000098h],00000000h CASE_0001B988_PROC0000: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000010h retn 0008h ;------------------------------------------------------------------------------ CASE_PROCTABLE_0001B988: dd CASE_0001B988_PROC0000 dd CASE_0001B988_PROC0001 dd CASE_0001B988_PROC0002 dd CASE_0001B988_PROC0003 dd CASE_0001B988_PROC0004 CASE_0001B99C: db 00h, 00h, 04h, 00h, 04h, 04h, 04h, 01h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 02h db 04h, 04h, 04h, 04h, 04h, 04h, 04h, 03h Align 16 SUB_L0001B9C0: push ecx push ebx mov ebx,[esp+0Ch] mov eax,[ebx] push ebp push esi push edi push eax call GetDriverData push eax call SUB_L00017390 mov edi,[ebx+04h] mov esi,[edi] mov ecx,[esi+20h] mov ebp,eax push ebp push edi mov [esp+18h],ecx call SUB_L0001ADD0 mov ecx,[edi+04h] test ch,20h mov [esp+18h],eax jz L0001B9FD mov ebp,[esi+30h] jmp L0001BA00 L0001B9FD: mov ebp,[ebp+10h] L0001BA00: cmp eax,00000001h jz L0001BA6B mov edx,[esi+0Ch] imul edx,[esi+18h] push edx push 00000001h call OsAllocMem mov edi,eax test edi,edi jnz L0001BA21 mov dword ptr [ebx+20h],887601B3h L0001BA21: mov eax,[esi+0Ch] mov ecx,[esp+18h] mov edx,[esi+18h] push ecx mov ecx,[esi+08h] push eax push edx push eax mov eax,[esi+1Ch] imul eax,ebp shr eax,03h push eax push ecx push edi call SUB_L0001B330 test eax,eax jz L0001BA54 push edi call OsFreeMem mov dword ptr [ebx+20h],887601B3h L0001BA54: mov edx,[esp+10h] mov [edx+38h],edi mov [ebx+1Ch],edi pop edi pop esi xor eax,eax pop ebp mov [ebx+20h],eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001BA6B: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001BA80: push ebx push ebp mov ebp,[esp+0Ch] mov eax,[ebp+00h] push esi push edi push eax call GetDriverData push eax call SUB_L00017390 mov edi,[ebp+04h] mov esi,[edi] mov ebx,[esi+20h] push eax push edi mov [esp+1Ch],eax call SUB_L0001ADD0 mov ecx,[edi+04h] test ch,20h jz L0001BAB7 mov edx,[esi+30h] jmp L0001BABE L0001BAB7: mov ecx,[esp+14h] mov edx,[ecx+10h] L0001BABE: cmp eax,00000001h jz L0001BAFF mov ecx,[esi+0Ch] push eax mov eax,[esi+18h] push ecx push eax mov eax,[ebx+38h] push ecx mov ecx,[esi+1Ch] imul ecx,edx mov edx,[esi+08h] shr ecx,03h push ecx push edx push eax call SUB_L0001AE30 mov ecx,[ebx+38h] push ecx call OsFreeMem mov edx,[esi+08h] pop edi mov [ebx+38h],edx xor eax,eax pop esi mov [ebp+08h],eax pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001BAFF: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0001BB10: sub esp,00000058h push ebx push ebp mov ebp,[esp+68h] push esi mov esi,[esp+68h] mov eax,[esi+18h] mov ecx,[eax] push edi mov edi,[esi+04h] mov ebx,[edi] push ebp push edi mov [esp+2Ch],edi mov [esp+1Ch],ecx mov [esp+18h],ebx call SUB_L0001ADD0 mov [esp+18h],eax mov eax,[edi+04h] test ah,20h jz L0001BB57 mov ecx,[ebx+30h] lea edx,[ecx+07h] shr edx,03h mov [esp+70h],edx jmp L0001BB66 L0001BB57: mov ecx,[ebp+10h] lea eax,[ecx+07h] shr eax,03h mov [esp+70h],eax mov edx,eax L0001BB66: mov ebx,[esi+0Ch] mov eax,[esi+14h] mov edi,[esi+08h] mov ebp,[esi+10h] sub eax,ebx mov [esp+1Ch],ebx mov ebx,[esi+1Ch] imul ebx,edx mov edx,[esi+20h] mov [esp+20h],eax mov eax,[esp+14h] imul edx,[eax+0Ch] mov eax,[esp+18h] add ebx,edx mov edx,[esp+1Ch] push edx sub ebp,edi imul ebp,ecx push edi push ecx mov ecx,[esp+1Ch] mov edx,[ecx+0Ch] push eax shl edx,03h add ebp,00000007h push edx shr ebp,03h call SUB_L0001ADE0 add eax,00000007h shr eax,03h test eax,000007FFh jz L0001BBC8 and eax,FFFFF800h L0001BBC8: mov ecx,[esp+10h] mov edx,[ecx+18h] mov ecx,[esp+14h] imul edx,[ecx+1Ch] cmp edx,00000800h jc L0001BC10 test eax,eax jnz L0001BC10 test ebx,ebx jnz L0001BC10 mov eax,[esp+18h] push eax mov eax,[esp+14h] mov edx,[eax+0Ch] mov eax,[eax+08h] push edx mov edx,[esp+28h] push edx mov edx,[ecx+0Ch] mov ecx,[ecx+08h] push edx push ebp push eax push ecx call SUB_L0001AE30 jmp L0001BCAE L0001BC10: mov eax,[esp+24h] mov edx,[esp+10h] mov [esp+3Ch],eax mov [eax],edx mov eax,[esi] lea ecx,[esp+38h] push ecx mov [esp+3Ch],eax call SUB_L0001B9C0 imul edi,[esp+70h] mov eax,[esp+1Ch] mov edx,[esp+10h] imul eax,[edx+0Ch] mov ecx,[esp+20h] add edi,eax test ecx,ecx mov eax,edi jbe L0001BC90 mov [esp+70h],ecx L0001BC4F: mov edx,[esp+14h] mov esi,[edx+08h] mov edx,[esp+54h] lea edi,[edx+eax] mov ecx,ebp mov edx,ecx shr ecx,02h add esi,ebx rep movsd mov ecx,edx mov edx,[esp+10h] and ecx,00000003h rep movsb mov ecx,[esp+14h] mov edi,[ecx+0Ch] mov esi,[edx+0Ch] mov ecx,[esp+70h] add ebx,edi add eax,esi dec ecx mov [esp+70h],ecx jnz L0001BC4F mov esi,[esp+6Ch] L0001BC90: mov eax,[esp+24h] mov ecx,[esp+10h] mov [esp+2Ch],eax mov [eax],ecx mov edx,[esi] lea eax,[esp+28h] push eax mov [esp+2Ch],edx call SUB_L0001BA80 L0001BCAE: pop edi mov dword ptr [esi+00000098h],00000000h pop esi pop ebp xor eax,eax pop ebx add esp,00000058h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0001BCD0: mov ecx,[esp+04h] mov edx,[ecx+04h] mov eax,[edx] mov eax,[eax+20h] test eax,eax push esi mov esi,[esp+0Ch] jnz L0001BCE8 lea eax,[esi+3Ch] L0001BCE8: test dword ptr [edx+08h],00001000h jz L0001BD05 test dword ptr [eax+50h],00200000h jz L0001BD05 push esi push ecx call SUB_L0001BB10 pop esi retn 0008h ;------------------------------------------------------------------------------ L0001BD05: push esi push ecx call SUB_L0001B830 pop esi retn 0008h ;------------------------------------------------------------------------------ SUB_L0001BD10: push ecx push ebx push ebp push esi mov esi,[esp+14h] mov eax,[esi] push edi push eax mov dword ptr [esp+14h],FFFFFFFFh call GetDriverData mov edi,eax push edi call SUB_L00017390 mov ebp,[esi+04h] mov ebx,eax mov eax,[esi+18h] test eax,eax jz L0001BDFA mov ecx,[eax+08h] test ch,08h jz L0001BDFA mov eax,[ebp+08h] test ah,40h jz L0001BDFA mov edx,[esi+1Ch] mov ecx,[esi+24h] mov eax,[esi+08h] sub ecx,edx mov edx,[esi+10h] sub edx,eax cmp ecx,edx jnz L0001BDFA mov ecx,[esi+20h] mov eax,[esi+28h] mov edx,[esi+0Ch] sub eax,ecx mov ecx,[esi+14h] sub ecx,edx cmp eax,ecx jnz L0001BDFA push edi call SUB_L00029670 mov edx,[ebp+00h] mov eax,[edx+20h] test eax,eax lea ecx,[ebx+3Ch] jz L0001BD9A mov ecx,eax L0001BD9A: mov edx,[ebx+000006A0h] cmp edx,[ecx+3Ch] jz L0001BDB9 test eax,eax lea ecx,[ebx+3Ch] jz L0001BDAE mov ecx,eax L0001BDAE: mov edx,[ebx+000006A4h] cmp edx,[ecx+3Ch] jnz L0001BDEB L0001BDB9: test eax,eax mov ecx,[ebx+000002A4h] mov edx,[ecx+58h] jnz L0001BDC9 lea eax,[edx+3Ch] L0001BDC9: mov eax,[eax+0Ch] push eax push ecx call GHAL_UpdateFlipStatus test eax,eax jz L0001BDEB pop edi mov dword ptr [esi+00000098h],8876021Ch pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001BDEB: push ebx push esi call SUB_L0001BCD0 pop edi pop esi pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001BDFA: mov eax,[esp+10h] pop edi pop esi pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001BE10: push ecx push ebx push ebp mov ebp,[esp+10h] mov eax,[ebp+00h] push esi push edi push eax mov dword ptr [esp+14h],FFFFFFFFh call GetDriverData mov esi,eax push esi call SUB_L00017390 mov ebx,[ebp+04h] mov ecx,[ebx] mov edi,eax test byte ptr [edi+000002ACh],10h jz L0001BF18 mov edx,[ebx+04h] and edx,00002000h jz L0001BE64 test byte ptr [ecx+28h],04h jz L0001BE64 cmp dword ptr [ecx+2Ch],30323449h jz L0001BEE7 L0001BE64: mov eax,[ecx+2Ch] cmp eax,56555949h jz L0001BEE7 cmp eax,32315659h jz L0001BEE7 test edx,edx jz L0001BE86 test byte ptr [ecx+28h],04h jz L0001BE86 cmp eax,32595559h jz L0001BE91 L0001BE86: cmp eax,59565955h jnz L0001BF18 L0001BE91: mov edx,[edi+000002C8h] lea eax,[edi+000002A8h] mov [eax+00000134h],esi cmp [ecx+08h],edx jnz L0001BF18 mov ecx,[eax+54h] mov [eax+28h],edx mov edx,[eax+58h] push eax mov [eax+60h],ecx mov [eax+64h],edx call SUB_L0002E380 test eax,eax jnz L0001BF18 push esi call SUB_L0002E360 mov ecx,[ebx] mov ecx,[ecx+20h] test ecx,ecx jnz L0001BED3 lea ecx,[edi+3Ch] L0001BED3: pop edi mov [ecx+10h],eax pop esi mov dword ptr [ebp+08h],00000000h pop ebp xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001BEE7: mov edx,[edi+000002FCh] mov ecx,[edi+00000300h] lea eax,[edi+000002A8h] push eax mov [eax+00000134h],esi mov [eax+60h],edx mov [eax+64h],ecx call SUB_L0002F890 pop edi xor eax,eax pop esi mov [ebp+08h],eax pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001BF18: mov eax,[esp+10h] pop edi pop esi pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001BF30: mov eax,[esp+08h] mov edx,[eax+18h] mov ecx,[esp+04h] mov [ecx+04h],edx mov edx,[eax+28h] test dl,04h jz L0001C03D mov eax,[eax+2Ch] cmp eax,34344941h ja L0001BFC3 jz L0001BFAE cmp eax,32595559h ja L0001BF7E jz L0001C028 cmp eax,30323449h jz L0001BFFC cmp eax,32315659h jz L0001BFFC L0001BF79: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ L0001BF7E: cmp eax,33434D49h jz L0001BF91 cmp eax,34344149h jz L0001BFAE xor eax,eax retn 0008h ;------------------------------------------------------------------------------ L0001BF91: mov eax,[ecx+04h] shl eax,1 mov [ecx+04h],eax mov dword ptr [ecx],20080000h mov dword ptr [ecx+08h],00000008h mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ L0001BFAE: mov dword ptr [ecx],28080000h mov dword ptr [ecx+08h],00000008h mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ L0001BFC3: cmp eax,56555949h ja L0001C01D jz L0001BFFC cmp eax,43414D49h jz L0001BFDF cmp eax,55595659h jz L0001C028 xor eax,eax retn 0008h ;------------------------------------------------------------------------------ L0001BFDF: mov edx,[ecx+04h] shl edx,1 mov dword ptr [ecx],20080000h mov [ecx+04h],edx mov dword ptr [ecx+08h],00000008h mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ L0001BFFC: mov eax,[ecx+04h] mov edx,eax shr edx,1 add edx,eax mov dword ptr [ecx],20080000h mov dword ptr [ecx+08h],00000008h mov [ecx+04h],edx mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ L0001C01D: cmp eax,59565955h jnz L0001BF79 L0001C028: mov dword ptr [ecx],20080000h mov dword ptr [ecx+08h],00000010h mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ L0001C03D: test dl,40h jz L0001BF79 mov dword ptr [ecx],L00080000 cmp dword ptr [eax+30h],00000010h jnz L0001BF79 mov edx,[eax+34h] cmp edx,00007C00h jnz L0001C070 cmp dword ptr [eax+38h],000003E0h jnz L0001C070 cmp dword ptr [eax+3Ch],0000001Fh jz L0001C093 L0001C070: cmp edx,0000F800h jnz L0001BF79 cmp dword ptr [eax+38h],000007E0h jnz L0001BF79 cmp dword ptr [eax+3Ch],0000001Fh jnz L0001BF79 L0001C093: mov dword ptr [ecx+08h],00000010h mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0001C0B0: sub esp,00000034h push ebx push ebp push esi push edi mov edi,[esp+48h] mov eax,[edi] xor ebp,ebp push eax mov [esp+38h],ebp call GetDriverData mov esi,eax push esi mov [esp+20h],esi call SUB_L00017390 mov ecx,eax mov [edi+10h],ebp cmp [esi+00000118h],ebp lea edx,[ecx+04h] mov [esp+10h],ecx mov [esp+2Ch],ebp mov [esp+28h],edx jz L0001C10D mov eax,[edi+04h] test byte ptr [eax+68h],80h jz L0001C10D mov dword ptr [edi+10h],88760104h pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001C10D: cmp [edi+0Ch],ebp mov [esp+30h],ebp jle L0001D260 mov ebx,[esp+48h] L0001C11E: mov ecx,[esp+48h] mov edx,[ecx+08h] mov eax,[esp+30h] mov esi,[edx+eax*4] mov edi,[esi] mov ecx,[edi+18h] mov edx,[edi+1Ch] push 00000080h push 00000001h mov [esp+28h],edi mov [esp+20h],ecx mov [esp+2Ch],edx call OsAllocMem test eax,eax mov [esp+14h],eax jz L0001D2A1 mov edx,[esi+04h] mov ecx,00002000h test ecx,edx jz L0001C16B lea edx,[edi+24h] mov [esp+28h],edx L0001C16B: mov edx,[esi] mov [edx+20h],eax mov eax,[esi+08h] test ah,02h jz L0001C217 mov eax,[esp+14h] push eax call OsFreeMem mov ecx,[esp+10h] mov edx,[esi] lea edi,[ecx+3Ch] mov ecx,[esp+1Ch] mov eax,edi mov [esp+14h],eax mov [edx+20h],edi mov ebx,[ecx+28h] mov edx,[esp+18h] add eax,00000038h push eax mov eax,[esp+28h] push ebx push edx mov edx,[ecx+000000A8h] push eax mov ebp,01081000h push ebp push edx call SUB_L000267C0 test eax,eax jz L0001D2C1 test dword ptr [esi+08h],20000000h jz L0001C1E1 mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C1DC mov eax,edi L0001C1DC: mov eax,[eax+38h] jmp L0001C1EF L0001C1E1: mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001C1EC mov eax,edi L0001C1EC: mov eax,[eax+3Ch] L0001C1EF: mov ecx,[esp+20h] mov edx,[esp+1Ch] mov [ecx+08h],eax mov eax,[edx+24h] mov [ecx+0Ch],eax mov ecx,[esi+08h] and ecx,DFFFFFFFh or ecx,10000000h mov [esi+08h],ecx jmp L0001C7B7 L0001C217: test al,38h jz L0001C50B test eax,00001080h jnz L0001C50B mov edx,[esp+28h] mov ebx,[edx+0Ch] mov ebp,eax and ebp,ecx shl ebp,10h test eax,10004000h jz L0001C412 test eax,20000000h jnz L0001C41D mov eax,[esi+04h] or ebp,01082000h test ecx,eax jz L0001C284 push edi lea eax,[esp+3Ch] push eax call SUB_L0001BF30 test eax,eax jz L0001D2E2 mov ebp,[esp+38h] mov ecx,[esp+3Ch] mov ebx,[esp+40h] or ebp,01000000h mov [esp+18h],ecx L0001C284: mov edx,[esp+14h] mov eax,[esp+18h] mov ecx,[esp+24h] lea edi,[edx+38h] mov edx,[esp+1Ch] push edi push ebx push eax mov eax,[edx+000000A8h] push ecx push ebp push eax call SUB_L000267C0 test eax,eax mov eax,[esi+08h] jz L0001C307 test eax,20000000h jz L0001C2CB mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001C2C6 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001C2C6: mov eax,[eax+38h] jmp L0001C2DE L0001C2CB: mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C2DB mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C2DB: mov eax,[eax+3Ch] L0001C2DE: mov ecx,[esp+20h] mov [ecx+08h],eax mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C2F5 mov eax,[esp+10h] add eax,0000003Ch L0001C2F5: mov edx,[eax+44h] mov [ecx+0Ch],edx or dword ptr [esi+08h],10000000h jmp L0001C3D9 L0001C307: test ah,40h jz L0001D359 test eax,10000000h jnz L0001D359 mov eax,[esi+04h] and ebp,FEFFFFFFh or ebp,0A082000h test ah,20h jz L0001C35C mov eax,[esp+20h] push eax lea ecx,[esp+3Ch] push ecx call SUB_L0001BF30 test eax,eax jz L0001D303 mov ebp,[esp+38h] mov edx,[esp+3Ch] mov ebx,[esp+40h] or ebp,02000000h mov [esp+18h],edx L0001C35C: mov eax,[esp+18h] mov ecx,[esp+24h] mov edx,[esp+1Ch] push edi push ebx push eax mov eax,[edx+000000A8h] push ecx push ebp push eax call SUB_L000267C0 test eax,eax jz L0001D324 mov edx,[esi+08h] mov eax,20000000h or edx,eax mov ecx,edx test eax,ecx mov [esi+08h],edx jz L0001C3A9 mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001C3A4 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001C3A4: mov eax,[eax+38h] jmp L0001C3BC L0001C3A9: mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C3B9 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C3B9: mov eax,[eax+3Ch] L0001C3BC: mov ecx,[esp+20h] mov [ecx+08h],eax mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C3D3 L0001C3CC: mov eax,[esp+10h] add eax,0000003Ch L0001C3D3: mov edx,[eax+44h] mov [ecx+0Ch],edx L0001C3D9: mov eax,[esi] cmp dword ptr [eax+2Ch],33434D49h jnz L0001C7B7 mov ecx,[esp+1Ch] mov eax,[ecx+7Ch] mov edx,[eax+00000084h] mov [eax+edx*4+04h],esi mov ecx,[eax+00000084h] mov edx,[esp+14h] mov [eax+ecx*4+44h],edx inc [eax+00000084h] jmp L0001C7B7 L0001C412: test eax,20000000h jz L0001C7B7 L0001C41D: mov eax,[esi+04h] or ebp,0A082000h test ah,20h jz L0001C458 mov eax,[esp+20h] push eax lea ecx,[esp+3Ch] push ecx call SUB_L0001BF30 test eax,eax jz L0001D383 mov ebp,[esp+38h] mov edx,[esp+3Ch] mov ebx,[esp+40h] or ebp,02000000h mov [esp+18h],edx L0001C458: mov edi,[esp+14h] mov ecx,[esp+18h] mov edx,[esp+24h] lea eax,[edi+38h] push eax mov eax,[esp+20h] push ebx push ecx mov ecx,[eax+000000A8h] push edx push ebp push ecx call SUB_L000267C0 test eax,eax jz L0001D3A4 test dword ptr [esi+08h],20000000h jz L0001C4A2 mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C49D mov eax,[esp+10h] add eax,0000003Ch L0001C49D: mov eax,[eax+38h] jmp L0001C4B5 L0001C4A2: mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001C4B2 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001C4B2: mov eax,[eax+3Ch] L0001C4B5: mov ecx,[esp+20h] mov [ecx+08h],eax mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C4CC mov edx,[esp+10h] lea eax,[edx+3Ch] L0001C4CC: mov eax,[eax+44h] mov [ecx+0Ch],eax mov ecx,[esi] cmp dword ptr [ecx+2Ch],33434D49h jnz L0001C7B7 mov edx,[esp+1Ch] mov eax,[edx+7Ch] mov ecx,[eax+00000084h] mov [eax+ecx*4+04h],esi mov edx,[eax+00000084h] mov ecx,[esp+14h] mov [eax+edx*4+44h],ecx inc [eax+00000084h] jmp L0001C7B7 L0001C50B: test al,44h jz L0001C7B7 test eax,00002080h jnz L0001C7B7 test eax,10004000h mov edx,[esp+28h] mov ebx,[edx+0Ch] jz L0001C6F7 test eax,20000000h jnz L0001C702 mov eax,[esi+04h] test ah,20h mov ebp,01080000h jz L0001C575 mov eax,[esp+20h] push eax lea ecx,[esp+3Ch] push ecx call SUB_L0001BF30 test eax,eax jz L0001D303 mov ebp,[esp+38h] mov edx,[esp+3Ch] mov ebx,[esp+40h] or ebp,01000000h mov [esp+18h],edx L0001C575: mov eax,[esp+14h] mov ecx,[esp+18h] mov edx,[esp+24h] lea edi,[eax+38h] mov eax,[esp+1Ch] push edi push ebx push ecx mov ecx,[eax+000000A8h] push edx push ebp push ecx call SUB_L000267C0 test eax,eax mov eax,[esi+08h] jz L0001C630 test eax,20000000h jz L0001C5C0 mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C5BB mov eax,[esp+10h] add eax,0000003Ch L0001C5BB: mov eax,[eax+38h] jmp L0001C5D3 L0001C5C0: mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001C5D0 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001C5D0: mov eax,[eax+3Ch] L0001C5D3: mov ecx,[esp+20h] mov [ecx+08h],eax mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C5EA mov edx,[esp+10h] lea eax,[edx+3Ch] L0001C5EA: mov eax,[eax+44h] mov [ecx+0Ch],eax or dword ptr [esi+08h],10000000h mov ecx,[esi] cmp dword ptr [ecx+2Ch],33434D49h jnz L0001C7B7 mov edx,[esp+1Ch] mov eax,[edx+7Ch] mov ecx,[eax+00000084h] mov [eax+ecx*4+04h],esi mov edx,[eax+00000084h] mov ecx,[esp+14h] mov [eax+edx*4+44h],ecx inc [eax+00000084h] jmp L0001C7B7 L0001C630: test ah,40h jz L0001D3D1 test eax,10000000h jnz L0001D3D1 mov eax,[esi+04h] test ah,20h mov ebp,0A080000h jz L0001C67E mov edx,[esp+20h] push edx lea eax,[esp+3Ch] push eax call SUB_L0001BF30 test eax,eax jz L0001D383 mov ebp,[esp+38h] mov ecx,[esp+3Ch] mov ebx,[esp+40h] or ebp,02000000h mov [esp+18h],ecx L0001C67E: mov edx,[esp+18h] mov eax,[esp+24h] mov ecx,[esp+1Ch] push edi push ebx push edx mov edx,[ecx+000000A8h] push eax push ebp push edx call SUB_L000267C0 test eax,eax jz L0001D3CA mov edx,[esi+08h] mov eax,20000000h or edx,eax mov ecx,edx test eax,ecx mov [esi+08h],edx jz L0001C6CB mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C6C6 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C6C6: mov eax,[eax+38h] jmp L0001C6DE L0001C6CB: mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C6DB mov eax,[esp+10h] add eax,0000003Ch L0001C6DB: mov eax,[eax+3Ch] L0001C6DE: mov ecx,[esp+20h] mov [ecx+08h],eax mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C3D3 jmp L0001C3CC L0001C6F7: test eax,20000000h jz L0001C7B7 L0001C702: mov eax,[esi+04h] test ah,20h mov ebp,0A080000h jz L0001C73C mov eax,[esp+20h] push eax lea ecx,[esp+3Ch] push ecx call SUB_L0001BF30 test eax,eax jz L0001D2E2 mov ebp,[esp+38h] mov edx,[esp+3Ch] mov ebx,[esp+40h] or ebp,02000000h mov [esp+18h],edx L0001C73C: mov edi,[esp+14h] mov ecx,[esp+18h] mov edx,[esp+24h] lea eax,[edi+38h] push eax mov eax,[esp+20h] push ebx push ecx mov ecx,[eax+000000A8h] push edx push ebp push ecx call SUB_L000267C0 test eax,eax jz L0001D3D8 mov eax,[esi+08h] mov edx,20000000h test edx,eax mov eax,[esi] mov eax,[eax+20h] jz L0001C789 test eax,eax jnz L0001C784 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C784: mov eax,[eax+38h] jmp L0001C797 L0001C789: test eax,eax jnz L0001C794 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C794: mov eax,[eax+3Ch] L0001C797: mov ecx,[esp+20h] mov [ecx+08h],eax mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C7AE mov eax,[esp+10h] add eax,0000003Ch L0001C7AE: mov eax,[eax+44h] mov [ecx+0Ch],eax or [esi+08h],edx L0001C7B7: mov eax,[esi+08h] test eax,FFFFBFFFh jnz L0001C895 test ah,40h jz L0001C895 mov eax,[esi+04h] test ah,20h mov ecx,[esp+28h] mov ebx,[ecx+0Ch] mov ebp,01080000h jz L0001C80F mov edx,[esp+20h] push edx lea eax,[esp+3Ch] push eax call SUB_L0001BF30 test eax,eax jz L0001D383 mov ebp,[esp+38h] mov ecx,[esp+3Ch] mov ebx,[esp+40h] or ebp,01000000h mov [esp+18h],ecx L0001C80F: mov edi,[esp+14h] mov eax,[esp+18h] mov ecx,[esp+24h] lea edx,[edi+38h] push edx mov edx,[esp+20h] push ebx push eax mov eax,[edx+000000A8h] push ecx push ebp push eax call SUB_L000267C0 test eax,eax jz L0001D3A4 test dword ptr [esi+08h],20000000h jz L0001C859 mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001C854 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001C854: mov eax,[eax+38h] jmp L0001C86C L0001C859: mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C869 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C869: mov eax,[eax+3Ch] L0001C86C: mov ecx,[esp+20h] mov [ecx+08h],eax mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C883 mov eax,[esp+10h] add eax,0000003Ch L0001C883: mov edx,[eax+44h] mov [ecx+0Ch],edx or dword ptr [esi+08h],10000000h jmp L0001CA33 L0001C895: test eax,DFFFBFFFh jnz L0001C962 test eax,20004000h jz L0001C962 mov eax,[esp+28h] mov ebx,[eax+0Ch] mov eax,[esi+04h] test ah,20h mov ebp,0A080000h jz L0001C8EC mov ecx,[esp+20h] push ecx lea edx,[esp+3Ch] push edx call SUB_L0001BF30 test eax,eax jz L0001D303 mov ebp,[esp+38h] mov eax,[esp+3Ch] mov ebx,[esp+40h] or ebp,02000000h mov [esp+18h],eax L0001C8EC: mov edi,[esp+14h] mov edx,[esp+18h] mov eax,[esp+24h] lea ecx,[edi+38h] push ecx mov ecx,[esp+20h] push ebx push edx mov edx,[ecx+000000A8h] push eax push ebp push edx call SUB_L000267C0 test eax,eax jz L0001D447 test dword ptr [esi+08h],20000000h jz L0001C936 mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C931 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C931: mov eax,[eax+38h] jmp L0001C949 L0001C936: mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001C946 mov eax,[esp+10h] add eax,0000003Ch L0001C946: mov eax,[eax+3Ch] L0001C949: mov ecx,[esp+20h] mov [ecx+08h],eax mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001CA2D jmp L0001CA26 L0001C962: test eax,EFFFBFFFh jnz L0001CA33 test eax,10004000h jz L0001CA33 mov eax,[esp+28h] mov ebx,[eax+0Ch] mov eax,[esi+04h] test ah,20h mov ebp,01080000h jz L0001C9B9 mov ecx,[esp+20h] push ecx lea edx,[esp+3Ch] push edx call SUB_L0001BF30 test eax,eax jz L0001D2E2 mov ebp,[esp+38h] mov eax,[esp+3Ch] mov ebx,[esp+40h] or ebp,01000000h mov [esp+18h],eax L0001C9B9: mov edi,[esp+14h] mov edx,[esp+18h] mov eax,[esp+24h] lea ecx,[edi+38h] push ecx mov ecx,[esp+20h] push ebx push edx mov edx,[ecx+000000A8h] push eax push ebp push edx call SUB_L000267C0 test eax,eax jz L0001D3D8 test dword ptr [esi+08h],20000000h jz L0001CA03 mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001C9FE mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001C9FE: mov eax,[eax+38h] jmp L0001CA16 L0001CA03: mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001CA13 mov eax,[esp+10h] add eax,0000003Ch L0001CA13: mov eax,[eax+3Ch] L0001CA16: mov ecx,[esp+20h] mov [ecx+08h],eax mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001CA2D L0001CA26: mov eax,[esp+10h] add eax,0000003Ch L0001CA2D: mov edx,[eax+44h] mov [ecx+0Ch],edx L0001CA33: mov eax,[esi+08h] test eax,20000000h jz L0001CA48 test eax,080A0000h jnz L0001D2C1 L0001CA48: test al,80h jz L0001D17B mov ecx,[esp+10h] mov edx,[esi] mov edi,[ecx+000002C4h] cmp edi,[edx+48h] jz L0001CA6B mov dword ptr [esp+34h],00000001h jmp L0001CA73 L0001CA6B: mov edi,[esp+34h] test edi,edi jz L0001CA81 L0001CA73: mov edi,[ecx+000002A8h] test edi,edi jnz L0001D3DB L0001CA81: test dword ptr [esi+04h],00002000h jz L0001CD33 mov ecx,[esp+20h] mov ecx,[ecx+28h] test cl,04h jz L0001CC49 mov eax,[esp+1Ch] cmp dword ptr [eax+10h],00010303h jz L0001CAB6 mov ecx,L00080000 mov [esp+2Ch],ecx jmp L0001CABA L0001CAB6: mov ecx,[esp+2Ch] L0001CABA: mov eax,[edx+2Ch] cmp eax,43414D49h ja L0001CBC2 jz L0001CB94 cmp eax,32595559h ja L0001CB5B jz L0001CBDB cmp eax,30323449h jz L0001CB27 cmp eax,32315659h jnz L0001CDF2 mov eax,[esp+18h] mov ecx,[esp+10h] mov ebp,[esp+2Ch] mov [ecx+00000328h],eax mov dword ptr [ecx+000002B8h],00000001h mov ecx,eax shr ecx,1 or ebp,20000000h add eax,ecx mov ebx,00000008h mov [esp+18h],eax jmp L0001CDF2 L0001CB27: mov eax,[esp+18h] mov ebp,ecx mov ecx,[esp+10h] mov edx,eax shr edx,1 or ebp,20000000h mov [ecx+00000328h],eax add eax,edx mov dword ptr [ecx+000002B8h],00000001h mov ebx,00000008h mov [esp+18h],eax jmp L0001CDF2 L0001CB5B: cmp eax,33434D49h jnz L0001CDF2 mov ecx,[esp+10h] mov eax,[esp+18h] mov dword ptr [ecx+000002B8h],00000001h mov [ecx+00000328h],eax lea ecx,[eax+eax] mov ebp,20080000h mov [esp+18h],ecx mov ebx,00000008h jmp L0001CDF2 L0001CB94: mov eax,[esp+18h] mov ecx,[esp+10h] lea edx,[eax+eax] mov ebp,20080000h mov dword ptr [ecx+000002B8h],00000001h mov [ecx+00000328h],eax mov [esp+18h],edx mov ebx,00000008h jmp L0001CDF2 L0001CBC2: cmp eax,55595659h jz L0001CC2C cmp eax,56555949h jz L0001CBF8 cmp eax,59565955h jnz L0001CDF2 L0001CBDB: mov eax,[esp+10h] mov ebp,20080000h mov dword ptr [eax+000002B8h],00000001h mov ebx,00000010h jmp L0001CDF2 L0001CBF8: mov eax,[esp+18h] mov ebp,ecx mov ecx,[esp+10h] mov [ecx+00000328h],eax mov dword ptr [ecx+000002B8h],00000001h mov ecx,eax shr ecx,1 or ebp,20000000h add eax,ecx mov ebx,00000008h mov [esp+18h],eax jmp L0001CDF2 L0001CC2C: mov edx,[esp+10h] mov ebp,20080000h mov dword ptr [edx+000002B8h],00000001h mov ebx,00000010h jmp L0001CDF2 L0001CC49: test cl,40h jz L0001D303 and eax,00002000h neg eax sbb eax,eax and eax,20080000h or ebp,eax mov eax,[esp+28h] cmp dword ptr [eax+0Ch],00000010h jnz L0001CDF2 mov edx,[eax+10h] cmp edx,00007C00h jnz L0001CC8E mov ecx,[eax+14h] cmp ecx,000003E0h jnz L0001CC8E mov eax,[eax+18h] cmp eax,0000001Fh jz L0001CCBD L0001CC8E: cmp edx,0000F800h jnz L0001CDF2 mov ecx,[esp+28h] mov ecx,[ecx+14h] cmp ecx,000007E0h jnz L0001CDF2 mov eax,[esp+28h] mov eax,[eax+18h] cmp eax,0000001Fh jnz L0001CDF2 L0001CCBD: cmp edx,0000F800h jnz L0001CCF0 cmp ecx,000007E0h jnz L0001CCF0 cmp eax,0000001Fh jnz L0001CCF0 mov eax,[esp+10h] mov ebx,00000010h mov dword ptr [eax+000002B8h],00000002h mov [eax+00000364h],ebx jmp L0001CDF2 L0001CCF0: cmp edx,00007C00h jnz L0001CDF2 cmp ecx,000003E0h jnz L0001CDF2 cmp eax,0000001Fh jnz L0001CDF2 mov eax,[esp+10h] mov dword ptr [eax+000002B8h],00000002h mov dword ptr [eax+00000364h],0000000Fh mov ebx,00000010h jmp L0001CDF2 L0001CD33: mov edx,[esp+28h] and eax,00002000h neg eax sbb eax,eax and eax,20080000h or ebp,eax mov eax,[edx+0Ch] mov edi,00000010h cmp eax,edi jnz L0001CD84 mov eax,[edx+10h] cmp eax,0000F800h jnz L0001CD6C cmp dword ptr [edx+14h],000007E0h jnz L0001CD6C cmp dword ptr [edx+18h],0000001Fh jz L0001CDA8 L0001CD6C: cmp eax,00007C00h jnz L0001CDF2 cmp dword ptr [edx+14h],000003E0h jnz L0001CDF2 cmp dword ptr [edx+18h],0000001Fh jnz L0001CDF2 jmp L0001CDDC L0001CD84: mov edx,[esp+20h] mov eax,[edx+34h] add edx,00000024h cmp eax,0000F800h mov [esp+28h],edx jnz L0001CDBA cmp dword ptr [edx+14h],000007E0h jnz L0001CDBA cmp dword ptr [edx+18h],0000001Fh jnz L0001CDBA L0001CDA8: mov dword ptr [ecx+000002B8h],00000002h mov [ecx+00000364h],edi jmp L0001CDF0 L0001CDBA: cmp eax,00007C00h jnz L0001D303 cmp dword ptr [edx+14h],000003E0h jnz L0001D303 cmp dword ptr [edx+18h],0000001Fh jnz L0001D303 L0001CDDC: mov dword ptr [ecx+000002B8h],00000002h mov dword ptr [ecx+00000364h],0000000Fh L0001CDF0: mov ebx,edi L0001CDF2: mov eax,[esi+08h] test eax,20000000h jz L0001CF4D mov edi,[esp+14h] mov ecx,[esp+18h] mov edx,[esp+24h] lea eax,[edi+38h] push eax mov eax,[esp+20h] push ebx push ecx mov ecx,[eax+000000A8h] push edx or ebp,0A000010h push ebp push ecx call SUB_L000267C0 test eax,eax jz L0001D447 test dword ptr [esi+08h],20000000h jz L0001CE50 mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001CE4B mov eax,[esp+10h] add eax,0000003Ch L0001CE4B: mov eax,[eax+38h] jmp L0001CE63 L0001CE50: mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001CE60 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001CE60: mov eax,[eax+3Ch] L0001CE63: mov ecx,[esp+20h] mov [ecx+08h],eax mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001CE7A mov edx,[esp+10h] lea eax,[edx+3Ch] L0001CE7A: mov eax,[eax+44h] mov [ecx+0Ch],eax mov ecx,[esi] mov eax,[ecx+2Ch] cmp eax,33434D49h jnz L0001CE95 mov edx,[esp+1Ch] mov eax,[edx+7Ch] jmp L0001CEA3 L0001CE95: cmp eax,43414D49h jnz L0001CEBD mov eax,[esp+1Ch] mov eax,[eax+7Ch] L0001CEA3: mov ecx,[eax+00000084h] mov [eax+ecx*4+04h],esi mov edx,[eax+00000084h] mov [eax+edx*4+44h],edi inc [eax+00000084h] L0001CEBD: mov eax,[esp+10h] mov ecx,[eax+000003ECh] test ecx,ecx jnz L0001D17B push 00000080h push 00000001h mov ebx,00000008h mov ebp,52000000h call OsAllocMem test eax,eax mov [esp+14h],eax jz L0001D461 mov edx,[esp+1Ch] mov ecx,eax mov eax,[edx+000000A8h] lea edi,[ecx+38h] push edi push 00000078h push ebp push eax call SUB_L00026250 test eax,eax jz L0001D359 mov ecx,[edi] mov edx,[esp+10h] mov eax,[esp+14h] mov [edx+000003E4h],ecx mov ecx,[eax+40h] mov edi,[edx+000003E4h] mov [edx+000003E8h],ecx mov [edx+000003ECh],eax mov dword ptr [edx+000003E0h],00000001h mov ecx,0000001Eh xor eax,eax jmp L0001D179 L0001CF4D: test eax,10004000h jz L0001D17B mov edx,[esi] mov eax,[edx+2Ch] or ebp,01000010h cmp eax,30323449h jz L0001CF71 cmp eax,56555949h jnz L0001CF92 L0001CF71: mov ecx,[esp+1Ch] mov edx,[ecx+10h] and edx,00010100h cmp edx,00010100h jnz L0001CF92 and ebp,DEF7FFFFh or ebp,02000000h L0001CF92: cmp eax,32595559h jnz L0001CFB7 mov eax,[esp+24h] cmp eax,00000140h jc L0001CFB7 cmp eax,000002D0h ja L0001CFB7 and ebp,DEF7FFFFh or ebp,02000000h L0001CFB7: mov eax,[esp+14h] mov ecx,[esp+18h] mov edx,[esp+24h] lea edi,[eax+38h] mov eax,[esp+1Ch] push edi push ebx push ecx mov ecx,[eax+000000A8h] push edx push ebp push ecx call SUB_L000267C0 test eax,eax mov eax,[esi+08h] jz L0001D03A test eax,20000000h jz L0001CFFE mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001CFF9 mov eax,[esp+10h] add eax,0000003Ch L0001CFF9: mov eax,[eax+38h] jmp L0001D011 L0001CFFE: mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001D00E mov edx,[esp+10h] lea eax,[edx+3Ch] L0001D00E: mov eax,[eax+3Ch] L0001D011: mov ecx,[esp+20h] mov [ecx+08h],eax mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001D028 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001D028: mov eax,[eax+44h] mov [ecx+0Ch],eax or dword ptr [esi+08h],10000000h jmp L0001D0C1 L0001D03A: mov ecx,[esp+18h] mov edx,[esp+24h] push edi push ebx push ecx or eax,20000000h mov [esi+08h],eax mov eax,[esp+28h] mov ecx,[eax+000000A8h] and ebp,FEFFFFFFh push edx or ebp,0A000000h push ebp push ecx call SUB_L000267C0 test eax,eax jz L0001D41D test dword ptr [esi+08h],20000000h jz L0001D091 mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001D08C mov eax,[esp+10h] add eax,0000003Ch L0001D08C: mov eax,[eax+38h] jmp L0001D0A4 L0001D091: mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001D0A1 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001D0A1: mov eax,[eax+3Ch] L0001D0A4: mov ecx,[esp+20h] mov [ecx+08h],eax mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001D0BB mov edx,[esp+10h] lea eax,[edx+3Ch] L0001D0BB: mov eax,[eax+44h] mov [ecx+0Ch],eax L0001D0C1: mov ecx,[esi] mov eax,[ecx+2Ch] cmp eax,33434D49h jz L0001D0D4 cmp eax,43414D49h jnz L0001D0F9 L0001D0D4: mov edx,[esp+1Ch] mov eax,[edx+7Ch] mov ecx,[eax+00000084h] mov [eax+ecx*4+04h],esi mov edx,[eax+00000084h] mov ecx,[esp+14h] mov [eax+edx*4+44h],ecx inc [eax+00000084h] L0001D0F9: mov edx,[esp+10h] mov eax,[edx+000003F8h] test eax,eax jnz L0001D17B push 00000080h push 00000001h mov ebp,51000000h call OsAllocMem test eax,eax mov [esp+14h],eax jz L0001D461 mov ecx,[esp+1Ch] mov edx,[ecx+000000A8h] lea edi,[eax+38h] push edi push 00000078h push ebp push edx call SUB_L00026250 test eax,eax jz L0001D3FC mov eax,[edi] mov edx,[esp+10h] mov [edx+000003F0h],eax mov eax,[esp+14h] mov ecx,[eax+40h] mov edi,[edx+000003F0h] mov [edx+000003F4h],ecx mov [edx+000003F8h],eax mov dword ptr [edx+000003E0h],00000002h mov ecx,0000001Eh xor eax,eax L0001D179: rep stosd L0001D17B: test dword ptr [esi+08h],08000000h jz L0001D23E mov eax,[esi+04h] test ah,20h jz L0001D23E mov edx,[esp+20h] test byte ptr [edx+28h],04h jz L0001D23E mov eax,[esi] cmp dword ptr [eax+2Ch],44494256h jnz L0001D23E mov edi,[esp+14h] mov ecx,[esp+28h] mov ebx,[ecx+0Ch] mov eax,[esp+18h] mov ecx,[esp+24h] lea edx,[edi+38h] push edx mov edx,[esp+20h] push ebx push eax mov eax,[edx+000000A8h] push ecx mov ebp,01000000h push ebp push eax call SUB_L000267C0 test eax,eax jz L0001D447 test dword ptr [esi+08h],20000000h jz L0001D207 mov ecx,[esi] mov eax,[ecx+20h] test eax,eax jnz L0001D202 mov edx,[esp+10h] lea eax,[edx+3Ch] L0001D202: mov eax,[eax+38h] jmp L0001D21A L0001D207: mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L0001D217 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0001D217: mov eax,[eax+3Ch] L0001D21A: mov ecx,[esp+20h] mov [ecx+08h],eax mov edx,[esi] mov eax,[edx+20h] test eax,eax jnz L0001D231 mov eax,[esp+10h] add eax,0000003Ch L0001D231: mov edx,[eax+44h] mov [ecx+0Ch],edx or dword ptr [esi+08h],10000000h L0001D23E: mov eax,[esp+30h] mov ecx,[esp+48h] mov edx,[ecx+0Ch] inc eax cmp eax,edx mov [esp+30h],eax jl L0001C11E mov esi,[esp+1Ch] mov ecx,[esp+10h] xor ebp,ebp L0001D260: mov eax,[esi+7Ch] cmp eax,ebp jz L0001D292 cmp dword ptr [ecx+000006B4h],00000001h jnz L0001D292 mov ecx,[eax+00000B60h] test cl,01h jz L0001D292 mov edx,[eax+00000084h] cmp edx,[eax+00000B64h] jnz L0001D292 and ecx,FFFFFFFEh mov [eax+00000B60h],ecx L0001D292: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D2A1: mov edx,[esi] mov eax,[esp+48h] pop edi pop esi mov dword ptr [edx+20h],00000000h pop ebp mov dword ptr [eax+10h],8007000Eh xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D2C1: mov ecx,[esp+14h] push ecx call OsFreeMem mov edx,[esp+48h] pop edi pop esi pop ebp mov dword ptr [edx+10h],8876017Ch xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D2E2: mov eax,[esp+14h] push eax call OsFreeMem mov ecx,[esp+48h] pop edi pop esi pop ebp mov dword ptr [ecx+10h],88760091h xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D303: mov edx,[esp+14h] push edx call OsFreeMem mov eax,[esp+48h] pop edi pop esi pop ebp mov dword ptr [eax+10h],88760091h xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D324: mov ecx,[esp+14h] push ecx call OsFreeMem mov eax,[esi+08h] mov edx,[esi] and eax,DFFFFFFFh mov [esi+08h],eax mov eax,[esp+48h] pop edi pop esi mov dword ptr [edx+20h],00000000h pop ebp mov dword ptr [eax+10h],8876017Ch xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D359: mov ecx,[esp+14h] push ecx L0001D35E: call OsFreeMem mov edx,[esi] mov eax,[esp+48h] pop edi pop esi mov dword ptr [edx+20h],00000000h pop ebp mov dword ptr [eax+10h],8876017Ch xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D383: mov ecx,[esp+14h] push ecx call OsFreeMem mov edx,[esp+48h] pop edi pop esi pop ebp mov dword ptr [edx+10h],88760091h xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D3A4: push edi call OsFreeMem mov eax,[esi] mov ecx,[esp+48h] pop edi pop esi mov dword ptr [eax+20h],00000000h pop ebp mov dword ptr [ecx+10h],8876017Ch xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D3CA: and dword ptr [esi+08h],DFFFFFFFh L0001D3D1: mov eax,[esp+14h] push eax jmp L0001D448 L0001D3D8: push edi jmp L0001D35E L0001D3DB: mov eax,[esp+14h] push eax call OsFreeMem mov ecx,[esp+48h] pop edi pop esi pop ebp mov dword ptr [ecx+10h],88760104h xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D3FC: mov eax,[esp+14h] push eax call OsFreeMem mov ecx,[esp+48h] pop edi pop esi pop ebp mov dword ptr [ecx+10h],8876017Ch xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D41D: mov edx,[esp+14h] push edx call OsFreeMem mov eax,[esi] mov ecx,[esp+48h] pop edi pop esi mov dword ptr [eax+20h],00000000h pop ebp mov dword ptr [ecx+10h],8876017Ch xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ L0001D447: push edi L0001D448: call OsFreeMem mov ecx,[esi] mov edx,[esp+48h] mov dword ptr [ecx+20h],00000000h mov dword ptr [edx+10h],8876017Ch L0001D461: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0001D470: sub esp,00000020h push ebx mov ebx,[esp+28h] mov eax,[ebx] push esi push edi push eax call GetDriverData mov esi,eax push esi call SUB_L00017390 mov eax,[ebx+04h] mov edx,[eax+68h] mov dword ptr [ebx+0Ch],00000000h mov ecx,[esi+00000118h] test ecx,ecx jz L0001D4B8 test dl,80h jz L0001D4B8 pop edi pop esi mov dword ptr [ebx+0Ch],88760104h xor eax,eax pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001D4B8: test edx,L00023000 jnz L0001D56D test dl,90h jz L0001D4EC test byte ptr [eax+04h],06h jz L0001D4EC mov ecx,[eax+0Ch] cmp ecx,[esi+68h] jbe L0001D4EC pop edi pop esi mov dword ptr [ebx+0Ch],8876017Ch mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001D4EC: mov ecx,[ebx+08h] test ecx,ecx jz L0001D568 test dl,80h lea esi,[eax+48h] mov ecx,00000008h lea edi,[esp+0Ch] rep movsd jz L0001D574 mov al,[esp+10h] test al,04h jz L0001D564 mov edx,[L000B2B00] mov esi,[esp+14h] xor eax,eax test edx,edx jbe L0001D52F mov ecx,L000B2AF0 L0001D523: cmp esi,[ecx] jz L0001D54F inc eax add ecx,00000004h cmp eax,edx jc L0001D523 L0001D52F: cmp esi,43414D49h jz L0001D54F cmp esi,524F4749h jz L0001D54F cmp esi,34344941h jz L0001D54F cmp esi,33434D49h jnz L0001D56D L0001D54F: pop edi pop esi mov dword ptr [ebx+0Ch],00000000h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001D564: test al,40h jmp L0001D56D L0001D568: test dl,80h jz L0001D574 L0001D56D: mov dword ptr [ebx+0Ch],88760091h L0001D574: pop edi pop esi mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001D590: sub esp,000000B4h mov eax,[esp+000000B8h] mov ecx,[eax] push ebx push ebp push esi push edi mov edi,[eax+04h] push ecx call GetDriverData mov esi,eax push esi call SUB_L00017390 mov ebp,[edi] mov ebx,eax mov eax,[esi+000000ACh] mov [esp+18h],esi mov ecx,[esi+7Ch] lea edx,[esp+18h] push edx mov [esp+14h],eax add ebp,00000024h mov [esp+18h],ecx call SUB_L0002E310 push esi call SUB_L00029670 mov eax,[edi+04h] test ah,40h jz L0001D813 mov eax,[esp+10h] mov ecx,[eax+00000204h] push ecx push esi call SUB_L0002FE20 test eax,eax jz L0001D616 L0001D601: mov edx,[esp+10h] mov eax,[edx+00000204h] push eax push esi call SUB_L0002FE20 test eax,eax jnz L0001D601 L0001D616: mov eax,[ebx+000002A8h] test eax,eax jnz L0001D6A6 mov eax,[ebx+000003F8h] test eax,eax mov [esp+10h],eax jz L0001D660 mov ecx,[esi+000000A8h] add eax,00000038h push eax push ecx call SUB_L00026030 mov edx,[esp+10h] push edx call OsFreeMem xor eax,eax mov [ebx+000003F8h],eax mov [ebx+000003F0h],eax mov [ebx+000003F4h],eax L0001D660: mov eax,[ebx+000003ECh] test eax,eax mov [esp+10h],eax jz L0001D69C add eax,00000038h push eax mov eax,[esi+000000A8h] push eax call SUB_L00026030 mov ecx,[esp+10h] push ecx call OsFreeMem xor eax,eax mov [ebx+000003ECh],eax mov [ebx+000003E4h],eax mov [ebx+000003E8h],eax L0001D69C: and dword ptr [ebx+000002BCh],FFFFDFFFh L0001D6A6: mov ebp,[ebp+08h] cmp ebp,33434D49h jnz L0001D740 mov edx,[edi] mov ebp,[edx+20h] test ebp,ebp jnz L0001D6C5 lea ebp,[ebx+3Ch] test ebp,ebp jz L0001D6E4 L0001D6C5: mov ecx,[esi+000000A8h] lea eax,[ebp+38h] push eax push ecx call SUB_L00026030 push ebp call OsFreeMem mov edx,[edi] mov dword ptr [edx+20h],00000000h L0001D6E4: mov edi,[esp+14h] mov eax,[edi+00000084h] test eax,eax jz L0001D70A mov ecx,[edi+00000B64h] dec eax cmp eax,ecx mov [edi+00000084h],eax jz L0001D70A or dword ptr [edi+00000B60h],00000001h L0001D70A: mov eax,[edi+00000084h] test eax,eax jnz L0001D85D cmp dword ptr [ebx+000006B4h],FFFFFFFFh jnz L0001D85D xor eax,eax mov ecx,000002DAh rep stosd pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001D740: cmp ebp,43414D49h jnz L0001D7CE mov eax,[edi] mov eax,[eax+20h] test eax,eax jnz L0001D75A add ebx,0000003Ch jmp L0001D75C L0001D75A: mov ebx,eax L0001D75C: test ebx,ebx jz L0001D77F mov edx,[esi+000000A8h] lea ecx,[ebx+38h] push ecx push edx call SUB_L00026030 push ebx call OsFreeMem mov eax,[edi] mov dword ptr [eax+20h],00000000h L0001D77F: mov edi,[esp+14h] mov eax,[edi+00000084h] test eax,eax jz L0001D7A5 mov ecx,[edi+00000B64h] dec eax cmp eax,ecx mov [edi+00000084h],eax jz L0001D7A5 or dword ptr [edi+00000B60h],00000001h L0001D7A5: mov eax,[edi+00000084h] test eax,eax jnz L0001D85D xor eax,eax mov ecx,000002DAh rep stosd pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001D7CE: mov ecx,[edi] mov eax,[ecx+20h] test eax,eax jnz L0001D7DC add ebx,0000003Ch jmp L0001D7DE L0001D7DC: mov ebx,eax L0001D7DE: test ebx,ebx jz L0001D85D mov eax,[esi+000000A8h] lea edx,[ebx+38h] push edx push eax call SUB_L00026030 push ebx call OsFreeMem mov ecx,[edi] pop edi pop esi pop ebp mov dword ptr [ecx+20h],00000000h mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ L0001D813: mov edx,[edi] mov eax,[edx+20h] xor ebp,ebp cmp eax,ebp jnz L0001D823 add ebx,0000003Ch jmp L0001D825 L0001D823: mov ebx,eax L0001D825: cmp ebx,ebp jz L0001D85D mov ecx,[esi+000000A8h] lea eax,[ebx+38h] push eax push ecx call SUB_L00026030 test dword ptr [edi+08h],00400000h jz L0001D852 mov eax,[ebx+7Ch] cmp eax,ebp jz L0001D852 push eax call OsFreeMem mov [ebx+7Ch],ebp L0001D852: push ebx call OsFreeMem mov edx,[edi] mov [edx+20h],ebp L0001D85D: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001D870: mov ecx,[esp+04h] test ecx,ecx jz L0001D95C mov eax,[ecx+08h] test eax,eax mov dword ptr [ecx+04h],00000005h jz L0001D94D push esi mov esi,[L000B23D8] mov edx,eax mov [edx],esi mov esi,[L000B23DC] mov [edx+04h],esi mov esi,[L000B23E0] mov [edx+08h],esi mov esi,[L000B23E4] mov [edx+0Ch],esi mov esi,[L000B23C8] lea edx,[eax+10h] mov [edx],esi mov esi,[L000B23CC] mov [edx+04h],esi mov esi,[L000B23D0] mov [edx+08h],esi mov esi,[L000B23D4] mov [edx+0Ch],esi mov esi,[L000B23B8] lea edx,[eax+20h] mov [edx],esi mov esi,[L000B23BC] mov [edx+04h],esi mov esi,[L000B23C0] mov [edx+08h],esi mov esi,[L000B23C4] mov [edx+0Ch],esi mov esi,[L000B23A8] lea edx,[eax+30h] mov [edx],esi mov esi,[L000B23AC] mov [edx+04h],esi mov esi,[L000B23B0] mov [edx+08h],esi mov esi,[L000B23B4] mov [edx+0Ch],esi mov edx,[L000B2398] add eax,00000040h mov [eax],edx mov edx,[L000B239C] mov [eax+04h],edx mov edx,[L000B23A0] mov [eax+08h],edx mov edx,[L000B23A4] mov [eax+0Ch],edx pop esi L0001D94D: mov dword ptr [ecx+0Ch],00000000h mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ L0001D95C: xor eax,eax retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001D970: mov eax,[esp+04h] test eax,eax push ebp push esi push edi jnz L0001D98B pop edi pop esi mov dword ptr [00000010h],80004001h pop ebp retn 0004h ;------------------------------------------------------------------------------ L0001D98B: mov edx,[eax+04h] mov ecx,00000004h mov edi,L000B23D8 mov esi,edx xor ebp,ebp repe cmpsd jnz L0001D9C8 mov ecx,[eax+0Ch] test ecx,ecx mov dword ptr [eax+08h],00000001h jz L0001DA4B mov dword ptr [ecx],00000020h mov dword ptr [ecx+04h],00000204h mov dword ptr [ecx+08h],43414D49h jmp L0001DA44 L0001D9C8: mov ecx,00000004h mov edi,L000B23C8 mov esi,edx xor ebp,ebp repe cmpsd jz L0001DA22 mov ecx,00000004h mov edi,L000B23B8 mov esi,edx xor ebp,ebp repe cmpsd jz L0001DA22 mov ecx,00000004h mov edi,L000B23A8 mov esi,edx xor ebp,ebp repe cmpsd jz L0001DA22 mov esi,edx mov ecx,00000004h mov edi,L000B2398 xor edx,edx repe cmpsd jz L0001DA22 pop edi pop esi mov dword ptr [eax+10h],887600FFh mov eax,00000001h pop ebp retn 0004h ;------------------------------------------------------------------------------ L0001DA22: mov ecx,[eax+0Ch] test ecx,ecx mov dword ptr [eax+08h],00000001h jz L0001DA4B mov dword ptr [ecx],00000020h mov dword ptr [ecx+04h],00000204h mov dword ptr [ecx+08h],33434D49h L0001DA44: mov dword ptr [ecx+0Ch],0000000Ch L0001DA4B: pop edi pop esi mov dword ptr [eax+10h],00000000h mov eax,00000001h pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001DA60: mov edx,[esp+04h] test edx,edx push ebp push esi push edi jz L0001DAF7 mov eax,[edx+04h] mov ecx,00000004h mov edi,L000B23D8 mov esi,eax xor ebp,ebp repe cmpsd jz L0001DADE mov ecx,00000004h mov edi,L000B23C8 mov esi,eax xor ebp,ebp repe cmpsd jz L0001DADE mov ecx,00000004h mov edi,L000B23B8 mov esi,eax xor ebp,ebp repe cmpsd jz L0001DADE mov ecx,00000004h mov edi,L000B23A8 mov esi,eax xor ebp,ebp repe cmpsd jz L0001DADE mov esi,eax mov ecx,00000004h mov edi,L000B2398 xor eax,eax repe cmpsd jz L0001DADE pop edi pop esi mov dword ptr [edx+34h],887600FFh mov eax,00000001h pop ebp retn 0004h ;------------------------------------------------------------------------------ L0001DADE: pop edi pop esi mov dword ptr [edx+30h],00000000h mov dword ptr [edx+34h],00000000h mov eax,00000001h pop ebp retn 0004h ;------------------------------------------------------------------------------ L0001DAF7: pop edi pop esi xor eax,eax pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001DB00: mov edx,[esp+04h] sub esp,00000008h test edx,edx push ebx push ebp push esi push edi jz L0001E07C mov ebx,[edx+04h] xor eax,eax mov ecx,00000004h mov edi,L000B23D8 mov esi,ebx repe cmpsd mov eax,00000001h jnz L0001DC16 mov esi,[edx+08h] mov ecx,[edx+34h] test ecx,ecx mov [esp+10h],esi mov esi,[edx+0Ch] mov [esp+14h],esi mov dword ptr [edx+30h],00000003h jz L0001E06B mov ebx,00000044h mov esi,00000B40h mov edi,00000020h mov [ecx+44h],ebx mov [ecx+4Ch],esi mov [ecx+54h],esi mov esi,00000008h mov [ecx],ebx mov [ecx+00000088h],ebx mov ebx,[esp+10h] mov [ecx+68h],edi mov [ecx+24h],edi mov [ecx+000000ACh],edi pop edi mov ebp,00000060h mov [ecx+74h],esi mov [ecx+30h],esi mov [ecx+00000090h],ebx mov ebx,[esp+10h] mov [ecx+000000B8h],esi pop esi mov [ecx+6Ch],ebp mov [ecx+28h],ebp mov [ecx+00000094h],ebx pop ebp mov dword ptr [ecx+48h],00000002h mov [ecx+50h],eax mov dword ptr [ecx+58h],00000840h mov dword ptr [ecx+04h],00000002h mov dword ptr [ecx+08h],0000021Ch mov dword ptr [ecx+0Ch],00000080h mov dword ptr [ecx+10h],L00010E00 mov dword ptr [ecx+14h],00000840h mov [ecx+0000008Ch],eax mov dword ptr [ecx+0000009Ch],20004040h mov dword ptr [ecx+000000B0h],00000004h mov dword ptr [ecx+000000B4h],34344941h mov dword ptr [edx+38h],00000000h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L0001DC16: mov ecx,00000004h mov edi,L000B23C8 mov esi,ebx xor ebp,ebp repe cmpsd jz L0001DF34 mov ecx,00000004h mov edi,L000B23A8 mov esi,ebx xor ebp,ebp repe cmpsd jz L0001DF34 mov ecx,00000004h mov edi,L000B23B8 mov esi,ebx xor ebp,ebp repe cmpsd jz L0001DC7C mov esi,ebx mov ecx,00000004h mov edi,L000B2398 xor ebx,ebx repe cmpsd jz L0001DC7C pop edi pop esi pop ebp mov dword ptr [edx+38h],887600FFh mov eax,00000001h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L0001DC7C: mov esi,[edx+08h] mov ecx,[edx+34h] test ecx,ecx mov [esp+10h],esi mov esi,[edx+0Ch] mov [esp+14h],esi mov dword ptr [edx+30h],00000010h jz L0001E06B mov ebx,00000044h mov [ecx],ebx mov dword ptr [ecx+04h],00000000h mov edx,00000014h mov [ecx+08h],edx mov [ecx+0Ch],eax mov [ecx+10h],edx mov dword ptr [ecx+14h],00000840h mov edi,00000020h mov [ecx+24h],edi mov ebp,00000060h mov [ecx+28h],ebp mov esi,00000008h mov [ecx+30h],esi mov [ecx+44h],ebx mov [ecx+48h],eax mov edx,00000400h mov [ecx+4Ch],edx mov [ecx+50h],eax mov eax,[ecx+4Ch] mov [ecx+54h],eax mov dword ptr [ecx+58h],00000840h mov [ecx+68h],edi mov [ecx+6Ch],ebp mov [ecx+74h],esi mov [ecx+00000088h],ebx mov dword ptr [ecx+0000008Ch],00000002h mov [ecx+00000090h],edx mov dword ptr [ecx+00000094h],00000003h mov eax,[ecx+00000090h] lea eax,[eax+eax*2] mov [ecx+00000098h],eax mov dword ptr [ecx+0000009Ch],00000840h mov [ecx+000000ACh],edi mov [ecx+000000B0h],ebp mov [ecx+000000B8h],esi mov [ecx+000000CCh],ebx mov dword ptr [ecx+000000D0h],00000002h mov [ecx+000000D4h],edx mov [ecx+000000D8h],ebx mov eax,[ecx+000000D4h] mov edx,eax shl edx,04h add edx,eax shl edx,02h mov [ecx+000000DCh],edx mov dword ptr [ecx+000000E0h],00000840h mov [ecx+000000F0h],edi mov [ecx+000000F4h],ebp mov [ecx+000000FCh],esi lea edx,[ecx+00000118h] mov eax,00000004h L0001DDA2: mov [edx-08h],ebx mov dword ptr [edx-04h],00000000h mov dword ptr [edx],00000014h mov dword ptr [edx+04h],00000001h mov dword ptr [edx+08h],00000014h mov dword ptr [edx+0Ch],00000840h mov [edx+1Ch],edi mov [edx+20h],ebp mov [edx+28h],esi add edx,ebx dec eax jnz L0001DDA2 mov edx,00000001h mov eax,00000040h mov [ecx+00000224h],edx mov [ecx+00000228h],edx mov [ecx+0000022Ch],eax mov [ecx+00000230h],eax mov eax,[esp+10h] mov [ecx+00000268h],edx mov edx,[esp+14h] mov [ecx+0000026Ch],eax mov [ecx+00000270h],edx mov [ecx+00000220h],ebx mov dword ptr [ecx+00000234h],00000840h mov [ecx+00000244h],edi mov [ecx+00000248h],ebp mov [ecx+00000250h],esi mov [ecx+00000264h],ebx mov dword ptr [ecx+00000278h],20004040h mov [ecx+00000288h],edi mov dword ptr [ecx+0000028Ch],00000004h mov dword ptr [ecx+00000290h],34344941h mov [ecx+00000294h],esi lea edx,[ecx+000002B0h] mov eax,00000003h L0001DE6E: mov [edx-08h],ebx mov dword ptr [edx-04h],00000000h mov dword ptr [edx],00000014h mov dword ptr [edx+04h],00000001h mov dword ptr [edx+08h],00000014h mov dword ptr [edx+0Ch],00000840h mov [edx+1Ch],edi mov [edx+20h],ebp mov [edx+28h],esi add edx,ebx dec eax jnz L0001DE6E mov edx,0000004Ch mov eax,00000001h mov [ecx+00000380h],edx mov [ecx+00000384h],edx mov [ecx+00000374h],ebx mov [ecx+00000378h],eax mov [ecx+0000037Ch],eax mov dword ptr [ecx+00000388h],00000840h mov [ecx+00000398h],edi mov [ecx+0000039Ch],ebp mov [ecx+000003A4h],esi add ecx,000003C0h mov edx,00000002h L0001DEF0: mov [ecx-08h],ebx mov dword ptr [ecx-04h],00000000h mov dword ptr [ecx],00000014h mov [ecx+04h],eax mov dword ptr [ecx+08h],00000014h mov dword ptr [ecx+0Ch],00000840h mov [ecx+1Ch],edi mov [ecx+20h],ebp mov [ecx+28h],esi add ecx,ebx dec edx jnz L0001DEF0 mov edx,[esp+1Ch] pop edi pop esi pop ebp mov dword ptr [edx+38h],00000000h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L0001DF34: mov ecx,[edx+34h] test ecx,ecx mov dword ptr [edx+30h],00000010h jz L0001E06B mov ebx,00000044h mov [ecx],ebx mov dword ptr [ecx+04h],00000000h mov edx,00000014h mov [ecx+08h],edx mov [ecx+0Ch],eax mov [ecx+10h],edx mov edx,00000400h mov edi,00000020h mov ebp,00000060h mov esi,00000008h mov [ecx+4Ch],edx mov [ecx+54h],edx mov [ecx+00000090h],edx mov [ecx+000000D4h],edx mov dword ptr [ecx+14h],00000840h mov [ecx+24h],edi mov [ecx+28h],ebp mov [ecx+30h],esi mov [ecx+44h],ebx mov [ecx+48h],eax mov [ecx+50h],eax mov dword ptr [ecx+58h],00000840h mov [ecx+68h],edi mov [ecx+6Ch],ebp mov [ecx+74h],esi mov [ecx+00000088h],ebx mov dword ptr [ecx+0000008Ch],00000002h mov dword ptr [ecx+00000094h],00000003h mov dword ptr [ecx+00000098h],00000C00h mov dword ptr [ecx+0000009Ch],00000840h mov [ecx+000000ACh],edi mov [ecx+000000B0h],ebp mov [ecx+000000B8h],esi mov [ecx+000000CCh],ebx mov dword ptr [ecx+000000D0h],00000002h mov [ecx+000000D8h],ebx mov dword ptr [ecx+000000DCh],L00011000 mov dword ptr [ecx+000000E0h],00000840h mov [ecx+000000F0h],edi mov [ecx+000000F4h],ebp mov [ecx+000000FCh],esi add ecx,00000118h mov edx,0000000Ch L0001E038: mov [ecx-08h],ebx mov dword ptr [ecx-04h],00000000h mov dword ptr [ecx],0000000Ah mov [ecx+04h],eax mov dword ptr [ecx+08h],0000000Ah mov dword ptr [ecx+0Ch],00000840h mov [ecx+1Ch],edi mov [ecx+20h],ebp mov [ecx+28h],esi add ecx,ebx dec edx jnz L0001E038 mov edx,[esp+1Ch] L0001E06B: pop edi pop esi pop ebp mov dword ptr [edx+38h],00000000h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L0001E07C: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001E090: push ebx push ebp mov ebp,[esp+0Ch] test ebp,ebp push esi push edi jnz L0001E0A5 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E0A5: mov eax,[ebp+00h] mov eax,[eax] push eax call GetDriverData mov edx,[ebp+08h] mov ecx,00000004h mov edi,L000B23D8 mov esi,edx xor ebx,ebx repe cmpsd jz L0001E120 mov ecx,00000004h mov edi,L000B23C8 mov esi,edx xor ebx,ebx repe cmpsd jz L0001E120 mov ecx,00000004h mov edi,L000B23B8 mov esi,edx xor ebx,ebx repe cmpsd jz L0001E120 mov ecx,00000004h mov edi,L000B23A8 mov esi,edx xor ebx,ebx repe cmpsd jz L0001E120 mov esi,edx mov ecx,00000004h mov edi,L000B2398 xor edx,edx repe cmpsd jz L0001E120 pop edi pop esi mov dword ptr [ebp+3Ch],887600FFh pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E120: mov esi,[eax+7Ch] test esi,esi mov ecx,[ebp+04h] mov [esp+14h],ecx jnz L0001E141 pop edi pop esi mov dword ptr [ebp+3Ch],8007000Eh pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E141: push eax mov [esi+000000C8h],eax call SUB_L00017390 mov edi,eax mov dword ptr [esi+000000D4h],L00018000 mov dword ptr [esi+000000D8h],00000008h mov eax,[ebp+08h] mov ecx,[eax] lea edx,[esi+00000A44h] mov [edx],ecx mov ecx,[eax+04h] mov [edx+04h],ecx mov ecx,[eax+08h] mov [edx+08h],ecx mov eax,[eax+0Ch] mov [edx+0Ch],eax mov dword ptr [esi+00000B64h],00000000h lea ecx,[esi+04h] mov edx,00000010h mov ebx,FFFFFC19h L0001E199: mov eax,[ecx] test eax,eax jz L0001E1B9 cmp dword ptr [eax],00000000h jz L0001E1B9 mov eax,[eax] mov eax,[eax+20h] test eax,eax jnz L0001E1B0 lea eax,[edi+3Ch] L0001E1B0: mov [eax+14h],ebx inc [esi+00000B64h] L0001E1B9: add ecx,00000004h dec edx jnz L0001E199 mov ecx,[esp+14h] mov ebx,00000001h mov [esi+0000098Ah],bl push esi mov [ecx+48h],esi call SUB_L0001F5B0 test al,al jnz L0001E1E7 pop edi pop esi mov [ebp+3Ch],ebx pop ebp mov eax,ebx pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E1E7: mov [edi+000006B4h],ebx pop edi pop esi mov dword ptr [ebp+3Ch],00000000h pop ebp mov eax,ebx pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 L0001E200: push ebx mov ebx,[esp+08h] test ebx,ebx push esi push edi jz L0001E2A8 mov eax,[ebx] mov ecx,[eax] push ecx call GetDriverData push eax call SUB_L00017390 mov edx,[ebx+04h] mov esi,[edx+48h] mov edi,eax test byte ptr [esi+00000B60h],01h jz L0001E254 xor eax,eax mov edi,esi mov ecx,000002DAh rep stosd and dword ptr [esi+00000B60h],FFFFFFFEh pop edi pop esi mov dword ptr [ebx+08h],00000000h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E254: push esi call SUB_L0001F610 test al,al jnz L0001E270 pop edi pop esi mov dword ptr [ebx+08h],887600FFh mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E270: mov dword ptr [edi+000006B4h],FFFFFFFFh mov eax,[esi+00000084h] test eax,eax jnz L0001E296 xor eax,eax mov ecx,000002DAh mov edi,esi rep stosd and dword ptr [esi+00000B60h],FFFFFFFEh L0001E296: pop edi pop esi mov dword ptr [ebx+08h],00000000h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E2A8: pop edi pop esi xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E2B0: push ebx mov ebx,[esp+08h] mov eax,[ebx] mov ecx,[eax] push ebp push esi push edi push ecx call GetDriverData push eax mov [esp+18h],eax call SUB_L00017390 test ebx,ebx jnz L0001E2D9 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E2D9: mov edx,[ebx+04h] mov ebp,[edx+48h] test ebp,ebp jnz L0001E2F6 pop edi pop esi pop ebp mov dword ptr [ebx+1Ch],887600FFh mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E2F6: test byte ptr [ebp+00000B60h],01h jz L0001E308 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E308: mov ecx,00000004h mov edi,L000B23D8 lea esi,[ebp+00000A44h] xor edx,edx repe cmpsd jnz L0001E353 mov edi,[esp+14h] push edi call SUB_L0002E360 mov esi,eax push esi push edi call SUB_L0002FE20 test eax,eax jz L0001E340 L0001E335: push esi push edi call SUB_L0002FE20 test eax,eax jnz L0001E335 L0001E340: pop edi pop esi pop ebp mov dword ptr [ebx+1Ch],00000000h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E353: mov ecx,[ebx+10h] test ecx,ecx jnz L0001E36D pop edi pop esi pop ebp mov dword ptr [ebx+1Ch],887600FFh mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E36D: mov si,[ecx] mov ecx,[ebx+08h] and esi,0000FFFFh mov [ebp+esi*4+04h],ecx mov ecx,[ebx+08h] mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L0001E38C lea ecx,[eax+3Ch] L0001E38C: mov edi,[esp+14h] push edi mov [ebp+esi*4+44h],ecx call SUB_L0002E360 push eax push edi call SUB_L0002FE20 test eax,eax jz L0001E3B8 pop edi pop esi pop ebp mov dword ptr [ebx+1Ch],8876021Ch mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001E3B8: mov eax,[ebp+esi*4+44h] mov eax,[eax+14h] mov ecx,[ebp+000000C8h] push eax push ecx call SUB_L00029710 test eax,eax jz L0001E340 pop edi pop esi pop ebp mov dword ptr [ebx+1Ch],8876021Ch mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 L0001E3F0: push ecx push ebx push ebp push esi mov esi,[esp+14h] push edi xor edi,edi cmp esi,edi jnz L0001E413 pop edi pop esi pop ebp mov dword ptr [00000010h],80070057h xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001E413: mov eax,[esi+04h] mov ebx,[eax+48h] cmp ebx,edi jnz L0001E431 pop edi mov dword ptr [esi+10h],887600FFh pop esi pop ebp mov eax,00000001h pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001E431: test byte ptr [ebx+00000B60h],01h jz L0001E444 pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001E444: mov eax,[esi] mov ecx,[eax] push ecx call GetDriverData mov ebp,eax push ebp mov [esp+14h],ebp call SUB_L00017390 mov ebp,[ebp+000000ACh] mov byte ptr [ebx+00000989h],00h mov [esi+10h],edi mov al,[ebx+0000098Ah] test al,al jz L0001E480 mov [esi+10h],edi mov byte ptr [ebx+0000098Ah],00h jmp L0001E49C L0001E480: push ebx call SUB_L0001F630 test al,al jz L0001E495 inc [ebx+00000984h] mov [esi+10h],edi jmp L0001E49C L0001E495: mov dword ptr [esi+10h],887601C2h L0001E49C: mov ecx,00000004h mov edi,L000B23D8 lea esi,[ebx+00000A44h] xor edx,edx repe cmpsd jz L0001E513 mov ecx,[esp+18h] mov eax,[ecx+08h] test eax,eax jnz L0001E4D1 pop edi pop esi pop ebp mov dword ptr [ecx+10h],887600FFh mov eax,00000001h pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001E4D1: mov edi,[esp+10h] mov si,[eax] push 00000004h push edi call HS_MM_GetRingSpace mov ecx,[ebp+54h] mov edx,[ebp+50h] push ecx push eax add edx,00000002h push edx push edi call SUB_L0002DD50 mov eax,[ebp+50h] push 00000004h add eax,00000002h push edi mov [ebp+50h],eax call HS_FireRing mov ecx,[ebp+50h] and esi,0000FFFFh mov eax,[ebx+esi*4+44h] mov [eax+14h],ecx L0001E513: pop edi pop esi pop ebp mov eax,00000001h pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0001E520: sub esp,00000020h push ebx mov ebx,[esp+28h] test ebx,ebx push ebp push esi push edi jnz L0001E53B pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E53B: mov eax,[ebx+04h] mov ebp,[eax+48h] test ebp,ebp jnz L0001E55B pop edi pop esi pop ebp mov dword ptr [ebx+24h],887600FFh mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E55B: test byte ptr [ebp+00000B60h],01h jz L0001E570 L0001E564: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E570: lea eax,[ebp+00000A44h] mov ecx,00000004h mov edi,L000B23D8 mov esi,eax xor edx,edx repe cmpsd jnz L0001E9AD mov eax,[ebx+10h] dec eax jz L0001E89C dec eax jz L0001E757 dec eax jz L0001E5B8 pop edi mov eax,00000001h mov [ebx+24h],eax pop esi mov [ebp+00000989h],dl pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E5B8: mov edi,[ebx+14h] test edi,edi jnz L0001E5D5 pop edi pop esi pop ebp mov dword ptr [ebx+24h],887600FFh mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E5D5: cmp dword ptr [ebx+18h],0000004Ch jz L0001E5F8 pop edi mov dword ptr [ebx+24h],80070057h pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E5F8: mov eax,00000010h cmp [edi+08h],ax ja L0001E90B cmp [edi+0Ah],ax ja L0001E90B mov al,[ebp+00000989h] test al,al jz L0001E631 L0001E61B: pop edi pop esi pop ebp mov dword ptr [ebx+24h],8876021Ch mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E631: xor eax,eax mov byte ptr [ebp+00000989h],01h mov byte ptr [ebp+0000098Ah],01h mov ax,[edi+0Ah] xor edx,edx mov ecx,[ebp+eax*4+04h] mov [ebp+000000B0h],ecx mov dx,[edi+08h] mov eax,[ebp+edx*4+04h] mov [ebp+000000B4h],eax xor eax,eax mov ax,[edi+04h] cmp eax,00000031h jl L0001E73A cmp eax,00000032h jg L0001E73A mov ecx,[ebx+08h] mov eax,00000001h cmp ecx,eax jnc L0001E69B pop edi mov dword ptr [ebx+24h],80070057h pop esi mov byte ptr [ebp+00000989h],00h pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E69B: mov esi,[ebx+0Ch] mov ecx,[esi+04h] test ecx,ecx jnz L0001E6BD pop edi mov dword ptr [ebx+24h],80070057h pop esi mov byte ptr [ebp+00000989h],00h pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E6BD: mov eax,[ebx] mov ecx,[eax] push ecx call GetDriverData push eax call SUB_L00017390 mov ecx,[esi+04h] mov edx,[ecx] mov ecx,[edx+20h] test ecx,ecx jnz L0001E6DC lea ecx,[eax+3Ch] L0001E6DC: lea eax,[ecx+38h] test eax,eax mov [ebp+000000CCh],eax mov byte ptr [ebp+00000B54h],00h mov byte ptr [ebp+00000B55h],00h jnz L0001E713 pop edi mov dword ptr [ebx+24h],80070057h pop esi mov [ebp+00000989h],al pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E713: push edi push ebp call SUB_L00020F00 test al,al jnz L0001E733 pop edi pop esi mov [ebp+00000989h],al pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E733: mov byte ptr [ebp+0000098Ah],00h L0001E73A: pop edi mov dword ptr [ebx+24h],00000000h pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E757: mov eax,[ebx+14h] test eax,eax jnz L0001E77A pop edi mov dword ptr [ebx+24h],887600FFh pop esi mov [ebp+00000989h],al pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E77A: cmp word ptr [eax+04h],0011h jz L0001E79A pop edi mov eax,00000001h mov [ebx+24h],eax pop esi mov byte ptr [ebp+00000989h],00h pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E79A: cmp dword ptr [ebx+18h],0000001Ch jz L0001E7BD pop edi mov dword ptr [ebx+24h],80070057h pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E7BD: mov ecx,00000010h cmp [eax+14h],cx ja L0001E90B cmp [eax+16h],cx ja L0001E90B cmp [eax+18h],cx ja L0001E90B mov cl,[ebp+00000989h] test cl,cl jz L0001E807 pop edi mov dword ptr [ebx+24h],8876021Ch pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E807: mov byte ptr [ebp+00000989h],01h xor ecx,ecx mov cx,[eax+14h] push ebp mov edx,[ebp+ecx*4+04h] mov [ebp+000000B0h],edx xor ecx,ecx mov cx,[eax+16h] mov edx,[ebp+ecx*4+04h] mov [ebp+000000B4h],edx xor ecx,ecx mov cx,[eax+18h] mov edx,[ebp+ecx*4+04h] mov [ebp+000000B8h],edx mov cx,[eax+08h] mov [ebp+00000098h],cx mov dx,[eax+0Ah] mov [ebp+0000009Ah],dx mov cx,[eax+0Eh] mov [ebp+000000A8h],cx mov dx,[eax+10h] mov [ebp+000000AAh],dx mov ax,[eax+12h] mov [ebp+000000ACh],ax call SUB_L0001F990 test al,al jnz L0001E73A pop edi mov eax,00000001h mov [ebx+24h],eax pop esi mov byte ptr [ebp+00000989h],00h pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E89C: mov edi,[ebx+14h] test edi,edi jnz L0001E8C0 pop edi mov dword ptr [ebx+24h],887600FFh pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E8C0: xor eax,eax mov ax,[edi+04h] sub eax,00000011h jz L0001E905 dec eax jz L0001E73A dec eax jnz L0001E9F5 mov cx,[edi+08h] mov [ebp+0000098Ch],cx mov dx,[edi+0Ah] pop edi pop esi mov [ebp+0000098Eh],dx pop ebp mov dword ptr [ebx+24h],00000000h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E905: cmp dword ptr [ebx+08h],00000002h jnc L0001E928 L0001E90B: pop edi mov dword ptr [ebx+24h],80070057h pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E928: mov esi,[ebx+0Ch] mov eax,[esi+04h] test eax,eax jz L0001E90B mov eax,[esi+18h] test eax,eax jz L0001E90B mov eax,[ebx] mov eax,[eax] push eax call GetDriverData push eax call SUB_L00017390 mov eax,[esi+04h] mov ecx,[eax+08h] mov edx,00000800h test edx,ecx jz L0001E9F5 mov ecx,[eax] mov eax,[esi+18h] test [eax+08h],edx mov ecx,[ecx+08h] jz L0001E9F5 cmp word ptr [edi+06h],0000h mov edx,[eax] mov eax,[edx+08h] jbe L0001E9F5 push eax xor eax,eax mov byte ptr [ebp+0000098Ah],01h mov ax,[edi+06h] push ecx push eax push esi push ebp call SUB_L0001FDB0 test al,al jnz L0001E73A pop edi pop esi mov [ebp+00000989h],al pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001E9AD: mov ecx,00000004h mov edi,L000B23C8 mov esi,eax xor edx,edx repe cmpsd jz L0001EA0E mov ecx,00000004h mov edi,L000B23B8 mov esi,eax xor edx,edx repe cmpsd jz L0001EA0E mov ecx,00000004h mov edi,L000B23A8 mov esi,eax xor edx,edx repe cmpsd jz L0001EA0E mov esi,eax mov ecx,00000004h mov edi,L000B2398 xor eax,eax repe cmpsd jz L0001EA0E L0001E9F5: pop edi mov eax,00000001h mov [ebx+24h],eax pop esi mov byte ptr [ebp+00000989h],00h pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001EA0E: mov ecx,[ebx+10h] mov esi,ecx shr esi,08h mov eax,esi sub eax,00FFFF00h mov [esp+14h],esi jz L0001F1C3 sub eax,000000F1h jz L0001F136 sub eax,00000004h jz L0001F136 mov edx,[ebx+14h] mov [esp+10h],edx mov eax,CCCCCCCDh mul [ebx+18h] mov eax,[ebx+0Ch] shr edx,05h mov [esp+34h],edx mov [esp+14h],eax mov edi,00000000h jnz L0001EA7C pop edi mov dword ptr [ebx+24h],887600FFh pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001EA7C: cmp [ebx+08h],edi jnz L0001EA9E pop edi mov dword ptr [ebx+24h],80070057h pop esi mov byte ptr [ebp+00000989h],00h pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001EA9E: mov esi,[esp+14h] mov [esp+20h],edi mov edx,00000004h jmp L0001EAB5 L0001EAAD: mov ecx,[esp+24h] mov esi,[esp+14h] L0001EAB5: mov eax,ecx shr eax,18h mov [esp+28h],al mov eax,[esp+28h] shl ecx,08h and eax,000000FFh cmp eax,00000003h mov [esp+24h],ecx ja L0001F10F jmp [CASE_PROCTABLE_0001F52C+eax*4] CASE_0001F52C_PROC0001: cmp [ebx+20h],edx jnz L0001EAEC mov ecx,[ebx+1Ch] mov dword ptr [ecx],00000000h L0001EAEC: mov eax,[ebx] mov edx,[eax] push edx call GetDriverData push eax call SUB_L00017390 cmp edi,[esp+34h] jnc L0001EFDC mov ecx,[esp+14h] lea eax,[edi+edi*4] lea esi,[ecx+eax*4+04h] mov eax,[esp+10h] lea edx,[edi+edi*4] lea ecx,[eax+edx*8+0Ch] mov [esp+1Ch],esi mov [esp+18h],ecx L0001EB24: mov eax,[ecx-0Ch] dec eax jz L0001EC0D dec eax jz L0001EBC2 dec eax jnz L0001EDB2 mov eax,[esi] test eax,eax jz L0001EFF7 mov ecx,[eax+08h] test ch,08h jz L0001F0E3 mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebp+00000B5Ch] test ecx,ecx mov [ebp+00000A70h],eax jbe L0001ED8C cmp word ptr [ebp+00000098h],0001h mov edx,[ebp+00000A6Ch] push eax push edx push ecx jnz L0001EBA0 mov edx,[esp+20h] push edx push ebp call SUB_L000202F0 test al,al jz L0001F053 mov dword ptr [ebp+00000B5Ch],00000000h jmp L0001ED8C L0001EBA0: mov eax,[esp+20h] push eax push ebp call SUB_L00020850 test al,al jz L0001F0BE mov dword ptr [ebp+00000B5Ch],00000000h jmp L0001ED8C L0001EBC2: mov eax,[esi] test eax,eax jz L0001F04C mov edx,[eax+08h] test dh,08h jz L0001F078 cmp word ptr [ebp+00000098h],0001h mov edx,[eax] mov eax,[edx+08h] mov [ebp+00000A6Ch],eax jnz L0001EBFD mov ecx,[ecx] shr ecx,04h mov [ebp+00000B5Ch],ecx jmp L0001ED8C L0001EBFD: mov edx,[ecx] shr edx,05h mov [ebp+00000B5Ch],edx jmp L0001ED8C L0001EC0D: mov byte ptr [ebp+00000989h],00h mov eax,[esi] test eax,eax jz L0001F0A4 mov ecx,[eax+08h] test ch,08h jz L0001F078 mov eax,[eax] mov esi,[eax+08h] xor eax,eax cmp esi,eax mov [ebp+00000A68h],esi jz L0001F04C mov byte ptr [ebp+00000989h],01h movzx cx,[esi+11h] mov [ebp+0000009Ah],cx movzx dx,[esi+12h] mov [ebp+000000ACh],dx movzx cx,[esi+0Ch] inc ecx mov [ebp+00000A54h],cx movzx dx,[esi+0Dh] inc edx mov [ebp+00000A56h],dx movzx cx,[esi+0Eh] inc ecx mov [ebp+00000A58h],cx movzx dx,[esi+0Fh] inc edx mov [ebp+00000A5Ah],dx mov cx,[esi+08h] inc cx mov [ebp+00000A5Ch],cx mov dx,[esi+0Ah] inc dx xor ecx,ecx mov cx,[ebp+00000A5Ch] mov [ebp+0000098Ch],ax mov [ebp+0000098Eh],ax mov ax,dx mov [ebp+00000A5Eh],dx shl ecx,04h mov [ebp+0000009Ch],ecx shl eax,04h mov [ebp+000000A0h],eax mov al,[esi+13h] test al,al jz L0001ECEF mov word ptr [ebp+00000098h],0001h mov ax,[esi] mov ecx,eax jmp L0001ED28 L0001ECEF: mov al,[esi+14h] test al,al jnz L0001ED17 mov word ptr [ebp+00000098h],0002h mov al,[esi+12h] test al,al jz L0001ED0F mov cx,[esi+04h] mov ax,[esi] jmp L0001ED28 L0001ED0F: mov ax,[esi+04h] mov ecx,eax jmp L0001ED28 L0001ED17: mov word ptr [ebp+00000098h],0003h mov cx,[esi+04h] mov ax,[esi+06h] L0001ED28: xor edx,edx mov dx,[esi] cmp dx,0010h ja L0001F01A cmp cx,0010h ja L0001F01A cmp ax,0010h ja L0001F01A and edx,0000FFFFh mov edx,[ebp+edx*4+04h] mov [ebp+000000B0h],edx and ecx,0000FFFFh mov ecx,[ebp+ecx*4+04h] and eax,0000FFFFh mov [ebp+000000B4h],ecx mov edx,[ebp+eax*4+04h] push ebp mov [ebp+000000B8h],edx call SUB_L0001F990 test al,al jz L0001F000 mov esi,[esp+1Ch] L0001ED8C: mov edx,[esp+18h] mov eax,[esp+34h] inc edi add edx,00000028h add esi,00000014h cmp edi,eax mov [esp+18h],edx mov [esp+1Ch],esi jnc L0001EFDC mov ecx,edx jmp L0001EB24 L0001EDB2: mov ecx,[esp+10h] lea eax,[edi+edi*4] mov eax,[ecx+eax*8] jmp L0001EFBB CASE_0001F52C_PROC0002: cmp [ebx+20h],edx jnz L0001EDCF mov edx,[ebx+1Ch] mov dword ptr [edx],00000000h L0001EDCF: mov byte ptr [ebp+00000989h],00h mov byte ptr [ebp+0000098Ah],01h mov eax,[ebx] mov eax,[eax] push eax call GetDriverData push eax call SUB_L00017390 mov [esp+1Ch],eax cmp edi,[esp+34h] jnc L0001EFDC mov edx,[esp+10h] lea ecx,[edi+edi*4] lea eax,[edx+ecx*8] lea ecx,[edi+edi*4] lea edx,[esi+ecx*4+04h] L0001EE0C: mov ecx,[eax] sub ecx,00000008h jz L0001EE41 dec ecx jnz L0001EE78 mov ecx,[edx] test ecx,ecx jz L0001F04C mov ecx,[ecx] mov ecx,[ecx+20h] test ecx,ecx jnz L0001EE30 mov ecx,[esp+1Ch] add ecx,0000003Ch L0001EE30: add ecx,00000038h mov [ebp+000000CCh],ecx mov [ebp+00000A88h],ecx jmp L0001EE63 L0001EE41: mov ecx,[edx] test ecx,ecx jz L0001F0B7 test dword ptr [ecx+08h],00000800h jz L0001F0E3 mov ecx,[ecx] mov ecx,[ecx+08h] mov [ebp+00000A84h],ecx L0001EE63: mov ecx,[esp+34h] inc edi add eax,00000028h add edx,00000014h cmp edi,ecx jnc L0001EFDC jmp L0001EE0C L0001EE78: mov eax,[esp+10h] lea edx,[edi+edi*4] mov eax,[eax+edx*8] cmp eax,00000010h jnc L0001F0E3 test eax,eax jbe L0001F0E3 jmp L0001EFDC CASE_0001F52C_PROC0003: cmp [ebx+20h],edx jnz L0001EEA6 mov ecx,[ebx+1Ch] mov dword ptr [ecx],00000000h L0001EEA6: mov eax,[ebx] mov edx,[eax] push edx call GetDriverData push eax mov [esp+30h],eax call SUB_L00017390 cmp edi,[esp+34h] jnc L0001EFDC mov ecx,[esp+10h] lea eax,[edi+edi*4] lea edx,[ecx+eax*8] lea eax,[edi+edi*4] lea ecx,[esi+eax*4+04h] mov [esp+18h],edx mov [esp+1Ch],ecx L0001EEDD: mov edx,[esp+18h] cmp dword ptr [edx],0000000Dh jnz L0001EFB1 mov eax,[esp+1Ch] mov eax,[eax] test eax,eax jz L0001F0A4 mov ecx,[eax+08h] test ch,08h jz L0001F0E3 mov ecx,[eax] mov esi,[ecx+08h] mov [ebp+00000A98h],esi cmp word ptr [esi],0010h ja L0001F0B7 cmp word ptr [esi+02h],0010h ja L0001F0B7 mov al,[ebp+00000989h] test al,al jnz L0001E61B mov byte ptr [ebp+00000989h],01h mov byte ptr [ebp+0000098Ah],01h xor edx,edx mov dx,[esi+02h] xor ecx,ecx push ebp mov eax,[ebp+edx*4+04h] mov [ebp+000000B0h],eax mov cx,[esi] mov edx,[ebp+ecx*4+04h] mov [ebp+000000B4h],edx call SUB_L0001F630 test al,al jz L0001E564 mov eax,[esp+2Ch] push eax call SUB_L00029670 push esi push ebp call SUB_L000213E0 test al,al jz L0001F053 mov edx,[esp+18h] mov ecx,[esp+1Ch] mov eax,[esp+34h] inc edi add edx,00000028h add ecx,00000014h cmp edi,eax mov byte ptr [ebp+0000098Ah],00h mov [esp+18h],edx mov [esp+1Ch],ecx jnc L0001EFDC jmp L0001EEDD L0001EFB1: mov edx,[esp+10h] lea ecx,[edi+edi*4] mov eax,[edx+ecx*8] L0001EFBB: cmp eax,00000010h jnc L0001F078 test eax,eax jbe L0001F078 jmp L0001EFDC CASE_0001F52C_PROC0000: cmp [ebx+20h],edx jnz L0001EFDC mov eax,[ebx+1Ch] mov dword ptr [eax],00000000h L0001EFDC: mov eax,[esp+20h] inc eax mov edx,00000004h cmp eax,edx mov [esp+20h],eax jl L0001EAAD jmp L0001E73A L0001EFF7: mov dword ptr [ebx+24h],80070057h jmp L0001F02E L0001F000: mov eax,00000001h mov [ebx+24h],eax mov byte ptr [ebp+00000989h],00h cmp [esi+1Ah],al jz L0001F1CB jmp L0001F087 L0001F01A: mov dword ptr [ebx+24h],80070057h mov byte ptr [ebp+00000989h],00h cmp byte ptr [esi+1Ah],01h jz L0001F03D L0001F02E: cmp dword ptr [ebx+20h],00000004h jnz L0001F03D mov edx,[ebx+1Ch] mov dword ptr [edx],00000002h L0001F03D: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F04C: mov dword ptr [ebx+24h],80070057h L0001F053: mov byte ptr [ebp+00000989h],00h cmp dword ptr [ebx+20h],00000004h jnz L0001F03D mov eax,[ebx+1Ch] pop edi pop esi pop ebp mov dword ptr [eax],00000002h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F078: mov eax,00000001h mov [ebx+24h],eax mov byte ptr [ebp+00000989h],00h L0001F087: cmp dword ptr [ebx+20h],00000004h jnz L0001F1CB mov ecx,[ebx+1Ch] pop edi pop esi pop ebp mov dword ptr [ecx],00000002h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F0A4: mov dword ptr [ebx+24h],80070057h mov byte ptr [ebp+00000989h],00h jmp L0001F02E L0001F0B7: mov dword ptr [ebx+24h],80070057h L0001F0BE: mov byte ptr [ebp+00000989h],00h cmp dword ptr [ebx+20h],00000004h jnz L0001F0D4 mov ecx,[ebx+1Ch] mov dword ptr [ecx],00000002h L0001F0D4: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F0E3: mov eax,00000001h mov [ebx+24h],eax mov byte ptr [ebp+00000989h],00h cmp dword ptr [ebx+20h],00000004h jnz L0001F1CB mov edx,[ebx+1Ch] pop edi pop esi pop ebp mov dword ptr [edx],00000002h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F10F: cmp [ebx+20h],edx jnz L0001F11D mov eax,[ebx+1Ch] mov dword ptr [eax],00000000h L0001F11D: pop edi mov eax,00000001h mov [ebx+24h],eax pop esi mov byte ptr [ebp+00000989h],00h pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F136: and ecx,000000FFh dec ecx jz L0001F324 dec ecx jz L0001F249 dec ecx jnz L0001F1C3 mov edx,[ebx+14h] mov eax,[ebx+1Ch] xor ecx,ecx test edx,edx jz L0001F514 test eax,eax jz L0001F514 cmp [edx+10h],cl jz L0001F16F mov ecx,00000001h L0001F16F: cmp byte ptr [edx+11h],00h jz L0001F176 inc ecx L0001F176: cmp byte ptr [edx+13h],01h jbe L0001F17D inc ecx L0001F17D: test ecx,ecx mov dword ptr [eax],00000000h jz L0001F1D5 mov byte ptr [eax+10h],00h mov byte ptr [eax+11h],00h mov dl,[edx+13h] cmp dl,01h ja L0001F19C mov [eax+13h],dl jmp L0001F1A0 L0001F19C: mov byte ptr [eax+13h],01h L0001F1A0: mov ebp,[esp+14h] xor ecx,ecx cmp ebp,00FFFFF1h setnz cl dec ecx and ecx,FFFFFC00h add ecx,FFFFFF00h mov [eax],ecx or ecx,00000003h mov [eax],ecx L0001F1C3: mov eax,00000001h mov [ebx+24h],eax L0001F1CB: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F1D5: mov ecx,00000005h mov esi,edx mov edi,eax rep movsd mov ecx,[esp+14h] movsb cmp ecx,00FFFFF1h mov ecx,[eax] jnz L0001F212 or ecx,FFFFF800h mov [eax],ecx pop edi pop esi or ecx,00000003h mov [eax],ecx pop ebp mov dword ptr [ebx+24h],00000000h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F212: or ecx,FFFFFC00h mov [eax],ecx mov cl,[edx+11h] mov [ebp+00000B54h],cl mov dl,[edx+13h] mov [ebp+00000B55h],dl mov ecx,[eax] pop edi pop esi or ecx,00000003h mov [eax],ecx pop ebp mov dword ptr [ebx+24h],00000000h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F249: mov ecx,[ebx+14h] test ecx,ecx mov eax,[ebx+1Ch] mov [esp+34h],ecx jz L0001F514 test eax,eax jz L0001F514 cmp byte ptr [ecx+10h],01h mov dword ptr [eax],00000000h jbe L0001F2A4 xor ecx,ecx cmp esi,00FFFFF1h setnz cl pop edi mov byte ptr [eax+10h],01h pop esi pop ebp dec ecx and ecx,FFFFFC00h add ecx,FFFFFF00h mov [eax],ecx or ecx,00000002h mov [eax],ecx mov eax,00000001h mov [ebx+24h],eax pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F2A4: cmp esi,00FFFFF1h mov edi,[ecx] mov edx,eax mov [edx],edi mov edi,[ecx+04h] mov [edx+04h],edi mov edi,[ecx+08h] mov [edx+08h],edi mov edi,[ecx+0Ch] mov [edx+0Ch],edi mov cl,[ecx+10h] mov [edx+10h],cl mov ecx,[eax] jnz L0001F2EF or ecx,FFFFF800h mov [eax],ecx pop edi pop esi or ecx,00000002h mov [eax],ecx pop ebp mov dword ptr [ebx+24h],00000000h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F2EF: mov edx,[esp+34h] or ecx,FFFFFC00h mov [eax],ecx movzx cx,[edx+10h] mov [ebp+00000B56h],cx mov ecx,[eax] pop edi pop esi or ecx,00000002h mov [eax],ecx pop ebp mov dword ptr [ebx+24h],00000000h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F324: mov ebp,[ebx+14h] test ebp,ebp mov eax,[ebx+1Ch] mov dword ptr [esp+34h],00000000h jz L0001F514 test eax,eax jz L0001F514 mov ecx,00000004h mov edi,L000B2388 lea esi,[ebp+10h] xor edx,edx repe cmpsd jz L0001F35D mov dword ptr [esp+34h],00000001h L0001F35D: mov ecx,00000004h mov edi,L000B2388 lea esi,[ebp+20h] xor edx,edx repe cmpsd jz L0001F374 inc [esp+34h] L0001F374: mov ecx,00000004h mov edi,L000B2388 lea esi,[ebp+30h] xor edx,edx repe cmpsd mov ecx,[esp+34h] jz L0001F38C inc ecx L0001F38C: mov dl,[ebp+40h] test dl,dl jz L0001F394 inc ecx L0001F394: cmp byte ptr [ebp+41h],01h jz L0001F39B inc ecx L0001F39B: cmp byte ptr [ebp+42h],01h jz L0001F3A2 inc ecx L0001F3A2: mov dl,[ebp+43h] test dl,dl jz L0001F3AA inc ecx L0001F3AA: mov dl,[ebp+44h] test dl,dl jz L0001F3B2 inc ecx L0001F3B2: cmp byte ptr [ebp+45h],01h jz L0001F3B9 inc ecx L0001F3B9: mov dl,[ebp+47h] test dl,dl jz L0001F3C1 inc ecx L0001F3C1: mov dl,[ebp+46h] test dl,dl jz L0001F3C9 inc ecx L0001F3C9: mov dl,[ebp+48h] test dl,dl jz L0001F3D1 inc ecx L0001F3D1: mov dl,[ebp+49h] test dl,dl jz L0001F3D9 inc ecx L0001F3D9: mov dl,[ebp+4Ah] test dl,dl jz L0001F3E1 inc ecx L0001F3E1: mov dl,[ebp+4Bh] test dl,dl jz L0001F3E9 inc ecx L0001F3E9: test ecx,ecx mov dword ptr [eax],00000000h jz L0001F4D2 mov edx,[L000B2388] lea ecx,[eax+10h] mov [ecx],edx mov edx,[L000B238C] mov [ecx+04h],edx mov edx,[L000B2390] mov [ecx+08h],edx mov edx,[L000B2394] mov [ecx+0Ch],edx mov edx,[L000B2388] mov ebp,[esp+14h] lea ecx,[eax+20h] mov [ecx],edx mov edx,[L000B238C] mov [ecx+04h],edx mov edx,[L000B2390] mov [ecx+08h],edx mov edx,[L000B2394] mov [ecx+0Ch],edx mov edx,[L000B2388] lea ecx,[eax+30h] mov [ecx],edx mov edx,[L000B238C] mov [ecx+04h],edx mov edx,[L000B2390] mov [ecx+08h],edx mov edx,[L000B2394] mov [ecx+0Ch],edx xor ecx,ecx cmp ebp,00FFFFF1h setnz cl pop edi pop esi mov byte ptr [eax+40h],00h mov byte ptr [eax+41h],01h mov byte ptr [eax+42h],01h mov byte ptr [eax+43h],00h dec ecx and ecx,FFFFFC00h add ecx,FFFFFF00h mov [eax],ecx or ecx,00000001h mov byte ptr [eax+44h],00h mov byte ptr [eax+45h],01h mov byte ptr [eax+46h],00h mov byte ptr [eax+47h],00h mov byte ptr [eax+48h],00h mov byte ptr [eax+49h],00h mov byte ptr [eax+4Ah],00h mov byte ptr [eax+4Bh],00h mov [eax],ecx pop ebp mov dword ptr [ebx+24h],00000001h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F4D2: mov ecx,00000013h mov esi,ebp mov edi,eax rep movsd cmp dword ptr [esp+14h],00FFFFF1h mov ecx,[eax] jnz L0001F4F1 or ecx,FFFFF800h jmp L0001F4F7 L0001F4F1: or ecx,FFFFFC00h L0001F4F7: mov [eax],ecx pop edi pop esi or ecx,00000001h mov [eax],ecx pop ebp mov dword ptr [ebx+24h],00000000h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L0001F514: pop edi pop esi pop ebp mov dword ptr [ebx+24h],80070057h mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0001F52C: dd CASE_0001F52C_PROC0000 dd CASE_0001F52C_PROC0001 dd CASE_0001F52C_PROC0002 dd CASE_0001F52C_PROC0003 Align 8 L0001F540: push esi mov esi,[esp+08h] test esi,esi jnz L0001F54F xor eax,eax pop esi retn 0004h ;------------------------------------------------------------------------------ L0001F54F: mov eax,[esi+04h] mov eax,[eax+48h] test eax,eax jnz L0001F569 mov dword ptr [esi+10h],887600FFh mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ L0001F569: test byte ptr [eax+00000B60h],01h jz L0001F578 xor eax,eax pop esi retn 0004h ;------------------------------------------------------------------------------ L0001F578: mov dword ptr [esi+10h],00000000h mov ecx,[eax+0000097Ch] push 00000000h push ecx push eax call SUB_L0001F920 test al,al jz L0001F599 mov dword ptr [esi+10h],8876021Ch L0001F599: mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001F5B0: push esi mov esi,[esp+08h] mov al,[esi+00000988h] test al,al jnz L0001F5CF push esi call SUB_L0001F730 test al,al jnz L0001F5D5 push esi call SUB_L0001F8A0 L0001F5CF: xor al,al pop esi retn 0004h ;------------------------------------------------------------------------------ L0001F5D5: mov ecx,[esi+000000C8h] mov eax,00000001h mov [ecx+1Ah],al mov [esi+00000988h],al mov [esi+00000984h],eax mov dword ptr [esi+0000097Ch],00000000h mov [esi+00000980h],eax mov byte ptr [esi+0000098Ah],00h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0001F610: mov eax,[esp+04h] test eax,eax jz L0001F623 push eax call SUB_L0001F8A0 mov al,01h retn 0004h ;------------------------------------------------------------------------------ L0001F623: xor al,al retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0001F630: push ebp push edi mov edi,[esp+0Ch] xor ebp,ebp cmp edi,ebp jnz L0001F643 pop edi xor al,al pop ebp retn 0004h ;------------------------------------------------------------------------------ L0001F643: mov eax,[edi+000000C8h] push ebx push esi mov [eax+74h],ebp L0001F64E: mov eax,[edi+0000097Ch] lea ecx,[ebp+eax*2+00h] add eax,ecx lea edx,[eax+eax*2] shl edx,03h sub edx,eax mov eax,[edi+00000980h] lea ecx,[ebp+eax*2+00h] add eax,ecx mov ecx,[edi+edx*4+000000E8h] lea esi,[edi+edx*4+000000DCh] lea edx,[eax+eax*2] shl edx,03h sub edx,eax mov eax,[esi+10h] shl eax,02h sub ecx,eax lea ebx,[edi+edx*4+000000DCh] jz L0001F6EA test cl,07h jz L0001F6B6 mov ecx,[esi+04h] mov dword ptr [ecx],00000000h mov ecx,[esi+04h] mov edx,[esi+10h] add ecx,00000004h dec edx mov [esi+04h],ecx mov [esi+10h],edx sub eax,00000004h L0001F6B6: mov edx,[esi+0Ch] sub edx,eax mov eax,[esi+1Ch] push edx mov dword ptr [esi+08h],00000001h mov ecx,[edi+000000C8h] push eax push ecx call SUB_L0002DE30 mov ecx,[esi+0Ch] mov edx,[esi] shr ecx,02h mov [esi+08h],eax mov [esi+04h],edx mov [esi+10h],ecx mov [edi+00000B58h],eax L0001F6EA: mov edx,[esi+14h] inc ebp cmp ebp,00000002h mov [ebx+14h],edx jle L0001F64E mov eax,[edi+00000980h] mov ecx,[edi+000000D8h] mov [edi+0000097Ch],eax inc eax cmp eax,ecx pop esi mov [edi+00000980h],eax pop ebx jc L0001F723 mov dword ptr [edi+00000980h],00000000h L0001F723: pop edi mov al,01h pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0001F730: sub esp,0000000Ch push ebx mov ebx,[esp+14h] push ebp xor ecx,ecx cmp ebx,ecx push esi push edi jz L0001F894 cmp dword ptr [ebx+000000D4h],L00018000 ja L0001F894 mov eax,[ebx+000000D8h] cmp eax,00000008h ja L0001F894 cmp eax,ecx mov [esp+18h],ecx jbe L0001F888 lea eax,[ebx+000000DCh] mov [esp+14h],ecx mov [esp+20h],eax L0001F77E: xor ecx,ecx mov [esp+10h],ecx jmp L0001F78A L0001F786: mov ecx,[esp+10h] L0001F78A: test ecx,ecx jnz L0001F7A1 mov edx,[ebx+000000D4h] shl edx,1 mov eax,AAAAAAABh mul edx shr edx,1 jmp L0001F7AF L0001F7A1: mov eax,AAAAAAABh mul [ebx+000000D4h] shr edx,02h L0001F7AF: mov eax,[esp+14h] lea edi,[eax+ecx] lea ecx,[edi+edi*2] shl ecx,03h shr edx,02h sub ecx,edi shl edx,02h lea ebp,[ebx+ecx*4+000000F4h] push ebp mov esi,edx mov edx,[ebx+000000C8h] mov eax,[edx+000000A8h] push esi push 02000800h push eax call SUB_L00026250 test eax,eax jz L0001F837 lea ecx,[edi+edi*2] shl ecx,03h sub ecx,edi mov edi,[ebp+00h] lea edx,[ebx+ecx*4] mov [edx+000000DCh],edi mov ecx,esi mov ebp,ecx shr ecx,02h xor eax,eax rep stosd mov ecx,ebp and ecx,00000003h rep stosb mov [edx+000000E8h],esi mov dword ptr [edx+000000E4h],00000000h shr esi,02h mov [edx+000000ECh],esi mov eax,[edx+000000DCh] mov [edx+000000E0h],eax jmp L0001F841 L0001F837: mov ecx,[esp+20h] mov dword ptr [ecx],00000000h L0001F841: mov eax,[esp+10h] inc eax cmp eax,00000002h mov [esp+10h],eax jbe L0001F786 mov edx,[esp+20h] cmp dword ptr [edx],00000000h jz L0001F894 mov eax,[esp+18h] mov esi,[esp+14h] mov ecx,[ebx+000000D8h] inc eax add esi,00000003h add edx,00000114h cmp eax,ecx mov [esp+18h],eax mov [esp+14h],esi mov [esp+20h],edx jc L0001F77E L0001F888: pop edi pop esi pop ebp mov al,01h pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L0001F894: pop edi pop esi pop ebp xor al,al pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ SUB_L0001F8A0: push ebx mov ebx,[esp+08h] xor eax,eax cmp ebx,eax jnz L0001F8B1 xor al,al pop ebx retn 0004h ;------------------------------------------------------------------------------ L0001F8B1: mov ecx,[ebx+000000C8h] mov [ecx+1Ah],al cmp [ebx+000000D8h],eax mov [esp+08h],eax jbe L0001F917 push ebp push esi push edi lea ebp,[ebx+000000DCh] L0001F8CF: lea esi,[ebp+18h] mov edi,00000003h L0001F8D7: mov edx,[ebx+000000C8h] mov eax,[edx+000000A8h] push esi push eax call SUB_L00026030 add esi,0000005Ch dec edi jnz L0001F8D7 xor eax,eax mov edi,ebp mov ecx,00000017h rep stosd mov eax,[esp+14h] mov ecx,[ebx+000000D8h] inc eax add ebp,00000114h cmp eax,ecx mov [esp+14h],eax jc L0001F8CF pop edi pop esi pop ebp L0001F917: mov al,01h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0001F920: mov ecx,[esp+08h] push ebx mov ebx,[esp+08h] cmp ecx,[ebx+000000D8h] push ebp push esi push edi ja L0001F975 mov ebp,[esp+1Ch] lea eax,[ecx+ecx*2] shl eax,03h xor edi,edi sub eax,ecx lea eax,[eax+eax*2] lea esi,[ebx+eax*4+000000E4h] L0001F94C: test ebp,ebp jz L0001F955 cmp [esi+0Ch],ebp jnz L0001F96C L0001F955: mov eax,[esi] test eax,eax jz L0001F96C mov ecx,[ebx+000000C8h] push eax push ecx call SUB_L00029710 test eax,eax jnz L0001F97E L0001F96C: inc edi add esi,0000005Ch cmp edi,00000002h jle L0001F94C L0001F975: pop edi pop esi pop ebp xor al,al pop ebx retn 000Ch ;------------------------------------------------------------------------------ L0001F97E: pop edi pop esi pop ebp mov al,01h pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L0001F990: sub esp,00000024h push ebx mov ebx,[esp+2Ch] mov ecx,[ebx+000000C8h] mov eax,[ebx+000000B8h] push ebp mov ebp,[ebx+000000B4h] push esi mov esi,[ebx+000000B0h] push edi push ecx mov [esp+20h],eax call SUB_L00017390 mov edx,[esi] mov edi,[edx+20h] test edi,edi mov [esp+38h],eax lea ecx,[eax+3Ch] jz L0001F9CF mov ecx,edi L0001F9CF: mov eax,[ecx+44h] mov esi,[ebp+00h] mov ecx,[edx+18h] mov [esp+10h],eax mov eax,[edx+1Ch] mov edx,[esi+20h] test edx,edx jnz L0001F9EF mov ebp,[esp+38h] add ebp,0000003Ch jmp L0001F9F1 L0001F9EF: mov ebp,edx L0001F9F1: test edi,edi mov ebp,[ebp+44h] mov esi,[esi+18h] mov [esp+28h],ebp mov ebp,[esp+38h] mov [esp+20h],ecx mov [esp+24h],eax jnz L0001FA0E lea edi,[ebp+3Ch] L0001FA0E: test edx,edx mov edi,[edi+3Ch] mov [esp+14h],edi jnz L0001FA1C lea edx,[ebp+3Ch] L0001FA1C: mov edx,[edx+3Ch] mov [esp+18h],edx mov edx,[esp+1Ch] mov edx,[edx] mov edx,[edx+20h] test edx,edx jnz L0001FA33 lea edx,[ebp+3Ch] L0001FA33: mov edx,[edx+3Ch] mov [esp+1Ch],edx mov edx,[ebx+000000A0h] cmp ecx,edx jz L0001FA48 mov [esp+20h],edx L0001FA48: mov edx,[ebx+0000009Ch] cmp eax,edx mov ebp,edx jnz L0001FA58 mov ebp,[esp+24h] L0001FA58: imul ecx,[esp+10h] imul esi,[esp+28h] mov edi,ecx shr edi,1 add edi,ecx mov [esp+2Ch],ecx mov ecx,esi mov eax,ecx shr eax,1 add eax,ecx mov [esp+30h],eax mov eax,[ebx+0000097Ch] push 00000000h push eax push ebx mov [esp+30h],edi mov [esp+34h],ecx call SUB_L0001F920 test al,al jnz L0001FDA0 mov eax,[esp+10h] cmp eax,00000200h ja L0001FAB2 xor ecx,ecx mov dword ptr [esp+38h],00000000h mov [esp+10h],ecx jmp L0001FAEF L0001FAB2: cmp eax,00000400h ja L0001FAC3 mov dword ptr [esp+38h],00000001h jmp L0001FAE7 L0001FAC3: cmp eax,00000800h ja L0001FAD4 mov dword ptr [esp+38h],00000002h jmp L0001FAE7 L0001FAD4: cmp eax,00001000h ja L0001FDA0 mov dword ptr [esp+38h],00000003h L0001FAE7: mov ecx,[esp+38h] mov [esp+10h],ecx L0001FAEF: mov edx,[esp+20h] mov [ebx+000000A0h],edx mov [ebx+0000009Ch],ebp xor edx,edx jmp L0001FB0B L0001FB03: mov edi,[esp+24h] mov ecx,[esp+10h] L0001FB0B: mov eax,[ebx+0000097Ch] lea esi,[edx+eax*2] add eax,esi lea esi,[eax+eax*2] shl esi,03h sub esi,eax lea ebp,[ebx+esi*4+000000DCh] mov esi,[ebx+00000984h] lea eax,[00000000h+edx*8] sub eax,edx mov [ebp+14h],esi cmp dword ptr [ebp+10h],0000002Ah lea eax,[ebx+eax*8+0000099Ch] mov [esp+20h],eax jc L0001FDA0 mov dword ptr [eax],02000000h add eax,00000004h mov dword ptr [eax],64030000h add eax,00000004h mov dword ptr [eax],0A800000h add eax,00000004h test edx,edx jnz L0001FB77 mov esi,[esp+38h] or esi,[esp+14h] mov [eax],esi jmp L0001FB9B L0001FB77: cmp edx,00000001h jnz L0001FB8C mov esi,[esp+2Ch] mov edi,[esp+14h] add esi,edi or esi,ecx mov [eax],esi jmp L0001FB9B L0001FB8C: cmp edx,00000002h jnz L0001FB9E mov esi,[esp+14h] add edi,esi or edi,ecx mov [eax],edi L0001FB9B: add eax,00000004h L0001FB9E: mov dword ptr [eax],7D850000h add eax,00000004h mov dword ptr [eax],00880000h add eax,00000004h mov dword ptr [eax],7D000002h add eax,00000004h test edx,edx jnz L0001FC36 mov ecx,[esp+38h] add ecx,00000006h mov esi,ecx or esi,01000400h mov [eax],esi mov esi,[ebx+000000A0h] mov edi,[ebx+0000009Ch] add esi,0000FFFFh add eax,00000004h shl esi,10h dec edi or esi,edi mov [eax],esi mov esi,[esp+18h] mov [eax+04h],esi add eax,00000004h mov dword ptr [eax+04h],7D000002h add eax,00000004h or ecx,11000400h mov [eax+04h],ecx mov ecx,[ebx+000000A0h] mov esi,[ebx+0000009Ch] add eax,00000004h add ecx,0000FFFFh shl ecx,10h add eax,00000004h dec esi or ecx,esi mov [eax],ecx mov ecx,[esp+1Ch] add eax,00000004h mov [eax],ecx jmp L0001FD57 L0001FC36: cmp edx,00000001h jnz L0001FCCA add ecx,00000006h mov esi,ecx or esi,01200400h mov [eax],esi mov esi,[ebx+000000A0h] mov edi,[ebx+0000009Ch] and esi,L0001FFFE add eax,00000004h add esi,L0001FFFE shr edi,1 shl esi,0Fh dec edi or esi,edi mov edi,[esp+18h] mov [eax],esi mov esi,[esp+28h] add eax,00000004h add edi,esi mov [eax],edi add eax,00000004h mov dword ptr [eax],7D000002h or ecx,11200400h mov [eax+04h],ecx mov ecx,[ebx+000000A0h] mov edi,[ebx+0000009Ch] add eax,00000004h and ecx,L0001FFFE add ecx,L0001FFFE add eax,00000004h shl ecx,0Fh shr edi,1 dec edi or ecx,edi mov [eax],ecx mov ecx,[esp+1Ch] add eax,00000004h add esi,ecx mov [eax],esi jmp L0001FD57 L0001FCCA: cmp edx,00000002h jnz L0001FD57 add ecx,00000006h mov esi,ecx or esi,01200400h mov [eax],esi mov esi,[ebx+000000A0h] mov edi,[ebx+0000009Ch] and esi,L0001FFFE add eax,00000004h add esi,L0001FFFE shr edi,1 shl esi,0Fh dec edi or esi,edi mov edi,[esp+18h] mov [eax],esi mov esi,[esp+30h] add eax,00000004h add edi,esi mov [eax],edi or ecx,11200400h add eax,00000004h mov dword ptr [eax],7D000002h mov [eax+04h],ecx mov ecx,[ebx+000000A0h] mov edi,[ebx+0000009Ch] add eax,00000004h and ecx,L0001FFFE add ecx,L0001FFFE add eax,00000004h shl ecx,0Fh shr edi,1 dec edi or ecx,edi mov [eax],ecx mov ecx,[esp+1Ch] add esi,ecx mov [eax+04h],esi L0001FD57: mov ecx,0000000Eh mov [ebx+edx*4+00000990h],ecx cmp [ebp+10h],ecx jc L0001FDA0 mov edi,[ebp+04h] mov esi,[esp+20h] rep movsd mov edi,[ebp+10h] mov esi,[ebp+04h] add edi,FFFFFFF2h add esi,00000038h inc edx cmp edx,00000002h mov [ebp+10h],edi mov [ebp+04h],esi jle L0001FB03 pop edi pop esi pop ebp mov byte ptr [ebx+0000098Ah],00h mov al,01h pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ L0001FDA0: pop edi pop esi pop ebp xor al,al pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0001FDB0: push ebp mov ebp,esp sub esp,00000038h mov eax,[ebp+10h] push ebx mov ebx,[ebp+08h] xor ecx,ecx push esi and eax,0000FFFFh push edi mov [ebp-24h],ecx mov [ebp-28h],eax jle L000202C2 jmp L0001FDD6 L0001FDD4: xor ecx,ecx L0001FDD6: mov edx,[ebp+14h] xor eax,eax mov al,[edx+0Ah] mov [ebp-1Ch],ecx mov [ebp+08h],ecx xor edi,edi mov di,[ebx+0000098Ch] xor ecx,ecx mov cx,[ebx+0000098Eh] and eax,0000000Fh mov [ebp-14h],eax mov ax,[edx+04h] test ax,ax mov esi,00000010h mov [ebp-08h],esi mov [ebp-0Ch],esi mov [ebp-04h],edi mov [ebp-18h],ecx jz L0001FE73 mov ecx,eax shl ecx,04h xor edi,edi and eax,0000FFFFh mov [ebp-08h],ecx jle L0001FE99 mov dx,[ebx+0000009Ch] L0001FE2E: add [ebx+0000098Eh],si cmp [ebx+0000098Eh],dx jc L0001FE69 add [ebx+0000098Ch],si xor ecx,ecx mov cx,[ebx+0000098Ch] mov word ptr [ebx+0000098Eh],0000h and ecx,0000FFFFh cmp ecx,[ebx+000000A0h] ja L000202D6 L0001FE69: inc edi cmp edi,eax jl L0001FE2E mov edx,[ebp+14h] jmp L0001FE99 L0001FE73: lea eax,[ecx+10h] cmp ax,[ebx+0000009Ch] mov [ebx+0000098Eh],ax jc L0001FE99 add edi,00000010h mov word ptr [ebx+0000098Eh],0000h mov [ebx+0000098Ch],di L0001FE99: mov al,[ebx+0000098Ah] test al,al jz L0001FF44 mov eax,[ebx+0000097Ch] push 00000000h push eax push ebx call SUB_L0001F920 test al,al jnz L000202D6 lea ecx,[ebx+00000990h] lea eax,[ebx+0000099Ch] xor edx,edx mov [ebp+10h],ecx mov [ebp-10h],eax L0001FED2: mov eax,[ebx+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov esi,[ebx+ecx*4+000000ECh] lea eax,[ebx+ecx*4+000000DCh] mov ecx,[ebp+10h] mov ecx,[ecx] cmp ecx,esi jnc L000202D6 mov esi,[ebp-10h] mov edi,[eax+04h] mov ecx,0000000Eh rep movsd mov esi,[ebp+10h] mov ecx,[esi] mov edi,[eax+10h] sub edi,ecx shl ecx,02h mov [eax+10h],edi mov edi,[eax+04h] add edi,ecx mov ecx,[ebp-10h] inc edx add esi,00000004h add ecx,00000038h cmp edx,00000002h mov [eax+04h],edi mov [ebp+10h],esi mov [ebp-10h],ecx jle L0001FED2 mov edx,[ebp+14h] mov byte ptr [ebx+0000098Ah],00h L0001FF44: mov cx,[ebx+0000009Ah] cmp cx,0003h mov ax,[edx+0Ch] jnz L0001FF7F and eax,0000FFFFh dec eax jz L0001FF76 dec eax jz L0001FF6D dec eax jnz L0001FF8D mov edi,00000005h mov [ebp+10h],edi jmp L0001FFB2 L0001FF6D: mov dword ptr [ebp+10h],00000001h jmp L0001FFAF L0001FF76: mov dword ptr [ebp+10h],00000004h jmp L0001FFAF L0001FF7F: and eax,0000FFFFh dec eax jz L0001FFA8 dec eax jz L0001FF9F dec eax jz L0001FF96 L0001FF8D: mov dword ptr [ebp+10h],00000000h jmp L0001FFAF L0001FF96: mov dword ptr [ebp+10h],00000003h jmp L0001FFAF L0001FF9F: mov dword ptr [ebp+10h],00000006h jmp L0001FFAF L0001FFA8: mov dword ptr [ebp+10h],00000002h L0001FFAF: mov edi,[ebp+10h] L0001FFB2: cmp word ptr [ebx+000000ACh],0000h jz L0001FFFD cmp word ptr [ebx+00000098h],0002h jnz L0001FFFD cmp edi,00000002h jz L0001FFD0 cmp edi,00000006h jnz L0001FFFD L0001FFD0: xor eax,eax mov ax,[edx+06h] and ecx,0000FFFFh dec ecx mov esi,eax and esi,00000001h cmp ecx,esi jz L0001FFED mov dword ptr [ebp+08h],00000001h L0001FFED: cmp edi,00000006h L0001FFF0: jnz L0001FFFD and eax,00000004h cmp ecx,eax jz L0001FFFD or dword ptr [ebp+08h],00000002h L0001FFFD: mov eax,[ebp-14h] L00020000: test al,01h jnz L00020030 cmp eax,00000002h jz L00020028 mov eax,[ebp+08h] and eax,00000001h push eax push 00000000h push edi lea ecx,[ebp-30h] push ecx add edx,00000010h push edx call SUB_L00022A80 mov edx,[ebp+14h] mov eax,[ebp-14h] jmp L00020030 L00020028: xor ecx,ecx mov [ebp-30h],ecx mov [ebp-2Ch],ecx L00020030: cmp edi,00000004h jl L00020072 cmp edi,00000006h mov dword ptr [ebp-1Ch],00000001h mov dword ptr [ebp-0Ch],00000008h jz L0002004C shr word ptr [ebp-04h],1 L0002004C: cmp eax,00000002h jz L0002006A mov eax,[ebp+08h] and eax,00000002h push eax push 00000001h push edi lea ecx,[ebp-38h] push ecx add edx,00000010h push edx call SUB_L00022A80 jmp L00020072 L0002006A: xor edx,edx mov [ebp-38h],edx mov [ebp-34h],edx L00020072: mov dword ptr [ebp-20h],0000008Ch xor edx,edx L0002007B: mov eax,[ebx+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax cmp dword ptr [ebx+ecx*4+000000ECh],0000008Ch ja L0002014E push ebx call SUB_L0001F630 test al,al jz L000202D6 mov edx,[ebx+0000097Ch] push 00000000h push edx push ebx mov byte ptr [ebx+0000098Ah],01h call SUB_L0001F920 test al,al jnz L000202D6 lea eax,[ebx+00000990h] lea ecx,[ebx+0000099Ch] xor edx,edx mov [ebp-10h],eax mov [ebp-14h],ecx L000200DF: mov eax,[ebx+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov esi,[ebx+ecx*4+000000ECh] lea eax,[ebx+ecx*4+000000DCh] mov ecx,[ebp-10h] mov ecx,[ecx] cmp ecx,esi jnc L000202D6 mov esi,[ebp-14h] mov edi,[eax+04h] mov ecx,0000000Eh rep movsd mov esi,[ebp-10h] mov ecx,[esi] mov edi,[eax+10h] sub edi,ecx shl ecx,02h mov [eax+10h],edi mov edi,[eax+04h] add edi,ecx mov ecx,[ebp-14h] inc edx add esi,00000004h add ecx,00000038h cmp edx,00000002h mov [eax+04h],edi mov [ebp-10h],esi mov [ebp-14h],ecx jle L000200DF mov byte ptr [ebx+0000098Ah],00h L0002014E: inc edx cmp edx,00000002h jle L0002007B mov ecx,[ebp+14h] mov ax,[ecx+0Ah] test al,02h jnz L00020175 test al,01h jnz L0002016F mov word ptr [ecx+08h],0000h jmp L00020175 L0002016F: mov word ptr [ecx+08h],003Fh L00020175: xor esi,esi L00020177: mov eax,[ebx+0000097Ch] lea edx,[esi+eax*2] add eax,edx mov edx,[ebp-20h] lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov eax,[ebx+ecx*4+000000ECh] cmp edx,eax lea edi,[ebx+ecx*4+000000DCh] jnc L000202D6 mov eax,[ebp-18h] mov ecx,[ebp-04h] mov edx,[ebp-0Ch] push eax mov eax,[ebp-08h] push ecx push edx push eax mov eax,[ebp+08h] lea ecx,[ebp-38h] push ecx xor ecx,ecx mov cx,[ebx+000000AAh] lea edx,[ebp-30h] push edx push eax xor edx,edx mov dx,[ebx+000000A8h] xor eax,eax mov ax,[ebx+00000098h] push ecx xor ecx,ecx mov cx,[ebx+0000009Ah] push edx mov edx,[ebp-1Ch] push eax mov eax,[ebp+10h] push ecx mov ecx,[ebp+18h] push edx mov edx,[ebp+14h] push eax mov eax,[edi+04h] push esi push ecx push edx push eax call SUB_L00022BD0 mov ecx,[edi+10h] mov edx,[edi+04h] sub ecx,eax mov [edi+10h],ecx lea ecx,[00000000h+eax*4] add edx,ecx test esi,esi mov [edi+04h],edx jnz L00020291 mov edx,[ebp+14h] shr word ptr [ebp-08h],1 shr word ptr [ebp-0Ch],1 shr word ptr [ebp-04h],1 shr word ptr [ebp-18h],1 lea eax,[ebp-30h] mov [edx+0Eh],si mov dword ptr [ebp-20h],0000002Ch mov [ebp-14h],eax mov edi,[ebp-14h] movq mm1,[edi] ; MMX movq mm2,mm1 ; MMX pxor mm7,mm7 ; MMX pcmpgtw mm2,mm7 ; MMX pcmpeqw mm2,mm7 ; MMX psrlw mm2,0Fh ; MMX paddsw mm1,mm2 ; MMX psraw mm1,01h ; MMX movq [edi],mm1 ; MMX emms ; MMX mov eax,[ebp-1Ch] test eax,eax jz L00020291 lea ecx,[ebp-38h] mov [ebp-14h],ecx mov edi,[ebp-14h] movq mm1,[edi] ; MMX movq mm2,mm1 ; MMX pxor mm7,mm7 ; MMX pcmpgtw mm2,mm7 ; MMX pcmpeqw mm2,mm7 ; MMX psrlw mm2,0Fh ; MMX paddsw mm1,mm2 ; MMX psraw mm1,01h ; MMX movq [edi],mm1 ; MMX emms ; MMX L00020291: inc esi cmp esi,00000002h jle L00020177 mov edi,[ebp+14h] mov esi,[ebp+18h] mov eax,[ebp-24h] mov ecx,[ebp-28h] add edi,00000020h add esi,00000300h inc eax cmp eax,ecx mov [ebp+14h],edi mov [ebp+18h],esi mov [ebp-24h],eax jl L0001FDD4 L000202C2: push ebx call SUB_L0001F630 pop edi test al,al pop esi setnz al pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L000202D6: pop edi pop esi xor al,al pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L000202F0: sub esp,0000004Ch mov ecx,[esp+58h] push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi mov [esp+44h],eax jbe L00020837 mov ecx,[esp+6Ch] mov ebp,[esp+60h] add ecx,00000002h mov [esp+24h],ecx jmp L00020320 L0002031A: mov ecx,[esp+24h] xor eax,eax L00020320: xor edx,edx mov dl,[ecx+05h] mov [esp+38h],eax mov [esp+18h],eax xor eax,eax mov ax,[ebp+00000A54h] xor ebx,ebx mov bx,[ebp+00000A56h] mov esi,edx xor edx,edx xor edi,edi mov [esp+28h],esi mov [esp+6Ch],eax mov ax,[ecx] mov dl,ah mov cx,[ecx+06h] mov [esp+10h],ebx and edx,00000003h mov [esp+1Ch],edx xor edx,edx mov dl,al shr dl,05h shr ecx,06h and ecx,0000003Fh mov [esp+30h],ecx and edx,00000001h mov [esp+3Ch],edx mov dx,ax shr dx,0Ch mov [esp+2Ch],edx mov dl,al and edx,00000001h test cx,cx jz L00020398 test dx,dx jz L00020398 mov edi,00000001h L00020398: xor ecx,ecx mov cl,al and eax,00000004h and ecx,00000002h shl ecx,1 or ecx,edi shl ecx,1 or ecx,eax or ecx,edx mov edi,ecx xor ecx,ecx mov cx,[ebp+0000098Ch] xor eax,eax test si,si mov ax,[ebp+0000098Eh] mov [esp+34h],edi mov [esp+14h],ecx mov [esp+20h],eax jz L0002043A inc esi mov edx,esi imul edx,[esp+6Ch] mov [esp+28h],esi xor ecx,ecx and esi,0000FFFFh mov [esp+6Ch],edx jle L00020467 mov dx,[ebp+0000009Ch] L000203F2: mov ax,[ebp+00000A54h] add [ebp+0000098Eh],ax cmp [ebp+0000098Eh],dx jc L00020433 add [ebp+0000098Ch],bx xor eax,eax mov ax,[ebp+0000098Ch] mov word ptr [ebp+0000098Eh],0000h and eax,0000FFFFh cmp eax,[ebp+000000A0h] ja L00020843 L00020433: inc ecx cmp ecx,esi jl L000203F2 jmp L00020467 L0002043A: xor edx,edx mov dx,[ebp+00000A54h] add eax,edx cmp ax,[ebp+0000009Ch] mov [ebp+0000098Eh],ax jc L00020467 add ecx,ebx mov word ptr [ebp+0000098Eh],0000h mov [ebp+0000098Ch],cx L00020467: mov al,[ebp+0000098Ah] test al,al jz L0002050B mov eax,[ebp+0000097Ch] push 00000000h push eax push ebp call SUB_L0001F920 test al,al jnz L00020843 lea ecx,[ebp+0000099Ch] xor edx,edx lea ebx,[ebp+00000990h] mov [esp+60h],ecx L0002049E: mov eax,[ebp+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov esi,[ebp+ecx*4+000000ECh] lea eax,[ebp+ecx*4+000000DCh] mov ecx,[ebx] cmp ecx,esi jnc L00020843 mov esi,[esp+60h] mov edi,[eax+04h] mov ecx,0000000Eh rep movsd mov ecx,[ebx] mov edi,[eax+10h] mov esi,[eax+04h] sub edi,ecx shl ecx,02h add esi,ecx mov ecx,[esp+60h] inc edx add ecx,00000038h add ebx,00000004h cmp edx,00000002h mov [eax+10h],edi mov [eax+04h],esi mov [esp+60h],ecx jle L0002049E mov edi,[esp+34h] mov byte ptr [ebp+0000098Ah],00h L0002050B: mov cx,[ebp+0000009Ah] cmp cx,0003h mov eax,[esp+1Ch] jnz L00020548 and eax,0000FFFFh dec eax jz L0002053E dec eax jz L00020534 dec eax jnz L00020556 mov dword ptr [esp+60h],00000005h jmp L0002057C L00020534: mov dword ptr [esp+60h],00000001h jmp L0002057C L0002053E: mov dword ptr [esp+60h],00000004h jmp L0002057C L00020548: and eax,0000FFFFh dec eax jz L00020574 dec eax jz L0002056A dec eax jz L00020560 L00020556: mov dword ptr [esp+60h],00000000h jmp L0002057C L00020560: mov dword ptr [esp+60h],00000003h jmp L0002057C L0002056A: mov dword ptr [esp+60h],00000006h jmp L0002057C L00020574: mov dword ptr [esp+60h],00000002h L0002057C: cmp word ptr [ebp+000000ACh],0000h jz L000205D4 mov esi,00000002h cmp [ebp+00000098h],si jnz L000205D4 mov edx,[esp+60h] cmp edx,esi jz L000205A1 cmp edx,00000006h jnz L000205D8 L000205A1: mov eax,[esp+2Ch] and eax,0000FFFFh and ecx,0000FFFFh mov ebx,eax dec ecx and ebx,00000001h cmp ecx,ebx jz L000205C2 mov dword ptr [esp+18h],00000001h L000205C2: cmp edx,00000006h jnz L000205D8 and eax,00000004h cmp ecx,eax jz L000205D8 or [esp+18h],esi jmp L000205D8 L000205D4: mov edx,[esp+60h] L000205D8: mov ecx,edi and ecx,00000001h test cx,cx mov [esp+48h],ecx jnz L000205F6 cmp di,0002h jnz L000205F6 xor eax,eax mov [esp+54h],eax mov [esp+58h],eax L000205F6: cmp edx,00000004h jl L00020622 shr word ptr [esp+10h],1 cmp edx,00000006h mov dword ptr [esp+38h],00000001h jz L00020612 shr word ptr [esp+14h],1 L00020612: cmp di,0002h jnz L00020622 xor edx,edx mov [esp+4Ch],edx mov [esp+50h],edx L00020622: mov dword ptr [esp+40h],0000008Ch xor edx,edx L0002062C: mov eax,[ebp+0000097Ch] lea esi,[edx+eax*2] add eax,esi lea esi,[eax+eax*2] shl esi,03h sub esi,eax cmp dword ptr [ebp+esi*4+000000ECh],0000008Ch ja L000206FB push ebp call SUB_L0001F630 test al,al jz L00020843 mov eax,[ebp+0000097Ch] push 00000000h push eax push ebp mov byte ptr [ebp+0000098Ah],01h call SUB_L0001F920 test al,al jnz L00020843 lea ecx,[ebp+0000099Ch] xor edx,edx lea ebx,[ebp+00000990h] mov [esp+1Ch],ecx L0002068E: mov eax,[ebp+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov esi,[ebp+ecx*4+000000ECh] lea eax,[ebp+ecx*4+000000DCh] mov ecx,[ebx] cmp ecx,esi jnc L00020843 mov esi,[esp+1Ch] mov edi,[eax+04h] mov ecx,0000000Eh rep movsd mov ecx,[ebx] mov edi,[eax+10h] mov esi,[eax+04h] sub edi,ecx shl ecx,02h add esi,ecx mov ecx,[esp+1Ch] inc edx add ecx,00000038h add ebx,00000004h cmp edx,00000002h mov [eax+10h],edi mov [eax+04h],esi mov [esp+1Ch],ecx jle L0002068E mov ecx,[esp+48h] mov byte ptr [ebp+0000098Ah],00h L000206FB: inc edx cmp edx,00000002h jle L0002062C test cx,cx jz L00020712 mov dword ptr [esp+30h],0000003Fh L00020712: mov ebx,[esp+60h] xor edi,edi L00020718: mov eax,[ebp+0000097Ch] lea edx,[edi+eax*2] add eax,edx mov edx,[esp+40h] lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov eax,[ebp+ecx*4+000000ECh] cmp edx,eax lea esi,[ebp+ecx*4+000000DCh] jnc L00020843 mov eax,[esp+28h] mov ecx,[esp+2Ch] mov edx,[esp+3Ch] push eax mov eax,[esp+34h] push ecx mov ecx,[esp+3Ch] push edx mov edx,[esp+2Ch] push eax mov eax,[esp+24h] push ecx mov ecx,[esp+24h] push edx mov edx,[esp+00000084h] push eax push ecx push edx mov edx,[esp+3Ch] lea eax,[esp+70h] push eax xor eax,eax mov ax,[ebp+000000AAh] lea ecx,[esp+7Ch] push ecx push edx xor ecx,ecx mov cx,[ebp+000000A8h] xor edx,edx mov dx,[ebp+00000098h] push eax xor eax,eax mov ax,[ebp+0000009Ah] push ecx mov ecx,[esp+70h] push edx mov edx,[esp+000000ACh] push eax mov eax,[esi+04h] push ecx push ebx push edi push edx push eax call SUB_L00024340 mov ecx,[esi+10h] mov edx,[esi+04h] sub ecx,eax mov [esi+10h],ecx lea ecx,[00000000h+eax*4] add edx,ecx test edi,edi mov [esi+04h],edx jnz L000207FF shr word ptr [esp+6Ch],1 shr word ptr [esp+10h],1 shr word ptr [esp+14h],1 shr word ptr [esp+20h],1 mov [esp+3Ch],edi mov dword ptr [esp+40h],0000002Ch L000207FF: inc edi cmp edi,00000002h jle L00020718 mov edi,[esp+24h] mov esi,[esp+70h] mov eax,[esp+44h] mov ecx,[esp+68h] add edi,00000010h add esi,00000180h inc eax cmp eax,ecx mov [esp+24h],edi mov [esp+70h],esi mov [esp+44h],eax jc L0002031A L00020837: pop edi pop esi pop ebp mov al,01h pop ebx add esp,0000004Ch retn 0014h ;------------------------------------------------------------------------------ L00020843: pop edi pop esi pop ebp xor al,al pop ebx add esp,0000004Ch retn 0014h ;------------------------------------------------------------------------------ Align 4 SUB_L00020850: push ebp mov ebp,esp sub esp,00000354h mov eax,[ebp+10h] test eax,eax push ebx push esi push edi mov dword ptr [ebp-4Ch],00000000h jbe L00020EE8 mov eax,[ebp+14h] mov ebx,[ebp+08h] add eax,00000002h mov [ebp-18h],eax L0002087A: mov esi,[ebp-18h] xor eax,eax mov ax,[ebx+00000A54h] mov dx,[esi] mov ecx,[ebp+18h] mov [ebp-50h],ecx xor ecx,ecx mov cl,dh xor edi,edi mov [ebp-14h],eax xor eax,eax mov ax,[ebx+00000A56h] mov [ebp-3Ch],edi mov [ebp-0Ch],edi and ecx,00000003h mov [ebp-10h],ecx xor ecx,ecx mov cl,dl mov [ebp-24h],eax xor eax,eax mov al,[esi+05h] mov si,[esi+06h] mov [ebp+14h],edi and ecx,00000001h mov [ebp-40h],eax xor eax,eax mov al,dl shr al,05h shr esi,06h and esi,0000003Fh mov [ebp+08h],esi and eax,00000001h mov [ebp-44h],eax mov ax,dx shr ax,0Ch cmp si,di mov [ebp-48h],eax mov eax,ecx mov [ebp-08h],eax jz L000208FC cmp ax,di jnz L000208FC mov dword ptr [ebp+14h],00000001h L000208FC: xor eax,eax cmp [ebp-08h],ax mov ecx,000000C0h lea edi,[ebp-00000354h] rep stosd jz L00020925 mov eax,[ebp+18h] mov dword ptr [ebp+08h],0000003Fh add eax,00000300h jmp L000209EB L00020925: lea eax,[ebp-00000354h] mov [ebp-50h],eax test byte ptr [ebp+08h],20h jz L0002094E mov eax,[ebp+18h] mov esi,eax mov ecx,00000020h lea edi,[ebp-00000354h] add eax,00000080h rep movsd mov [ebp+18h],eax L0002094E: test byte ptr [ebp+08h],10h jz L0002096E mov eax,[ebp+18h] mov esi,eax mov ecx,00000020h lea edi,[ebp-000002D4h] add eax,00000080h rep movsd mov [ebp+18h],eax L0002096E: test byte ptr [ebp+08h],08h jz L0002098E mov eax,[ebp+18h] mov esi,eax mov ecx,00000020h lea edi,[ebp-00000254h] add eax,00000080h rep movsd mov [ebp+18h],eax L0002098E: test byte ptr [ebp+08h],04h jz L000209AE mov eax,[ebp+18h] mov esi,eax mov ecx,00000020h lea edi,[ebp-000001D4h] add eax,00000080h rep movsd mov [ebp+18h],eax L000209AE: test byte ptr [ebp+08h],02h jz L000209CE mov eax,[ebp+18h] mov esi,eax mov ecx,00000020h lea edi,[ebp-00000154h] add eax,00000080h rep movsd mov [ebp+18h],eax L000209CE: test byte ptr [ebp+08h],01h jz L000209EE mov eax,[ebp+18h] mov esi,eax mov ecx,00000020h lea edi,[ebp-000000D4h] rep movsd add eax,00000080h L000209EB: mov [ebp+18h],eax L000209EE: mov eax,[ebp+14h] mov edi,[ebp-08h] xor ecx,ecx mov cl,dl and edx,00000004h and ecx,00000002h shl ecx,1 or ecx,eax shl ecx,1 or ecx,edx mov edx,[ebp-40h] or ecx,edi mov [ebp-28h],ecx xor ecx,ecx mov cx,[ebx+0000098Ch] xor eax,eax mov ax,[ebx+0000098Eh] xor edi,edi cmp dx,di mov [ebp-1Ch],ecx mov [ebp-08h],eax jz L00020A9C inc edx mov eax,edx imul eax,[ebp-14h] mov [ebp-40h],edx xor ecx,ecx and edx,0000FFFFh mov [ebp-14h],eax jle L00020AD0 mov si,[ebx+0000009Ch] L00020A4F: mov ax,[ebx+00000A54h] add [ebx+0000098Eh],ax cmp [ebx+0000098Eh],si jc L00020A95 mov ax,[ebx+00000A56h] add [ebx+0000098Ch],ax xor eax,eax mov ax,[ebx+0000098Ch] mov [ebx+0000098Eh],di and eax,0000FFFFh cmp eax,[ebx+000000A0h] ja L00020EF3 L00020A95: inc ecx cmp ecx,edx jl L00020A4F jmp L00020AD0 L00020A9C: xor edx,edx mov dx,[ebx+00000A54h] add eax,edx cmp ax,[ebx+0000009Ch] mov [ebx+0000098Eh],ax jc L00020AD0 xor eax,eax mov ax,[ebx+00000A56h] mov [ebx+0000098Eh],di add ecx,eax mov [ebx+0000098Ch],cx L00020AD0: mov al,[ebx+0000098Ah] test al,al jz L00020B78 mov ecx,[ebx+0000097Ch] push 00000000h push ecx push ebx call SUB_L0001F920 test al,al jnz L00020EF3 lea eax,[ebx+00000990h] lea ecx,[ebx+0000099Ch] xor edx,edx mov [ebp+14h],eax mov [ebp-04h],ecx L00020B09: mov eax,[ebx+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov esi,[ebx+ecx*4+000000ECh] lea eax,[ebx+ecx*4+000000DCh] mov ecx,[ebp+14h] mov ecx,[ecx] cmp ecx,esi jnc L00020EF3 mov esi,[ebp-04h] mov edi,[eax+04h] mov ecx,0000000Eh rep movsd mov esi,[ebp+14h] mov ecx,[esi] mov edi,[eax+10h] sub edi,ecx shl ecx,02h mov [eax+10h],edi mov edi,[eax+04h] add edi,ecx mov ecx,[ebp-04h] inc edx add esi,00000004h add ecx,00000038h cmp edx,00000002h mov [eax+04h],edi mov [ebp+14h],esi mov [ebp-04h],ecx jle L00020B09 mov byte ptr [ebx+0000098Ah],00h L00020B78: mov dx,[ebx+0000009Ah] cmp dx,0003h mov eax,[ebp-10h] jnz L00020BAB and eax,0000FFFFh dec eax jz L00020BA4 dec eax jz L00020B9D dec eax jnz L00020BB9 mov ecx,00000005h jmp L00020BD0 L00020B9D: mov ecx,00000001h jmp L00020BD0 L00020BA4: mov ecx,00000004h jmp L00020BD0 L00020BAB: and eax,0000FFFFh dec eax jz L00020BCB dec eax jz L00020BC4 dec eax jz L00020BBD L00020BB9: xor ecx,ecx jmp L00020BD0 L00020BBD: mov ecx,00000003h jmp L00020BD0 L00020BC4: mov ecx,00000006h jmp L00020BD0 L00020BCB: mov ecx,00000002h L00020BD0: cmp word ptr [ebx+000000ACh],0000h mov [ebp+14h],ecx jz L00020C22 mov esi,00000002h cmp [ebx+00000098h],si jnz L00020C22 cmp ecx,esi jz L00020BF4 cmp ecx,00000006h jnz L00020C22 L00020BF4: mov eax,[ebp-48h] and eax,0000FFFFh and edx,0000FFFFh mov edi,eax dec edx and edi,00000001h cmp edx,edi jz L00020C13 mov dword ptr [ebp-0Ch],00000001h L00020C13: cmp ecx,00000006h jnz L00020C22 and eax,00000004h cmp edx,eax jz L00020C22 or [ebp-0Ch],esi L00020C22: mov eax,[ebp-28h] and eax,00000001h test ax,ax mov [ebp-20h],eax jnz L00020C5E cmp word ptr [ebp-28h],0002h jz L00020C56 mov edx,[ebp-0Ch] mov eax,[ebp+14h] and edx,00000001h push edx mov edx,[ebp-18h] push 00000000h push eax lea ecx,[ebp-38h] push ecx add edx,0000000Eh push edx call SUB_L00022930 jmp L00020C5E L00020C56: xor eax,eax mov [ebp-38h],eax mov [ebp-34h],eax L00020C5E: mov eax,[ebp+14h] cmp eax,00000004h jl L00020CA5 shr word ptr [ebp-24h],1 cmp eax,00000006h mov dword ptr [ebp-3Ch],00000001h jz L00020C7A shr word ptr [ebp-1Ch],1 L00020C7A: cmp word ptr [ebp-28h],0002h jz L00020C9D mov ecx,[ebp-0Ch] and ecx,00000002h push ecx push 00000001h push eax mov eax,[ebp-18h] lea edx,[ebp-30h] push edx add eax,0000000Eh push eax call SUB_L00022930 jmp L00020CA5 L00020C9D: xor ecx,ecx mov [ebp-30h],ecx mov [ebp-2Ch],ecx L00020CA5: mov dword ptr [ebp-54h],0000008Ch xor edx,edx L00020CAE: mov eax,[ebx+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax cmp dword ptr [ebx+ecx*4+000000ECh],0000008Ch ja L00020D81 push ebx call SUB_L0001F630 test al,al jz L00020EF3 mov edx,[ebx+0000097Ch] push 00000000h push edx push ebx mov byte ptr [ebx+0000098Ah],01h call SUB_L0001F920 test al,al jnz L00020EF3 lea eax,[ebx+00000990h] lea ecx,[ebx+0000099Ch] xor edx,edx mov [ebp-04h],eax mov [ebp-10h],ecx L00020D12: mov eax,[ebx+0000097Ch] lea ecx,[edx+eax*2] add eax,ecx lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov esi,[ebx+ecx*4+000000ECh] lea eax,[ebx+ecx*4+000000DCh] mov ecx,[ebp-04h] mov ecx,[ecx] cmp ecx,esi jnc L00020EF3 mov esi,[ebp-10h] mov edi,[eax+04h] mov ecx,0000000Eh rep movsd mov esi,[ebp-04h] mov ecx,[esi] mov edi,[eax+10h] sub edi,ecx shl ecx,02h mov [eax+10h],edi mov edi,[eax+04h] add edi,ecx mov ecx,[ebp-10h] inc edx add esi,00000004h add ecx,00000038h cmp edx,00000002h mov [eax+04h],edi mov [ebp-04h],esi mov [ebp-10h],ecx jle L00020D12 mov byte ptr [ebx+0000098Ah],00h L00020D81: inc edx cmp edx,00000002h jle L00020CAE cmp word ptr [ebp-20h],0000h jz L00020D99 mov dword ptr [ebp+08h],0000003Fh L00020D99: xor esi,esi L00020D9B: mov eax,[ebx+0000097Ch] lea edx,[esi+eax*2] add eax,edx mov edx,[ebp-54h] lea ecx,[eax+eax*2] shl ecx,03h sub ecx,eax mov eax,[ebx+ecx*4+000000ECh] cmp edx,eax lea edi,[ebx+ecx*4+000000DCh] jnc L00020EF3 mov eax,[ebp-40h] mov ecx,[ebp-48h] mov edx,[ebp-44h] push eax mov eax,[ebp+08h] push ecx mov ecx,[ebp-28h] push edx mov edx,[ebp-08h] push eax mov eax,[ebp-1Ch] push ecx mov ecx,[ebp-24h] push edx mov edx,[ebp-14h] push eax push ecx push edx mov edx,[ebp-0Ch] lea eax,[ebp-30h] push eax xor eax,eax mov ax,[ebx+000000AAh] lea ecx,[ebp-38h] push ecx push edx xor ecx,ecx mov cx,[ebx+000000A8h] xor edx,edx mov dx,[ebx+00000098h] push eax xor eax,eax mov ax,[ebx+0000009Ah] push ecx mov ecx,[ebp-3Ch] push edx mov edx,[ebp+14h] push eax mov eax,[ebp-50h] push ecx mov ecx,[edi+04h] push edx push esi push eax push ecx call SUB_L00023A40 mov edx,[edi+10h] mov ecx,[edi+04h] sub edx,eax mov [edi+10h],edx lea edx,[00000000h+eax*4] add ecx,edx test esi,esi mov [edi+04h],ecx jnz L00020EC3 shr word ptr [ebp-14h],1 shr word ptr [ebp-24h],1 shr word ptr [ebp-1Ch],1 shr word ptr [ebp-08h],1 lea eax,[ebp-38h] mov [ebp-44h],esi mov dword ptr [ebp-54h],0000002Ch mov [ebp-20h],eax mov edi,[ebp-20h] movq mm1,[edi] ; MMX movq mm2,mm1 ; MMX pxor mm7,mm7 ; MMX pcmpgtw mm2,mm7 ; MMX pcmpeqw mm2,mm7 ; MMX psrlw mm2,0Fh ; MMX paddsw mm1,mm2 ; MMX psraw mm1,01h ; MMX movq [edi],mm1 ; MMX emms ; MMX mov eax,[ebp-3Ch] test eax,eax jz L00020EC3 lea ecx,[ebp-30h] mov [ebp-20h],ecx mov edi,[ebp-20h] movq mm1,[edi] ; MMX movq mm2,mm1 ; MMX nop pxor mm7,mm7 ; MMX pcmpgtw mm2,mm7 ; MMX pcmpeqw mm2,mm7 ; MMX psrlw mm2,0Fh ; MMX paddsw mm1,mm2 ; MMX psraw mm1,01h ; MMX movq [edi],mm1 ; MMX emms ; MMX nop L00020EC3: inc esi cmp esi,00000002h jle L00020D9B mov esi,[ebp-18h] mov eax,[ebp-4Ch] mov ecx,[ebp+10h] add esi,00000020h inc eax cmp eax,ecx mov [ebp-18h],esi mov [ebp-4Ch],eax jc L0002087A L00020EE8: pop edi pop esi mov al,01h pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L00020EF3: pop edi pop esi xor al,al pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 SUB_L00020F00: sub esp,00000084h mov ecx,[esp+0000008Ch] push ebx push ebp push esi mov esi,[esp+00000094h] mov eax,[esi+000000C8h] mov dword ptr [eax+74h],00000000h mov ebp,[esi+000000B4h] add ecx,0000000Ch mov edx,[ecx] mov eax,[ecx+04h] mov [esp+58h],edx mov edx,[ecx+08h] push edi mov edi,[esi+000000B0h] mov [esp+60h],eax mov eax,[ecx+0Ch] mov ecx,[esi+000000CCh] mov [esp+64h],edx mov edx,[esi+000000C8h] push edx mov [esp+6Ch],eax mov [esp+7Ch],ecx call SUB_L00017390 mov edx,eax mov eax,[edi] mov ecx,[eax+20h] test ecx,ecx mov [esp+10h],edx mov [esp+6Ch],ecx jnz L00020F7B lea ecx,[edx+3Ch] L00020F7B: mov ebx,[ecx+44h] mov ecx,[ebp+00h] mov edi,[ecx+20h] test edi,edi mov eax,[eax+18h] mov [esp+54h],edi jnz L00020F92 lea edi,[edx+3Ch] L00020F92: mov edx,[ecx+18h] imul eax,ebx mov ecx,[ecx+1Ch] mov ebp,[edi+44h] mov [esp+58h],ecx mov ecx,edx imul ecx,ebp mov [esp+00000080h],ebp mov ebp,ecx shr ebp,1 mov edi,eax add ebp,ecx shr edi,1 mov [esp+74h],ecx mov ecx,[esp+54h] add edi,eax test ecx,ecx mov [esp+70h],edx mov [esp+00000088h],ebp jnz L00020FD8 mov ecx,[esp+10h] add ecx,0000003Ch L00020FD8: mov ecx,[ecx+3Ch] mov [esp+7Ch],ecx mov ecx,[esp+6Ch] test ecx,ecx jnz L00020FEE mov ecx,[esp+10h] add ecx,0000003Ch L00020FEE: mov ebp,[ecx+3Ch] add eax,ebp lea ecx,[edi+ebp] mov [esp+00000084h],ecx mov [esp+10h],eax xor eax,eax mov ecx,00000010h lea edi,[esp+14h] rep stosd mov eax,[esp+58h] xor ecx,ecx mov [esp+2Ch],edx mov [esp+40h],edx mov [esp+20h],edx mov [esp+50h],edx mov edx,[esp+7Ch] mov [esp+24h],ecx mov [esp+30h],ecx mov [esp+34h],ecx mov [esp+3Ch],ecx mov ecx,[esi+000000C8h] mov [esp+14h],edx mov [esp+28h],eax mov [esp+38h],eax mov [esp+1Ch],eax mov [esp+4Ch],eax mov eax,[esp+00000080h] push ecx lea edx,[esp+18h] push edx mov [esp+4Ch],ebp mov [esp+50h],ebx mov [esp+20h],eax call SUB_L00021B80 test al,al jnz L00021081 pop edi pop esi pop ebp pop ebx add esp,00000084h retn 0008h ;------------------------------------------------------------------------------ L00021081: mov edx,[esp+68h] xor eax,eax mov ecx,00000010h lea edi,[esp+14h] rep stosd mov eax,[esp+5Ch] mov ecx,[esp+60h] mov [esp+44h],ebp mov ebp,[esp+64h] mov [esp+24h],eax mov [esp+34h],eax mov [esp+28h],ebp mov [esp+38h],ebp sub ebp,eax mov eax,edx mov edi,ecx sub eax,edi mov [esp+20h],eax mov [esp+50h],eax mov [esp+6Ch],eax mov eax,[esp+78h] mov [esp+30h],ecx mov [esp+2Ch],edx mov [esp+3Ch],ecx mov [esp+40h],edx mov [esp+48h],ebx mov [esp+1Ch],ebp mov [esp+4Ch],ebp mov ecx,[eax+04h] mov [esp+14h],ecx mov edx,[eax+0Ch] mov eax,[esp+0000009Ch] mov ecx,[esi+000000C8h] push 00000000h add eax,0000001Ch push eax mov [esp+20h],edx push ecx lea edx,[esp+20h] push edx mov [esp+64h],eax call SUB_L00021E80 test eax,eax jnz L00021129 pop edi pop esi pop ebp xor al,al pop ebx add esp,00000084h retn 0008h ;------------------------------------------------------------------------------ L00021129: xor eax,eax xor edx,edx mov ecx,00000010h lea edi,[esp+14h] rep stosd mov ecx,[esp+70h] mov eax,[esp+10h] shr ecx,1 mov [esp+70h],ecx mov [esp+2Ch],ecx mov [esp+40h],ecx mov [esp+20h],ecx mov [esp+50h],ecx mov ecx,[esp+7Ch] mov [esp+24h],edx mov [esp+30h],edx mov [esp+34h],edx mov [esp+3Ch],edx mov edx,[esp+74h] mov [esp+44h],eax mov eax,[esp+58h] shr eax,1 add ecx,edx mov [esp+14h],ecx mov ecx,[esi+000000C8h] mov [esp+58h],eax mov [esp+28h],eax mov [esp+38h],eax mov [esp+1Ch],eax mov [esp+4Ch],eax mov eax,[esp+00000080h] push ecx lea edx,[esp+18h] push edx mov [esp+50h],ebx mov [esp+20h],eax call SUB_L00021B80 test al,al jnz L000211C3 pop edi pop esi pop ebp pop ebx add esp,00000084h retn 0008h ;------------------------------------------------------------------------------ L000211C3: mov edx,[esp+68h] xor eax,eax mov ecx,00000010h lea edi,[esp+14h] rep stosd mov eax,[esp+10h] mov ecx,[esp+60h] mov edi,[esp+64h] mov [esp+44h],eax mov eax,[esp+5Ch] mov [esp+24h],eax shr eax,1 mov [esp+30h],ecx shr ecx,1 mov [esp+2Ch],edx mov edx,eax mov [esp+74h],eax mov [esp+3Ch],ecx mov [esp+0000008Ch],ecx mov ecx,[esp+68h] mov [esp+28h],edi mov eax,edi mov edi,[esp+6Ch] shr eax,1 mov [esp+38h],eax shr ecx,1 mov [esp+10h],eax sub eax,edx mov [esp+20h],edi mov edi,[esp+3Ch] mov [esp+40h],ecx mov [esp+00000090h],ecx mov [esp+4Ch],eax mov eax,[esp+78h] sub ecx,edi mov [esp+34h],edx mov [esp+50h],ecx mov [esp+48h],ebx mov [esp+1Ch],ebp mov ecx,[eax+04h] mov [esp+14h],ecx mov edx,[eax+0Ch] mov eax,[esp+54h] mov ecx,[esi+000000C8h] push 00000001h push eax mov [esp+20h],edx push ecx lea edx,[esp+20h] push edx call SUB_L00021E80 test eax,eax jnz L0002128B pop edi pop esi pop ebp xor al,al pop ebx add esp,00000084h retn 0008h ;------------------------------------------------------------------------------ L0002128B: xor eax,eax xor edx,edx mov ecx,00000010h lea edi,[esp+14h] rep stosd mov ecx,[esp+70h] mov eax,[esp+00000084h] mov [esp+2Ch],ecx mov [esp+40h],ecx mov [esp+20h],ecx mov [esp+50h],ecx mov ecx,[esp+7Ch] mov [esp+24h],edx mov [esp+30h],edx mov [esp+34h],edx mov [esp+3Ch],edx mov edx,[esp+00000088h] add ecx,edx mov [esp+44h],eax mov eax,[esp+58h] mov [esp+14h],ecx mov ecx,[esi+000000C8h] mov [esp+28h],eax mov [esp+38h],eax mov [esp+1Ch],eax mov [esp+4Ch],eax mov eax,[esp+00000080h] push ecx lea edx,[esp+18h] push edx mov [esp+50h],ebx mov [esp+20h],eax call SUB_L00021B80 test al,al jnz L0002131F pop edi pop esi pop ebp pop ebx add esp,00000084h retn 0008h ;------------------------------------------------------------------------------ L0002131F: mov edx,[esp+64h] xor eax,eax mov ecx,00000010h lea edi,[esp+14h] rep stosd mov eax,[esp+00000084h] mov ecx,[esp+5Ch] mov edi,[esp+0000008Ch] mov [esp+44h],eax mov eax,[esp+60h] mov [esp+24h],ecx mov ecx,[esp+68h] mov [esp+30h],eax mov eax,[esp+10h] mov [esp+28h],edx mov edx,[esp+74h] mov [esp+2Ch],ecx mov ecx,[esp+00000090h] mov [esp+38h],eax sub eax,edx mov [esp+40h],ecx mov [esp+48h],ebx mov ebx,[esp+6Ch] mov [esp+4Ch],eax mov eax,[esp+78h] sub ecx,edi mov [esp+34h],edx mov [esp+50h],ecx mov ecx,[esp+54h] mov [esp+3Ch],edi mov [esp+1Ch],ebp mov [esp+20h],ebx mov edx,[eax+04h] push 00000002h mov [esp+18h],edx mov eax,[eax+0Ch] mov edx,[esi+000000C8h] push ecx mov [esp+20h],eax push edx lea eax,[esp+20h] push eax call SUB_L00021E80 pop edi pop esi test eax,eax pop ebp setnz al pop ebx add esp,00000084h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000213E0: sub esp,000000B4h push ebx push ebp push esi mov esi,[esp+000000C4h] mov eax,[esi+000000C8h] mov dword ptr [eax+74h],00000000h mov eax,[esp+000000C8h] lea ecx,[eax+24h] mov edx,[ecx] mov [esp+00000090h],edx mov edx,[ecx+04h] mov [esp+00000094h],edx mov edx,[ecx+08h] mov ecx,[ecx+0Ch] mov [esp+00000098h],edx lea edx,[eax+34h] mov [esp+0000009Ch],ecx mov ecx,[edx] mov [esp+000000A0h],ecx mov ecx,[edx+04h] mov [esp+000000A4h],ecx mov ecx,[edx+08h] mov edx,[edx+0Ch] mov [esp+000000A8h],ecx lea ecx,[eax+04h] mov ebx,ecx mov ecx,[ebx] mov [esp+000000ACh],edx mov edx,[ebx+04h] sar edx,04h add eax,00000014h push edi mov edi,[ebx+08h] mov ebx,[ebx+0Ch] sar ecx,04h mov [esp+70h],edx mov edx,[eax] sar edi,04h mov [esp+6Ch],ecx mov ecx,[eax+04h] sar ebx,04h mov [esp+00000080h],edx mov edx,[eax+08h] mov eax,[eax+0Ch] mov [esp+74h],edi mov edi,[esi+000000B4h] test edi,edi mov [esp+78h],ebx mov ebx,[esi+000000B0h] mov [esp+00000084h],ecx mov [esp+00000088h],edx mov [esp+0000008Ch],eax jz L00021B62 test ebx,ebx jz L00021B62 mov eax,[esi+000000CCh] test eax,eax mov [esp+68h],eax jz L00021B62 mov ecx,[esi+000000C8h] push ecx call SUB_L00017390 mov ebx,[ebx] mov ecx,eax mov eax,[ebx+20h] test eax,eax mov [esp+50h],ecx mov [esp+58h],eax jnz L000214FF lea eax,[ecx+3Ch] L000214FF: mov edx,[eax+44h] mov edi,[edi] mov eax,[ebx+18h] mov ebx,[edi+20h] test ebx,ebx mov [esp+54h],edx jnz L00021517 add ecx,0000003Ch jmp L00021519 L00021517: mov ecx,ebx L00021519: mov ebp,[ecx+44h] imul eax,edx mov ecx,[edi+18h] mov edi,[edi+1Ch] mov [esp+60h],ecx imul ecx,ebp mov [esp+7Ch],edi mov edx,eax mov edi,ecx shr edx,1 shr edi,1 add edx,eax add edi,ecx test ebx,ebx mov [esp+00000090h],ebp jnz L0002154E mov ebx,[esp+50h] add ebx,0000003Ch L0002154E: mov ebp,[esp+58h] test ebp,ebp mov ebx,[ebx+3Ch] mov [esp+5Ch],ebx jnz L00021564 mov ebp,[esp+50h] add ebp,0000003Ch L00021564: mov ebp,[ebp+3Ch] add ecx,ebx mov [esp+64h],ecx add eax,ebp lea ecx,[edx+ebp] mov edx,[esp+54h] add ebx,edi mov [esp+50h],eax mov [esp+000000B4h],ecx xor eax,eax mov ecx,00000010h lea edi,[esp+10h] rep stosd mov al,[esi+00000B54h] test al,al mov [esp+000000B8h],ebx mov [esp+40h],ebp mov [esp+44h],edx jnz L000215D5 mov eax,[esp+7Ch] mov ecx,[esp+60h] xor ebx,ebx mov edx,eax mov [esp+20h],ebx mov [esp+24h],eax mov [esp+2Ch],ebx mov [esp+28h],ecx mov [esp+30h],ebx mov [esp+34h],edx mov [esp+38h],ebx mov edi,ecx jmp L0002161D L000215D5: mov eax,[esp+6Ch] mov edx,[esp+00000080h] mov edi,[esp+00000084h] mov ebx,[esp+70h] mov ecx,[esp+78h] mov [esp+20h],eax mov eax,[esp+74h] mov [esp+30h],edx mov edx,[esp+00000088h] mov [esp+38h],edi mov edi,[esp+0000008Ch] mov [esp+24h],eax mov [esp+2Ch],ebx mov [esp+28h],ecx mov [esp+34h],edx L0002161D: sub eax,[esp+20h] sub ecx,ebx mov ebx,[esp+38h] mov [esp+18h],eax sub edx,[esp+30h] mov eax,[esp+5Ch] mov [esp+48h],edx mov edx,[esi+000000C8h] mov [esp+10h],eax mov [esp+3Ch],edi mov [esp+1Ch],ecx mov ecx,[esp+00000090h] push edx lea eax,[esp+14h] sub edi,ebx push eax mov [esp+54h],edi mov [esp+1Ch],ecx call SUB_L00021B80 test al,al jz L00021B62 mov edx,[esp+00000098h] mov ebx,[esp+000000A4h] xor eax,eax mov ecx,00000010h lea edi,[esp+10h] rep stosd mov ecx,[esp+54h] mov eax,[esp+0000009Ch] mov edi,[esp+000000A0h] mov [esp+24h],eax mov [esp+44h],ecx mov ecx,[esp+00000094h] sub eax,ecx mov [esp+18h],eax mov [esp+40h],ebp mov ebp,[esp+000000ACh] mov [esp+5Ch],eax mov [esp+2Ch],edx mov [esp+34h],ebp mov ebp,[esp+000000A8h] mov eax,edi sub eax,edx mov edx,[esp+000000ACh] mov [esp+38h],ebp mov ebp,[esp+000000B0h] sub edx,ebx mov [esp+48h],edx mov edx,[esp+000000A8h] mov [esp+1Ch],eax mov [esp+3Ch],ebp mov [esp+58h],eax mov eax,[esp+68h] sub ebp,edx mov [esp+20h],ecx mov [esp+4Ch],ebp mov [esp+28h],edi mov [esp+30h],ebx mov ecx,[eax+04h] mov [esp+10h],ecx mov edx,[eax+0Ch] mov ecx,[esi+00000A84h] xor eax,eax mov ax,[esi+00000B56h] xor ebp,ebp mov [esp+14h],edx mov edx,[esi+000000C8h] push eax push ebp push ecx push edx lea eax,[esp+20h] push eax call SUB_L00022360 test al,al jz L00021B62 mov edx,[esp+54h] xor eax,eax mov ecx,00000010h lea edi,[esp+10h] rep stosd mov al,[esi+00000B54h] test al,al mov ecx,[esp+50h] mov [esp+40h],ecx mov [esp+44h],edx jnz L000217A2 mov ecx,[esp+7Ch] mov edi,[esp+60h] shr ecx,1 shr edi,1 mov ebx,ecx mov [esp+20h],ebp mov [esp+24h],ecx mov [esp+2Ch],ebp mov [esp+28h],edi mov [esp+30h],ebp mov [esp+34h],ebx mov [esp+38h],ebp mov eax,edi jmp L0002181A L000217A2: mov eax,[esp+6Ch] cdq sub eax,edx mov ebp,eax mov eax,[esp+74h] cdq sub eax,edx mov ecx,eax mov eax,[esp+70h] cdq sub eax,edx sar eax,1 mov [esp+2Ch],eax mov eax,[esp+78h] cdq sub eax,edx mov edi,eax mov eax,[esp+00000080h] cdq sub eax,edx sar eax,1 mov [esp+30h],eax mov eax,[esp+00000088h] cdq sub eax,edx mov ebx,eax mov eax,[esp+00000084h] cdq sub eax,edx sar eax,1 mov [esp+38h],eax mov eax,[esp+0000008Ch] cdq sar ebp,1 sar ecx,1 sar edi,1 sar ebx,1 sub eax,edx mov [esp+20h],ebp mov [esp+24h],ecx mov [esp+28h],edi mov [esp+34h],ebx sar eax,1 L0002181A: mov edx,[esi+000000C8h] sub ecx,ebp sub ebx,[esp+30h] mov [esp+3Ch],eax mov [esp+48h],ebx sub eax,[esp+38h] mov [esp+4Ch],eax mov eax,[esp+64h] mov [esp+18h],ecx sub edi,[esp+2Ch] mov ecx,[esp+00000090h] mov [esp+10h],eax push edx lea eax,[esp+14h] push eax mov [esp+24h],edi mov [esp+1Ch],ecx call SUB_L00021B80 test al,al jz L00021B62 mov edx,[esp+00000094h] xor eax,eax mov ecx,00000010h lea edi,[esp+10h] rep stosd mov eax,[esp+0000009Ch] mov [esp+24h],eax mov eax,[esp+000000A4h] mov ecx,[esp+50h] mov [esp+20h],edx mov edx,[esp+000000A0h] mov [esp+28h],edx cdq sub eax,edx sar eax,1 mov edi,eax mov [esp+64h],eax mov eax,[esp+000000ACh] cdq sub eax,edx sar eax,1 mov [esp+50h],eax mov [esp+40h],ecx mov ecx,[esp+00000098h] mov ebp,[esp+54h] mov [esp+2Ch],ecx mov ecx,eax mov eax,[esp+000000A8h] cdq sub eax,edx sar eax,1 mov ebx,eax mov [esp+000000C0h],eax mov eax,[esp+000000B0h] cdq sub eax,edx mov edx,[esp+5Ch] sar eax,1 mov [esp+3Ch],eax mov [esp+000000BCh],eax sub eax,ebx mov [esp+4Ch],eax mov eax,[esp+68h] mov [esp+34h],ecx mov [esp+18h],edx mov edx,[esp+58h] sub ecx,edi mov [esp+1Ch],edx mov [esp+48h],ecx mov [esp+44h],ebp mov [esp+30h],edi mov [esp+38h],ebx mov ecx,[eax+04h] mov [esp+10h],ecx mov edx,[eax+0Ch] mov ecx,[esi+00000A84h] xor eax,eax mov ax,[esi+00000B56h] mov [esp+14h],edx mov edx,[esi+000000C8h] push eax push 00000001h push ecx push edx lea eax,[esp+20h] push eax call SUB_L00022360 test al,al jz L00021B62 xor eax,eax mov ecx,00000010h lea edi,[esp+10h] rep stosd mov al,[esi+00000B54h] test al,al mov ecx,[esp+000000B4h] mov [esp+40h],ecx mov [esp+44h],ebp jnz L000219BD mov ecx,[esp+7Ch] mov edi,[esp+60h] xor ebp,ebp shr ecx,1 shr edi,1 mov ebx,ecx mov [esp+20h],ebp mov [esp+24h],ecx mov [esp+2Ch],ebp mov [esp+28h],edi mov [esp+30h],ebp mov [esp+34h],ebx mov [esp+38h],ebp mov eax,edi jmp L00021A35 L000219BD: mov eax,[esp+6Ch] cdq sub eax,edx mov ebp,eax mov eax,[esp+74h] cdq sub eax,edx mov ecx,eax mov eax,[esp+70h] cdq sub eax,edx sar eax,1 mov [esp+2Ch],eax mov eax,[esp+78h] cdq sub eax,edx mov edi,eax mov eax,[esp+00000080h] cdq sub eax,edx sar eax,1 mov [esp+30h],eax mov eax,[esp+00000088h] cdq sub eax,edx mov ebx,eax mov eax,[esp+00000084h] cdq sub eax,edx sar eax,1 mov [esp+38h],eax mov eax,[esp+0000008Ch] cdq sar ebp,1 sar ecx,1 sar edi,1 sar ebx,1 sub eax,edx mov [esp+20h],ebp mov [esp+24h],ecx mov [esp+28h],edi mov [esp+34h],ebx sar eax,1 L00021A35: mov edx,[esp+2Ch] sub ecx,ebp mov ebp,[esp+38h] mov [esp+18h],ecx mov ecx,[esp+30h] sub edi,edx mov edx,[esp+000000B8h] mov [esp+3Ch],eax sub ebx,ecx mov ecx,[esi+000000C8h] sub eax,ebp mov [esp+10h],edx mov [esp+4Ch],eax mov eax,[esp+00000090h] push ecx lea edx,[esp+14h] push edx mov [esp+24h],edi mov [esp+50h],ebx mov [esp+1Ch],eax call SUB_L00021B80 test al,al jz L00021B62 mov edx,[esp+00000094h] mov ebx,[esp+5Ch] xor eax,eax mov ecx,00000010h lea edi,[esp+10h] rep stosd mov eax,[esp+000000B4h] mov ecx,[esp+54h] mov edi,[esp+000000C0h] mov [esp+40h],eax mov eax,[esp+0000009Ch] mov [esp+24h],eax mov eax,[esp+50h] mov [esp+44h],ecx mov ecx,[esp+00000098h] mov [esp+20h],edx mov edx,[esp+000000A0h] mov [esp+34h],eax mov [esp+2Ch],ecx mov ecx,[esp+000000BCh] mov [esp+28h],edx mov edx,[esp+64h] sub eax,edx mov [esp+48h],eax mov eax,[esp+68h] mov [esp+3Ch],ecx mov [esp+18h],ebx mov ebx,[esp+58h] sub ecx,edi mov [esp+30h],edx mov [esp+4Ch],ecx mov [esp+38h],edi mov [esp+1Ch],ebx mov ecx,[eax+04h] mov [esp+10h],ecx mov edx,[eax+0Ch] mov ecx,[esi+00000A84h] xor eax,eax mov ax,[esi+00000B56h] mov [esp+14h],edx mov edx,[esi+000000C8h] push eax push 00000002h push ecx push edx lea eax,[esp+20h] push eax call SUB_L00022360 pop edi pop esi test al,al pop ebp setnz al pop ebx add esp,000000B4h retn 0008h ;------------------------------------------------------------------------------ L00021B62: pop edi pop esi pop ebp xor al,al pop ebx add esp,000000B4h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00021B80: sub esp,00000064h mov eax,[esp+68h] mov ecx,[eax+10h] mov edx,[eax+14h] push ebx mov ebx,[eax+20h] push ebp mov [esp+1Ch],ebx mov ebx,[eax+24h] mov [esp+24h],ecx mov ecx,[eax+1Ch] mov [esp+70h],edx mov edx,[eax+18h] push esi mov esi,[eax] mov [esp+10h],ebx mov ebx,[eax+28h] push edi mov edi,[eax+04h] mov [esp+3Ch],ecx mov ecx,[eax+30h] mov [esp+10h],edx mov edx,[eax+34h] mov eax,[eax+2Ch] mov [esp+1Ch],eax mov eax,[esp+7Ch] xor ebp,ebp cmp edx,00000800h mov [esp+34h],ebx mov ebx,[eax+000000A4h] mov eax,02000001h mov [ebx+000022A4h],eax mov [ebx+000022A8h],ebp mov [ebx+000022ACh],ebp mov [ebx+000022B0h],ebp mov [ebx+000022B4h],ebp mov [ebx+000022B8h],eax mov dword ptr [ebx+000022BCh],02820100h mov [ebx+000022C0h],eax mov dword ptr [ebx+000022C4h],0A800000h mov [ebx+000022C8h],ecx ja L00021C47 jz L00021C42 cmp edx,00000200h jz L00021C5E cmp edx,00000400h jnz L00021C4F or ecx,00000001h jmp L00021C5E L00021C42: or ecx,00000002h jmp L00021C5E L00021C47: cmp edx,00001000h jz L00021C5B L00021C4F: pop edi pop esi pop ebp xor al,al pop ebx add esp,00000064h retn 0008h ;------------------------------------------------------------------------------ L00021C5B: or ecx,00000003h L00021C5E: or dword ptr [ebx+000022D0h],00880000h mov [ebx+000022C8h],ecx mov dword ptr [ebx+000022CCh],7D850000h mov dword ptr [ebx+000022D4h],7D000002h mov dword ptr [ebx+000022D8h],01000400h xor eax,eax L00021C8E: lea ecx,[eax+03h] mov edx,00000001h shl edx,cl cmp edi,edx jz L00021CA2 inc eax cmp eax,00000010h jc L00021C8E L00021CA2: cmp eax,00000010h jnz L00021CB3 pop edi pop esi pop ebp xor al,al pop ebx add esp,00000064h retn 0008h ;------------------------------------------------------------------------------ L00021CB3: mov ecx,[esp+78h] mov edx,[esp+7Ch] or eax,01000400h mov [ebx+000022D8h],eax mov eax,[esp+10h] shl eax,10h dec eax and eax,03FF0000h dec ecx and ecx,000003FFh push 0000002Ch or eax,ecx push edx mov [ebx+000022DCh],eax mov [ebx+000022E0h],esi mov dword ptr [ebx+000022E4h],65000106h mov dword ptr [ebx+000022E8h],630AAAAAh mov dword ptr [ebx+000022ECh],6403AA0Eh mov dword ptr [ebx+000022F0h],680008E3h mov dword ptr [ebx+000022F4h],02000001h mov dword ptr [ebx+000022F8h],02810001h mov dword ptr [ebx+000022FCh],7D800003h mov [ebx+00002300h],ebp mov [ebx+00002304h],ebp mov [ebx+00002308h],ebp mov [ebx+0000230Ch],ebp mov [ebx+00002310h],ebp call HS_MM_GetRingSpace mov ecx,0000001Ch lea esi,[ebx+000022A4h] mov edi,eax rep movsd mov ecx,[esp+14h] mov [esp+14h],ecx mov ecx,[esp+1Ch] mov [esp+1Ch],ecx mov ecx,[esp+78h] mov [esp+18h],ebp mov [esp+20h],ebp mov [esp+28h],ebp fild qword ptr [esp+14h] mov [esp+30h],ebp mov [esp+38h],ebp mov [esp+40h],ebp fstp dword ptr [esp+44h] lea edx,[ebx+000022A4h] fild qword ptr [esp+1Ch] mov [esp+1Ch],ecx mov ecx,[esp+10h] mov [esp+20h],ebp fst dword ptr [esp+48h] mov dword ptr [edx],7F1C000Bh fild qword ptr [esp+1Ch] mov [esp+1Ch],ecx mov ecx,[esp+24h] mov [esp+24h],ecx mov ecx,[esp+2Ch] fstp dword ptr [esp+4Ch] mov [esp+20h],ebp mov [esp+2Ch],ecx fild qword ptr [esp+1Ch] fstp dword ptr [esp+50h] mov ecx,[esp+50h] fild qword ptr [esp+24h] mov [esp+60h],ecx fstp dword ptr [esp+54h] mov ecx,[esp+54h] mov [esp+64h],ecx mov ecx,[esp+34h] fstp dword ptr [esp+58h] fild qword ptr [esp+2Ch] mov [esp+34h],ecx mov ecx,[esp+3Ch] mov [esp+3Ch],ecx fst dword ptr [esp+5Ch] mov ecx,0000000Ch fild qword ptr [esp+34h] fstp dword ptr [esp+68h] fstp dword ptr [esp+6Ch] fild qword ptr [esp+3Ch] fstp dword ptr [esp+70h] lea edi,[ebx+000022A8h] lea esi,[esp+44h] rep movsd mov ecx,02000001h mov [ebx+000022D8h],ecx mov [ebx+000022E0h],ecx mov dword ptr [ebx+000022DCh],02830000h mov ebx,[esp+7Ch] push 0000002Ch lea edi,[eax+70h] mov esi,edx mov [ebx+74h],ebp mov ecx,00000010h push ebx rep movsd call HS_FireRing pop edi pop esi pop ebp mov al,01h pop ebx add esp,00000064h retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00021E80: sub esp,00000578h push ebx push ebp xor eax,eax push esi push edi mov ecx,00000140h lea edi,[esp+00000088h] rep stosd mov eax,[esp+0000058Ch] mov ecx,[eax+10h] mov edx,[eax+14h] mov ebp,[eax+30h] mov [esp+30h],ecx mov ecx,[eax+1Ch] mov [esp+24h],edx mov edx,[eax+18h] mov [esp+40h],ecx mov ecx,[eax] mov [esp+20h],edx mov edx,[eax+04h] mov [esp+1Ch],ecx mov ecx,[eax+34h] mov [esp+54h],edx mov edx,[eax+20h] mov [esp+50h],ecx mov ecx,[eax+24h] mov [esp+48h],edx mov edx,[eax+28h] mov eax,[eax+2Ch] mov [esp+14h],eax mov eax,02000001h xor ebx,ebx mov [esp+28h],ecx mov ecx,[esp+00000598h] sub ecx,ebx mov [esp+00000088h],eax mov [esp+0000009Ch],eax mov [esp+000000A4h],eax mov eax,00000001h mov [esp+38h],edx mov [esp+0000008Ch],ebx mov [esp+00000090h],ebx mov [esp+00000094h],ebx mov [esp+00000098h],ebx mov dword ptr [esp+000000A0h],02820100h mov dword ptr [esp+000000A8h],7D8200FFh mov [L000B5C80],eax jz L00021FFD dec ecx jz L00021FB6 dec ecx jz L00021F6C pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000578h retn 0010h ;------------------------------------------------------------------------------ L00021F6C: mov ecx,[esp+00000594h] lea edi,[ecx+02h] mov dword ptr [esp+10h],00000010h L00021F7E: xor esi,esi L00021F80: xor ecx,ecx mov cl,[edi] mov edx,esi shl edx,04h or edx,esi shl edx,08h or edx,ecx inc eax mov [esp+eax*4+000000A4h],edx inc esi cmp esi,00000010h mov [L000B5C80],eax jc L00021F80 mov ecx,[esp+10h] add edi,00000003h dec ecx mov [esp+10h],ecx jnz L00021F7E jmp L0002203F L00021FB6: mov edx,[esp+00000594h] lea edi,[edx+01h] mov dword ptr [esp+10h],00000010h L00021FC8: xor esi,esi L00021FCA: xor edx,edx mov dl,[edi] mov ecx,esi shl ecx,04h or ecx,esi shl ecx,08h or ecx,edx inc eax mov [esp+eax*4+000000A4h],ecx inc esi cmp esi,00000010h mov [L000B5C80],eax jc L00021FCA mov ecx,[esp+10h] add edi,00000003h dec ecx mov [esp+10h],ecx jnz L00021FC8 jmp L0002203F L00021FFD: mov edi,[esp+00000594h] mov dword ptr [esp+10h],00000010h L0002200C: xor esi,esi L0002200E: xor edx,edx mov dl,[edi] mov ecx,esi shl ecx,04h or ecx,esi shl ecx,08h or ecx,edx inc eax mov [esp+eax*4+000000A4h],ecx inc esi cmp esi,00000010h mov [L000B5C80],eax jc L0002200E mov ecx,[esp+10h] add edi,00000003h dec ecx mov [esp+10h],ecx jnz L0002200C L0002203F: mov ecx,[esp+50h] mov esi,02000001h mov [esp+eax*4+000000A8h],esi inc eax cmp ecx,00000800h mov dword ptr [esp+eax*4+000000A8h],0A800000h mov [L000B5C80],eax mov [esp+eax*4+000000ACh],ebp ja L0002208B jz L00022086 cmp ecx,00000200h jz L000220A5 cmp ecx,00000400h jnz L00022093 or ebp,00000001h jmp L000220A5 L00022086: or ebp,00000002h jmp L000220A5 L0002208B: cmp ecx,00001000h jz L000220A2 L00022093: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000578h retn 0010h ;------------------------------------------------------------------------------ L000220A2: or ebp,00000003h L000220A5: mov [esp+eax*4+000000ACh],ebp mov dword ptr [esp+eax*4+000000B0h],7D850000h or dword ptr [esp+eax*4+000000B4h],00880000h mov dword ptr [esp+eax*4+000000B8h],7D000002h mov dword ptr [esp+eax*4+000000BCh],00600600h or dword ptr [esp+eax*4+000000B4h],00880000h xor edx,edx L000220E5: lea ecx,[edx+03h] mov edi,00000001h shl edi,cl cmp [esp+54h],edi jz L000220FB inc edx cmp edx,00000010h jc L000220E5 L000220FB: cmp edx,00000010h jnz L0002210F pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000578h retn 0010h ;------------------------------------------------------------------------------ L0002210F: mov ecx,[esp+eax*4+000000BCh] or ecx,edx mov edx,[esp+24h] mov [esp+eax*4+000000BCh],ecx mov ecx,[esp+20h] shl ecx,10h dec ecx and ecx,03FF0000h dec edx and edx,000003FFh or ecx,edx mov [esp+eax*4+000000C0h],ecx mov ecx,[esp+1Ch] mov [esp+eax*4+000000C4h],ecx mov dword ptr [esp+eax*4+000000C8h],65000106h mov dword ptr [esp+eax*4+000000CCh],6300000Ch mov [esp+eax*4+000000D0h],ebx inc eax mov dword ptr [esp+eax*4+000000D0h],68000940h mov dword ptr [esp+eax*4+000000D4h],7C100224h mov [esp+eax*4+000000D8h],esi mov dword ptr [esp+eax*4+000000DCh],02810001h mov dword ptr [esp+eax*4+000000E0h],7D800003h mov [esp+eax*4+000000E4h],ebx mov [esp+eax*4+000000E8h],ebx mov edx,eax and edx,80000001h mov [esp+eax*4+000000ECh],ebx mov [L000B5C80],eax mov [esp+eax*4+000000F0h],ebx jns L000221CD dec edx or edx,FFFFFFFEh inc edx L000221CD: jnz L000221DD mov [esp+eax*4+000000F4h],ebx mov esi,0000001Ch jmp L000221E2 L000221DD: mov esi,0000001Bh L000221E2: add esi,eax mov eax,[esp+00000590h] lea ebp,[esi+10h] push ebp push eax call HS_MM_GetRingSpace lea edx,[00000000h+esi*4] mov [esp+1Ch],eax mov edi,eax mov ecx,edx mov eax,ecx shr ecx,02h lea esi,[esp+00000088h] rep movsd mov ecx,eax and ecx,00000003h rep movsb mov ecx,[esp+28h] mov [esp+28h],ecx mov ecx,[esp+14h] mov [esp+14h],ecx mov ecx,[esp+24h] mov [esp+2Ch],ebx mov [esp+18h],ebx mov [esp+4Ch],ebx fild qword ptr [esp+28h] mov [esp+34h],ebx mov [esp+3Ch],ebx mov [esp+44h],ebx fstp dword ptr [esp+58h] mov dword ptr [esp+edx+00000088h],7F1C000Bh fild qword ptr [esp+14h] mov [esp+14h],ecx mov ecx,[esp+20h] mov [esp+18h],ebx fst dword ptr [esp+5Ch] lea eax,[esp+edx+00000088h] lea edi,[esp+edx+0000008Ch] fild qword ptr [esp+14h] mov [esp+14h],ecx mov ecx,[esp+48h] mov [esp+48h],ecx mov ecx,[esp+30h] fstp dword ptr [esp+60h] mov [esp+30h],ecx mov [esp+18h],ebx lea esi,[esp+58h] push ebp fild qword ptr [esp+18h] fstp dword ptr [esp+68h] mov ecx,[esp+68h] fild qword ptr [esp+4Ch] mov [esp+78h],ecx fstp dword ptr [esp+6Ch] mov ecx,[esp+6Ch] mov [esp+7Ch],ecx mov ecx,[esp+3Ch] fstp dword ptr [esp+70h] fild qword ptr [esp+34h] mov [esp+3Ch],ecx mov ecx,[esp+44h] mov [esp+44h],ecx fst dword ptr [esp+74h] mov ecx,0000000Ch fild qword ptr [esp+3Ch] fstp dword ptr [esp+00000080h] fstp dword ptr [esp+00000084h] fild qword ptr [esp+44h] fstp dword ptr [esp+00000088h] rep movsd mov ecx,02000001h mov [esp+edx+000000C0h],ecx mov dword ptr [esp+edx+000000C4h],02830000h mov [esp+edx+000000C8h],ecx mov ecx,[esp+00000594h] mov [ecx+74h],ebx mov ecx,[esp+20h] lea edi,[edx+ecx] mov ecx,00000010h mov esi,eax rep movsd mov edx,[esp+00000594h] push edx call HS_FireRing pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000578h retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00022360: sub esp,00000578h push ebx push ebp xor eax,eax push esi push edi mov ecx,00000140h lea edi,[esp+00000088h] rep stosd mov eax,[esp+0000058Ch] mov ecx,[eax+10h] mov edx,[eax+14h] mov ebp,[eax+30h] mov [esp+30h],ecx mov ecx,[eax+1Ch] mov [esp+24h],edx mov edx,[eax+18h] mov [esp+40h],ecx mov ecx,[eax] mov [esp+20h],edx mov edx,[eax+04h] mov [esp+1Ch],ecx mov ecx,[eax+34h] mov [esp+54h],edx mov edx,[eax+20h] mov [esp+50h],ecx mov ecx,[eax+24h] mov [esp+48h],edx mov edx,[eax+28h] mov eax,[eax+2Ch] mov [esp+28h],ecx mov ecx,[esp+0000059Ch] mov [esp+10h],eax mov eax,02000001h mov [esp+38h],edx xor edx,edx mov [esp+00000088h],eax mov [esp+0000009Ch],eax mov [esp+000000A4h],eax and ecx,0000FFFFh sub ecx,edx mov eax,00000001h mov [esp+18h],ebp mov [esp+0000008Ch],edx mov [esp+00000090h],edx mov [esp+00000094h],edx mov [esp+00000098h],edx mov dword ptr [esp+000000A0h],02820100h mov dword ptr [esp+000000A8h],7D8200FFh mov [L000B5C84],eax jz L0002253F dec ecx jz L00022453 pop edi pop esi pop ebp xor al,al pop ebx add esp,00000578h retn 0014h ;------------------------------------------------------------------------------ L00022453: mov ecx,[esp+00000598h] sub ecx,edx jz L000224FC dec ecx jz L000224B9 dec ecx jz L00022477 pop edi pop esi pop ebp xor al,al pop ebx add esp,00000578h retn 0014h ;------------------------------------------------------------------------------ L00022477: mov edx,[esp+00000594h] xor ebp,ebp L00022480: mov ecx,ebp shl ecx,04h or ecx,ebp shl ecx,08h mov esi,edx mov edi,00000010h L00022491: xor ebx,ebx mov bl,[esi] add esi,00000004h or ebx,ecx mov [esp+eax*4+000000A8h],ebx inc eax dec edi mov [L000B5C84],eax jnz L00022491 inc ebp cmp ebp,00000010h jc L00022480 mov ebp,[esp+18h] jmp L00022612 L000224B9: mov edx,[esp+00000594h] xor ebp,ebp L000224C2: mov ecx,ebp shl ecx,04h or ecx,ebp shl ecx,08h lea esi,[edx+01h] mov edi,00000010h L000224D4: xor ebx,ebx mov bl,[esi] add esi,00000004h or ebx,ecx mov [esp+eax*4+000000A8h],ebx inc eax dec edi mov [L000B5C84],eax jnz L000224D4 inc ebp cmp ebp,00000010h jc L000224C2 mov ebp,[esp+18h] jmp L00022612 L000224FC: mov edx,[esp+00000594h] xor ebp,ebp L00022505: mov ecx,ebp shl ecx,04h or ecx,ebp shl ecx,08h lea esi,[edx+02h] mov edi,00000010h L00022517: xor ebx,ebx mov bl,[esi] add esi,00000004h or ebx,ecx mov [esp+eax*4+000000A8h],ebx inc eax dec edi mov [L000B5C84],eax jnz L00022517 inc ebp cmp ebp,00000010h jc L00022505 mov ebp,[esp+18h] jmp L00022612 L0002253F: mov ecx,[esp+00000598h] sub ecx,edx jz L000225D8 dec ecx jz L0002259C dec ecx jz L00022563 pop edi pop esi pop ebp xor al,al pop ebx add esp,00000578h retn 0014h ;------------------------------------------------------------------------------ L00022563: mov esi,[esp+00000594h] mov edi,00000010h L0002256F: xor ecx,ecx L00022571: xor ebx,ebx mov bl,[esi] mov edx,ecx shl edx,04h or edx,ecx shl edx,08h or edx,ebx inc eax mov [esp+eax*4+000000A4h],edx inc ecx cmp ecx,00000010h mov [L000B5C84],eax jc L00022571 add esi,00000004h dec edi jnz L0002256F jmp L00022612 L0002259C: mov ecx,[esp+00000594h] lea esi,[ecx+01h] mov edi,00000010h L000225AB: xor ecx,ecx L000225AD: xor ebx,ebx mov bl,[esi] mov edx,ecx shl edx,04h or edx,ecx shl edx,08h or edx,ebx inc eax mov [esp+eax*4+000000A4h],edx inc ecx cmp ecx,00000010h mov [L000B5C84],eax jc L000225AD add esi,00000004h dec edi jnz L000225AB jmp L00022612 L000225D8: mov ecx,[esp+00000594h] lea esi,[ecx+02h] mov edi,00000010h L000225E7: xor ecx,ecx L000225E9: xor ebx,ebx mov bl,[esi] mov edx,ecx shl edx,04h or edx,ecx shl edx,08h or edx,ebx inc eax mov [esp+eax*4+000000A4h],edx inc ecx cmp ecx,00000010h mov [L000B5C84],eax jc L000225E9 add esi,00000004h dec edi jnz L000225E7 L00022612: mov ecx,[esp+50h] mov edi,02000001h mov [esp+eax*4+000000A8h],edi inc eax cmp ecx,00000800h mov dword ptr [esp+eax*4+000000A8h],0A800000h mov [L000B5C84],eax mov [esp+eax*4+000000ACh],ebp ja L0002265E jz L00022659 cmp ecx,00000200h jz L00022678 cmp ecx,00000400h jnz L00022666 or ebp,00000001h jmp L00022678 L00022659: or ebp,00000002h jmp L00022678 L0002265E: cmp ecx,00001000h jz L00022675 L00022666: pop edi pop esi pop ebp xor al,al pop ebx add esp,00000578h retn 0014h ;------------------------------------------------------------------------------ L00022675: or ebp,00000003h L00022678: mov [esp+eax*4+000000ACh],ebp mov dword ptr [esp+eax*4+000000B0h],7D850000h or dword ptr [esp+eax*4+000000B4h],00880000h mov dword ptr [esp+eax*4+000000B8h],7D000002h mov dword ptr [esp+eax*4+000000BCh],00600600h mov ecx,[esp+eax*4+000000B4h] or ecx,00880000h xor esi,esi mov [esp+eax*4+000000B4h],ecx xor edx,edx L000226C3: lea ecx,[edx+03h] mov ebx,00000001h shl ebx,cl cmp [esp+54h],ebx jz L000226D9 inc edx cmp edx,00000010h jc L000226C3 L000226D9: cmp edx,00000010h jnz L000226ED pop edi pop esi pop ebp xor al,al pop ebx add esp,00000578h retn 0014h ;------------------------------------------------------------------------------ L000226ED: mov ecx,[esp+eax*4+000000BCh] or ecx,edx mov edx,[esp+24h] mov [esp+eax*4+000000BCh],ecx mov ecx,[esp+20h] shl ecx,10h dec ecx and ecx,03FF0000h dec edx and edx,000003FFh or ecx,edx mov [esp+eax*4+000000C0h],ecx mov ecx,[esp+1Ch] mov [esp+eax*4+000000C4h],ecx mov dword ptr [esp+eax*4+000000C8h],65000106h mov dword ptr [esp+eax*4+000000CCh],6300000Ch mov [esp+eax*4+000000D0h],esi inc eax mov dword ptr [esp+eax*4+000000D0h],68000940h mov dword ptr [esp+eax*4+000000D4h],7C100224h mov [esp+eax*4+000000D8h],edi mov dword ptr [esp+eax*4+000000DCh],02810001h mov dword ptr [esp+eax*4+000000E0h],7D800003h mov [esp+eax*4+000000E4h],esi mov [esp+eax*4+000000E8h],esi mov edx,eax and edx,80000001h mov [esp+eax*4+000000ECh],esi mov [L000B5C84],eax mov [esp+eax*4+000000F0h],esi jns L000227AB dec edx or edx,FFFFFFFEh inc edx L000227AB: jnz L000227BB mov [esp+eax*4+000000F4h],esi mov esi,0000001Ch jmp L000227C0 L000227BB: mov esi,0000001Bh L000227C0: mov ebp,[esp+00000590h] add esi,eax lea ebx,[esi+10h] push ebx push ebp call HS_MM_GetRingSpace lea edx,[00000000h+esi*4] mov [esp+1Ch],eax mov edi,eax mov ecx,edx mov eax,ecx shr ecx,02h lea esi,[esp+00000088h] rep movsd mov ecx,eax and ecx,00000003h rep movsb mov ecx,[esp+28h] mov esi,[esp+10h] mov [esp+28h],ecx xor ecx,ecx mov [esp+10h],esi mov esi,[esp+24h] mov [esp+2Ch],ecx mov [esp+14h],ecx mov [esp+4Ch],ecx fild qword ptr [esp+28h] mov [esp+34h],ecx mov [esp+3Ch],ecx mov [esp+44h],ecx fstp dword ptr [esp+58h] mov dword ptr [esp+edx+00000088h],7F1C000Bh fild qword ptr [esp+10h] mov [esp+10h],esi mov esi,[esp+20h] mov [esp+14h],ecx fst dword ptr [esp+5Ch] lea eax,[esp+edx+00000088h] lea edi,[esp+edx+0000008Ch] fild qword ptr [esp+10h] mov [esp+10h],esi mov esi,[esp+48h] mov [esp+14h],ecx fstp dword ptr [esp+60h] mov [esp+48h],esi mov esi,[esp+30h] fild qword ptr [esp+10h] mov [esp+30h],esi mov ecx,0000000Ch mov dword ptr [ebp+74h],00000000h fstp dword ptr [esp+64h] mov esi,[esp+64h] fild qword ptr [esp+48h] mov [esp+74h],esi push ebx fstp dword ptr [esp+6Ch] mov esi,[esp+6Ch] mov [esp+7Ch],esi mov esi,[esp+3Ch] fstp dword ptr [esp+70h] fild qword ptr [esp+34h] mov [esp+3Ch],esi mov esi,[esp+44h] mov [esp+44h],esi fst dword ptr [esp+74h] lea esi,[esp+5Ch] fild qword ptr [esp+3Ch] fstp dword ptr [esp+00000080h] fstp dword ptr [esp+00000084h] fild qword ptr [esp+44h] fstp dword ptr [esp+00000088h] rep movsd mov ecx,02000001h mov [esp+edx+000000C0h],ecx mov dword ptr [esp+edx+000000C4h],02830000h mov [esp+edx+000000C8h],ecx mov ecx,[esp+20h] lea edi,[edx+ecx] mov ecx,00000010h mov esi,eax rep movsd push ebp call HS_FireRing pop edi pop esi pop ebp mov al,01h pop ebx add esp,00000578h retn 0014h ;------------------------------------------------------------------------------ Align 8 SUB_L00022930: mov eax,[esp+10h] test eax,eax mov eax,[esp+0Ch] jnz L000229CA dec eax cmp eax,00000005h ja L00022A57 jmp [CASE_PROCTABLE_00022A5C+eax*4] CASE_00022A5C_PROC0003: mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] sar dx,1 mov [ecx],dx mov dx,[eax] mov [ecx+02h],dx mov dx,[eax+06h] sar dx,1 mov [ecx+04h],dx mov ax,[eax+04h] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ CASE_00022A5C_PROC0001: test byte ptr [esp+14h],01h jz CASE_00022A5C_PROC0000 mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] mov [ecx+04h],dx mov ax,[eax] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ CASE_00022A5C_PROC0000: mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] mov [ecx],dx mov dx,[eax] mov [ecx+02h],dx mov dx,[eax+06h] mov [ecx+04h],dx mov ax,[eax+04h] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ L000229CA: sub eax,00000005h jz L00022A2B dec eax jz L000229EA mov eax,[esp+04h] mov dx,[eax+0Ah] mov ecx,[esp+08h] sar dx,1 mov [ecx],dx mov dx,[eax+08h] jmp L00022A40 L000229EA: mov al,[esp+14h] mov ecx,[esp+08h] test al,02h mov eax,[esp+04h] mov dx,[eax+0Ah] jz L00022A0D mov [ecx+04h],dx mov ax,[eax+08h] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ L00022A0D: mov [ecx],dx mov dx,[eax+08h] mov [ecx+02h],dx mov dx,[eax+0Eh] mov [ecx+04h],dx mov ax,[eax+0Ch] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ L00022A2B: mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] sar dx,1 mov [ecx],dx mov dx,[eax] L00022A40: mov [ecx+02h],dx mov dx,[eax+0Eh] sar dx,1 mov [ecx+04h],dx mov ax,[eax+0Ch] mov [ecx+06h],ax L00022A57: retn 0014h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00022A5C: dd CASE_00022A5C_PROC0000 dd CASE_00022A5C_PROC0001 dd CASE_00022A5C_PROC0000 dd CASE_00022A5C_PROC0003 dd CASE_00022A5C_PROC0003 dd CASE_00022A5C_PROC0001 Align 16 SUB_L00022A80: mov eax,[esp+10h] test eax,eax mov eax,[esp+0Ch] jnz L00022B1A dec eax cmp eax,00000005h ja L00022BA7 jmp [CASE_PROCTABLE_00022BAC+eax*4] CASE_00022BAC_PROC0003: mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] sar dx,1 mov [ecx],dx mov dx,[eax] mov [ecx+02h],dx mov dx,[eax+06h] sar dx,1 mov [ecx+04h],dx mov ax,[eax+04h] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ CASE_00022BAC_PROC0001: test byte ptr [esp+14h],01h jz CASE_00022BAC_PROC0000 mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] mov [ecx+04h],dx mov ax,[eax] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ CASE_00022BAC_PROC0000: mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] mov [ecx],dx mov dx,[eax] mov [ecx+02h],dx mov dx,[eax+06h] mov [ecx+04h],dx mov ax,[eax+04h] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ L00022B1A: sub eax,00000005h jz L00022B7B dec eax jz L00022B3A mov eax,[esp+04h] mov dx,[eax+0Ah] mov ecx,[esp+08h] sar dx,1 mov [ecx],dx mov dx,[eax+08h] jmp L00022B90 L00022B3A: mov al,[esp+14h] mov ecx,[esp+08h] test al,02h mov eax,[esp+04h] mov dx,[eax+0Ah] jz L00022B5D mov [ecx+04h],dx mov ax,[eax+08h] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ L00022B5D: mov [ecx],dx mov dx,[eax+08h] mov [ecx+02h],dx mov dx,[eax+0Eh] mov [ecx+04h],dx mov ax,[eax+0Ch] mov [ecx+06h],ax retn 0014h ;------------------------------------------------------------------------------ L00022B7B: mov eax,[esp+04h] mov dx,[eax+02h] mov ecx,[esp+08h] sar dx,1 mov [ecx],dx mov dx,[eax] L00022B90: mov [ecx+02h],dx mov dx,[eax+0Eh] sar dx,1 mov [ecx+04h],dx mov ax,[eax+0Ch] mov [ecx+06h],ax L00022BA7: retn 0014h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00022BAC: dd CASE_00022BAC_PROC0000 dd CASE_00022BAC_PROC0001 dd CASE_00022BAC_PROC0000 dd CASE_00022BAC_PROC0003 dd CASE_00022BAC_PROC0003 dd CASE_00022BAC_PROC0001 Align 16 SUB_L00022BD0: push ebp mov ebp,esp sub esp,00000038h mov ecx,[ebp+14h] mov edx,[ebp+18h] push ebx mov ebx,[ebp+0Ch] xor eax,eax mov ax,[ebx+0Ah] push esi push edi mov [ebp-2Ch],eax and eax,0000FFFFh test al,01h jz L00022BFD mov dword ptr [ebp-14h],00000000h jmp L00022C43 L00022BFD: cmp edx,00000005h jz L00022C3C cmp edx,00000003h jz L00022C3C test byte ptr [ebp+30h],01h jz L00022C16 mov dword ptr [ebp-14h],00000002h jmp L00022C43 L00022C16: test al,08h jz L00022C2C and eax,000000FFh and eax,00000004h or eax,00000002h shr eax,1 mov [ebp-14h],eax jmp L00022C43 L00022C2C: test al,04h mov eax,00000000h setnz al inc eax mov [ebp-14h],eax jmp L00022C43 L00022C3C: mov dword ptr [ebp-14h],00000003h L00022C43: mov edx,[ebp+2Ch] mov eax,[ebp+28h] mov di,[ebx+0Eh] and eax,0000FFFFh and edx,0000FFFFh mov [ebp-34h],eax mov [ebp-30h],edx add edx,eax xor eax,eax mov ax,[ebx+08h] xor esi,esi cmp [ebx+04h],si mov [ebp-18h],edx jnz L00022D69 test ecx,ecx jz L00022CB4 cmp ecx,00000001h mov dword ptr [ebp-1Ch],00000001h mov [ebp-08h],eax mov edi,eax jnz L00022C9F and eax,00000002h lea edx,[00000000h+eax*4] mov [ebp+2Ch],edx mov [ebp-04h],edx jmp L00022DBD L00022C9F: and eax,00000001h lea edx,[00000000h+eax*8] mov [ebp+2Ch],edx mov [ebp-04h],edx jmp L00022DBD L00022CB4: cmp dword ptr [ebp+18h],00000006h jz L00022D1B cmp dword ptr [ebp+18h],00000004h mov ecx,00000003h mov [ebp-1Ch],ecx jge L00022CEA test di,di jnz L00022CD4 mov edi,eax mov eax,[ebp-08h] jmp L00022D31 L00022CD4: mov esi,eax and esi,0000003Ch mov edi,eax shl esi,02h shr edi,02h or edi,esi or edi,eax mov eax,[ebp-08h] jmp L00022D31 L00022CEA: test di,di jnz L00022CF6 mov [ebp-08h],eax mov edi,eax jmp L00022D31 L00022CF6: mov edi,eax mov ebx,eax shr edi,02h mov edx,eax and ebx,0000000Ch and edi,0000000Ch and edx,00000030h lea eax,[00000000h+ebx*4] or edi,edx or eax,ebx mov ebx,[ebp+0Ch] mov [ebp-08h],eax jmp L00022D31 L00022D1B: mov edi,eax and eax,0000000Ch and edi,00000030h mov ecx,00000002h shl eax,02h mov [ebp-1Ch],ecx mov [ebp-08h],eax L00022D31: mov edx,edi shr edx,02h and edx,0000000Fh shr eax,02h or edx,esi and eax,0000000Fh cmp ecx,00000003h mov [ebp+2Ch],edx mov [ebp-04h],eax jnz L00022DA8 mov esi,[ebp+3Ch] and esi,0000FFFFh shr esi,1 L00022D57: mov eax,[ebp+40h] and eax,0000FFFFh shr eax,1 mov [ebp-10h],esi mov [ebp-0Ch],eax jmp L00022D83 L00022D69: xor edx,edx mov [ebp-1Ch],edx mov [ebp-04h],edx mov [ebp+2Ch],edx mov [ebp-08h],edx xor edi,edi L00022D79: xor eax,eax xor esi,esi mov [ebp-0Ch],eax mov [ebp-10h],esi L00022D83: mov ecx,[ebp+1Ch] imul eax,esi mov esi,[ebp+20h] mov [ebp+28h],eax mov eax,esi and eax,0000FFFFh test ecx,ecx jnz L00022DE3 cmp eax,00000003h jnz L00022DD6 mov dword ptr [ebp+20h],00000000h jmp L00022E15 L00022DA8: cmp ecx,00000002h jnz L00022DB8 mov esi,[ebp+3Ch] and esi,0000FFFFh jmp L00022D57 L00022DB8: cmp ecx,00000001h jnz L00022D79 L00022DBD: mov esi,[ebp+3Ch] mov eax,[ebp+40h] and esi,0000FFFFh and eax,0000FFFFh mov [ebp-10h],esi mov [ebp-0Ch],eax jmp L00022D83 L00022DD6: xor ecx,ecx cmp eax,00000001h setnz cl add ecx,00000002h jmp L00022E12 L00022DE3: cmp dword ptr [ebp+18h],00000006h jz L00022DF9 mov dword ptr [ebp+20h],00000002h mov dword ptr [ebp-20h],00000003h jmp L00022E15 L00022DF9: mov ecx,00000002h cmp eax,ecx jnz L00022E0F mov eax,00000003h mov [ebp-20h],eax mov [ebp+20h],eax jmp L00022E15 L00022E0F: mov [ebp-20h],ecx L00022E12: mov [ebp+20h],ecx L00022E15: mov ecx,[ebp+18h] cmp ecx,00000006h mov ax,[ebx+06h] ja L00022ED8 jmp [CASE_PROCTABLE_000232AC+ecx*4] CASE_000232AC_PROC0000: xor ecx,ecx xor esi,esi jmp L00022EDE CASE_000232AC_PROC0004: xor ecx,ecx mov esi,eax and esi,00000004h test si,si setnz cl add ecx,00000002h mov [ebp-38h],ecx test byte ptr [ebp+30h],02h jz L00022E5E xor ecx,ecx test si,si setnz cl add ecx,00000002h mov [ebp-24h],ecx jmp CASE_000232AC_PROC0002 L00022E5E: mov esi,eax and esi,000000FFh and esi,00000008h or esi,00000010h shr esi,03h mov [ebp-24h],esi CASE_000232AC_PROC0002: xor ecx,ecx mov ebx,eax and ebx,00000001h test bx,bx setnz cl add ecx,00000002h mov esi,ecx test byte ptr [ebp+30h],01h jz L00022E97 xor ecx,ecx test bx,bx setnz cl add ecx,00000002h jmp L00022EDE L00022E97: and eax,000000FFh and eax,00000002h or eax,00000004h shr eax,1 mov ecx,eax jmp L00022EDE CASE_000232AC_PROC0005: mov esi,00000002h mov ecx,00000003h mov [ebp-38h],ecx mov [ebp-24h],esi jmp L00022EDE CASE_000232AC_PROC0003: cmp si,0001h jnz L00022ECC mov esi,00000002h mov ecx,00000003h jmp L00022EDE L00022ECC: mov esi,00000003h mov ecx,00000002h jmp L00022EDE L00022ED8: mov ecx,[ebp+18h] mov esi,[ebp+18h] L00022EDE: mov eax,edx shr eax,03h mov ebx,edx shr ebx,02h and ebx,00000001h and eax,00000001h add eax,ebx mov ebx,edx shr ebx,1 and ebx,00000001h and edx,00000001h add eax,ebx add eax,edx test byte ptr [ebp-2Ch],01h jz L00022F0D imul eax,[ebp+28h] shr eax,02h jmp L00022F18 L00022F0D: imul eax,[ebp+28h] shr eax,1 and eax,3FFFFFFFh L00022F18: mov [ebp-2Ch],eax mov ebx,[ebp+08h] add eax,00000006h mov edx,[ebp+14h] mov [ebp-28h],eax add eax,FFFFFFFEh or eax,7E000000h mov [ebx],eax lea eax,[00000004h+edx*4] or eax,[ebp-1Ch] shl eax,06h mov [ebp+08h],eax or eax,edi mov edi,[ebp-30h] shl eax,06h or eax,edi mov edi,[ebp-34h] shl eax,02h or eax,edi mov edi,[ebp-14h] shl eax,02h or eax,edi mov edi,[ebp+20h] shl eax,06h or eax,edi shl eax,03h mov edx,[ebp+3Ch] or eax,esi shl eax,03h or eax,ecx mov ecx,[ebp+44h] mov [ebx+04h],eax mov eax,[ebp+48h] add ebx,00000004h and eax,0000FFFFh shl eax,10h and ecx,0000FFFFh add ebx,00000004h mov [ebp+20h],ecx or ecx,eax mov [ebx],ecx mov [ebp+48h],eax mov [ebp+44h],ecx mov ecx,[ebp+40h] and ecx,0000FFFFh and edx,0000FFFFh add ebx,00000004h mov eax,ecx shl eax,10h or eax,edx mov [ebx],eax mov [ebp-1Ch],eax mov eax,[ebp+34h] add ebx,00000004h mov [ebp+3Ch],edx mov edx,[eax] mov [ebx],edx mov eax,[eax+04h] add ebx,00000004h mov [ebx],eax mov eax,[ebp+14h] add ebx,00000004h sub eax,00000000h jz L00022FF9 dec eax jz L00022FEC dec eax jnz L00023001 mov edx,[ebp+10h] lea eax,[edx+00000280h] mov [ebp+40h],eax jmp L00023004 L00022FEC: mov eax,[ebp+10h] add eax,00000200h mov [ebp+40h],eax jmp L00023004 L00022FF9: mov eax,[ebp+10h] mov [ebp+40h],eax jmp L00023004 L00023001: mov eax,[ebp+40h] L00023004: mov edx,[ebp+0Ch] test byte ptr [edx+0Ah],01h jnz L000230AE mov ecx,[ebp+1Ch] test ecx,ecx jnz L0002304A cmp word ptr [edx+0Eh],0000h jnz L0002302E mov ecx,[ebp+2Ch] mov edx,[ebp+28h] push ecx push edx push ebx push eax jmp L00023299 L0002302E: mov ecx,[ebp-18h] mov edx,[ebp-0Ch] push ecx mov ecx,[ebp-10h] push edx mov edx,[ebp+2Ch] push ecx push edx push ebx push eax call SUB_L00023560 jmp L0002329E L0002304A: cmp word ptr [edx+0Eh],0000h jnz L00023081 cmp dword ptr [ebp+18h],00000006h jz L00023070 mov ecx,[ebp-18h] mov edx,[ebp+2Ch] push ecx mov ecx,[ebp-0Ch] push edx mov edx,[ebp-10h] push ecx push edx push ebx push eax call SUB_L00023840 jmp L000230E1 L00023070: mov ecx,[ebp+2Ch] mov edx,[ebp+28h] push ecx push edx push ebx push eax call SUB_L000234B0 jmp L000230E1 L00023081: mov ecx,[ebp+14h] test ecx,ecx jnz L0002309D mov ecx,[ebp-18h] mov edx,[ebp+2Ch] push ecx mov ecx,[ebp+28h] push edx push ecx push ebx push eax call SUB_L00023980 jmp L000230E1 L0002309D: mov edx,[ebp+2Ch] mov ecx,[ebp+28h] push edx push ecx push ebx push eax call SUB_L000234B0 jmp L000230E1 L000230AE: cmp word ptr [edx+0Eh],0000h jnz L000230CE imul ecx,[ebp+3Ch] mov esi,[ebp+40h] mov edx,ecx shr ecx,02h mov edi,ebx rep movsd mov ecx,edx and ecx,00000003h rep movsb jmp L000230E1 L000230CE: mov ecx,[ebp-18h] mov edx,[ebp-0Ch] push ecx mov ecx,[ebp-10h] push edx push ecx push ebx push eax call SUB_L000232D0 L000230E1: mov eax,[ebp+1Ch] test eax,eax jz L0002329E mov ecx,[ebp+14h] test ecx,ecx mov eax,[ebp-2Ch] lea ebx,[ebx+eax*4] jnz L00023127 mov ecx,[ebp-04h] mov eax,ecx shr eax,03h and eax,00000001h mov edx,ecx shr edx,02h and edx,00000001h add eax,edx mov edx,ecx shr edx,1 and edx,00000001h add eax,edx and ecx,00000001h add eax,ecx imul eax,[ebp+28h] shr eax,1 and eax,3FFFFFFFh L00023127: mov edx,[ebp-28h] mov cl,[ebp+30h] add eax,00000006h add edx,eax test cl,02h mov [ebp-28h],edx jz L0002316A mov edi,[ebp+0Ch] xor ecx,ecx mov cx,[edi+0Ah] test cl,01h jz L0002314F mov esi,[ebp+18h] xor ecx,ecx jmp L00023173 L0002314F: mov esi,[ebp+18h] cmp esi,00000005h jz L00023163 cmp esi,00000003h jz L00023163 mov ecx,00000002h jmp L00023173 L00023163: mov ecx,00000003h jmp L00023173 L0002316A: mov esi,[ebp+18h] mov edi,[ebp+0Ch] mov ecx,[ebp-14h] L00023173: mov edx,[ebp-08h] add eax,FFFFFFFEh or eax,7E000000h mov [ebx],eax mov eax,[ebp+08h] or eax,edx mov edx,[ebp-30h] shl eax,06h or eax,edx mov edx,[ebp-34h] shl eax,02h or eax,edx shl eax,02h or eax,ecx mov ecx,[ebp-20h] shl eax,06h or eax,ecx mov ecx,[ebp-38h] shl eax,03h or eax,ecx mov ecx,[ebp-24h] shl eax,03h add ebx,00000004h or eax,ecx mov [ebx],eax add ebx,00000004h cmp esi,00000006h jnz L000231ED cmp word ptr [edi+0Eh],0000h jnz L000231ED mov eax,[ebp+14h] xor ecx,ecx test eax,eax setnz cl mov eax,00000008h add ecx,edx mov edx,[ebp+20h] neg ecx sbb ecx,ecx neg ecx sar eax,cl mov ecx,[ebp+48h] or eax,edx or eax,ecx mov [ebx],eax jmp L000231F2 L000231ED: mov ecx,[ebp+44h] mov [ebx],ecx L000231F2: mov edx,[ebp-1Ch] mov eax,[ebp+38h] mov [ebx+04h],edx mov ecx,[eax] add ebx,00000004h add ebx,00000004h mov [ebx],ecx mov edx,[eax+04h] add ebx,00000004h mov [ebx],edx add ebx,00000004h cmp word ptr [edi+0Eh],0000h jnz L0002325D cmp esi,00000006h jz L0002323B mov eax,[ebp-18h] mov ecx,[ebp-04h] mov edx,[ebp-0Ch] push eax mov eax,[ebp-10h] push ecx mov ecx,[ebp+40h] push edx push eax push ebx lea edx,[ecx+eax*2] push edx call SUB_L00023840 jmp L0002329E L0002323B: mov eax,[ebp+14h] mov ecx,[ebp+28h] mov edx,[ebp+40h] test eax,eax mov eax,[ebp-04h] push eax push ecx push ebx jnz L00023257 add edx,00000100h push edx jmp L00023299 L00023257: add edx,00000040h push edx jmp L00023299 L0002325D: mov eax,[ebp+14h] test eax,eax jnz L00023286 mov ecx,[ebp-18h] mov eax,[ebp-04h] mov edx,[ebp+28h] push ecx push eax mov eax,00000080h sar eax,cl mov ecx,[ebp+40h] push edx push ebx lea edx,[ecx+eax*2] push edx call SUB_L00023980 jmp L0002329E L00023286: mov eax,[ebp-04h] mov ecx,[ebp+28h] mov edx,[ebp+40h] push eax mov eax,[ebp+3Ch] push ecx push ebx lea ecx,[edx+eax*2] push ecx L00023299: call SUB_L000234B0 L0002329E: emms ; MMX mov eax,[ebp-28h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0044h ;------------------------------------------------------------------------------ CASE_PROCTABLE_000232AC: dd CASE_000232AC_PROC0000 dd CASE_000232AC_PROC0000 dd CASE_000232AC_PROC0002 dd CASE_000232AC_PROC0003 dd CASE_000232AC_PROC0004 dd CASE_000232AC_PROC0005 dd CASE_000232AC_PROC0004 Align 16 SUB_L000232D0: sub esp,0000000Ch mov ecx,[esp+20h] push ebx push ebp mov ebp,[esp+24h] push esi mov esi,00000080h sar esi,cl push edi mov edi,[esp+20h] sar ebp,1 test ebp,ebp lea eax,[esi+edi] mov [esp+2Ch],eax mov eax,[esp+28h] mov [esp+18h],ebp mov [esp+10h],edi mov [esp+14h],esi jle L000234A6 mov edx,[esp+24h] mov [esp+28h],ebp L00023313: mov esi,[esp+10h] mov ecx,eax mov ebx,ecx shr ecx,02h mov edi,edx rep movsd mov ecx,ebx and ecx,00000003h rep movsb mov ecx,[esp+10h] mov esi,[esp+2Ch] add ecx,eax mov [esp+10h],ecx add edx,eax mov ecx,eax shr ecx,02h mov edi,edx rep movsd mov ecx,ebx and ecx,00000003h rep movsb mov esi,[esp+2Ch] mov ecx,[esp+28h] add esi,eax add edx,eax dec ecx mov [esp+2Ch],esi mov [esp+28h],ecx jnz L00023313 mov edi,[esp+20h] mov esi,[esp+14h] L00023368: mov ecx,[esp+30h] mov ebx,00000040h sar ebx,cl add ebx,edi test ebp,ebp lea ecx,[esi+ebx] mov [esp+2Ch],ecx jle L000233D3 mov [esp+24h],ebp L00023384: mov ecx,eax mov ebp,ecx shr ecx,02h mov edi,edx mov esi,ebx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+2Ch] add edx,eax mov ecx,eax shr ecx,02h mov edi,edx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+2Ch] mov ecx,[esp+24h] add esi,eax add ebx,eax add edx,eax dec ecx mov [esp+2Ch],esi mov [esp+24h],ecx jnz L00023384 mov ebp,[esp+18h] mov edi,[esp+20h] mov esi,[esp+14h] L000233D3: mov ecx,[esp+30h] mov ebx,00000020h sar ebx,cl add ebx,edi test ebp,ebp lea ecx,[esi+ebx] mov [esp+2Ch],ecx jle L0002343E mov [esp+24h],ebp L000233EF: mov ecx,eax mov ebp,ecx shr ecx,02h mov edi,edx mov esi,ebx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+2Ch] add edx,eax mov ecx,eax shr ecx,02h mov edi,edx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+2Ch] mov ecx,[esp+24h] add esi,eax add ebx,eax add edx,eax dec ecx mov [esp+2Ch],esi mov [esp+24h],ecx jnz L000233EF mov ebp,[esp+18h] mov edi,[esp+20h] mov esi,[esp+14h] L0002343E: mov ecx,[esp+30h] mov ebx,00000060h sar ebx,cl add ebx,edi add esi,ebx test ebp,ebp mov [esp+2Ch],esi jle L0002349C mov [esp+20h],ebp L00023459: mov ecx,eax mov ebp,ecx shr ecx,02h mov edi,edx mov esi,ebx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+2Ch] add edx,eax mov ecx,eax shr ecx,02h mov edi,edx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+2Ch] mov ecx,[esp+20h] add esi,eax add ebx,eax add edx,eax dec ecx mov [esp+2Ch],esi mov [esp+20h],ecx jnz L00023459 L0002349C: pop edi pop esi pop ebp pop ebx add esp,0000000Ch retn 0014h ;------------------------------------------------------------------------------ L000234A6: mov edx,[esp+24h] jmp L00023368 Align 4 SUB_L000234B0: test byte ptr [esp+10h],08h mov edx,[esp+0Ch] push ebx mov ebx,[esp+08h] push ebp push esi push edi lea ebp,[edx+edx] jz L000234E5 mov edi,[esp+18h] mov ecx,ebp mov eax,ecx shr ecx,02h mov esi,ebx rep movsd mov ecx,eax and ecx,00000003h rep movsb mov ecx,[esp+18h] lea eax,[ecx+edx*2] jmp L000234E9 L000234E5: mov eax,[esp+18h] L000234E9: test byte ptr [esp+20h],04h jz L0002350E lea esi,[ebx+edx*2] mov ecx,ebp mov ebx,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebx mov ebx,[esp+14h] and ecx,00000003h rep movsb lea ecx,[edx+edx] add eax,ecx L0002350E: test byte ptr [esp+20h],02h jz L00023531 lea esi,[ebx+edx*4] mov ecx,ebp mov ebx,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebx mov ebx,[esp+14h] and ecx,00000003h rep movsb lea eax,[eax+edx*2] L00023531: test byte ptr [esp+20h],01h jz L00023550 mov ecx,ebp mov edi,eax mov eax,ecx shr ecx,02h lea edx,[edx+edx*2] lea esi,[ebx+edx*2] rep movsd mov ecx,eax and ecx,00000003h rep movsb L00023550: pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00023560: sub esp,00000010h mov eax,[esp+20h] push ebx mov ebx,[esp+20h] push ebp mov ebp,[esp+2Ch] sar ebx,04h lea edx,[eax+eax] push esi mov esi,[esp+20h] sar ebp,1 mov eax,ebx and eax,00000002h push edi mov [esp+14h],ebp jz L0002359A test bl,08h jnz L0002359F mov ecx,00000020h xor eax,eax mov edi,esi jmp L000235AE L0002359A: test bl,08h jz L000235B0 L0002359F: test eax,eax jnz L000235B0 mov ecx,00000020h lea edi,[esi+00000100h] L000235AE: rep stosd L000235B0: mov eax,ebx and eax,00000001h jz L000235CB test bl,04h jnz L000235D0 mov ecx,00000020h xor eax,eax lea edi,[esi+00000080h] jmp L000235DF L000235CB: test bl,04h jz L000235E1 L000235D0: test eax,eax jnz L000235E1 mov ecx,00000020h lea edi,[esi+00000180h] L000235DF: rep stosd L000235E1: mov eax,[esp+2Ch] mov ecx,[esp+38h] and eax,0000000Ah mov [esp+1Ch],eax jz L000236B6 mov eax,00000080h sar eax,cl test ebp,ebp mov [esp+34h],esi lea eax,[esi+eax*2] mov [esp+10h],eax jle L000236B6 mov ecx,[esp+30h] mov eax,[esp+28h] lea ebx,[ecx+ecx] mov [esp+18h],ebp L0002361F: mov esi,[esp+34h] mov ecx,edx mov ebp,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ecx,[esp+34h] mov esi,[esp+10h] add ecx,ebx mov [esp+34h],ecx add eax,ebx mov ecx,edx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+10h] mov ecx,[esp+18h] add esi,ebx add eax,ebx dec ecx mov [esp+10h],esi mov [esp+18h],ecx jnz L0002361F mov esi,[esp+24h] mov ebp,[esp+14h] mov ecx,[esp+38h] L00023678: mov edi,[esp+2Ch] and edi,00000005h mov [esp+28h],edi jz L00023717 mov edi,00000040h sar edi,cl mov ebx,00000080h sar ebx,cl test ebp,ebp lea edi,[esi+edi*2] mov [esp+34h],edi lea ebx,[edi+ebx*2] mov [esp+10h],ebx jle L00023717 mov ecx,[esp+30h] lea ebx,[ecx+ecx] mov [esp+2Ch],ebp jmp L000236C0 L000236B6: mov eax,[esp+28h] jmp L00023678 L000236BC: mov edi,[esp+34h] L000236C0: mov esi,edi mov ecx,edx mov ebp,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ecx,[esp+34h] mov esi,[esp+10h] add ecx,ebx mov [esp+34h],ecx add eax,ebx mov ecx,edx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+10h] mov ecx,[esp+2Ch] add esi,ebx add eax,ebx dec ecx mov [esp+10h],esi mov [esp+2Ch],ecx jnz L000236BC mov ecx,[esp+38h] mov ebp,[esp+14h] mov esi,[esp+24h] L00023717: mov edi,[esp+1Ch] test edi,edi jz L000237AB mov edi,00000020h sar edi,cl mov ebx,00000080h sar ebx,cl test ebp,ebp lea edi,[esi+edi*2] mov [esp+34h],edi lea ebx,[edi+ebx*2] mov [esp+10h],ebx jle L000237AB mov ecx,[esp+30h] lea ebx,[ecx+ecx] mov [esp+2Ch],ebp jmp L00023754 L00023750: mov edi,[esp+34h] L00023754: mov esi,edi mov ecx,edx mov ebp,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ecx,[esp+34h] mov esi,[esp+10h] add ecx,ebx mov [esp+34h],ecx add eax,ebx mov ecx,edx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+10h] mov ecx,[esp+2Ch] add esi,ebx add eax,ebx dec ecx mov [esp+10h],esi mov [esp+2Ch],ecx jnz L00023750 mov esi,[esp+24h] mov ebp,[esp+14h] mov ecx,[esp+38h] L000237AB: mov edi,[esp+28h] test edi,edi jz L0002382D mov edi,00000060h sar edi,cl lea esi,[esi+edi*2] mov edi,00000080h sar edi,cl test ebp,ebp mov [esp+34h],esi lea ecx,[esi+edi*2] mov [esp+10h],ecx jle L0002382D mov ecx,[esp+30h] lea ebx,[ecx+ecx] mov [esp+30h],ebp jmp L000237E4 L000237E0: mov esi,[esp+34h] L000237E4: mov ecx,edx mov ebp,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ecx,[esp+34h] mov esi,[esp+10h] add ecx,ebx mov [esp+34h],ecx add eax,ebx mov ecx,edx shr ecx,02h mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+10h] mov ecx,[esp+30h] add esi,ebx add eax,ebx dec ecx mov [esp+10h],esi mov [esp+30h],ecx jnz L000237E0 L0002382D: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00023840: push ecx test byte ptr [esp+18h],08h push ebx push ebp push esi mov esi,[esp+1Ch] push edi mov edi,[esp+24h] lea edx,[esi+esi] jz L00023977 test edi,edi mov ebx,[esp+18h] jle L00023977 mov eax,[esp+1Ch] mov [esp+10h],edi L0002386F: mov ecx,edx mov ebp,ecx shr ecx,02h mov esi,ebx mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+20h] lea ecx,[esi+esi] add eax,ecx lea ecx,[edx+edx] add ebx,ecx dec [esp+10h] jnz L0002386F mov edi,[esp+24h] L0002389B: test byte ptr [esp+28h],04h jz L000238E0 test edi,edi mov ecx,[esp+18h] lea ebx,[ecx+00000080h] jle L000238E0 mov [esp+1Ch],edi L000238B4: mov ecx,edx mov ebp,ecx shr ecx,02h mov esi,ebx mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+20h] lea ecx,[esi+esi] add eax,ecx lea ecx,[edx+edx] add ebx,ecx dec [esp+1Ch] jnz L000238B4 mov edi,[esp+24h] L000238E0: test byte ptr [esp+28h],02h jz L00023925 test edi,edi mov ecx,[esp+18h] lea ebx,[ecx+00000100h] jle L00023925 mov [esp+1Ch],edi L000238F9: mov ecx,edx mov ebp,ecx shr ecx,02h mov esi,ebx mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+20h] lea ecx,[esi+esi] add eax,ecx lea ecx,[edx+edx] add ebx,ecx dec [esp+1Ch] jnz L000238F9 mov edi,[esp+24h] L00023925: test byte ptr [esp+28h],01h jz L0002396F test edi,edi mov ecx,[esp+18h] lea ebx,[ecx+00000180h] jle L0002396F lea ecx,[esi+esi] mov [esp+24h],ecx mov [esp+20h],edi L00023945: mov ecx,edx mov ebp,ecx shr ecx,02h mov esi,ebx mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov edi,[esp+24h] lea ecx,[edx+edx] add ebx,ecx mov ecx,[esp+20h] add eax,edi dec ecx mov [esp+20h],ecx jnz L00023945 L0002396F: pop edi pop esi pop ebp pop ebx pop ecx retn 0018h ;------------------------------------------------------------------------------ L00023977: mov eax,[esp+1Ch] jmp L0002389B SUB_L00023980: mov ecx,[esp+14h] mov al,[esp+10h] mov edx,[esp+0Ch] push ebx mov ebx,[esp+08h] push ebp mov ebp,00000040h push esi sar ebp,cl test al,08h push edi jz L000239BF mov edi,[esp+18h] lea ecx,[edx+edx] mov eax,ecx shr ecx,02h mov esi,ebx rep movsd mov ecx,eax and ecx,00000003h rep movsb mov ecx,[esp+18h] lea eax,[ecx+edx*2] jmp L000239C3 L000239BF: mov eax,[esp+18h] L000239C3: test byte ptr [esp+20h],04h jz L000239E7 lea esi,[ebx+ebp*2] lea ecx,[edx+edx] mov ebx,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebx mov ebx,[esp+14h] and ecx,00000003h rep movsb lea eax,[eax+edx*2] L000239E7: test byte ptr [esp+20h],02h jz L00023A0F mov esi,ebp sar esi,1 lea esi,[ebx+esi*2] lea ecx,[edx+edx] mov ebx,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,ebx mov ebx,[esp+14h] and ecx,00000003h rep movsb lea eax,[eax+edx*2] L00023A0F: test byte ptr [esp+20h],01h jz L00023A32 lea ecx,[edx+edx] mov edx,ebp sar edx,1 mov edi,eax mov eax,ecx add edx,ebp shr ecx,02h lea esi,[ebx+edx*2] rep movsd mov ecx,eax and ecx,00000003h rep movsb L00023A32: pop edi pop esi pop ebp pop ebx retn 0014h ;------------------------------------------------------------------------------ Align 8 SUB_L00023A40: push ebp mov ebp,esp sub esp,00000034h mov eax,[ebp+48h] push ebx mov ebx,[ebp+14h] push esi mov esi,[ebp+10h] and eax,0000FFFFh push edi xor edi,edi test al,01h mov [ebp-34h],eax jz L00023A65 mov [ebp-10h],edi jmp L00023AAB L00023A65: cmp ebx,00000005h jz L00023AA4 cmp ebx,00000003h jz L00023AA4 test byte ptr [ebp+2Ch],01h jz L00023A7E mov dword ptr [ebp-10h],00000002h jmp L00023AAB L00023A7E: test al,08h jz L00023A94 and eax,000000FFh and eax,00000004h or eax,00000002h shr eax,1 mov [ebp-10h],eax jmp L00023AAB L00023A94: test al,04h mov eax,00000000h setnz al inc eax mov [ebp-10h],eax jmp L00023AAB L00023AA4: mov dword ptr [ebp-10h],00000003h L00023AAB: mov ecx,[ebp+28h] mov eax,[ebp+24h] mov dx,[ebp+50h] and eax,0000FFFFh and ecx,0000FFFFh mov [ebp-24h],ecx add ecx,eax mov [ebp-28h],eax mov eax,[ebp+4Ch] mov [ebp-14h],ecx and eax,0000FFFFh xor ecx,ecx cmp [ebp+58h],di jnz L00023BDE cmp esi,edi jz L00023B1F cmp esi,00000001h mov dword ptr [ebp-18h],00000001h mov [ebp-04h],eax mov [ebp+58h],eax jnz L00023B0A and eax,00000002h lea edi,[00000000h+eax*4] mov [ebp+24h],edi mov [ebp+28h],edi jmp L00023C45 L00023B0A: and eax,00000001h lea edi,[00000000h+eax*8] mov [ebp+24h],edi mov [ebp+28h],edi jmp L00023C45 L00023B1F: cmp ebx,00000006h jz L00023B8A cmp ebx,00000004h mov esi,00000003h mov [ebp-18h],esi jge L00023B59 cmp dx,di jnz L00023B40 mov ebx,[ebp-04h] mov edx,eax mov [ebp+58h],edx jmp L00023BA5 L00023B40: mov ebx,[ebp-04h] mov ecx,eax and ecx,0000003Ch mov edx,eax shl ecx,02h shr edx,02h or edx,ecx or edx,eax mov [ebp+58h],edx jmp L00023BA5 L00023B59: cmp dx,di jnz L00023B6A mov ebx,eax mov edx,eax mov [ebp-04h],ebx mov [ebp+58h],edx jmp L00023BA5 L00023B6A: mov edx,eax shr edx,02h mov edi,eax and edx,0000000Ch and edi,00000030h and eax,0000000Ch or edx,edi lea ebx,[00000000h+eax*4] mov [ebp+58h],edx or ebx,eax jmp L00023BA2 L00023B8A: mov edx,eax and edx,00000030h and eax,0000000Ch mov esi,00000002h shl eax,02h mov [ebp-18h],esi mov [ebp+58h],edx mov ebx,eax L00023BA2: mov [ebp-04h],ebx L00023BA5: mov edi,edx shr edi,02h and edi,0000000Fh shr ebx,02h or edi,ecx and ebx,0000000Fh cmp esi,00000003h mov [ebp+24h],edi mov [ebp+28h],ebx jnz L00023C1F mov esi,[ebp+38h] mov ecx,[ebp+3Ch] and esi,0000FFFFh shr esi,1 and ecx,0000FFFFh shr ecx,1 mov [ebp-0Ch],esi mov [ebp-08h],ecx jmp L00023BF7 L00023BDE: mov [ebp-18h],edi mov [ebp+28h],edi mov [ebp+24h],edi mov [ebp-04h],edi mov [ebp+58h],edi L00023BED: xor ecx,ecx xor esi,esi mov [ebp-08h],ecx mov [ebp-0Ch],esi L00023BF7: mov edx,[ebp+1Ch] mov eax,ecx imul eax,esi mov esi,[ebp+18h] mov ecx,edx and ecx,0000FFFFh test esi,esi mov [ebp+4Ch],eax jnz L00023C8C cmp ecx,00000003h jnz L00023C5F mov dword ptr [ebp+1Ch],00000000h jmp L00023C6D L00023C1F: cmp esi,00000002h jnz L00023C40 mov ecx,[ebp+3Ch] mov esi,[ebp+38h] and esi,0000FFFFh and ecx,0000FFFFh shr ecx,1 mov [ebp-0Ch],esi mov [ebp-08h],ecx jmp L00023BF7 L00023C40: cmp esi,00000001h jnz L00023BED L00023C45: mov esi,[ebp+38h] mov ecx,[ebp+3Ch] and esi,0000FFFFh and ecx,0000FFFFh mov [ebp-0Ch],esi mov [ebp-08h],ecx jmp L00023BF7 L00023C5F: xor ebx,ebx cmp ecx,00000001h setnz bl add ebx,00000002h mov [ebp+1Ch],ebx L00023C6D: mov ebx,[ebp+14h] cmp ebx,00000006h ja L00023D66 L00023C79: mov ecx,[ebp+54h] jmp [CASE_PROCTABLE_00024138+ebx*4] CASE_00024138_PROC0000: xor ebx,ebx xor edx,edx jmp L00023D6C L00023C8C: mov ebx,[ebp+14h] cmp ebx,00000006h jz L00023CA4 mov dword ptr [ebp+1Ch],00000002h mov dword ptr [ebp-1Ch],00000003h jmp L00023C6D L00023CA4: mov esi,00000002h cmp ecx,esi jnz L00023CBA mov ecx,00000003h mov [ebp-1Ch],ecx mov [ebp+1Ch],ecx jmp L00023C79 L00023CBA: mov [ebp-1Ch],esi mov [ebp+1Ch],esi jmp L00023C79 CASE_00024138_PROC0004: xor ebx,ebx mov edx,ecx and edx,00000004h test dx,dx setnz bl add ebx,00000002h mov [ebp-2Ch],ebx test byte ptr [ebp+2Ch],02h jz L00023CEB xor ebx,ebx test dx,dx setnz bl add ebx,00000002h mov [ebp+54h],ebx jmp CASE_00024138_PROC0002 L00023CEB: mov edx,ecx and edx,000000FFh and edx,00000008h or edx,00000010h shr edx,03h mov [ebp+54h],edx CASE_00024138_PROC0002: mov bl,[ebp+2Ch] mov esi,ecx xor edx,edx and esi,00000001h test si,si setnz dl add edx,00000002h test bl,01h jz L00023D24 xor ebx,ebx test si,si setnz bl add ebx,00000002h jmp L00023D6C L00023D24: and ecx,000000FFh and ecx,00000002h or ecx,00000004h shr ecx,1 mov ebx,ecx jmp L00023D6C CASE_00024138_PROC0005: mov edx,00000002h mov ebx,00000003h mov [ebp-2Ch],ebx mov [ebp+54h],edx jmp L00023D6C CASE_00024138_PROC0003: cmp dx,0001h jnz L00023D5A mov edx,00000002h mov ebx,00000003h jmp L00023D6C L00023D5A: mov edx,00000003h mov ebx,00000002h jmp L00023D6C L00023D66: mov ebx,[ebp+50h] mov edx,[ebp+50h] L00023D6C: mov ecx,edi shr ecx,03h mov esi,edi shr esi,02h and esi,00000001h and ecx,00000001h add ecx,esi mov esi,edi shr esi,1 and esi,00000001h add ecx,esi mov esi,[ebp+48h] and edi,00000001h and esi,00000001h add ecx,edi test si,si mov [ebp-30h],esi jz L00023DA2 imul ecx,eax shr ecx,02h jmp L00023DAD L00023DA2: imul ecx,eax shr ecx,1 and ecx,3FFFFFFFh L00023DAD: mov esi,[ebp+08h] lea eax,[ecx+06h] mov [ebp+48h],eax add eax,FFFFFFFEh mov [ebp-20h],ecx mov ecx,[ebp+10h] or eax,7E000000h mov [esi],eax lea edi,[00000004h+ecx*4] or edi,[ebp-18h] mov ecx,[ebp+58h] shl edi,06h mov eax,edi or eax,ecx mov ecx,[ebp-24h] shl eax,06h or eax,ecx mov ecx,[ebp-28h] shl eax,02h or eax,ecx mov ecx,[ebp-10h] shl eax,02h or eax,ecx mov ecx,[ebp+1Ch] shl eax,06h or eax,ecx shl eax,03h or eax,edx mov edx,[ebp+38h] shl eax,03h or eax,ebx mov ebx,[ebp+44h] mov [esi+04h],eax mov eax,[ebp+40h] add esi,00000004h and eax,0000FFFFh add esi,00000004h and ebx,0000FFFFh shl ebx,10h mov [ebp+1Ch],eax or eax,ebx mov [esi],eax mov [ebp+08h],eax mov eax,[ebp+3Ch] and eax,0000FFFFh and edx,0000FFFFh add esi,00000004h mov ecx,eax shl ecx,10h or ecx,edx mov [esi],ecx mov [ebp+38h],ecx mov ecx,[ebp+30h] add esi,00000004h mov [ebp+3Ch],edx mov edx,[ecx] mov [esi],edx mov ecx,[ecx+04h] mov edx,[ebp+10h] add esi,00000004h mov [esi],ecx mov ecx,edx add esi,00000004h sub ecx,00000000h jz L00023E89 dec ecx jz L00023E7E dec ecx jnz L00023E8F mov ecx,[ebp+0Ch] add ecx,00000280h jmp L00023E8C L00023E7E: mov ecx,[ebp+0Ch] add ecx,00000200h jmp L00023E8C L00023E89: mov ecx,[ebp+0Ch] L00023E8C: mov [ebp+58h],ecx L00023E8F: cmp word ptr [ebp-30h],0000h jnz L00023F46 mov eax,[ebp+18h] test eax,eax jnz L00023ED9 cmp word ptr [ebp+50h],0000h jnz L00023EBA mov edx,[ebp+24h] mov eax,[ebp+4Ch] mov ecx,[ebp+58h] push edx push eax push esi push ecx jmp L00024124 L00023EBA: mov edx,[ebp-14h] mov eax,[ebp-08h] mov ecx,[ebp-0Ch] push edx mov edx,[ebp+24h] push eax mov eax,[ebp+58h] push ecx push edx push esi push eax call SUB_L00023560 jmp L00024129 L00023ED9: cmp word ptr [ebp+50h],0000h jnz L00023F16 cmp dword ptr [ebp+14h],00000006h jz L00023F02 mov ecx,[ebp-14h] mov edx,[ebp+24h] mov eax,[ebp-08h] push ecx mov ecx,[ebp-0Ch] push edx mov edx,[ebp+58h] push eax push ecx push esi push edx call SUB_L00023840 jmp L00023F74 L00023F02: mov eax,[ebp+24h] mov ecx,[ebp+4Ch] mov edx,[ebp+58h] push eax push ecx push esi push edx call SUB_L000234B0 jmp L00023F74 L00023F16: test edx,edx jnz L00023F32 mov eax,[ebp-14h] mov ecx,[ebp+24h] mov edx,[ebp+4Ch] push eax mov eax,[ebp+58h] push ecx push edx push esi push eax call SUB_L00023980 jmp L00023F74 L00023F32: mov ecx,[ebp+24h] mov edx,[ebp+4Ch] mov eax,[ebp+58h] push ecx push edx push esi push eax call SUB_L000234B0 jmp L00023F74 L00023F46: cmp word ptr [ebp+50h],0000h jnz L00023F5E imul eax,[ebp+3Ch] mov ecx,[ebp+58h] push eax push ecx push esi call SUB_L00024310 jmp L00023F74 L00023F5E: mov edx,[ebp-14h] mov eax,[ebp-08h] mov ecx,[ebp-0Ch] push edx mov edx,[ebp+58h] push eax push ecx push esi push edx call SUB_L00024160 L00023F74: mov eax,[ebp+18h] test eax,eax jz L00024129 mov edx,[ebp+10h] test edx,edx mov ecx,[ebp-20h] lea eax,[esi+ecx*4] jnz L00023FBB mov edx,[ebp+28h] mov ecx,edx shr ecx,03h and ecx,00000001h mov esi,edx shr esi,02h and esi,00000001h add ecx,esi mov esi,edx shr esi,1 and esi,00000001h add ecx,esi and edx,00000001h add ecx,edx imul ecx,[ebp+4Ch] shr ecx,1 and ecx,3FFFFFFFh L00023FBB: mov esi,[ebp+48h] mov dl,[ebp+2Ch] add ecx,00000006h add esi,ecx test dl,02h mov [ebp+48h],esi jz L00023FF3 test byte ptr [ebp-34h],01h jz L00023FD8 xor edx,edx jmp L00023FF6 L00023FD8: mov edx,[ebp+14h] cmp edx,00000005h jz L00023FEC cmp edx,00000003h jz L00023FEC mov edx,00000002h jmp L00023FF6 L00023FEC: mov edx,00000003h jmp L00023FF6 L00023FF3: mov edx,[ebp-10h] L00023FF6: mov esi,[ebp-28h] add ecx,FFFFFFFEh or ecx,7E000000h mov [eax],ecx or edi,[ebp-04h] mov ecx,[ebp-24h] shl edi,06h or edi,ecx mov ecx,[ebp-1Ch] shl edi,02h or edi,esi shl edi,02h or edi,edx shl edi,06h or edi,ecx mov ecx,[ebp-2Ch] shl edi,03h or edi,ecx mov ecx,[ebp+54h] shl edi,03h add eax,00000004h or edi,ecx mov ecx,[ebp+14h] mov [eax],edi mov edx,00000006h add eax,00000004h cmp ecx,edx jnz L00024071 cmp word ptr [ebp+50h],0000h jnz L00024071 mov edi,[ebp+10h] xor ecx,ecx test edi,edi setnz cl add ecx,esi neg ecx sbb ecx,ecx neg ecx mov esi,00000008h sar esi,cl or esi,[ebp+1Ch] or esi,ebx mov [eax],esi add eax,00000004h jmp L0002407C L00024071: mov ecx,[ebp+08h] mov edi,[ebp+10h] mov [eax],ecx add eax,00000004h L0002407C: mov ecx,[ebp+38h] mov [eax],ecx mov ecx,[ebp+34h] mov esi,[ecx] add eax,00000004h mov [eax],esi mov ecx,[ecx+04h] add eax,00000004h mov [eax],ecx add eax,00000004h cmp word ptr [ebp+50h],0000h jnz L000240EB cmp [ebp+14h],edx jz L000240C1 mov edx,[ebp-14h] mov ecx,[ebp+28h] push edx mov edx,[ebp-08h] push ecx mov ecx,[ebp-0Ch] push edx push ecx push eax mov eax,[ebp+58h] lea ecx,[eax+ecx*2] push ecx call SUB_L00023840 jmp L00024129 L000240C1: test edi,edi jnz L000240D9 mov edx,[ebp+28h] mov ecx,[ebp+4Ch] push edx mov edx,[ebp+58h] push ecx push eax add edx,00000100h jmp L00024123 L000240D9: mov ecx,[ebp+28h] mov edx,[ebp+4Ch] push ecx push edx push eax mov eax,[ebp+58h] add eax,00000040h push eax jmp L00024124 L000240EB: test edi,edi jnz L00024111 mov ecx,[ebp-14h] mov edx,[ebp+28h] push ecx push edx mov edx,[ebp+4Ch] push edx push eax mov eax,00000080h sar eax,cl mov ecx,[ebp+58h] lea edx,[ecx+eax*2] push edx call SUB_L00023980 jmp L00024129 L00024111: mov ecx,[ebp+28h] mov edx,[ebp+4Ch] push ecx mov ecx,[ebp+3Ch] push edx push eax mov eax,[ebp+58h] lea edx,[eax+ecx*2] L00024123: push edx L00024124: call SUB_L000234B0 L00024129: emms ; MMX mov eax,[ebp+48h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0054h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00024138: dd CASE_00024138_PROC0000 dd CASE_00024138_PROC0000 dd CASE_00024138_PROC0002 dd CASE_00024138_PROC0003 dd CASE_00024138_PROC0004 dd CASE_00024138_PROC0005 dd CASE_00024138_PROC0004 Align 16 SUB_L00024160: sub esp,00000008h mov ecx,[esp+1Ch] mov eax,[esp+0Ch] push ebx mov ebx,[esp+1Ch] push ebp mov ebp,00000080h sar ebp,cl push esi mov esi,[esp+20h] sar ebx,1 shl ebp,1 test ebx,ebx lea ecx,[eax+ebp] push edi mov [esp+28h],eax mov [esp+14h],ebp mov [esp+10h],ecx jle L00024205 mov edi,[esp+20h] mov [esp+24h],ebx L0002419D: mov edx,[esp+28h] push esi push edx push edi call SUB_L00024310 mov ecx,[esp+28h] lea eax,[esi+esi] add ecx,eax mov eax,[esp+10h] push esi push eax add edi,esi push edi mov [esp+34h],ecx call SUB_L00024310 mov ecx,[esp+10h] lea eax,[esi+esi] add ecx,eax mov eax,[esp+24h] add edi,esi dec eax mov [esp+10h],ecx mov [esp+24h],eax jnz L0002419D mov eax,[esp+1Ch] L000241E2: mov ecx,[esp+2Ch] mov edx,00000040h sar edx,cl test ebx,ebx lea ecx,[eax+edx*2] lea edx,[ecx+ebp] mov [esp+28h],ecx mov [esp+10h],edx jle L00024250 mov [esp+20h],ebx jmp L0002420F L00024205: mov edi,[esp+20h] jmp L000241E2 L0002420B: mov ecx,[esp+28h] L0002420F: push esi push ecx push edi call SUB_L00024310 mov ecx,[esp+28h] lea eax,[esi+esi] add ecx,eax mov eax,[esp+10h] push esi push eax add edi,esi push edi mov [esp+34h],ecx call SUB_L00024310 mov ecx,[esp+10h] lea eax,[esi+esi] add ecx,eax mov eax,[esp+20h] add edi,esi dec eax mov [esp+10h],ecx mov [esp+20h],eax jnz L0002420B mov eax,[esp+1Ch] L00024250: mov ecx,[esp+2Ch] mov edx,00000020h sar edx,cl lea ecx,[eax+edx*2] add ebp,ecx test ebx,ebx mov [esp+28h],ecx jle L000242A7 mov [esp+20h],ebx jmp L00024272 L0002426E: mov ecx,[esp+28h] L00024272: push esi push ecx push edi call SUB_L00024310 mov ecx,[esp+28h] push esi lea eax,[esi+esi] push ebp add edi,esi add ecx,eax push edi mov [esp+34h],ecx call SUB_L00024310 lea eax,[esi+esi] add ebp,eax mov eax,[esp+20h] add edi,esi dec eax mov [esp+20h],eax jnz L0002426E mov eax,[esp+1Ch] L000242A7: mov ecx,[esp+2Ch] mov edx,00000060h sar edx,cl lea ebp,[eax+edx*2] mov eax,[esp+14h] add eax,ebp test ebx,ebx mov [esp+10h],eax jle L000242F9 mov [esp+1Ch],ebx L000242C7: push esi push ebp push edi call SUB_L00024310 mov ecx,[esp+10h] push esi push ecx add edi,esi lea ebx,[esi+esi] push edi add ebp,ebx call SUB_L00024310 mov ecx,[esp+10h] mov eax,[esp+1Ch] add ecx,ebx add edi,esi dec eax mov [esp+10h],ecx mov [esp+1Ch],eax jnz L000242C7 L000242F9: pop edi pop esi pop ebp pop ebx add esp,00000008h retn 0014h ;------------------------------------------------------------------------------ Align 16 SUB_L00024310: mov ecx,[esp+08h] push esi mov esi,[esp+10h] test esi,esi jle L0002432F mov eax,[esp+08h] L00024321: mov dl,[ecx] add dl,80h mov [eax],dl inc eax add ecx,00000002h dec esi jnz L00024321 L0002432F: pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00024340: push ebp mov ebp,esp sub esp,00000010h mov eax,[ebp+48h] and eax,0000FFFFh test al,01h push ebx push esi jz L00024360 mov ebx,[ebp+14h] mov dword ptr [ebp-04h],00000000h jmp L000243A9 L00024360: mov ebx,[ebp+14h] cmp ebx,00000005h jz L000243A2 cmp ebx,00000003h jz L000243A2 test byte ptr [ebp+2Ch],01h jz L0002437C mov dword ptr [ebp-04h],00000002h jmp L000243A9 L0002437C: test al,08h jz L00024392 and eax,000000FFh and eax,00000004h or eax,00000002h shr eax,1 mov [ebp-04h],eax jmp L000243A9 L00024392: test al,04h mov eax,00000000h setnz al inc eax mov [ebp-04h],eax jmp L000243A9 L000243A2: mov dword ptr [ebp-04h],00000003h L000243A9: mov ecx,[ebp+28h] mov eax,[ebp+24h] mov esi,[ebp+38h] mov edx,[ebp+3Ch] and eax,0000FFFFh and ecx,0000FFFFh mov [ebp-0Ch],eax mov [ebp-08h],ecx add ecx,eax mov eax,[ebp+4Ch] push edi xor edi,edi and eax,0000FFFFh cmp [ebp+58h],di mov [ebp-10h],ecx jnz L00024488 mov ecx,[ebp+10h] test ecx,ecx jz L0002440C cmp ecx,00000001h mov dword ptr [ebp+4Ch],00000001h mov [ebp+58h],eax jnz L00024401 and eax,00000002h shl eax,02h jmp L000244E7 L00024401: and eax,00000001h shl eax,03h jmp L000244E7 L0002440C: cmp ebx,00000006h jz L0002444F cmp dword ptr [ebp+14h],00000004h mov ebx,00000003h mov [ebp+4Ch],ebx jge L00024439 cmp word ptr [ebp+50h],0000h jz L0002445A mov edi,eax and edi,0000003Ch mov ecx,eax shl edi,02h shr ecx,02h or ecx,edi or ecx,eax jmp L0002445C L00024439: cmp word ptr [ebp+50h],0000h mov ecx,eax jz L0002445C shr ecx,02h and ecx,0000000Ch and eax,00000030h or ecx,eax jmp L0002445C L0002444F: mov ebx,00000002h mov [ebp+4Ch],ebx and eax,00000030h L0002445A: mov ecx,eax L0002445C: mov eax,ecx shr eax,02h and eax,0000000Fh or eax,edi cmp ebx,00000003h mov [ebp+58h],ecx jnz L000244C3 and esi,0000FFFFh mov ecx,edx shr esi,1 and ecx,0000FFFFh shr ecx,1 mov [ebp+28h],esi mov [ebp+24h],ecx jmp L0002449E L00024488: mov [ebp+4Ch],edi xor eax,eax mov [ebp+58h],edi L00024490: xor ecx,ecx mov [ebp+24h],ecx mov [ebp+28h],ecx L00024498: mov esi,[ebp+28h] mov ecx,[ebp+24h] L0002449E: mov edx,[ebp+18h] mov ebx,ecx imul ebx,esi mov esi,[ebp+1Ch] mov ecx,esi and ecx,0000FFFFh test edx,edx jnz L00024527 cmp ecx,00000003h jnz L000244FF mov dword ptr [ebp+1Ch],00000000h jmp L0002450D L000244C3: cmp ebx,00000002h jnz L000244E2 mov ecx,esi and ecx,0000FFFFh mov [ebp+28h],ecx mov ecx,edx and ecx,0000FFFFh shr ecx,1 mov [ebp+24h],ecx jmp L00024498 L000244E2: cmp ebx,00000001h jnz L00024490 L000244E7: mov ecx,esi and ecx,0000FFFFh mov [ebp+28h],ecx mov ecx,edx and ecx,0000FFFFh mov [ebp+24h],ecx jmp L00024498 L000244FF: xor edx,edx cmp ecx,00000001h setnz dl add edx,00000002h mov [ebp+1Ch],edx L0002450D: cmp dword ptr [ebp+14h],00000006h ja L0002459E L00024517: mov ecx,[ebp+14h] jmp [CASE_PROCTABLE_000246E4+ecx*4] CASE_000246E4_PROC0000: xor edi,edi xor ecx,ecx jmp L000245A4 L00024527: cmp dword ptr [ebp+14h],00000006h jz L00024536 mov dword ptr [ebp+1Ch],00000002h jmp L0002450D L00024536: xor edx,edx cmp ecx,00000002h setz dl add edx,00000002h mov [ebp+1Ch],edx jmp L00024517 CASE_000246E4_PROC0002: mov edi,[ebp+54h] mov dl,[ebp+2Ch] mov esi,edi xor ecx,ecx and esi,00000001h test si,si setnz cl add ecx,00000002h test dl,01h jz L00024570 xor edx,edx test si,si setnz dl add edx,00000002h mov edi,edx jmp L000245A4 L00024570: and edi,000000FFh and edi,00000002h or edi,00000004h shr edi,1 jmp L000245A4 CASE_000246E4_PROC0003: cmp si,0001h jnz L00024592 CASE_000246E4_PROC0005: mov ecx,00000002h mov edi,00000003h jmp L000245A4 L00024592: mov ecx,00000003h mov edi,00000002h jmp L000245A4 L0002459E: mov edi,[ebp+50h] mov ecx,[ebp+50h] L000245A4: mov esi,eax shr esi,03h mov edx,eax shr edx,02h and edx,00000001h and esi,00000001h add esi,edx mov edx,eax shr edx,1 and edx,00000001h and eax,00000001h add esi,edx add esi,eax test byte ptr [ebp+48h],01h jz L000245D2 imul esi,ebx shr esi,02h jmp L000245DD L000245D2: imul esi,ebx shr esi,1 and esi,3FFFFFFFh L000245DD: mov eax,[ebp+08h] lea ebx,[esi+06h] mov esi,[ebp+4Ch] lea edx,[ebx-02h] or edx,7E000000h mov [eax],edx mov edx,[ebp+10h] lea edx,[00000004h+edx*4] or edx,esi mov esi,[ebp+58h] shl edx,06h or edx,esi mov esi,[ebp-08h] shl edx,06h or edx,esi mov esi,[ebp-0Ch] shl edx,02h or edx,esi mov esi,[ebp-04h] shl edx,02h or edx,esi mov esi,[ebp+1Ch] shl edx,06h or edx,esi shl edx,03h or edx,ecx mov ecx,[ebp+44h] shl edx,03h or edx,edi mov [eax+04h],edx mov edx,[ebp+40h] add eax,00000004h and ecx,0000FFFFh add eax,00000004h shl ecx,10h and edx,0000FFFFh or ecx,edx mov edx,[ebp+38h] mov [eax],ecx mov ecx,[ebp+3Ch] and ecx,0000FFFFh add eax,00000004h mov esi,ecx shl esi,10h and edx,0000FFFFh or esi,edx mov [eax],esi mov esi,[ebp+30h] mov edi,[esi] add eax,00000004h mov [eax],edi mov esi,[esi+04h] add eax,00000004h mov [eax],esi mov esi,[ebp+10h] add eax,00000004h sub esi,00000000h pop edi jz L000246A9 dec esi jz L0002469E dec esi jnz L000246AE mov esi,[ebp+0Ch] add esi,00000140h jmp L000246B1 L0002469E: mov esi,[ebp+0Ch] add esi,00000100h jmp L000246B1 L000246A9: mov esi,[ebp+0Ch] jmp L000246B1 L000246AE: mov esi,[ebp+50h] L000246B1: cmp word ptr [ebp+50h],0000h jnz L000246C5 imul ecx,edx push ecx push esi push eax call SUB_L00024870 jmp L000246D8 L000246C5: mov ecx,[ebp-10h] mov edx,[ebp+24h] push ecx mov ecx,[ebp+28h] push edx push ecx push eax push esi call SUB_L00024700 L000246D8: emms ; MMX pop esi mov eax,ebx pop ebx mov esp,ebp pop ebp retn 0054h ;------------------------------------------------------------------------------ CASE_PROCTABLE_000246E4: dd CASE_000246E4_PROC0000 dd CASE_000246E4_PROC0000 dd CASE_000246E4_PROC0002 dd CASE_000246E4_PROC0003 dd CASE_000246E4_PROC0002 dd CASE_000246E4_PROC0005 dd CASE_000246E4_PROC0002 SUB_L00024700: push ecx mov ecx,[esp+18h] mov edx,[esp+08h] push ebx push ebp mov ebp,[esp+1Ch] mov eax,00000080h sar eax,cl push esi mov esi,[esp+1Ch] sar ebp,1 test ebp,ebp lea ecx,[eax+edx] push edi mov ebx,edx mov [esp+10h],eax mov [esp+24h],ecx jle L00024866 mov edi,[esp+1Ch] mov [esp+20h],ebp L0002473B: push esi push ebx push edi call SUB_L00024870 mov edx,[esp+24h] push esi push edx add edi,esi push edi add ebx,esi call SUB_L00024870 mov ecx,[esp+24h] mov eax,[esp+20h] add ecx,esi add edi,esi dec eax mov [esp+24h],ecx mov [esp+20h],eax jnz L0002473B mov edx,[esp+18h] mov eax,[esp+10h] L00024772: mov ecx,[esp+28h] mov ebx,00000040h sar ebx,cl add ebx,edx test ebp,ebp lea ecx,[eax+ebx] mov [esp+24h],ecx jle L000247C5 mov [esp+1Ch],ebp L0002478E: push esi push ebx push edi call SUB_L00024870 mov edx,[esp+24h] push esi push edx add edi,esi push edi add ebx,esi call SUB_L00024870 mov ecx,[esp+24h] mov eax,[esp+1Ch] add ecx,esi add edi,esi dec eax mov [esp+24h],ecx mov [esp+1Ch],eax jnz L0002478E mov edx,[esp+18h] mov eax,[esp+10h] L000247C5: mov ecx,[esp+28h] mov ebx,00000020h sar ebx,cl add ebx,edx test ebp,ebp lea ecx,[eax+ebx] mov [esp+24h],ecx jle L00024818 mov [esp+1Ch],ebp L000247E1: push esi push ebx push edi call SUB_L00024870 mov edx,[esp+24h] push esi push edx add edi,esi push edi add ebx,esi call SUB_L00024870 mov ecx,[esp+24h] mov eax,[esp+1Ch] add ecx,esi add edi,esi dec eax mov [esp+24h],ecx mov [esp+1Ch],eax jnz L000247E1 mov edx,[esp+18h] mov eax,[esp+10h] L00024818: mov ecx,[esp+28h] mov ebx,00000060h sar ebx,cl add ebx,edx add eax,ebx test ebp,ebp mov [esp+24h],eax jle L0002485E mov [esp+18h],ebp L00024833: push esi push ebx push edi call SUB_L00024870 mov ebp,[esp+24h] push esi push ebp add edi,esi push edi add ebx,esi call SUB_L00024870 mov eax,[esp+18h] add ebp,esi add edi,esi dec eax mov [esp+24h],ebp mov [esp+18h],eax jnz L00024833 L0002485E: pop edi pop esi pop ebp pop ebx pop ecx retn 0014h ;------------------------------------------------------------------------------ L00024866: mov edi,[esp+1Ch] jmp L00024772 Align 4 SUB_L00024870: mov ecx,[esp+08h] push esi mov esi,[esp+10h] test esi,esi jle L0002488D mov eax,[esp+08h] L00024881: mov dl,[ecx] add dl,80h mov [eax],dl inc eax inc ecx dec esi jnz L00024881 L0002488D: pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000248A0: mov eax,[esp+04h] cmp eax,00000200h ja L000248B3 mov eax,00000200h retn 0004h ;------------------------------------------------------------------------------ L000248B3: cmp eax,00000400h ja L000248C2 mov eax,00000400h retn 0004h ;------------------------------------------------------------------------------ L000248C2: cmp eax,00000800h ja L000248D1 mov eax,00000800h retn 0004h ;------------------------------------------------------------------------------ L000248D1: cmp eax,00001000h ja L000248E0 mov eax,00001000h retn 0004h ;------------------------------------------------------------------------------ L000248E0: cmp eax,00002000h ja L000248EC mov eax,00002000h L000248EC: retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L000248F0: sub esp,00000024h push ebx push esi mov esi,[esp+30h] mov ebx,[esi+000000ACh] mov ecx,[ebx+00000214h] test cl,01h jz L00024AAF mov edx,[esi+10h] mov eax,[esi+28h] and edx,FFFFFF00h cmp edx,00010300h jnz L0002494E cmp eax,00000010h jnz L0002494E cmp dword ptr [esi+34h],00000190h jc L0002494E mov eax,[esi+6Ch] mov edx,[esi+30h] shl eax,03h shl edx,04h cmp edx,eax ja L0002494E mov eax,[esi+64h] test eax,eax jz L0002494E mov eax,00001000h jmp L00024950 L0002494E: xor eax,eax L00024950: mov edx,ecx and edx,00001000h cmp edx,eax jz L00024AAF xor eax,ecx push edi and eax,00001000h xor eax,ecx push esi mov edi,eax call SUB_L00029800 mov [ebx+00000214h],edi mov eax,[esi+000000A8h] mov eax,[eax+18h] push 0000081Fh push 00000000h mov [eax],edi call OsAllocMem test eax,eax mov [esp+28h],eax jz L00024AA8 mov ecx,[esi+34h] mov ebx,[esi+2Ch] mov edx,[esi+24h] lea edi,[eax+1Fh] and edi,FFFFFFE0h add ecx,0000000Fh add ebx,0000007Fh shr ecx,04h shr ebx,07h shr edx,03h test ecx,ecx mov [esp+10h],edi mov edi,[esi+1Ch] mov [esp+2Ch],ebx mov [esp+1Ch],edx mov [esp+20h],edi jbe L00024AA2 push ebp mov [esp+28h],ecx L000249D9: test ebx,ebx mov [esp+18h],edi jbe L00024A83 mov [esp+1Ch],ebx jmp L000249EF L000249EB: mov edx,[esp+20h] L000249EF: mov esi,[esp+14h] lea eax,[00000000h+edx*8] mov ebx,edi mov dword ptr [esp+10h],00000010h L00024A04: mov edx,ebx mov ecx,esi sub edx,esi mov edi,00000010h L00024A0F: mov ebp,[edx+ecx] mov [ecx],ebp mov ebp,[edx+ecx+04h] mov [ecx+04h],ebp add ecx,00000008h dec edi jnz L00024A0F mov ecx,[esp+10h] add esi,00000080h add ebx,eax dec ecx mov [esp+10h],ecx jnz L00024A04 mov edi,[esp+18h] mov ecx,[esp+14h] mov ebx,00000010h L00024A41: mov edx,edi mov esi,00000010h L00024A48: mov ebp,[ecx] mov [edx],ebp mov ebp,[ecx+04h] mov [edx+04h],ebp add ecx,00000008h add edx,eax dec esi jnz L00024A48 add edi,00000008h dec ebx jnz L00024A41 mov eax,[esp+1Ch] dec eax mov [esp+18h],edi mov [esp+1Ch],eax jnz L000249EB mov eax,[esp+2Ch] mov esi,[esp+38h] mov ebx,[esp+30h] mov edx,[esp+20h] L00024A83: mov edi,[esp+24h] mov ecx,edx shl ecx,07h add edi,ecx mov ecx,[esp+28h] dec ecx mov [esp+24h],edi mov [esp+28h],ecx jnz L000249D9 pop ebp L00024AA2: push eax call OsFreeMem L00024AA8: push esi call SUB_L000297C0 pop edi L00024AAF: pop esi pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00024AC0: push 000000C0h push 00000001h call OsAllocMem test eax,eax jnz L00024AD3 retn 0004h ;------------------------------------------------------------------------------ L00024AD3: mov ecx,[esp+04h] mov [eax],ecx mov dword ptr [eax+2Ch],00000000h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00024AF0: mov eax,[esp+08h] sub esp,0000002Ch push ebx push ebp push esi mov esi,[esp+3Ch] mov [esi+04h],eax mov eax,[esp+4Ch] push edi mov [esi+24h],eax mov cx,[esp+54h] mov [esi+28h],cx mov dx,[esp+58h] mov [esi+2Ah],dx mov edi,[esp+48h] mov ecx,[esp+4Ch] lea edx,[eax+00010000h] mov [esi+08h],edi mov [esi+0Ch],ecx mov [esi+10h],edx add eax,00002000h mov [esi+18h],eax mov ebp,[edi+000000ACh] lea eax,[esp+58h] push eax mov eax,[esi] push 0000000Ch lea ecx,[esp+28h] push ecx push 00000004h lea edx,[esp+50h] push edx push 0023204Ch push eax call OsDeviceIoControl mov eax,[esp+20h] xor ebx,ebx cmp eax,ebx jnz L00024B73 mov ecx,[esp+24h] mov [esi+30h],ecx jmp L00024B76 L00024B73: mov [esi+30h],ebx L00024B76: cmp [ebp+40h],ebx jnz L00024C40 or eax,FFFFFFFFh lea edi,[ebp+00000238h] mov ecx,00000006h rep stosd mov ecx,0000FFFFh mov [ebp+00000234h],cx mov [ebp+00000236h],cx mov [ebp+00000254h],bx mov [ebp+00000256h],bx mov [ebp+00000258h],cx mov [esp+34h],cx mov [esp+36h],cx mov [esp+38h],bx mov [esp+3Ah],bx lea eax,[ebp+000002ECh] mov dword ptr [esp+54h],00000011h L00024BD9: lea edx,[eax+18h] mov edi,edx xor edx,edx mov [edi],edx mov [edi+04h],edx mov edx,[esp+34h] mov [edi+08h],edx mov edx,[esp+38h] mov [edi+0Ch],edx mov edx,[esp+54h] mov [eax],ebx mov [eax+04h],ebx mov [eax+08h],ebx mov [eax+0Ch],ebx mov [eax+10h],ebx mov [eax+14h],ebx mov [eax+2Ch],cx mov [eax+30h],ebx mov [eax+44h],ebx mov [eax+40h],ebx add eax,00000048h dec edx mov [esp+54h],edx jnz L00024BD9 xor eax,eax lea edi,[ebp+00000214h] mov ecx,00000008h push esi rep stosd call SUB_L00028C40 test eax,eax jz L00024D31 mov edi,[esp+48h] L00024C40: lea eax,[esp+58h] push eax mov eax,[esi] push 00000008h lea ecx,[esp+18h] push ecx push 00000004h lea edx,[esp+54h] push edx push 00232054h push eax call OsDeviceIoControl cmp [esp+14h],ebx jnz L00024D31 mov ecx,[esp+10h] lea edx,[esp+58h] push edx mov edx,[esi] push 00000008h lea eax,[esp+20h] push eax push 00000004h mov [esi+40h],ecx lea ecx,[esp+60h] push ecx push 00232044h push edx call OsDeviceIoControl cmp [esp+18h],ebx jnz L00024D31 mov eax,[esp+1Ch] mov ecx,02000000h cmp eax,ecx mov [esi+000000B4h],eax ja L00024CB7 mov dword ptr [esi+34h],00600000h jmp L00024CBF L00024CB7: add eax,FCA00000h mov [esi+34h],eax L00024CBF: cmp [esi+34h],ecx jbe L00024CC7 mov [esi+34h],ecx L00024CC7: mov ecx,[esi+34h] mov eax,00400000h cmp ecx,eax jnc L00024CD6 mov [esi+34h],eax L00024CD6: mov [esi+64h],ebx mov [esi+000000ACh],ebx mov [esi+000000B0h],ebx mov eax,[edi+10h] and eax,FFFFFF00h cmp eax,00010300h jnz L00024D0A push esi mov dword ptr [esi+000000B0h],00000008h call SUB_L00024ED0 mov [esi+000000ACh],eax L00024D0A: mov ecx,[edi+00000130h] mov [esi+000000B8h],ecx mov edx,[edi+00000134h] pop edi mov [esi+000000BCh],edx pop esi pop ebp mov eax,00000001h pop ebx add esp,0000002Ch retn 001Ch ;------------------------------------------------------------------------------ L00024D31: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000002Ch retn 001Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00024D40: mov edx,[esp+08h] sub esp,00000044h test edx,edx push esi mov esi,[esp+4Ch] mov eax,[esi+08h] mov ecx,[eax+000000ACh] jz L00024D97 mov edx,[esi+4Ch] mov [ecx+0000026Ch],edx mov edx,[esi+48h] mov [ecx+00000268h],edx mov edx,[eax+20h] lea ecx,[esp+04h] push ecx mov ecx,[eax+1Ch] push edx mov edx,[eax+34h] mov eax,[eax+2Ch] push ecx push 00000000h push edx push eax push 01000100h push esi call SUB_L00025190 mov ecx,[esi+48h] push ecx push esi call SUB_L00025C90 L00024D97: mov eax,00000001h pop esi add esp,00000044h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00024DB0: push ebx push esi push edi mov edi,[esp+10h] mov eax,[edi+08h] mov esi,[eax+000000ACh] mov eax,[esi+40h] xor ebx,ebx cmp eax,ebx jnz L00024E27 mov ecx,[esi+00000280h] push ebp push ecx push edi call SUB_L00029180 mov edx,[esi+000002E8h] push edx push edi mov [esi+00000280h],ebx call SUB_L00029180 mov [esi+000002E8h],ebx add esi,00000304h mov ebp,00000011h L00024DFB: mov eax,[esi+28h] cmp eax,ebx jz L00024E0C push eax push edi call SUB_L00029180 mov [esi+28h],ebx L00024E0C: mov eax,[esi] cmp eax,ebx jz L00024E1A push eax call OsFreeMem mov [esi],ebx L00024E1A: add esi,00000048h dec ebp jnz L00024DFB push edi call SUB_L00028D10 pop ebp L00024E27: push edi call OsFreeMem pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00024E40: mov ecx,[esp+04h] test ecx,ecx mov eax,[esp+14h] mov edx,[esp+0Ch] push esi mov esi,[esp+14h] jz L00024E8E cmp dword ptr [ecx+34h],01000000h jnc L00024E8E mov ecx,[ecx+08h] cmp dword ptr [ecx+28h],00000010h jc L00024E75 cmp edx,00000500h jbe L00024E75 xor eax,eax pop esi retn 0014h ;------------------------------------------------------------------------------ L00024E75: mov ecx,eax shr ecx,03h imul ecx,edx imul ecx,esi cmp ecx,00280000h jbe L00024E8E xor eax,eax pop esi retn 0014h ;------------------------------------------------------------------------------ L00024E8E: cmp dword ptr [esp+0Ch],04000000h ja L00024EC6 cmp eax,00000010h jz L00024EAA cmp eax,00000020h jz L00024EAA shr eax,03h imul eax,edx jmp L00024EB6 L00024EAA: shr eax,03h imul eax,edx push eax call SUB_L000248A0 L00024EB6: imul eax,esi cmp eax,00400000h jbe L00024EC6 xor eax,eax pop esi retn 0014h ;------------------------------------------------------------------------------ L00024EC6: mov eax,00000001h pop esi retn 0014h ;------------------------------------------------------------------------------ Align 4 SUB_L00024ED0: sub esp,00000028h push esi mov esi,[esp+30h] lea eax,[esp+30h] push eax mov eax,[esi] push 00000024h lea ecx,[esp+10h] push ecx push 00000004h lea edx,[esp+14h] push edx push 0023205Ch push eax call OsDeviceIoControl mov eax,[esp+08h] test eax,eax jz L00024F09 xor eax,eax pop esi add esp,00000028h retn 0004h ;------------------------------------------------------------------------------ L00024F09: cmp dword ptr [esp+0Ch],00000002h jz L00024F19 xor eax,eax pop esi add esp,00000028h retn 0004h ;------------------------------------------------------------------------------ L00024F19: mov eax,[esp+14h] and eax,0000FFFFh mov ecx,eax shl ecx,17h mov [esi+00000088h],ecx xor ecx,ecx mov cl,[esp+24h] push ebx and eax,000001FFh push ebp push edi mov edi,00000001h mov [esi+64h],edi shr ecx,1 and ecx,00000003h shr eax,cl lea ebp,[esp+22h] lea ebx,[esi+6Ch] mov [esi+68h],eax mov [esi+000000A8h],eax L00024F5A: xor ecx,ecx mov cx,[ebp-02h] xor edx,edx mov dx,[ebp+00h] add ebx,00000004h add ebp,00000002h and ecx,000001FFh mov eax,ecx shl eax,09h sub eax,ecx xor ecx,ecx mov cl,[esp+edi+30h] and edx,000001FFh add eax,edx shl eax,17h mov edx,eax mov [ebx+1Ch],eax shr ecx,1 and ecx,00000003h add ecx,00000017h shr edx,cl mov [ebx-04h],edx mov ecx,[esi+000000A8h] add ecx,edx inc edi cmp edi,00000008h mov [esi+000000A8h],ecx jc L00024F5A pop edi pop ebp pop ebx mov eax,00000001h pop esi add esp,00000028h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00024FC0: mov eax,[esp+04h] push ebx push ebp push esi xor ebx,ebx xor ebp,ebp push edi xor esi,esi lea ecx,[eax+68h] L00024FD1: mov edx,[ecx] mov eax,[ecx+20h] imul eax,edx lea edi,[eax+ebx] cmp [esp+18h],edi jc L00024FEF add ebp,edx inc esi add ecx,00000004h cmp esi,00000008h mov ebx,edi jc L00024FD1 L00024FEF: mov eax,[esp+18h] mov ecx,[esp+14h] sub eax,ebx xor edx,edx div [ecx+esi*4+00000088h] pop edi pop esi add eax,ebp pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00025010: sub esp,00000014h push ebx push esi mov esi,[esp+20h] mov eax,[esi+000000ACh] test eax,eax jz L0002517F mov ebx,[esp+28h] test ebx,ebx jz L0002517F mov eax,[esi+000000A8h] test eax,eax jz L0002517F push ebp push edi lea edi,[00000000h+ebx*4] push edi push 00000001h mov [esp+24h],edi call OsAllocMem push edi push 00000001h mov [esp+30h],eax call OsAllocMem mov [esp+10h],eax mov eax,[esi+000000A8h] shl eax,02h push eax push 00000001h call OsAllocMem mov ecx,[esi+000000A8h] shl ecx,02h push ecx mov edi,eax push 00000001h mov [esp+28h],edi call OsAllocMem test ebx,ebx mov ebp,eax jbe L000250D3 mov ebx,[esp+28h] mov eax,[esp+2Ch] mov edx,[esp+30h] mov ecx,ebx sub eax,ecx mov [esp+18h],eax mov [esp+14h],edx jmp L000250B2 L000250AE: mov eax,[esp+18h] L000250B2: mov eax,[eax+ebx] push eax push esi call SUB_L00024FC0 inc [edi+eax*4] mov [ebx],eax mov eax,[esp+14h] add ebx,00000004h dec eax mov [esp+14h],eax jnz L000250AE mov ebx,[esp+30h] L000250D3: mov dword ptr [ebp+00h],00000000h mov eax,[esi+000000A8h] mov edx,00000001h cmp eax,edx jbe L0002510E mov ebx,ebp lea ecx,[ebp+04h] mov eax,edi sub ebx,edi L000250F2: mov edi,[ebx+eax] add edi,[eax] inc edx mov [ecx],edi mov edi,[esi+000000A8h] add eax,00000004h add ecx,00000004h cmp edx,edi jc L000250F2 mov ebx,[esp+30h] L0002510E: test ebx,ebx jbe L0002513F mov eax,[esp+28h] mov edx,[esp+2Ch] sub edx,eax L0002511C: mov ecx,[eax] mov ecx,[ebp+ecx*4+00h] mov esi,[eax+edx] mov edi,[esp+10h] mov [edi+ecx*4],esi mov ecx,[eax] mov edi,[ebp+ecx*4+00h] lea ecx,[ebp+ecx*4+00h] inc edi add eax,00000004h dec ebx mov [ecx],edi jnz L0002511C L0002513F: mov ecx,[esp+1Ch] mov esi,[esp+10h] mov edi,[esp+2Ch] mov eax,[esp+28h] mov edx,ecx shr ecx,02h rep movsd mov ecx,edx and ecx,00000003h push eax rep movsb call OsFreeMem mov ecx,[esp+10h] push ecx call OsFreeMem mov edx,[esp+20h] push edx call OsFreeMem push ebp call OsFreeMem pop edi pop ebp L0002517F: pop esi pop ebx add esp,00000014h retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00025190: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] push esi mov esi,[ebp+08h] mov eax,[esi+000000ACh] push edi mov [esp+2Ch],esi mov [esp+38h],eax mov ecx,[ebp+18h] mov edx,[esp+4Ch] mov [esp+30h],ecx mov [ebp+20h],edx mov eax,[esi+28h] cmp eax,00000010h jz L000251D9 cmp eax,00000020h jz L000251D9 mov edi,[esp+40h] mov dword ptr [esp+10h],00000000h mov [esp+1Ch],edi jmp L0002522F L000251D9: mov ebx,[esp+40h] push ebx call SUB_L000248A0 cmp ebx,00001000h mov edi,eax mov [esp+1Ch],edi ja L00025227 mov ebx,[esp+44h] test bl,0Fh mov dword ptr [esp+10h],00000001h jz L0002520C add ebx,0000000Fh and ebx,FFFFFFF0h mov [esp+44h],ebx L0002520C: mov eax,[esp+40h] add eax,000000FFh shr eax,08h mov [esp+14h],eax mov eax,ebx shr eax,04h mov [esp+18h],eax jmp L00025233 L00025227: mov dword ptr [esp+10h],00000000h L0002522F: mov ebx,[esp+44h] L00025233: push edi push ebp call SUB_L00025C90 mov eax,edi imul eax,ebx add eax,00000FFFh and eax,FFFFF000h mov [esp+20h],eax mov ecx,[esp+38h] mov eax,[ecx+40h] test eax,eax jnz L000257C4 mov edx,[esp+4Ch] mov eax,[esp+48h] push 00004000h push edx push eax push ebp call SUB_L00028D60 test eax,eax jnz L0002527F pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L0002527F: push ebp call SUB_L00028740 push 80001000h push eax push ebp mov [esp+58h],eax call SUB_L00028DB0 mov ecx,[esp+38h] mov [ecx+00000234h],ax mov edx,[esp+38h] cmp word ptr [edx+00000234h],0000h jnz L000252C7 mov eax,[esp+38h] pop edi pop esi pop ebp mov word ptr [eax+00000234h],FFFFh xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L000252C7: mov edi,[esp+54h] mov ecx,[esp+4Ch] push edi push ecx mov edx,[esp+40h] xor eax,eax mov ax,[edx+00000234h] push eax push ebp call SUB_L000288F0 test eax,eax jnz L000252F3 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L000252F3: mov eax,[esp+40h] mov [edi+20h],ebx mov ecx,[esi+28h] shr ecx,03h xor edx,edx div ecx mov [edi+1Ch],eax mov edi,[ebp+30h] test edi,edi jz L00025319 mov [esp+48h],edi mov eax,85000100h jmp L00025337 L00025319: cmp dword ptr [ebp+34h],01000000h sbb edi,edi and edi,FFD00000h add edi,00400000h mov eax,81000100h mov [esp+48h],edi L00025337: push eax push edi push ebp call SUB_L00028DB0 mov edx,[esp+38h] mov [edx+00000236h],ax mov eax,[esp+38h] cmp word ptr [eax+00000236h],0000h jnz L00025371 mov ecx,[esp+38h] pop edi pop esi pop ebp mov word ptr [ecx+00000236h],FFFFh xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L00025371: push 00000004h push 00000001h call OsAllocMem mov esi,eax test esi,esi jnz L0002538A pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L0002538A: push 00000001h push esi push 00000001h push ebp call SUB_L00029030 mov edx,[esp+38h] mov [edx+000002E8h],eax mov eax,[esp+38h] mov ecx,[eax+000002E8h] test ecx,ecx jnz L000253BF push esi call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L000253BF: mov ecx,[esi] or ecx,00000001h mov edx,[esp+38h] push esi mov [edx+000002E4h],ecx call OsFreeMem xor eax,eax L000253D6: mov ecx,[ebp+10h] mov edx,[esp+38h] mov edx,[edx+000002E4h] mov [ecx+eax],edx add eax,00000004h cmp eax,00010000h jc L000253D6 mov eax,[ebp+30h] test eax,eax jz L0002543A mov ecx,[esp+38h] xor eax,eax mov ax,[ecx+00000236h] lea edx,[eax+eax*8] mov eax,[esp+38h] mov edx,[eax+edx*8+000002ECh] mov ecx,edi shr edx,0Ch shr ecx,0Ch mov eax,00000000h jz L0002543A shl edx,02h L00025424: mov esi,eax shl esi,0Ch or esi,00000003h mov edi,[ebp+10h] mov [edi+edx],esi inc eax add edx,00000004h cmp eax,ecx jc L00025424 L0002543A: mov ebx,[esp+4Ch] mov ecx,[esp+54h] mov edi,[ecx+04h] shr ebx,0Ch lea edx,[00000000h+ebx*4] push edx push 00000001h shr edi,0Ch call OsAllocMem mov esi,eax test esi,esi jnz L00025494 mov eax,[esp+38h] xor ecx,ecx mov cx,[eax+00000234h] push ecx push ebp call SUB_L00028F30 mov edx,[esp+38h] mov word ptr [edx+00000234h],FFFFh mov eax,[esp+38h] pop edi mov [eax+70h],esi pop esi pop ebp xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L00025494: mov ecx,[esp+38h] push 00000001h push esi push ebx push ebp mov [ecx+70h],esi call SUB_L00029030 test eax,eax mov edx,[esp+54h] mov [edx+24h],eax jnz L000254EE mov eax,[esp+38h] xor ecx,ecx mov cx,[eax+00000234h] push ecx push ebp call SUB_L00028F30 mov edx,[esp+38h] push esi mov word ptr [edx+00000234h],FFFFh call OsFreeMem mov eax,[esp+38h] pop edi pop esi pop ebp mov dword ptr [eax+70h],00000000h xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L000254EE: mov ecx,[esp+38h] xor eax,eax mov ax,[ecx+00000234h] lea edx,[eax+eax*8] mov eax,[esp+38h] mov ecx,[eax+edx*8+000002F8h] shr ecx,0Ch jz L00025529 lea eax,[00000000h+edi*4] L00025515: mov edx,[esi] or edx,00000001h mov edi,[ebp+10h] mov [edi+eax],edx add esi,00000004h add eax,00000004h dec ecx jnz L00025515 L00025529: mov eax,[ebp+30h] test eax,eax jnz L00025617 mov esi,[esp+48h] shr esi,0Ch mov ecx,[esp+38h] xor eax,eax mov ax,[ecx+00000236h] lea edx,[eax+eax*8] mov eax,[esp+38h] mov ebx,[eax+edx*8+000002ECh] lea ecx,[00000000h+esi*4] push ecx push 00000001h shr ebx,0Ch call OsAllocMem mov edi,eax test edi,edi jnz L00025599 mov edx,[esp+38h] mov ax,[edx+00000236h] push eax push ebp call SUB_L00028F30 mov ecx,[esp+38h] pop edi pop esi pop ebp mov word ptr [ecx+00000236h],FFFFh xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L00025599: push 00000001h push edi push esi push ebp call SUB_L00029030 mov edx,[esp+38h] xor ecx,ecx mov cx,[edx+00000236h] lea ecx,[ecx+ecx*8] mov edx,[esp+38h] mov [edx+ecx*8+0000032Ch],eax mov ecx,[esp+38h] xor eax,eax mov ax,[ecx+00000236h] lea edx,[eax+eax*8] mov eax,[esp+38h] mov ecx,[eax+edx*8+0000032Ch] test ecx,ecx jz L00025674 mov eax,[ebp+64h] test eax,eax jz L000255F0 push esi push edi push ebp call SUB_L00025010 L000255F0: test esi,esi jbe L00025611 lea ecx,[00000000h+ebx*4] mov eax,edi L000255FD: mov edx,[eax] or edx,00000001h mov ebx,[ebp+10h] mov [ebx+ecx],edx add eax,00000004h add ecx,00000004h dec esi jnz L000255FD L00025611: push edi call OsFreeMem L00025617: mov eax,[ebp+2Ch] mov esi,[esp+54h] mov [esi+34h],eax mov edi,[esp+38h] push 80000000h push 00221000h add edi,0000025Ch mov ecx,00000011h push ebp rep movsd call SUB_L00028DB0 mov ecx,[esp+38h] mov [ecx+00000252h],ax mov edx,[esp+38h] cmp word ptr [edx+00000252h],0000h jnz L000256A7 mov eax,[esp+38h] pop edi pop esi pop ebp mov word ptr [eax+00000252h],FFFFh xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L00025674: mov eax,[esp+38h] xor ecx,ecx mov cx,[eax+00000236h] push ecx push ebp call SUB_L00028F30 mov edx,[esp+38h] push edi mov word ptr [edx+00000236h],FFFFh call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L000256A7: mov ecx,[esp+38h] xor eax,eax mov ax,[ecx+00000252h] lea edx,[eax+eax*8] mov eax,[esp+38h] mov edi,[eax+edx*8+000002ECh] push 00000884h push 00000001h shr edi,0Ch call OsAllocMem mov esi,eax test esi,esi jnz L00025704 mov ecx,[esp+38h] xor edx,edx mov dx,[ecx+00000252h] push edx push ebp call SUB_L00028F30 mov eax,[esp+38h] pop edi pop esi pop ebp mov word ptr [eax+00000252h],FFFFh xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L00025704: push 00000001h push esi push 00000221h push ebp call SUB_L00029030 mov edx,[esp+38h] xor ecx,ecx mov cx,[edx+00000252h] lea ecx,[ecx+ecx*8] mov edx,[esp+38h] mov [edx+ecx*8+0000032Ch],eax mov ecx,[esp+38h] xor eax,eax mov ax,[ecx+00000252h] lea edx,[eax+eax*8] mov eax,[esp+38h] mov ecx,[eax+edx*8+0000032Ch] test ecx,ecx jz L00025791 mov eax,[ebp+64h] test eax,eax jz L0002575F push 00000221h push esi push ebp call SUB_L00025010 L0002575F: lea ecx,[00000000h+edi*4] mov eax,esi mov edx,00000221h L0002576D: mov ebx,[eax] mov edi,[ebp+000000B0h] or edi,ebx or edi,00000001h mov ebx,[ebp+10h] mov [ebx+ecx],edi add eax,00000004h add ecx,00000004h dec edx jnz L0002576D push esi call OsFreeMem jmp L000257D9 L00025791: mov ecx,[esp+38h] xor edx,edx mov dx,[ecx+00000258h] push edx push ebp call SUB_L00028F30 mov eax,[esp+38h] push esi mov word ptr [eax+00000258h],FFFFh call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L000257C4: mov esi,[esp+38h] mov edi,[esp+54h] add esi,0000025Ch mov ecx,00000011h rep movsd L000257D9: mov eax,[esp+10h] test eax,eax jz L000257F9 mov eax,[esp+1Ch] mov esi,[esp+18h] mov edi,[esp+14h] shr eax,07h imul esi,edi mov [esp+24h],eax jmp L00025804 L000257F9: mov esi,[esp+20h] mov edi,[esp+14h] shr esi,0Ch L00025804: mov ecx,[esp+38h] mov eax,[ecx+70h] test eax,eax mov [esp+48h],eax jnz L0002581F L00025813: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ L0002581F: mov edx,[esp+38h] mov ebx,[edx+00000260h] shr ebx,0Ch push ebp mov [esp+2Ch],ebx call SUB_L00028740 shr eax,0Ch jz L00025864 lea ecx,[00000000h+ebx*4] mov [esp+4Ch],eax L00025846: mov eax,[ebp+10h] mov edx,[esp+38h] mov edx,[edx+000002E4h] mov [eax+ecx],edx mov eax,[esp+4Ch] add ecx,00000004h dec eax mov [esp+4Ch],eax jnz L00025846 L00025864: mov eax,[esp+10h] test eax,eax jz L000258CA mov eax,[esp+18h] xor esi,esi test eax,eax jbe L000258ED mov ecx,[esp+48h] mov [esp+4Ch],ecx L0002587E: test edi,edi jbe L000258AE mov eax,[esp+24h] shr eax,1 imul eax,esi add eax,ebx shl eax,02h mov edx,edi L00025892: mov edi,[ecx] or edi,00000001h mov ebx,[ebp+10h] mov [ebx+eax],edi add ecx,00000004h add eax,00000004h dec edx jnz L00025892 mov edi,[esp+14h] mov ebx,[esp+28h] L000258AE: mov ecx,[esp+4Ch] lea eax,[00000000h+edi*4] add ecx,eax mov eax,[esp+18h] inc esi cmp esi,eax mov [esp+4Ch],ecx jc L0002587E jmp L000258ED L000258CA: test esi,esi jbe L000258ED mov eax,[esp+48h] lea ecx,[00000000h+ebx*4] L000258D9: mov edx,[eax] or edx,00000001h mov edi,[ebp+10h] mov [edi+ecx],edx add eax,00000004h add ecx,00000004h dec esi jnz L000258D9 L000258ED: mov ecx,[esp+38h] mov eax,[esp+20h] mov [ecx+0000026Ch],eax mov edx,[esp+38h] mov ecx,[esp+1Ch] mov [edx+00000268h],ecx mov edx,[esp+54h] mov [ebp+48h],ecx mov [ebp+4Ch],eax mov [edx+0Ch],ecx mov ecx,[esp+10h] test ecx,ecx mov [edx+10h],eax jz L000259D7 cmp eax,00400000h mov ecx,[edx+04h] ja L00025937 or ecx,00000300h jmp L0002594C L00025937: cmp eax,00800000h ja L00025946 or ecx,00000400h jmp L0002594C L00025946: or ecx,00000500h L0002594C: mov eax,[esp+24h] cmp eax,00000004h jnz L0002595A or ecx,00000020h jmp L0002597A L0002595A: cmp eax,00000008h jnz L00025964 or ecx,00000030h jmp L0002597A L00025964: cmp eax,00000010h jnz L0002596E or ecx,00000040h jmp L0002597A L0002596E: cmp eax,00000020h jnz L00025813 or ecx,00000050h L0002597A: mov edi,[esp+2Ch] mov eax,[edi+10h] mov esi,[edi+28h] and eax,FFFFFF00h cmp eax,00010300h jnz L000259CE cmp esi,00000010h jnz L000259CE cmp dword ptr [esp+44h],00000190h jc L000259CE mov edx,[esp+40h] lea eax,[00000000h+edx*8] xor edx,edx div esi mov edx,[edi+6Ch] shl edx,03h shl eax,04h cmp eax,edx ja L000259CE mov eax,[edi+64h] test eax,eax jz L000259CE mov eax,00001000h or eax,00000001h or ecx,eax jmp L000259D9 L000259CE: xor eax,eax or eax,00000001h or ecx,eax jmp L000259D9 L000259D7: xor ecx,ecx L000259D9: mov eax,[esp+38h] mov edx,[esp+30h] pop edi pop esi mov [eax+00000214h],ecx pop ebp mov [edx],ecx mov eax,00000001h pop ebx add esp,00000024h retn 0020h ;------------------------------------------------------------------------------ Align 16 SUB_L00025A00: mov edx,[esp+08h] push edi mov edi,[esp+08h] mov ecx,[edi+08h] mov ecx,[ecx+000000ACh] and edx,03021000h xor eax,eax test edx,L00020000 jz L00025A27 mov eax,[edi+34h] jmp L00025A49 L00025A27: test edx,01001000h jz L00025A49 push esi add ecx,00000340h mov esi,00000010h L00025A3B: test [ecx+08h],edx jz L00025A42 add eax,[ecx] L00025A42: add ecx,00000048h dec esi jnz L00025A3B pop esi L00025A49: test edx,02000000h jz L00025A60 mov eax,[edi+34h] cmp eax,02000000h jbe L00025A60 mov eax,02000000h L00025A60: pop edi retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00025A70: mov edx,[esp+08h] push ebx mov ebx,[esp+08h] mov ecx,[ebx+08h] push ebp push esi and edx,03021000h xor eax,eax test edx,L00020000 push edi mov edi,[ecx+000000ACh] jz L00025AA5 mov ecx,[edi+4Ch] mov eax,[ebx+34h] cmp ecx,eax jc L00025AA3 xor eax,eax jmp L00025AA5 L00025AA3: sub eax,ecx L00025AA5: test edx,01001000h jz L00025AC5 lea ecx,[edi+000002FCh] mov esi,00000011h L00025AB8: test [ecx+04h],edx jz L00025ABF add eax,[ecx] L00025ABF: add ecx,00000048h dec esi jnz L00025AB8 L00025AC5: mov esi,02000000h test esi,edx jz L00025B04 xor ecx,ecx lea eax,[edi+00000344h] mov edx,00000010h L00025ADB: test [eax+04h],esi jz L00025AE7 mov ebp,[eax-04h] sub ebp,[eax] add ecx,ebp L00025AE7: add eax,00000048h dec edx jnz L00025ADB mov esi,[edi+4Ch] mov eax,[ebx+34h] sub ecx,esi cmp ecx,eax jc L00025B02 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0008h ;------------------------------------------------------------------------------ L00025B02: sub eax,ecx L00025B04: pop edi pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00025B10: push ebx mov ebx,[esp+10h] push ebp push esi push edi mov edi,[esp+14h] mov eax,[edi+08h] mov ebp,[eax+000000ACh] xor esi,esi L00025B27: cmp word ptr [ebp+esi*2+00000238h],FFFFh jnz L00025B5A test esi,esi mov eax,02000100h jnz L00025B41 mov eax,82000100h L00025B41: push eax push 00400000h push edi call SUB_L00028DB0 test ax,ax mov [ebp+esi*2+00000238h],ax jz L00025BB7 L00025B5A: xor ecx,ecx mov cx,[ebp+esi*2+00000238h] push ebx push 00004000h push ecx push edi call SUB_L000288F0 test eax,eax jnz L00025B7B inc esi cmp esi,0000000Ch jc L00025B27 L00025B7B: cmp esi,0000000Ch jz L00025C81 mov ebp,[ebx+04h] push 00000010h push 00000001h shr ebp,0Ch call OsAllocMem mov esi,eax test esi,esi jnz L00025BCA mov edx,[ebx+10h] mov eax,[ebx+3Ch] xor ecx,ecx mov cx,[ebx+2Eh] push edx push eax push ecx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx retn 000Ch ;------------------------------------------------------------------------------ L00025BB7: pop edi mov word ptr [ebp+esi*2+00000238h],FFFFh pop esi pop ebp xor eax,eax pop ebx retn 000Ch ;------------------------------------------------------------------------------ L00025BCA: push 00000002h push esi push 00000004h push edi call SUB_L00029030 test eax,eax mov [ebx+24h],eax jz L00025C66 mov eax,[edi+64h] test eax,eax jz L00025BF0 push 00000004h push esi push edi call SUB_L00025010 L00025BF0: lea ecx,[00000000h+ebp*4] mov eax,esi mov dword ptr [esp+14h],00000004h L00025C01: mov edx,[eax] or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+14h] add eax,00000004h add ecx,00000004h dec edx mov [esp+14h],edx jnz L00025C01 mov eax,[edi+2Ch] mov [ebx+34h],eax mov ecx,[esi] mov [ebx+08h],ecx mov dword ptr [ebx+0Ch],00000000h mov dword ptr [ebx+10h],00004000h mov dword ptr [ebx+18h],02100100h mov edx,[edi+2Ch] push esi mov [ebx+34h],edx call OsFreeMem mov eax,[ebx+18h] or eax,00100000h pop edi mov [ebx+18h],eax mov eax,[ebx+08h] pop esi mov [ebx+04h],eax pop ebp mov eax,00000001h pop ebx retn 000Ch ;------------------------------------------------------------------------------ L00025C66: mov eax,[ebx+10h] mov ecx,[ebx+3Ch] xor edx,edx mov dx,[ebx+2Eh] push eax push ecx push edx push edi call SUB_L00028A40 push esi call OsFreeMem L00025C81: pop edi pop esi pop ebp xor eax,eax pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00025C90: push ecx mov eax,[esp+0Ch] lea ecx,[esp+08h] push ecx mov ecx,[esp+0Ch] push 00000004h lea edx,[esp+08h] push edx mov edx,[ecx] push 00000004h mov [esp+1Ch],eax lea eax,[esp+1Ch] push eax push 00232404h push edx call OsDeviceIoControl mov eax,00000001h pop ecx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00025CD0: mov ecx,[esp+04h] mov eax,[esp+10h] cmp ax,0011h mov edx,[ecx+08h] mov edx,[edx+000000ACh] push ebx push ebp push esi push edi jz L00025D2C jnc L00025D2C mov esi,[esp+1Ch] mov edi,[esp+18h] L00025CF5: mov ecx,eax and ecx,0000FFFFh lea ecx,[ecx+ecx*8] mov ebx,[edx+ecx*8+000002F8h] test ebx,ebx lea ecx,[edx+ecx*8] jz L00025D25 mov ebp,[ecx+0000031Ch] mov ebx,edi shr ebx,07h cmp ebp,ebx jnz L00025D25 cmp [ecx+00000330h],esi jz L00025D30 L00025D25: inc eax cmp ax,0011h jc L00025CF5 L00025D2C: mov ax,0011h L00025D30: pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00025D40: sub esp,00000008h mov ecx,[esp+0Ch] mov eax,[ecx+08h] push ebx push ebp push edi mov edx,[ecx+18h] mov edi,[eax+000000ACh] mov eax,[eax+00000134h] mov bp,[eax+0Ch] mov ebx,00000001h cmp bp,bx mov [esp+10h],edx jbe L00025E30 push esi mov [esp+10h],ebx lea esi,[edi+00000360h] L00025D7D: mov eax,[esi-20h] test eax,eax jz L00025E19 cmp eax,[esi-1Ch] jnz L00025E19 test dword ptr [esi-18h],80000000h jnz L00025E19 xor eax,eax mov ax,[esi] cmp ax,FFFFh jz L00025DCA and eax,0000FFFFh mov dword ptr [edi+eax*4+00000214h],00000000h mov eax,[esp+14h] xor edx,edx mov dx,[esi] mov dword ptr [eax+edx*4],00000000h mov word ptr [esi],FFFFh L00025DCA: mov edx,[esi-18h] and edx,02000100h cmp edx,02000100h jnz L00025E0A mov eax,00000001h L00025DE0: mov edx,eax and edx,0000FFFFh cmp [edi+edx*2+00000238h],bx jz L00025DFB inc eax cmp ax,000Ch jc L00025DE0 jmp L00025E0A L00025DFB: and eax,0000FFFFh mov word ptr [edi+eax*2+00000238h],FFFFh L00025E0A: mov eax,[esp+10h] push eax push ecx call SUB_L00028F30 mov ecx,[esp+1Ch] L00025E19: mov eax,[esp+10h] inc ebx inc eax add esi,00000048h cmp bx,bp mov [esp+10h],eax jc L00025D7D pop esi L00025E30: pop edi pop ebp pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00025E40: sub esp,00000008h mov eax,[esp+0Ch] push ebx push ebp push esi push edi mov ecx,[eax+18h] mov edx,[eax+08h] mov ebp,[edx+000000ACh] push 02020000h push 00400000h push eax mov [esp+1Ch],ecx call SUB_L00028DB0 mov ecx,eax test cx,cx mov [esp+14h],ecx jnz L00025E84 pop edi pop esi pop ebp mov ax,0011h pop ebx add esp,00000008h retn 000Ch ;------------------------------------------------------------------------------ L00025E84: mov edx,[esp+20h] mov ebx,ecx and ebx,0000FFFFh shr edx,07h lea eax,[ebx+ebx*8] lea esi,[ebp+eax*8+00h] mov eax,[esp+24h] mov [esi+0000031Ch],edx mov [esi+00000330h],eax lea edx,[ebx+ebx*8+63h] lea edx,[ebp+edx*8+00h] mov word ptr [edx],FFFFh mov edi,[esi+000002ECh] mov eax,[esi+0000031Ch] or edi,00000300h dec eax cmp eax,0000001Fh mov [esp+20h],edx ja L00025FE0 xor ecx,ecx mov cl,[eax+CASE_0002600C] jmp [CASE_PROCTABLE_00025FF0+ecx*4] CASE_00025FF0_PROC0001: or edi,00000010h jmp CASE_00025FF0_PROC0000 CASE_00025FF0_PROC0002: or edi,00000020h jmp CASE_00025FF0_PROC0000 CASE_00025FF0_PROC0003: or edi,00000030h jmp CASE_00025FF0_PROC0000 CASE_00025FF0_PROC0004: or edi,00000040h jmp CASE_00025FF0_PROC0000 CASE_00025FF0_PROC0005: or edi,00000050h CASE_00025FF0_PROC0000: test edi,edi jz CASE_00025FF0_PROC0006 mov eax,00000001h lea ecx,[ebp+00000218h] L00025F10: cmp dword ptr [ecx],00000000h jz L00025F20 inc eax add ecx,00000004h cmp eax,00000008h jc L00025F10 jmp L00025F4C L00025F20: mov ecx,[esp+24h] or ecx,00000001h or edi,ecx mov [ebp+eax*4+00000214h],edi mov [edx],ax mov ecx,[esi+00000300h] mov edx,[esp+10h] or ecx,L00080000 mov [esi+00000300h],ecx mov [edx+eax*4],edi L00025F4C: cmp eax,00000008h jnz CASE_00025FF0_PROC0006 mov edx,[esi+00000300h] mov eax,[esp+1Ch] or edx,80000000h push eax mov [esi+00000300h],edx call SUB_L00025D40 and dword ptr [esi+00000300h],7FFFFFFFh mov eax,00000001h lea ecx,[ebp+00000218h] L00025F86: cmp dword ptr [ecx],00000000h jz L00025F96 inc eax add ecx,00000004h cmp eax,00000008h jc L00025F86 jmp L00025FBE L00025F96: mov ecx,[esp+24h] mov edx,[esp+10h] or ecx,00000001h or edi,ecx mov ecx,[esp+20h] mov [ebp+eax*4+00000214h],edi mov [ecx],ax or dword ptr [esi+00000300h],L00080000 mov [edx+eax*4],edi L00025FBE: cmp eax,00000008h jnz CASE_00025FF0_PROC0006 mov eax,[esp+1Ch] push ebx push eax call SUB_L00028F30 pop edi pop esi pop ebp mov ax,0011h pop ebx add esp,00000008h retn 000Ch ;------------------------------------------------------------------------------ CASE_00025FF0_PROC0006: mov ecx,[esp+14h] L00025FE0: pop edi pop esi pop ebp mov ax,cx pop ebx add esp,00000008h retn 000Ch ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00025FF0: dd CASE_00025FF0_PROC0000 dd CASE_00025FF0_PROC0001 dd CASE_00025FF0_PROC0002 dd CASE_00025FF0_PROC0003 dd CASE_00025FF0_PROC0004 dd CASE_00025FF0_PROC0005 dd CASE_00025FF0_PROC0006 CASE_0002600C: db 00h, 01h, 06h, 02h, 06h, 06h, 06h, 03h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 04h db 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 06h, 05h Align 8 SUB_L00026030: sub esp,0000001Ch push ebx push ebp push esi mov esi,[esp+2Ch] mov eax,[esi+08h] mov ecx,[eax+000000ACh] push edi mov edi,[esp+34h] mov eax,[edi+18h] test ah,10h jnz L0002623A test eax,L00020000 jz L00026075 test eax,L00040000 jz L0002606D mov eax,[edi+28h] test eax,eax jz L0002623A L0002606D: mov eax,[edi+14h] sub [ecx+4Ch],eax jmp L00026082 L00026075: test eax,02000000h jz L00026082 mov edx,[edi+14h] sub [ecx+48h],edx L00026082: mov dword ptr [esp+14h],00000000h mov eax,[esi+08h] mov edx,[eax+000000ACh] mov [esp+10h],edx mov eax,[esi+18h] mov cx,[edi+2Eh] mov ebx,[edi+18h] L000260A1: test bh,10h mov eax,[edi+3Ch] mov ebp,[edi+10h] mov [esp+30h],eax mov [esp+34h],ecx jnz L0002623A test bh,40h jz L000260F6 test ebx,01000000h jz L000260F6 push ebp push eax push ecx push esi call SUB_L00028A40 mov edi,[edi+24h] mov ecx,[edi+10h] mov edx,[edi+3Ch] xor eax,eax mov ax,[edi+2Eh] push ecx push edx push eax push esi call SUB_L00028A40 push edi call OsFreeMem pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ L000260F6: test ebx,08000000h jz L0002613F mov ecx,[edi] mov edx,[edi+40h] lea eax,[esp+18h] push eax mov eax,[esi] push 00000004h mov [esp+28h],ecx lea ecx,[esp+24h] push ecx push 0000000Ch mov [esp+38h],edx lea edx,[esp+30h] push edx push 002320CCh push eax mov dword ptr [esp+40h],00000001h call OsDeviceIoControl mov eax,[esp+30h] mov edx,[esp+10h] mov ecx,[esp+34h] L0002613F: test ebx,L00020000 jz L000261BC test ebx,02000000h jz L00026231 test ebx,L00040000 jz L0002615E mov ebp,[edi+28h] L0002615E: mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L00026190 shl eax,02h mov [esp+10h],ecx L00026171: mov ecx,[esi+10h] mov ebx,[esp+14h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+10h] add eax,00000004h dec ecx mov [esp+10h],ecx jnz L00026171 L00026190: mov edx,[edi+24h] push edx push esi call SUB_L00029180 mov eax,[esp+30h] mov ecx,[esp+34h] push ebp push eax push ecx push esi mov dword ptr [edi+24h],00000000h call SUB_L00028A40 pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ L000261BC: test ebx,02000000h jz L00026229 mov ecx,[edi+24h] test ecx,ecx jz L0002623A mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L000261FD shl eax,02h mov [esp+10h],ecx L000261DE: mov ecx,[esi+10h] mov ebx,[esp+14h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+10h] add eax,00000004h dec ecx mov [esp+10h],ecx jnz L000261DE L000261FD: mov edx,[edi+24h] push edx push esi call SUB_L00029180 mov eax,[esp+30h] mov ecx,[esp+34h] push ebp push eax push ecx push esi mov dword ptr [edi+24h],00000000h call SUB_L00028A40 pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ L00026229: test ebx,01000000h jz L0002623A L00026231: push ebp push eax push ecx push esi call SUB_L00028A40 L0002623A: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00026250: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+08h] mov edx,[eax+000000ACh] mov eax,[esp+40h] test ah,10h mov [esp+1Ch],edx jz L00026291 mov edi,[esp+48h] lea esi,[edx+0000025Ch] mov ecx,00000011h rep movsd pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00026291: mov esi,[esp+48h] mov ecx,eax and ecx,02000000h mov [esp+14h],ecx jz L000262CF test eax,80000000h jnz L000262CF mov ecx,[edx+48h] mov ebx,[esp+44h] mov edx,[edi+34h] add ecx,ebx cmp ecx,edx jbe L000262DA pop edi mov edx,esi pop esi pop ebp mov dword ptr [edx+14h],00000000h xor eax,eax pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000262CF: mov ebx,[esp+44h] mov dword ptr [esi+14h],00000000h L000262DA: mov ecx,[edi+08h] mov ebp,[ecx+000000ACh] mov ecx,eax mov edx,eax and ecx,80000000h mov [esp+48h],edx mov [esp+18h],ecx jz L00026320 test ah,04h mov cx,[ebp+00000252h] jnz L0002630A test eax,00800000h jz L00026320 L0002630A: push esi push ebx push ecx push edi call SUB_L000288F0 test eax,eax jz L000265CA jmp L0002656C L00026320: test eax,40000000h jz L00026337 and eax,FEFFFFFFh or eax,02000000h mov [esp+48h],eax mov edx,eax L00026337: test edx,01000000h jz L0002635E xor edx,edx mov dx,[ebp+00000236h] push esi push ebx push edx push edi call SUB_L000288F0 test eax,eax jz L000265CA jmp L0002656C L0002635E: test edx,02000000h jz L0002656C lea eax,[ebx+00000FFFh] shr eax,0Ch mov [esp+40h],eax shl eax,0Ch mov [esp+3Ch],eax xor ebx,ebx jmp L00026386 L00026382: mov eax,[esp+3Ch] L00026386: cmp word ptr [ebp+ebx*2+00000238h],FFFFh jnz L000263C3 add eax,003FFFFFh and eax,FFC00000h test ebx,ebx mov ecx,02000100h jnz L000263AA mov ecx,82000100h L000263AA: push ecx push eax push edi call SUB_L00028DB0 test ax,ax mov [ebp+ebx*2+00000238h],ax jz L00026430 mov eax,[esp+3Ch] L000263C3: push esi push eax xor eax,eax mov ax,[ebp+ebx*2+00000238h] push eax push edi call SUB_L000288F0 test eax,eax jnz L000263E0 inc ebx cmp ebx,0000000Ch jc L00026382 L000263E0: cmp ebx,0000000Ch jz L000265CA mov ebp,[esp+40h] mov eax,[esi+04h] lea ecx,[00000000h+ebp*4] push ecx shr eax,0Ch push 00000001h mov [esp+18h],eax call OsAllocMem mov ebx,eax test ebx,ebx jnz L0002644D mov edx,[esi+10h] mov eax,[esi+3Ch] xor ecx,ecx mov cx,[esi+2Eh] push edx push eax push ecx push edi call SUB_L00028A40 pop edi mov [esi+14h],ebx pop esi pop ebp xor eax,eax pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00026430: mov word ptr [ebp+ebx*2+00000238h],FFFFh pop edi mov dword ptr [esi+14h],00000000h pop esi pop ebp xor eax,eax pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0002644D: test dword ptr [esp+48h],00100000h jz L0002645B push 00000002h jmp L0002645D L0002645B: push 00000001h L0002645D: push ebx push ebp push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L000265AF mov eax,[edi+64h] test eax,eax jz L0002647F push ebp push ebx push edi call SUB_L00025010 L0002647F: mov eax,[esp+48h] test ah,0Ch jz L00026494 mov edx,[edi+000000B0h] mov [esp+40h],edx jmp L0002649C L00026494: mov dword ptr [esp+40h],00000000h L0002649C: test ebp,ebp jbe L000264D3 mov eax,[esp+10h] lea ecx,[00000000h+eax*4] mov eax,ebx mov [esp+10h],ebp L000264B1: mov ebp,[eax] mov edx,[esp+40h] or edx,ebp or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+10h] add eax,00000004h add ecx,00000004h dec edx mov [esp+10h],edx jnz L000264B1 L000264D3: mov eax,[edi+2Ch] mov edx,[esp+3Ch] mov [esi+34h],eax mov ecx,[ebx] mov eax,[esp+48h] or eax,02000100h mov [esi+08h],ecx mov dword ptr [esi+0Ch],00000000h mov [esi+10h],edx mov [esi+18h],eax mov ecx,[edi+2Ch] push ebx mov [esi+34h],ecx call OsFreeMem mov eax,[esp+48h] mov ebx,08000000h test ebx,eax jz L00026568 mov edx,[esi+04h] mov eax,[esi+10h] lea ecx,[esp+48h] push ecx mov ecx,[edi] push 0000000Ch mov [esp+28h],edx lea edx,[esp+34h] push edx push 0000000Ch mov [esp+34h],eax lea eax,[esp+30h] push eax push 002320C8h push ecx mov dword ptr [esp+44h],00000001h call OsDeviceIoControl test eax,eax jnz L00026595 mov eax,[esp+30h] test eax,eax jnz L00026595 mov eax,[esi+18h] mov edx,[esp+2Ch] or eax,ebx mov [esi+18h],eax mov eax,[esp+34h] mov [esi],edx mov [esi+40h],eax L00026568: mov ebx,[esp+44h] L0002656C: mov eax,[esp+14h] test eax,eax jz L00026586 mov eax,[esp+18h] test eax,eax jnz L00026586 mov eax,[esp+1Ch] mov [esi+14h],ebx add [eax+48h],ebx L00026586: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00026595: push esi push edi call SUB_L000265E0 pop edi mov dword ptr [esi+14h],00000000h pop esi pop ebp xor eax,eax pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000265AF: mov ecx,[esi+10h] mov edx,[esi+3Ch] xor eax,eax mov ax,[esi+2Eh] push ecx push edx push eax push edi call SUB_L00028A40 push ebx call OsFreeMem L000265CA: pop edi mov dword ptr [esi+14h],00000000h pop esi pop ebp xor eax,eax pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L000265E0: sub esp,0000001Ch push ebx push ebp push esi push edi mov dword ptr [esp+14h],00000000h mov esi,[esp+30h] mov eax,[esi+08h] mov edx,[eax+000000ACh] mov [esp+10h],edx mov eax,[esi+18h] mov edi,[esp+34h] mov cx,[edi+2Eh] mov ebx,[edi+18h] test bh,10h mov eax,[edi+3Ch] mov ebp,[edi+10h] mov [esp+30h],eax mov [esp+34h],ecx jnz L000267A7 test bh,40h jz L00026663 test ebx,01000000h jz L00026663 push ebp push eax push ecx push esi call SUB_L00028A40 mov edi,[edi+24h] mov ecx,[edi+10h] mov edx,[edi+3Ch] xor eax,eax mov ax,[edi+2Eh] push ecx push edx push eax push esi call SUB_L00028A40 push edi call OsFreeMem pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ L00026663: test ebx,08000000h jz L000266AC mov ecx,[edi] mov edx,[edi+40h] lea eax,[esp+18h] push eax mov eax,[esi] push 00000004h mov [esp+28h],ecx lea ecx,[esp+24h] push ecx push 0000000Ch mov [esp+38h],edx lea edx,[esp+30h] push edx push 002320CCh push eax mov dword ptr [esp+40h],00000001h call OsDeviceIoControl mov ecx,[esp+34h] mov eax,[esp+30h] mov edx,[esp+10h] L000266AC: test ebx,L00020000 jz L00026729 test ebx,02000000h jz L0002679E test ebx,L00040000 jz L000266CB mov ebp,[edi+28h] L000266CB: mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L000266FD shl eax,02h mov [esp+10h],ecx L000266DE: mov ecx,[esi+10h] mov ebx,[esp+14h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+10h] add eax,00000004h dec ecx mov [esp+10h],ecx jnz L000266DE L000266FD: mov edx,[edi+24h] push edx push esi call SUB_L00029180 mov eax,[esp+30h] mov ecx,[esp+34h] push ebp push eax push ecx push esi mov dword ptr [edi+24h],00000000h call SUB_L00028A40 pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ L00026729: test ebx,02000000h jz L00026796 mov ecx,[edi+24h] test ecx,ecx jz L000267A7 mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L0002676A shl eax,02h mov [esp+10h],ecx L0002674B: mov ecx,[esi+10h] mov ebx,[esp+14h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+10h] add eax,00000004h dec ecx mov [esp+10h],ecx jnz L0002674B L0002676A: mov edx,[edi+24h] push edx push esi call SUB_L00029180 mov eax,[esp+30h] mov ecx,[esp+34h] push ebp push eax push ecx push esi mov dword ptr [edi+24h],00000000h call SUB_L00028A40 pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ L00026796: test ebx,01000000h jz L000267A7 L0002679E: push ebp push eax push ecx push esi call SUB_L00028A40 L000267A7: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000267C0: mov eax,[esp+04h] mov ecx,[eax+08h] push ebx push ebp push esi push edi mov edi,[ecx+000000ACh] mov ecx,[esp+18h] xor esi,esi test ch,10h jz L000267F9 lea esi,[edi+0000025Ch] mov edi,[esp+28h] mov ecx,00000011h rep movsd pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ L000267F9: mov edx,[esp+20h] mov ebx,[esp+1Ch] test ecx,02000000h mov ecx,[esp+24h] jz L00026836 mov ebp,[edi+48h] mov esi,ecx shr esi,03h imul esi,ebx imul esi,edx add ebp,esi cmp ebp,[eax+34h] jbe L00026836 mov edx,[esp+28h] pop edi pop esi pop ebp mov dword ptr [edx+14h],00000000h xor eax,eax pop ebx retn 0018h ;------------------------------------------------------------------------------ L00026836: mov ebp,[esp+28h] push ebp push ecx mov ecx,[esp+20h] push edx push ebx push ecx push eax call SUB_L00026870 test eax,eax jnz L00026857 pop edi pop esi mov [ebp+14h],eax pop ebp pop ebx retn 0018h ;------------------------------------------------------------------------------ L00026857: mov [ebp+14h],esi add [edi+48h],esi pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ Align 8 SUB_L00026870: sub esp,00000040h push ebx push ebp push esi push edi mov edi,[esp+54h] mov ecx,[edi+08h] mov edx,[ecx+000000ACh] xor ebp,ebp mov [esp+10h],ebp mov dword ptr [esp+20h],00000001h mov [esp+28h],ecx mov [esp+1Ch],edx mov eax,[edi+18h] mov ebx,[esp+64h] mov esi,[esp+58h] lea eax,[ebx+01h] shr eax,03h test esi,00280000h mov esi,[esp+60h] mov [esp+24h],eax jz L000268C1 add esi,0000000Fh and esi,FFFFFFF0h L000268C1: mov [esp+18h],esi mov esi,[esp+5Ch] imul eax,esi cmp eax,00001000h mov [esp+14h],eax ja L0002755F mov eax,[esp+58h] test ah,10h jz L00026904 mov edi,[esp+68h] lea esi,[edx+0000025Ch] mov ecx,00000011h rep movsd pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00026904: mov edx,[ecx+10h] and edx,FFFFFF00h cmp edx,00010300h jnz L0002695F cmp ebx,00000010h jnz L0002695F mov edx,eax and edx,20002010h cmp edx,20000000h jnz L00026934 mov dword ptr [esp+54h],00001000h jmp L00026967 L00026934: test ah,30h jz L0002695F cmp dword ptr [esp+60h],00000190h jc L0002695F mov eax,[ecx+6Ch] shl eax,03h shl esi,04h cmp esi,eax ja L0002695F mov eax,[ecx+64h] test eax,eax mov dword ptr [esp+54h],00001000h jnz L00026967 L0002695F: mov dword ptr [esp+54h],00000000h L00026967: mov eax,[esp+58h] test ah,40h mov esi,[esp+68h] jz L00026A92 mov eax,[edi+30h] test eax,eax jbe L00026A92 mov ebx,[esp+14h] cmp ebx,00000200h mov [esp+60h],ebx ja L0002699A mov ebx,00000200h jmp L000269D4 L0002699A: cmp ebx,00000400h ja L000269A9 mov ebx,00000400h jmp L000269D4 L000269A9: cmp ebx,00000800h ja L000269B8 mov ebx,00000800h jmp L000269D4 L000269B8: cmp ebx,00001000h ja L000269C7 mov ebx,00001000h jmp L000269D4 L000269C7: cmp ebx,00002000h ja L000269D8 mov ebx,00002000h L000269D4: mov [esp+60h],ebx L000269D8: mov eax,ebx shl eax,04h cmp eax,00001000h mov [esp+10h],eax jnc L000269F1 mov eax,00001000h mov [esp+10h],eax L000269F1: imul ebx,[esp+18h] cmp ebx,00400000h jz L00026A00 add ebx,eax L00026A00: mov ecx,[esp+54h] mov edx,[esp+60h] push ebp push ecx push edx push edi call SUB_L00025CD0 mov ebp,eax cmp bp,0011h jz L00026A29 push esi push ebx push ebp push edi call SUB_L000288F0 test eax,eax jnz L00026A4E inc ebp jmp L00026A00 L00026A29: mov eax,[esp+54h] mov ecx,[esp+60h] push eax push ecx push edi call SUB_L00025E40 mov ebp,eax cmp bp,0011h jz L00026A92 push esi push ebx push ebp push edi call SUB_L000288F0 test eax,eax jz L00026A8D L00026A4E: cmp bp,0011h mov dword ptr [esp+20h],00000000h jz L00026A92 cmp ebx,00400000h jz L00026B0C mov eax,[esp+10h] mov edx,[esi+04h] lea ecx,[eax-01h] test ecx,edx jz L00026AF2 lea eax,[edx+eax-01h] not ecx and eax,ecx mov ecx,[esi] sub eax,edx add ecx,eax add edx,eax mov [esi],ecx mov [esi+04h],edx jmp L00026B0C L00026A8D: mov ebp,00000011h L00026A92: mov ecx,[esp+58h] mov eax,ecx and eax,20080000h cmp eax,20080000h jz L00026AA9 test ch,20h jz L00026AB9 L00026AA9: and ecx,FEFFFFFFh or ecx,02000000h mov [esp+58h],ecx L00026AB9: test ecx,01000000h jz L00026E8C mov edx,[esp+1Ch] mov ax,[edx+00000236h] mov [esp+54h],ax cmp dword ptr [esp+64h],0000000Ch jnz L00026BC9 mov eax,[esp+5Ch] lea eax,[eax+eax*2] shl eax,02h shr eax,03h jmp L00026BF3 L00026AF2: mov eax,[esp+10h] mov ebx,[esi+10h] mov edx,[esi+3Ch] sub ebx,eax push eax add edx,ebx push edx push ebp push edi mov [esi+10h],ebx call SUB_L00028A40 L00026B0C: push 00000044h push 00000001h call OsAllocMem test eax,eax mov [esp+68h],eax jz L00026A92 mov edx,[esp+68h] mov ecx,[edi+08h] mov ecx,[ecx+000000ACh] push edx lea eax,[ebx+00001000h] push eax xor eax,eax mov ax,[ecx+00000236h] push eax push edi call SUB_L000288F0 test eax,eax jz L00026A92 mov ecx,[esp+68h] mov edx,[esp+1Ch] xor eax,eax mov [esi+24h],ecx mov ax,[edx+00000236h] lea ebp,[eax+eax*8] mov eax,[ecx+04h] mov ecx,[edx+ebp*8+000002ECh] add eax,00000FFFh and eax,FFFFF000h sub eax,ecx mov ecx,[esi+04h] shr ecx,0Ch shr ebx,0Ch jz L00026BA1 shl ecx,02h mov edx,ebx L00026B8B: mov ebx,eax or ebx,00000003h mov ebp,[edi+10h] mov [ecx+ebp],ebx add ecx,00000004h add eax,00001000h dec edx jnz L00026B8B L00026BA1: mov edx,[esi+18h] mov ecx,[esp+60h] and edx,FDFFFEFFh pop edi or edx,01004200h mov [esi+0Ch],ecx mov [esi+18h],edx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00026BC9: cmp dword ptr [esp+24h],00000003h jnc L00026BDC mov edx,[esp+14h] lea eax,[edx+1Fh] and eax,FFFFFFE0h jmp L00026BF3 L00026BDC: mov eax,[esp+14h] lea edx,[eax+5Fh] mov eax,AAAAAAABh mul edx shr edx,06h lea eax,[edx+edx*2] shl eax,05h L00026BF3: and ecx,20000000h mov [esp+60h],eax mov [esp+68h],ecx jz L00026C29 push eax call SUB_L000248A0 mov ebx,eax shl ebx,04h cmp ebx,00001000h mov [esp+60h],eax mov [esp+10h],ebx jnc L00026C2D mov ebx,00001000h mov [esp+10h],ebx jmp L00026C2D L00026C29: mov ebx,[esp+10h] L00026C2D: mov eax,[esp+60h] mov ecx,[esp+68h] mov ebp,eax imul ebp,[esp+18h] test ecx,ecx mov [esp+5Ch],ebp jz L00026C59 cmp eax,00001000h ja L00026C59 cmp ebp,00400000h jz L00026C59 add ebp,ebx mov [esp+5Ch],ebp L00026C59: mov eax,[esp+54h] push esi push ebp push eax push edi call SUB_L000288F0 test eax,eax jnz L00026E19 mov eax,[esp+58h] test ah,40h jnz L00026C83 mov eax,[esp+68h] test eax,eax jz L0002755F L00026C83: mov edx,[esp+5Ch] mov eax,[edi+08h] mov ecx,[eax+000000ACh] lea ebp,[edx+00000FFFh] shr ebp,0Ch mov [esp+64h],ebp shl ebp,0Ch mov [esp+58h],ecx mov [esp+24h],ebp xor ebx,ebx L00026CAA: mov eax,[esp+58h] cmp word ptr [eax+ebx*2+00000238h],FFFFh jnz L00026CF0 lea eax,[ebp+003FFFFFh] and eax,FFC00000h test ebx,ebx mov ecx,02000100h jnz L00026CD3 mov ecx,82000100h L00026CD3: push ecx push eax push edi call SUB_L00028DB0 test ax,ax mov ecx,[esp+58h] mov [ecx+ebx*2+00000238h],ax jz L00026DD8 L00026CF0: mov edx,[esp+58h] xor eax,eax mov ax,[edx+ebx*2+00000238h] push esi push ebp push eax push edi call SUB_L000288F0 test eax,eax jnz L00026D11 inc ebx cmp ebx,0000000Ch jc L00026CAA L00026D11: cmp ebx,0000000Ch jz L0002755F mov eax,[esi+04h] mov edx,[esp+64h] shr eax,0Ch mov [esp+58h],eax lea eax,[00000000h+edx*4] push eax push 00000001h call OsAllocMem mov ebx,eax test ebx,ebx jz L000270C8 mov ecx,[esp+64h] push 00000001h push ebx push ecx push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L00026DF2 mov eax,[edi+64h] test eax,eax jz L00026D6D mov edx,[esp+64h] push edx push ebx push edi call SUB_L00025010 L00026D6D: mov edx,[esp+64h] test edx,edx jbe L00026DA6 mov eax,[esp+58h] lea ecx,[00000000h+eax*4] mov eax,ebx mov [esp+58h],edx L00026D86: mov edx,[eax] or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+58h] add eax,00000004h add ecx,00000004h dec edx mov [esp+58h],edx jnz L00026D86 mov ebp,[esp+24h] L00026DA6: mov eax,[edi+2Ch] mov [esi+34h],eax mov ecx,[ebx] mov [esi+08h],ecx mov dword ptr [esi+0Ch],00000000h mov [esi+10h],ebp mov dword ptr [esi+18h],02000100h mov edx,[edi+2Ch] push ebx mov [esi+34h],edx call OsFreeMem mov ebx,[esp+10h] mov ebp,[esp+5Ch] jmp L00026E19 L00026DD8: mov ecx,[esp+58h] pop edi pop esi pop ebp mov word ptr [ecx+ebx*2+00000238h],FFFFh xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00026DF2: mov eax,[esi+10h] mov ecx,[esi+3Ch] xor edx,edx mov dx,[esi+2Eh] push eax push ecx push edx push edi call SUB_L00028A40 push ebx call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00026E19: mov eax,[esp+68h] test eax,eax jz L00026E64 cmp ebp,00400000h jz L00026E64 mov edx,[esi+04h] lea ecx,[ebx-01h] test ecx,edx jz L00026E4A not ecx lea eax,[edx+ebx-01h] and eax,ecx mov ecx,[esi] sub eax,edx add ecx,eax add edx,eax mov [esi],ecx mov [esi+04h],edx jmp L00026E64 L00026E4A: mov eax,[esi+10h] mov ecx,[esi+3Ch] mov edx,[esp+54h] sub eax,ebx push ebx add ecx,eax push ecx push edx push edi mov [esi+10h],eax call SUB_L00028A40 L00026E64: mov ecx,[esi+18h] mov eax,[esp+60h] and ecx,FFFFFEFFh or ecx,00000200h mov [esi+0Ch],eax mov [esi+18h],ecx L00026E7D: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00026E8C: test ecx,02000000h jz L0002755F mov edx,ecx and edx,20080000h cmp edx,20080000h jz L00026EB2 and ecx,FFF7FFFFh mov [esp+58h],ecx L00026EB2: test ch,20h jz L00026ED9 mov eax,[esp+1Ch] mov eax,[eax+00000268h] mov [esp+60h],eax shl eax,04h cmp eax,00001000h mov [esp+10h],eax jnc L00026F60 jmp L00026F58 L00026ED9: cmp dword ptr [esp+64h],0000000Ch jnz L00026EEF mov eax,[esp+5Ch] lea eax,[eax+eax*2] shl eax,02h shr eax,03h jmp L00026F19 L00026EEF: cmp dword ptr [esp+24h],00000003h jnc L00026F02 mov edx,[esp+14h] lea eax,[edx+1Fh] and eax,FFFFFFE0h jmp L00026F19 L00026F02: mov eax,[esp+14h] lea edx,[eax+5Fh] mov eax,AAAAAAABh mul edx shr edx,06h lea eax,[edx+edx*2] shl eax,05h L00026F19: test ecx,20080000h mov [esp+60h],eax jz L00026F60 push eax call SUB_L000248A0 mov ecx,[esp+58h] test ch,40h mov [esp+60h],eax jz L00026F4A mov ecx,[esp+28h] cmp dword ptr [ecx+10h],00010303h jnz L00026F4A shl eax,05h jmp L00026F4D L00026F4A: shl eax,04h L00026F4D: cmp eax,00001000h mov [esp+10h],eax jnc L00026F60 L00026F58: mov dword ptr [esp+10h],00001000h L00026F60: mov ebx,[esp+60h] imul ebx,[esp+18h] mov ecx,[esp+58h] add ebx,00000FFFh mov eax,ecx and ebx,FFFFF000h and eax,20080000h mov [esp+5Ch],eax jz L00026F92 cmp ebx,00400000h jz L00026F92 add ebx,[esp+10h] L00026F92: mov eax,ecx and eax,L00080000 mov [esp+64h],eax jz L00026FCF mov edx,[esp+54h] mov eax,[esp+60h] push 00000000h push edx push eax push edi call SUB_L00025CD0 mov ebp,eax cmp bp,0011h jnz L00026FDB mov ecx,[esp+54h] mov edx,[esp+60h] push ecx push edx push edi call SUB_L00025E40 mov ebp,eax mov eax,[esp+64h] L00026FCF: cmp bp,0011h jz L00027203 jmp L00026FDF L00026FDB: mov eax,[esp+64h] L00026FDF: test eax,eax jz L00027215 push esi push ebx push ebp push edi call SUB_L000288F0 test eax,eax jnz L0002704F cmp dword ptr [esp+20h],00000001h jnz L0002704F L00026FFB: mov eax,[esp+54h] mov ecx,[esp+60h] push ebp push eax push ecx push edi call SUB_L00025CD0 mov ebp,eax cmp bp,0011h jz L00027024 push esi push ebx push ebp push edi call SUB_L000288F0 test eax,eax jnz L0002704F inc ebp jmp L00026FFB L00027024: mov edx,[esp+54h] mov eax,[esp+60h] push edx push eax push edi call SUB_L00025E40 cmp ax,0011h jz L0002755F push esi push ebx push eax push edi call SUB_L000288F0 test eax,eax jz L0002755F L0002704F: mov eax,[esp+5Ch] test eax,eax jz L000270A6 cmp ebx,00400000h jz L000270A6 mov eax,[esp+10h] mov edx,[esi+04h] lea ecx,[eax-01h] test ecx,edx jz L00027084 lea eax,[edx+eax-01h] not ecx and eax,ecx mov ecx,[esi] sub eax,edx add ecx,eax add edx,eax mov [esi],ecx mov [esi+04h],edx jmp L000270A6 L00027084: mov eax,[esp+10h] mov edx,[esi+10h] mov ecx,[esi+3Ch] sub edx,eax mov ebx,edx mov [esi+10h],edx xor edx,edx mov dx,[esi+2Eh] push eax add ecx,ebx push ecx push edx push edi call SUB_L00028A40 L000270A6: mov eax,[esi+04h] shr eax,0Ch mov [esp+64h],eax shr ebx,0Ch lea eax,[00000000h+ebx*4] push eax push 00000001h call OsAllocMem mov ebp,eax test ebp,ebp jnz L000270E9 L000270C8: mov ecx,[esi+10h] mov edx,[esi+3Ch] xor eax,eax mov ax,[esi+2Eh] push ecx push edx push eax push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L000270E9: push 00000001h push ebp push ebx push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L000271DC mov eax,[edi+64h] test eax,eax jz L0002710D push ebx push ebp push edi call SUB_L00025010 L0002710D: test ebx,ebx jbe L0002713A mov ecx,[esp+64h] shl ecx,02h mov eax,ebp mov [esp+64h],ebx L0002711E: mov edx,[eax] or edx,00000001h mov ebx,[edi+10h] mov [ebx+ecx],edx mov edx,[esp+64h] add eax,00000004h add ecx,00000004h dec edx mov [esp+64h],edx jnz L0002711E L0002713A: push ebp L0002713B: call OsFreeMem mov eax,[esi+18h] mov ecx,[edi+2Ch] mov edx,[esp+60h] and eax,FFFDFEFFh or eax,00000200h mov [esi+18h],eax mov eax,[esp+58h] mov ebx,08000000h test ebx,eax mov [esi+34h],ecx mov [esi+0Ch],edx jz L00026E7D mov ecx,[esi+04h] mov edx,[esi+10h] lea eax,[esp+54h] push eax mov eax,[edi] push 0000000Ch mov [esp+34h],ecx lea ecx,[esp+40h] push ecx push 0000000Ch mov [esp+40h],edx lea edx,[esp+3Ch] push edx push 002320C8h push eax mov dword ptr [esp+50h],00000001h call OsDeviceIoControl test eax,eax jnz L000273B7 mov eax,[esp+3Ch] test eax,eax jnz L000273B7 mov eax,[esi+18h] mov ecx,[esp+38h] mov edx,[esp+40h] or eax,ebx pop edi mov [esi+18h],eax mov [esi],ecx mov [esi+40h],edx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L000271DC: mov eax,[esi+10h] mov ecx,[esi+3Ch] xor edx,edx mov dx,[esi+2Eh] push eax push ecx push edx push edi call SUB_L00028A40 push ebp call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00027203: test eax,eax jz L00027215 test dword ptr [esp+58h],20000000h jnz L00027215 sub ebx,[esp+10h] L00027215: mov ebp,[esp+58h] mov eax,[edi+08h] mov eax,[eax+000000ACh] and ebp,FFF7FFFFh mov [esp+58h],ebp lea ebp,[ebx+00000FFFh] shr ebp,0Ch mov [esp+64h],eax mov eax,ebp shl eax,0Ch mov [esp+5Ch],eax xor ebx,ebx jmp L0002724A L00027246: mov eax,[esp+5Ch] L0002724A: mov ecx,[esp+64h] cmp word ptr [ecx+ebx*2+00000238h],FFFFh jnz L0002728B add eax,003FFFFFh and eax,FFC00000h test ebx,ebx mov ecx,02000100h jnz L00027272 mov ecx,82000100h L00027272: push ecx push eax push edi call SUB_L00028DB0 test ax,ax mov edx,[esp+64h] mov [edx+ebx*2+00000238h],ax jz L000272F9 L0002728B: mov ecx,[esp+64h] mov eax,[esp+5Ch] xor edx,edx mov dx,[ecx+ebx*2+00000238h] push esi push eax push edx push edi call SUB_L000288F0 test eax,eax jnz L000272B0 inc ebx cmp ebx,0000000Ch jc L00027246 L000272B0: cmp ebx,0000000Ch jz L0002755F mov eax,[esi+04h] lea ecx,[00000000h+ebp*4] push ecx shr eax,0Ch push 00000001h mov [esp+6Ch],eax call OsAllocMem mov ebx,eax test ebx,ebx jnz L00027313 mov edx,[esi+10h] mov eax,[esi+3Ch] xor ecx,ecx mov cx,[esi+2Eh] push edx push eax push ecx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L000272F9: mov eax,[esp+64h] pop edi pop esi mov word ptr [eax+ebx*2+00000238h],FFFFh pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00027313: push 00000001h push ebx push ebp push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L00027390 mov eax,[edi+64h] test eax,eax jz L00027333 push ebp push ebx push edi call SUB_L00025010 L00027333: test ebp,ebp jbe L00027364 mov edx,[esp+64h] lea ecx,[00000000h+edx*4] mov eax,ebx mov [esp+64h],ebp L00027348: mov edx,[eax] or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+64h] add eax,00000004h add ecx,00000004h dec edx mov [esp+64h],edx jnz L00027348 L00027364: mov eax,[edi+2Ch] mov edx,[esp+5Ch] mov [esi+34h],eax mov ecx,[ebx] mov [esi+08h],ecx mov dword ptr [esi+0Ch],00000000h mov [esi+10h],edx mov dword ptr [esi+18h],02000100h mov eax,[edi+2Ch] mov [esi+34h],eax push ebx jmp L0002713B L00027390: mov ecx,[esi+10h] mov edx,[esi+3Ch] xor eax,eax mov ax,[esi+2Eh] push ecx push edx push eax push edi call SUB_L00028A40 push ebx call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L000273B7: mov dword ptr [esp+68h],00000000h mov eax,[edi+08h] mov edx,[eax+000000ACh] mov [esp+64h],edx mov eax,[edi+18h] mov ebx,[esi+18h] test bh,10h mov cx,[esi+2Eh] mov eax,[esi+3Ch] mov ebp,[esi+10h] mov [esp+60h],cx mov [esp+58h],eax jnz L0002755F test bh,40h jz L00027434 test ebx,01000000h jz L00027434 mov edx,[esp+60h] push ebp mov ecx,eax push ecx push edx push edi call SUB_L00028A40 mov esi,[esi+24h] mov eax,[esi+10h] mov ecx,[esi+3Ch] xor edx,edx mov dx,[esi+2Eh] push eax push ecx push edx push edi call SUB_L00028A40 push esi call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L00027434: test ebx,08000000h jz L00027475 mov eax,[esi] mov ecx,[esi+40h] lea edx,[esp+5Ch] push edx mov edx,[edi] push 00000004h mov [esp+4Ch],eax lea eax,[esp+30h] push eax push 0000000Ch mov [esp+5Ch],ecx lea ecx,[esp+54h] push ecx push 002320CCh push edx mov dword ptr [esp+64h],00000001h call OsDeviceIoControl mov edx,[esp+64h] L00027475: test ebx,L00020000 jz L000274F8 test ebx,02000000h jz L000274DB test ebx,L00040000 jz L00027490 mov ebp,[esi+28h] L00027490: mov eax,[esp+58h] mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L000274CA mov [esp+5Ch],ecx mov ecx,[esp+64h] shl eax,02h L000274AB: mov edx,[edi+10h] mov ebx,[esp+68h] mov ebx,[ecx+ebx*4+000002E4h] mov [edx+eax],ebx mov edx,[esp+5Ch] add eax,00000004h dec edx mov [esp+5Ch],edx jnz L000274AB L000274CA: mov eax,[esi+24h] push eax push edi call SUB_L00029180 mov dword ptr [esi+24h],00000000h L000274DB: mov ecx,[esp+58h] mov edx,[esp+60h] push ebp push ecx push edx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L000274F8: test ebx,02000000h jz L0002756B mov eax,[esi+24h] test eax,eax jz L0002755F mov eax,[esp+58h] mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L0002753D shl eax,02h mov [esp+64h],ecx L0002751E: mov ecx,[edi+10h] mov ebx,[esp+68h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+64h] add eax,00000004h dec ecx mov [esp+64h],ecx jnz L0002751E L0002753D: mov edx,[esi+24h] push edx push edi call SUB_L00029180 mov eax,[esp+58h] mov ecx,[esp+60h] push ebp push eax push ecx push edi mov dword ptr [esi+24h],00000000h call SUB_L00028A40 L0002755F: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ L0002756B: test ebx,01000000h jz L0002755F mov edx,[esp+58h] mov eax,[esp+60h] push ebp push edx push eax push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000040h retn 0018h ;------------------------------------------------------------------------------ SUB_L00027590: mov eax,[esp+04h] mov ecx,[eax+08h] push ebx mov ebx,[esp+1Ch] push ebp push esi push edi mov edi,[ecx+000000ACh] mov ecx,[eax+34h] mov edx,ecx shr edx,02h add edx,ecx cmp [edi+4Ch],edx ja L000275F0 mov esi,[esp+24h] mov ebp,[esp+20h] mov ecx,[esp+1Ch] mov edx,[esp+18h] push ebx push esi push ebp push ecx push edx push eax call SUB_L00027600 test eax,eax jz L000275F0 shr esi,03h imul esi,[esp+1Ch] imul esi,ebp mov [ebx+14h],esi add [edi+4Ch],esi pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ L000275F0: pop edi pop esi pop ebp mov dword ptr [ebx+14h],00000000h xor eax,eax pop ebx retn 0018h ;------------------------------------------------------------------------------ SUB_L00027600: sub esp,00000034h mov ecx,[esp+3Ch] push ebx push ebp push esi mov esi,[esp+50h] push edi mov edi,[esp+48h] mov edx,[edi+08h] mov eax,[edx+000000ACh] xor ebx,ebx test ecx,00280000h mov [esp+1Ch],eax mov [esp+10h],ebx jz L0002763A lea eax,[esi+0Fh] and eax,FFFFFFF0h mov [esp+14h],eax jmp L0002763E L0002763A: mov [esp+14h],esi L0002763E: mov eax,[edx+10h] mov ebp,[esp+58h] and eax,FFFFFF00h or ecx,20000000h cmp eax,00010300h mov eax,[esp+50h] jz L00027661 mov [esp+48h],ebx jmp L000276B9 L00027661: cmp ebp,00000010h jz L0002766C mov [esp+48h],ebx jmp L000276B9 L0002766C: mov ebx,ecx and ebx,20002010h cmp ebx,20000000h jnz L00027686 mov dword ptr [esp+48h],00001000h jmp L000276B9 L00027686: test ch,30h jz L000276B1 cmp esi,00000190h jc L000276B1 mov ecx,[edx+6Ch] mov esi,eax shl ecx,03h shl esi,04h cmp esi,ecx ja L000276B1 mov ecx,[edx+64h] test ecx,ecx mov dword ptr [esp+48h],00001000h jnz L000276B9 L000276B1: mov dword ptr [esp+48h],00000000h L000276B9: cmp eax,00000040h jnc L00027B0D mov ecx,[esp+4Ch] test ecx,L00080000 jz L000276D8 and ecx,FFF7FFFFh mov [esp+4Ch],ecx L000276D8: imul eax,ebp shr eax,03h cmp eax,00000020h mov [esp+54h],eax ja L000276EE mov eax,00000020h jmp L000276F8 L000276EE: cmp eax,00000040h ja L000276FC mov eax,00000040h L000276F8: mov [esp+54h],eax L000276FC: imul eax,[esp+14h] mov edx,[edx+000000ACh] mov esi,[esp+5Ch] add eax,00000FFFh and eax,FFFFF000h lea ebp,[eax+00000FFFh] shr ebp,0Ch mov eax,ebp shl eax,0Ch mov [esp+48h],edx mov [esp+50h],eax xor ebx,ebx jmp L00027733 L0002772F: mov eax,[esp+50h] L00027733: mov ecx,[esp+48h] cmp word ptr [ecx+ebx*2+00000238h],FFFFh jnz L00027774 add eax,003FFFFFh and eax,FFC00000h test ebx,ebx mov ecx,02000100h jnz L0002775B mov ecx,82000100h L0002775B: push ecx push eax push edi call SUB_L00028DB0 test ax,ax mov edx,[esp+48h] mov [edx+ebx*2+00000238h],ax jz L000277E2 L00027774: mov ecx,[esp+48h] mov eax,[esp+50h] xor edx,edx mov dx,[ecx+ebx*2+00000238h] push esi push eax push edx push edi call SUB_L000288F0 test eax,eax jnz L00027799 inc ebx cmp ebx,0000000Ch jc L0002772F L00027799: cmp ebx,0000000Ch jz L00027924 mov eax,[esi+04h] lea ecx,[00000000h+ebp*4] push ecx shr eax,0Ch push 00000001h mov [esp+64h],eax call OsAllocMem mov ebx,eax test ebx,ebx jnz L000277FC mov edx,[esi+10h] mov eax,[esi+3Ch] xor ecx,ecx mov cx,[esi+2Eh] push edx push eax push ecx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L000277E2: mov eax,[esp+48h] pop edi pop esi mov word ptr [eax+ebx*2+00000238h],FFFFh pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L000277FC: push 00000001h push ebx push ebp push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L00027909 mov eax,[edi+64h] test eax,eax jz L00027820 push ebp push ebx push edi call SUB_L00025010 L00027820: test ebp,ebp jbe L00027851 mov edx,[esp+5Ch] lea ecx,[00000000h+edx*4] mov eax,ebx mov [esp+5Ch],ebp L00027835: mov edx,[eax] or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+5Ch] add eax,00000004h add ecx,00000004h dec edx mov [esp+5Ch],edx jnz L00027835 L00027851: mov eax,[edi+2Ch] mov edx,[esp+50h] mov [esi+34h],eax mov ecx,[ebx] mov [esi+08h],ecx mov dword ptr [esi+0Ch],00000000h mov [esi+10h],edx mov dword ptr [esi+18h],02000100h mov eax,[edi+2Ch] push ebx mov [esi+34h],eax call OsFreeMem mov edx,[esi+18h] mov eax,[esp+4Ch] mov ecx,[esp+54h] and edx,FFFFFEFFh or edx,L00020000 mov ebx,08000000h test ebx,eax mov [esi+0Ch],ecx mov [esi+18h],edx jz L000278FA mov eax,[esi+04h] mov ecx,[esi+10h] lea edx,[esp+58h] push edx mov edx,[edi] push 0000000Ch mov [esp+28h],eax lea eax,[esp+34h] push eax push 0000000Ch mov [esp+34h],ecx lea ecx,[esp+30h] push ecx push 002320C8h push edx mov dword ptr [esp+44h],00000001h call OsDeviceIoControl test eax,eax jnz L00027930 mov eax,[esp+30h] test eax,eax jnz L00027930 mov eax,[esi+18h] mov ecx,[esp+34h] or eax,ebx mov [esi+18h],eax mov eax,[esp+2Ch] mov [esi],eax mov [esi+40h],ecx L000278FA: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L00027909: mov ecx,[esi+10h] mov edx,[esi+3Ch] xor eax,eax mov ax,[esi+2Eh] push ecx push edx push eax push edi call SUB_L00028A40 push ebx call OsFreeMem L00027924: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L00027930: mov dword ptr [esp+50h],00000000h mov eax,[edi+08h] mov edx,[eax+000000ACh] mov [esp+54h],edx mov eax,[edi+18h] mov ebx,[esi+18h] test bh,10h mov cx,[esi+2Eh] mov eax,[esi+3Ch] mov ebp,[esi+10h] mov [esp+5Ch],cx mov [esp+4Ch],eax jnz L00027924 test bh,40h jz L000279A9 test ebx,01000000h jz L000279A9 mov edx,[esp+5Ch] push ebp mov ecx,eax push ecx push edx push edi call SUB_L00028A40 mov esi,[esi+24h] mov eax,[esi+10h] mov ecx,[esi+3Ch] xor edx,edx mov dx,[esi+2Eh] push eax push ecx push edx push edi call SUB_L00028A40 push esi call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L000279A9: test ebx,08000000h jz L000279EA mov eax,[esi] mov ecx,[esi+40h] lea edx,[esp+48h] push edx mov edx,[edi] push 00000004h mov [esp+40h],eax lea eax,[esp+24h] push eax push 0000000Ch mov [esp+50h],ecx lea ecx,[esp+48h] push ecx push 002320CCh push edx mov dword ptr [esp+58h],00000001h call OsDeviceIoControl mov edx,[esp+54h] L000279EA: test ebx,L00020000 jz L00027A6D test ebx,02000000h jz L00027A50 test ebx,L00040000 jz L00027A05 mov ebp,[esi+28h] L00027A05: mov eax,[esp+4Ch] mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L00027A3F mov [esp+48h],ecx mov ecx,[esp+54h] shl eax,02h L00027A20: mov edx,[edi+10h] mov ebx,[esp+50h] mov ebx,[ecx+ebx*4+000002E4h] mov [edx+eax],ebx mov edx,[esp+48h] add eax,00000004h dec edx mov [esp+48h],edx jnz L00027A20 L00027A3F: mov eax,[esi+24h] push eax push edi call SUB_L00029180 mov dword ptr [esi+24h],00000000h L00027A50: mov ecx,[esp+4Ch] mov edx,[esp+5Ch] push ebp push ecx push edx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L00027A6D: test ebx,02000000h jz L00027AE4 mov eax,[esi+24h] test eax,eax jz L00027924 mov eax,[esp+4Ch] mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L00027AB6 shl eax,02h mov [esp+54h],ecx L00027A97: mov ecx,[edi+10h] mov ebx,[esp+50h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+54h] add eax,00000004h dec ecx mov [esp+54h],ecx jnz L00027A97 L00027AB6: mov edx,[esi+24h] push edx push edi call SUB_L00029180 mov eax,[esp+4Ch] mov ecx,[esp+5Ch] push ebp push eax push ecx push edi mov dword ptr [esi+24h],00000000h call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L00027AE4: test ebx,01000000h jz L00027924 mov edx,[esp+4Ch] mov eax,[esp+5Ch] push ebp push edx push eax push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L00027B0D: imul eax,ebp shr eax,03h cmp eax,00000080h ja L00027B21 mov esi,00000080h jmp L00027B69 L00027B21: cmp eax,00000100h ja L00027B2F mov esi,00000100h jmp L00027B69 L00027B2F: cmp eax,00000200h ja L00027B3D mov esi,00000200h jmp L00027B69 L00027B3D: cmp eax,00000400h ja L00027B4B mov esi,00000400h jmp L00027B69 L00027B4B: cmp eax,00000800h ja L00027B59 mov esi,00000800h jmp L00027B69 L00027B59: cmp eax,00001000h ja L00027924 mov esi,00001000h L00027B69: mov ebp,[esp+4Ch] and ebp,L00080000 mov [esp+54h],esi jz L00027B9F mov ecx,[esp+48h] push 00000000h push ecx push esi push edi call SUB_L00025CD0 mov ebx,eax cmp bx,0011h jnz L00027BA9 mov edx,[esp+48h] push edx push esi push edi call SUB_L00025E40 mov ebx,eax jmp L00027BA3 L00027B9F: mov ebx,[esp+4Ch] L00027BA3: cmp bx,0011h jz L00027BAD L00027BA9: test ebp,ebp jnz L00027BC2 L00027BAD: mov eax,[esp+4Ch] and eax,FFF7FFFFh mov dword ptr [esp+10h],00000001h mov [esp+4Ch],eax L00027BC2: mov ecx,esi shl ecx,04h cmp ecx,00001000h mov [esp+18h],ecx jnc L00027BDC mov ecx,00001000h mov [esp+18h],ecx L00027BDC: mov eax,esi imul eax,[esp+14h] add eax,00000FFFh and eax,FFFFF000h cmp eax,00400000h mov [esp+50h],eax jz L00027C09 add eax,ecx cmp eax,00400000h mov [esp+50h],eax ja L00027924 L00027C09: mov ecx,[esp+10h] test ecx,ecx jz L00027DA2 mov ecx,[edi+08h] mov ebp,[ecx+000000ACh] mov esi,[esp+5Ch] add eax,00000FFFh shr eax,0Ch mov [esp+14h],eax shl eax,0Ch mov [esp+58h],eax xor ebx,ebx L00027C37: cmp word ptr [ebp+ebx*2+00000238h],FFFFh jnz L00027C75 mov edx,[esp+58h] lea eax,[edx+003FFFFFh] and eax,FFC00000h test ebx,ebx mov ecx,02000100h jnz L00027C60 mov ecx,82000100h L00027C60: push ecx push eax push edi call SUB_L00028DB0 test ax,ax mov [ebp+ebx*2+00000238h],ax jz L00027CE2 L00027C75: mov eax,[esp+58h] xor ecx,ecx mov cx,[ebp+ebx*2+00000238h] push esi push eax push ecx push edi call SUB_L000288F0 test eax,eax jnz L00027C96 inc ebx cmp ebx,0000000Ch jc L00027C37 L00027C96: cmp ebx,0000000Ch jz L00027D9A mov ebp,[esp+14h] mov eax,[esi+04h] lea edx,[00000000h+ebp*4] push edx shr eax,0Ch push 00000001h mov [esp+64h],eax call OsAllocMem mov ebx,eax test ebx,ebx jnz L00027CF7 mov eax,[esi+10h] mov ecx,[esi+3Ch] xor edx,edx mov dx,[esi+2Eh] push eax push ecx push edx push edi call SUB_L00028A40 mov bx,[esi+2Eh] xor eax,eax jmp L00027DB3 L00027CE2: mov word ptr [ebp+ebx*2+00000238h],FFFFh mov bx,[esi+2Eh] xor eax,eax jmp L00027DB3 L00027CF7: push 00000001h push ebx push ebp push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L00027D7F mov eax,[edi+64h] test eax,eax jz L00027D17 push ebp push ebx push edi call SUB_L00025010 L00027D17: test ebp,ebp jbe L00027D48 mov eax,[esp+5Ch] lea ecx,[00000000h+eax*4] mov eax,ebx mov [esp+5Ch],ebp L00027D2C: mov edx,[eax] or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+5Ch] add eax,00000004h add ecx,00000004h dec edx mov [esp+5Ch],edx jnz L00027D2C L00027D48: mov eax,[edi+2Ch] mov edx,[esp+58h] mov [esi+34h],eax mov ecx,[ebx] mov [esi+08h],ecx mov dword ptr [esi+0Ch],00000000h mov [esi+10h],edx mov dword ptr [esi+18h],02000100h mov eax,[edi+2Ch] push ebx mov [esi+34h],eax call OsFreeMem mov bx,[esi+2Eh] mov eax,00000001h jmp L00027DB3 L00027D7F: mov ecx,[esi+10h] mov edx,[esi+3Ch] xor eax,eax mov ax,[esi+2Eh] push ecx push edx push eax push edi call SUB_L00028A40 push ebx call OsFreeMem L00027D9A: mov bx,[esi+2Eh] xor eax,eax jmp L00027DB3 L00027DA2: mov esi,[esp+5Ch] mov ecx,[esp+50h] push esi push ecx push ebx push edi call SUB_L000288F0 L00027DB3: test eax,eax jnz L00027E52 test dword ptr [esp+4Ch],L00080000 jz L00027924 L00027DC9: mov edx,[esp+48h] mov ebp,[esp+54h] push ebx push edx push ebp push edi call SUB_L00025CD0 mov ebx,eax cmp bx,0011h jz L00027DF6 mov eax,[esp+50h] push esi push eax push ebx push edi call SUB_L000288F0 test eax,eax jnz L00027E52 inc ebx jmp L00027DC9 L00027DF6: mov ecx,[esp+48h] push ecx push ebp push edi call SUB_L00025E40 push esi mov ebx,eax cmp bx,0011h jnz L00027E3E mov edx,[esp+54h] push edx push 02000000h push edi call SUB_L00028050 test eax,eax jz L00027924 mov eax,[esp+4Ch] mov bx,[esi+2Eh] and eax,FFF7FFFFh mov dword ptr [esp+10h],00000001h mov [esp+4Ch],eax jmp L00027E52 L00027E3E: mov eax,[esp+54h] push eax push ebx push edi call SUB_L000288F0 test eax,eax jz L00027924 L00027E52: mov ebp,[esp+50h] cmp ebp,00400000h jz L00027EA3 mov eax,[esp+18h] mov edx,[esi+04h] lea ecx,[eax-01h] test edx,ecx jz L00027E83 lea eax,[edx+eax-01h] not ecx and eax,ecx mov ecx,[esi] sub eax,edx add ecx,eax add edx,eax mov [esi],ecx mov [esi+04h],edx jmp L00027EA3 L00027E83: mov ecx,[esp+18h] mov ebp,[esi+10h] sub ebp,ecx push ecx mov ecx,[esi+3Ch] mov eax,ebp add ecx,eax push ecx push ebx push edi mov [esi+10h],ebp mov [esp+60h],eax call SUB_L00028A40 L00027EA3: mov eax,[esi+04h] shr eax,0Ch mov [esp+48h],eax mov eax,[esp+10h] shr ebp,0Ch test eax,eax mov [esp+5Ch],ebp jnz L00027F67 mov edx,ebp lea eax,[00000000h+edx*4] push eax push 00000001h call OsAllocMem mov ebp,eax test ebp,ebp mov [esp+50h],ebp jnz L00027EF6 mov ecx,[esi+10h] mov edx,[esi+3Ch] push ecx push edx push ebx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L00027EF6: mov eax,[esp+5Ch] push 00000001h push ebp push eax push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L0002800E mov eax,[edi+64h] test eax,eax jz L00027F22 mov ecx,[esp+5Ch] push ecx push ebp push edi call SUB_L00025010 L00027F22: mov edx,[esp+5Ch] test edx,edx jbe L00027F5B mov eax,[esp+48h] lea ecx,[00000000h+eax*4] mov eax,ebp mov [esp+5Ch],edx L00027F3B: mov edx,[eax] or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+5Ch] add eax,00000004h add ecx,00000004h dec edx mov [esp+5Ch],edx jnz L00027F3B mov ebp,[esp+50h] L00027F5B: push ebp call OsFreeMem mov eax,[edi+2Ch] mov [esi+34h],eax L00027F67: mov ecx,[esi+24h] mov edx,[esp+1Ch] and ebx,0000FFFFh lea eax,[ebx+ebx*8] mov [edx+eax*8+00000328h],ecx mov eax,[esp+54h] mov ecx,[esi+18h] and ecx,FFFFFEFFh mov [esi+0Ch],eax mov eax,[esp+4Ch] or ecx,L00020000 mov ebx,08000000h test ebx,eax mov [esi+18h],ecx jz L000278FA mov edx,[esi+04h] mov eax,[esi+10h] lea ecx,[esp+4Ch] push ecx mov ecx,[edi] push 0000000Ch mov [esp+40h],edx lea edx,[esp+34h] push edx push 0000000Ch mov [esp+4Ch],eax lea eax,[esp+48h] push eax push 002320C8h push ecx mov dword ptr [esp+5Ch],00000001h call OsDeviceIoControl test eax,eax jnz L0002802F mov eax,[esp+30h] test eax,eax jnz L0002802F mov eax,[esi+18h] mov edx,[esp+2Ch] or eax,ebx mov [esi+18h],eax mov eax,[esp+34h] pop edi mov [esi+40h],eax mov [esi],edx L00028000: pop esi pop ebp mov eax,00000001h pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L0002800E: mov ecx,[esi+10h] mov edx,[esi+3Ch] push ecx push edx push ebx push edi call SUB_L00028A40 push ebp call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ L0002802F: push esi push edi call SUB_L000265E0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000034h retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L00028050: sub esp,00000030h push ebx push ebp push esi push edi mov edi,[esp+44h] mov eax,[edi+08h] mov ebp,[eax+000000ACh] mov eax,[esp+48h] test eax,80000000h jz L000280A3 test ah,04h mov cx,[ebp+00000252h] jnz L00028082 test eax,00800000h jz L000280A3 L00028082: mov eax,[esp+50h] mov edx,[esp+4Ch] push eax push edx push ecx push edi call SUB_L000288F0 pop edi neg eax pop esi sbb eax,eax pop ebp neg eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000280A3: test eax,40000000h jz L000280B8 and eax,FEFFFFFFh or eax,02000000h mov [esp+48h],eax L000280B8: test eax,01000000h jz L000280E9 mov eax,[esp+50h] mov ecx,[esp+4Ch] xor edx,edx mov dx,[ebp+00000236h] push eax push ecx push edx push edi call SUB_L000288F0 pop edi neg eax pop esi sbb eax,eax pop ebp neg eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000280E9: test eax,02000000h jz L000282F3 mov eax,[esp+4Ch] mov esi,[esp+50h] add eax,00000FFFh shr eax,0Ch mov [esp+44h],eax shl eax,0Ch mov [esp+4Ch],eax xor ebx,ebx jmp L00028117 L00028113: mov eax,[esp+4Ch] L00028117: cmp word ptr [ebp+ebx*2+00000238h],FFFFh jnz L00028154 add eax,003FFFFFh and eax,FFC00000h test ebx,ebx mov ecx,02000100h jnz L0002813B mov ecx,82000100h L0002813B: push ecx push eax push edi call SUB_L00028DB0 test ax,ax mov [ebp+ebx*2+00000238h],ax jz L00028182 mov eax,[esp+4Ch] L00028154: xor ecx,ecx mov cx,[ebp+ebx*2+00000238h] push esi push eax push ecx push edi call SUB_L000288F0 test eax,eax jnz L00028171 inc ebx cmp ebx,0000000Ch jc L00028113 L00028171: cmp ebx,0000000Ch jnz L00028198 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00028182: pop edi pop esi mov word ptr [ebp+ebx*2+00000238h],FFFFh pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00028198: mov ebp,[esp+44h] mov eax,[esi+04h] lea edx,[00000000h+ebp*4] push edx shr eax,0Ch push 00000001h mov [esp+18h],eax call OsAllocMem mov ebx,eax test ebx,ebx jnz L000281DC mov eax,[esi+10h] mov ecx,[esi+3Ch] xor edx,edx mov dx,[esi+2Eh] push eax push ecx push edx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000281DC: test dword ptr [esp+48h],00100000h jz L000281EA push 00000002h jmp L000281EC L000281EA: push 00000001h L000281EC: push ebx push ebp push edi call SUB_L00029030 test eax,eax mov [esi+24h],eax jz L000284D0 mov eax,[edi+64h] test eax,eax jz L0002820E push ebp push ebx push edi call SUB_L00025010 L0002820E: mov eax,[esp+48h] test ah,0Ch jz L00028223 mov eax,[edi+000000B0h] mov [esp+50h],eax jmp L0002822B L00028223: mov dword ptr [esp+50h],00000000h L0002822B: test ebp,ebp jbe L0002825E mov ecx,[esp+10h] shl ecx,02h mov eax,ebx mov [esp+44h],ebp L0002823C: mov ebp,[esp+50h] mov edx,[eax] or edx,ebp or edx,00000001h mov ebp,[edi+10h] mov [ecx+ebp],edx mov edx,[esp+44h] add eax,00000004h add ecx,00000004h dec edx mov [esp+44h],edx jnz L0002823C L0002825E: mov eax,[edi+2Ch] mov edx,[esp+4Ch] mov [esi+34h],eax mov ecx,[ebx] mov eax,[esp+48h] or eax,02000100h mov [esi+08h],ecx mov dword ptr [esi+0Ch],00000000h mov [esi+10h],edx mov [esi+18h],eax mov ecx,[edi+2Ch] push ebx mov [esi+34h],ecx call OsFreeMem mov eax,[esp+48h] mov ebx,08000000h test ebx,eax jz L000282F3 mov edx,[esi+04h] mov eax,[esi+10h] lea ecx,[esp+10h] push ecx mov ecx,[edi] push 0000000Ch mov [esp+24h],edx lea edx,[esp+30h] push edx push 0000000Ch mov [esp+30h],eax lea eax,[esp+2Ch] push eax push 002320C8h push ecx mov dword ptr [esp+40h],00000001h call OsDeviceIoControl test eax,eax jnz L00028302 mov eax,[esp+2Ch] test eax,eax jnz L00028302 mov eax,[esi+18h] mov edx,[esp+28h] or eax,ebx mov [esi+18h],eax mov eax,[esp+30h] mov [esi],edx mov [esi+40h],eax L000282F3: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00028302: mov dword ptr [esp+44h],00000000h mov eax,[edi+08h] mov edx,[eax+000000ACh] mov [esp+50h],edx mov ecx,[edi+18h] mov cx,[esi+2Eh] mov ebx,[esi+18h] test bh,10h mov eax,[esi+3Ch] mov ebp,[esi+10h] mov [esp+48h],eax mov [esp+4Ch],ecx jnz L000284EB test bh,40h jz L00028378 test ebx,01000000h jz L00028378 push ebp push eax push ecx push edi call SUB_L00028A40 mov esi,[esi+24h] mov edx,[esi+10h] mov eax,[esi+3Ch] xor ecx,ecx mov cx,[esi+2Eh] push edx push eax push ecx push edi call SUB_L00028A40 push esi call OsFreeMem pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00028378: test ebx,08000000h jz L000283C1 mov edx,[esi] mov eax,[esi+40h] lea ecx,[esp+14h] push ecx mov ecx,[edi] push 00000004h mov [esp+3Ch],edx lea edx,[esp+20h] push edx push 0000000Ch mov [esp+4Ch],eax lea eax,[esp+44h] push eax push 002320CCh push ecx mov dword ptr [esp+54h],00000001h call OsDeviceIoControl mov eax,[esp+48h] mov edx,[esp+50h] mov ecx,[esp+4Ch] L000283C1: test ebx,L00020000 jz L00028440 test ebx,02000000h jz L000284BB test ebx,L00040000 jz L000283E0 mov ebp,[esi+28h] L000283E0: mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L00028412 shl eax,02h mov [esp+50h],ecx L000283F3: mov ecx,[edi+10h] mov ebx,[esp+44h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+50h] add eax,00000004h dec ecx mov [esp+50h],ecx jnz L000283F3 L00028412: mov edx,[esi+24h] push edx push edi call SUB_L00029180 mov eax,[esp+48h] mov ecx,[esp+4Ch] push ebp push eax push ecx push edi mov dword ptr [esi+24h],00000000h call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00028440: test ebx,02000000h jz L000284B3 mov ecx,[esi+24h] test ecx,ecx jz L000284EB mov ecx,ebp shr ecx,0Ch shr eax,0Ch test ecx,ecx jbe L00028485 shl eax,02h mov [esp+50h],ecx L00028466: mov ecx,[edi+10h] mov ebx,[esp+44h] mov ebx,[edx+ebx*4+000002E4h] mov [ecx+eax],ebx mov ecx,[esp+50h] add eax,00000004h dec ecx mov [esp+50h],ecx jnz L00028466 L00028485: mov edx,[esi+24h] push edx push edi call SUB_L00029180 mov eax,[esp+48h] mov ecx,[esp+4Ch] push ebp push eax push ecx push edi mov dword ptr [esi+24h],00000000h call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000284B3: test ebx,01000000h jz L000284EB L000284BB: push ebp push eax push ecx push edi call SUB_L00028A40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000284D0: mov edx,[esi+10h] mov eax,[esi+3Ch] xor ecx,ecx mov cx,[esi+2Eh] push edx push eax push ecx push edi call SUB_L00028A40 push ebx call OsFreeMem L000284EB: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00028500: sub esp,00000048h push ebx push ebp push esi push edi mov edi,[esp+5Ch] mov eax,[edi+08h] mov ecx,[eax+000000ACh] mov eax,[edi+34h] mov edx,eax shr edx,02h add edx,eax cmp [ecx+4Ch],edx mov [esp+10h],ecx ja L0002871D mov eax,[esp+68h] mov ecx,[esp+64h] cmp ecx,00000001h mov ebp,eax mov [esp+5Ch],ebp mov esi,ecx jnc L00028545 mov esi,00000001h L00028545: cmp eax,00000001h jnc L000286EE mov ebp,00000001h mov [esp+5Ch],ebp L00028557: mov eax,[esp+70h] lea ecx,[eax+eax] L0002855E: mov ebx,[esp+6Ch] mov eax,[esp+60h] lea edx,[esp+14h] push edx push ebx push ecx push esi push eax push edi call SUB_L00027600 test eax,eax jz L0002871D mov edi,[esp+2Ch] mov edx,[esp+74h] mov eax,[esp+20h] or edi,L00040000 mov [esp+2Ch],edi mov ecx,00000011h lea esi,[esp+14h] mov edi,edx rep movsd mov ecx,[esp+24h] mov edi,[edx] mov esi,[edx+04h] mov [edx+28h],ecx add esi,0000007Fh lea ecx,[edi+7Fh] and ecx,FFFFFF80h and esi,FFFFFF80h cmp ebp,00000002h mov [esp+60h],eax jnc L000285C6 mov ebp,00000002h L000285C6: imul eax,ebp mov ebp,[esp+24h] sub eax,edi mov edi,[esp+14h] add eax,ecx mov [edx+04h],esi mov esi,[esp+4Ch] add esi,eax mov [edx],ecx xor ecx,ecx mov [esp+38h],ecx mov [esp+3Ch],ecx mov ecx,[esp+50h] mov [esp+4Ch],esi mov esi,[esp+18h] sub ebp,eax add ecx,eax add edi,eax add esi,eax mov [edx+10h],eax mov eax,[esp+70h] cmp eax,00000001h mov [esp+24h],ebp mov ebp,[esp+5Ch] mov [esp+50h],ecx mov [esp+14h],edi mov [esp+18h],esi jle L00028691 dec eax lea ebx,[edx+44h] mov [esp+74h],eax L00028626: shr ebp,1 cmp ebp,00000002h jnc L00028632 mov ebp,00000002h L00028632: mov eax,[esp+60h] imul eax,ebp mov edi,ebx mov ecx,00000011h lea esi,[esp+14h] rep movsd mov [ebx+10h],eax mov edi,[esp+4Ch] mov esi,[esp+50h] mov ecx,[esp+24h] add edi,eax add esi,eax mov [esp+4Ch],edi mov edi,[esp+14h] mov [esp+50h],esi mov esi,[esp+18h] sub ecx,eax add edi,eax add esi,eax mov eax,[esp+74h] add ebx,00000044h dec eax mov [esp+24h],ecx mov [esp+14h],edi mov [esp+18h],esi mov [esp+74h],eax jnz L00028626 mov ebx,[esp+6Ch] mov eax,[esp+70h] L00028691: mov esi,[esp+24h] test esi,esi jbe L000286AC mov ecx,eax shl ecx,04h add ecx,eax mov edi,[edx+ecx*4-34h] lea ecx,[edx+ecx*4-34h] add edi,esi mov [ecx],edi L000286AC: shr ebx,03h imul ebx,[esp+64h] imul ebx,[esp+68h] cmp eax,00000001h mov [edx+14h],ebx jbe L000286D0 dec eax L000286C2: mov esi,[edx+14h] shr ebx,02h add esi,ebx dec eax mov [edx+14h],esi jnz L000286C2 L000286D0: mov eax,[esp+10h] mov ecx,[eax+4Ch] mov edx,[edx+14h] pop edi pop esi add ecx,edx pop ebp mov [eax+4Ch],ecx mov eax,00000001h pop ebx add esp,00000048h retn 001Ch ;------------------------------------------------------------------------------ L000286EE: cmp eax,00000002h jbe L00028557 mov edx,[esp+70h] cmp edx,00000001h mov ecx,eax jle L0002855E dec edx L00028707: shr eax,1 cmp eax,00000002h jnc L00028713 mov eax,00000002h L00028713: add ecx,eax dec edx jnz L00028707 jmp L0002855E L0002871D: mov eax,[esp+74h] pop edi pop esi pop ebp mov dword ptr [eax+14h],00000000h xor eax,eax pop ebx add esp,00000048h retn 001Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00028740: mov ecx,[esp+04h] cmp dword ptr [ecx+000000B4h],04000000h mov eax,[ecx+08h] jbe L0002879B mov ecx,[eax+10h] mov eax,ecx and eax,FFFFFF00h cmp eax,00010100h jz L00028793 cmp eax,00010200h jz L00028793 cmp eax,00010300h jz L0002877A mov eax,004B0000h retn 0004h ;------------------------------------------------------------------------------ L0002877A: xor eax,eax cmp ecx,00010303h setz al dec eax and eax,FFC70000h add eax,00840000h retn 0004h ;------------------------------------------------------------------------------ L00028793: mov eax,00435000h retn 0004h ;------------------------------------------------------------------------------ L0002879B: mov eax,00400000h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000287B0: mov edx,[esp+08h] test edx,edx jnz L000287C0 mov eax,00111090h retn 0008h ;------------------------------------------------------------------------------ L000287C0: mov eax,[esp+04h] mov ecx,[eax+08h] mov eax,[ecx+000000ACh] push ebx push esi push edi lea esi,[eax+000002ECh] mov edi,edx mov ecx,00000132h rep movsd lea edi,[edx+000004C8h] mov esi,eax mov ecx,000002F2h add edx,00001090h rep movsd add eax,00000304h mov ebx,00000011h L000287FE: mov ecx,[eax-0Ch] test ecx,ecx jz L00028816 mov esi,[eax] mov edi,edx mov ecx,00004000h rep movsd add edx,00010000h L00028816: add eax,00000048h dec ebx jnz L000287FE pop edi pop esi mov eax,00111090h pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00028830: mov eax,[esp+04h] mov ecx,[eax+08h] mov eax,[esp+08h] mov ecx,[ecx+000000ACh] push ebx and eax,0000FFFFh push ebp push esi lea edx,[eax+eax*8] push edi lea esi,[ecx+edx*8] mov eax,[esi+00000304h] test eax,eax lea edi,[esi+00000304h] push edi jnz L00028871 call SUB_L000291F0 test eax,eax jnz L00028876 pop edi pop esi pop ebp pop ebx retn 0018h ;------------------------------------------------------------------------------ L00028871: call SUB_L00029240 L00028876: mov ebp,[esp+1Ch] mov eax,[esp+20h] mov ebx,[esp+24h] mov ecx,[esp+28h] mov [esi+000002ECh],ebp mov [esi+000002F4h],eax mov [esi+000002F8h],ebx mov [esi+000002FCh],ebx push edi mov [esi+00000300h],ecx call SUB_L000292B0 cmp ax,FFFFh jnz L000288B9 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0018h ;------------------------------------------------------------------------------ L000288B9: mov [edi+08h],ax mov edi,[edi] and eax,0000FFFFh shl eax,04h add eax,edi mov [eax],ebp mov [eax+04h],ebx pop edi mov word ptr [eax+0Ch],FFFFh xor ecx,ecx pop esi mov [eax+08h],ecx pop ebp mov [eax+0Eh],cx mov eax,00000001h pop ebx retn 0018h ;------------------------------------------------------------------------------ Align 8 SUB_L000288F0: sub esp,00000010h mov eax,[esp+14h] mov ecx,[eax+08h] mov eax,[esp+18h] push ebx push ebp and eax,0000FFFFh push esi mov esi,[ecx+000000ACh] lea edx,[eax+eax*8] mov ebp,[esi+edx*8+000002ECh] mov ebx,[esi+edx*8+000002F4h] lea esi,[esi+edx*8] mov edx,[esp+28h] mov ecx,[esi+00000304h] push edi mov edi,[esi+00000300h] lea eax,[esi+00000304h] add edx,00000007h mov [esp+14h],edi mov di,[eax+08h] and edx,FFFFFFF8h cmp di,FFFFh mov [esp+10h],eax mov [esp+1Ch],ecx mov dword ptr [esp+2Ch],00000001h jz L00028986 L0002895C: mov eax,edi and eax,0000FFFFh shl eax,04h add eax,ecx cmp [eax+04h],edx jnc L00028992 mov [esp+18h],edi xor edi,edi mov di,[eax+0Ch] cmp di,FFFFh mov dword ptr [esp+2Ch],00000000h jnz L0002895C L00028986: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ L00028992: mov eax,edi and eax,0000FFFFh shl eax,04h add ecx,eax mov eax,[ecx] sub eax,ebp add ebx,eax mov eax,[esp+30h] mov [eax],ebx mov ebp,[ecx] mov [eax+38h],ebx mov [eax+04h],ebp xor ebp,ebp mov [eax+08h],ebp mov ebx,[ecx] mov [eax+3Ch],ebx mov ebx,[esp+14h] or ebx,00000100h mov [eax+18h],ebx mov bx,[esp+28h] mov [eax+2Eh],bx mov ebx,[esp+24h] mov [eax+0Ch],ebp mov [eax+10h],edx mov ebx,[ebx+2Ch] mov [eax+34h],ebx sub [esi+000002FCh],edx add [ecx],edx sub [ecx+04h],edx jnz L00028A27 cmp [esp+2Ch],ebp jnz L00028A10 mov eax,[esp+18h] mov cx,[ecx+0Ch] mov edx,[esp+1Ch] and eax,0000FFFFh shl eax,04h mov [eax+edx+0Ch],cx jmp L00028A1C L00028A10: mov ax,[ecx+0Ch] mov ecx,[esp+10h] mov [ecx+08h],ax L00028A1C: mov edx,[esp+10h] push edi push edx call SUB_L000292F0 L00028A27: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00028A40: mov eax,[esp+04h] mov ecx,[eax+08h] mov edx,[esp+08h] mov ecx,[ecx+000000ACh] push ebx mov eax,edx and eax,0000FFFFh push ebp mov ebp,[esp+18h] lea eax,[eax+eax*8] lea ebx,[ecx+eax*8] mov ecx,[esp+14h] push esi mov si,[ebx+0000030Ch] mov [esp+10h],ebx add ebx,00000304h add ecx,ebp cmp dx,FFFFh push edi mov edi,[ebx] mov [esp+20h],ecx jz L00028B5E cmp si,FFFFh jnz L00028AC7 push ebx call SUB_L000292B0 cmp ax,si jz L00028B5E mov ecx,[esp+1Ch] mov edx,eax and edx,0000FFFFh shl edx,04h add edi,edx mov [edi],ecx mov [edi+04h],ebp mov [edi+0Ch],si mov [ebx+08h],ax jmp L00028B54 L00028AC7: mov ebx,[esp+1Ch] mov dword ptr [esp+18h],00000001h L00028AD3: mov edx,esi and edx,0000FFFFh shl edx,04h mov ecx,[edx+edi] lea eax,[edx+edi] mov edx,[esp+20h] cmp edx,ecx jz L00028B65 jc L00028B7B mov edx,[eax+04h] mov ebx,[esp+1Ch] add edx,ecx cmp ebx,edx jz L00028BD4 mov ebx,esi xor esi,esi mov si,[eax+0Ch] cmp si,FFFFh mov dword ptr [esp+18h],00000000h jnz L00028AD3 mov ecx,[esp+14h] lea eax,[ecx+00000304h] push eax call SUB_L000292B0 cmp ax,si jz L00028B5E mov edx,[esp+1Ch] and ebx,0000FFFFh shl ebx,04h mov [ebx+edi+0Ch],ax and eax,0000FFFFh shl eax,04h add eax,edi mov [eax],edx mov [eax+04h],ebp mov [eax+0Ch],si L00028B54: mov eax,[esp+14h] add [eax+000002FCh],ebp L00028B5E: pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ L00028B65: mov eax,[esp+1Ch] and esi,0000FFFFh shl esi,04h add esi,edi mov [esi],eax add [esi+04h],ebp jmp L00028B54 L00028B7B: mov ecx,[esp+14h] lea eax,[ecx+00000304h] push eax call SUB_L000292B0 cmp ax,FFFFh jz L00028B5E mov edx,eax and edx,0000FFFFh shl edx,04h lea ecx,[edx+edi] mov edx,[esp+1Ch] mov [ecx],edx mov [ecx+04h],ebp mov [ecx+0Ch],si mov ecx,[esp+18h] test ecx,ecx jz L00028BC4 mov ecx,[esp+14h] add ecx,00000304h mov [ecx+08h],ax jmp L00028B54 L00028BC4: and ebx,0000FFFFh shl ebx,04h mov [ebx+edi+0Ch],ax jmp L00028B54 L00028BD4: and esi,0000FFFFh shl esi,04h mov eax,[esi+edi+04h] add esi,edi add eax,ebp mov [esi+04h],eax mov edx,eax mov ax,[esi+0Ch] cmp ax,FFFFh jz L00028B54 mov ebx,eax and ebx,0000FFFFh shl ebx,04h add edi,ebx mov ebx,[edi] add ecx,edx cmp ecx,ebx jnz L00028B54 mov ecx,[edi+04h] push eax mov eax,[esp+18h] add ecx,edx mov [esi+04h],ecx mov dx,[edi+0Ch] add eax,00000304h push eax mov [esi+0Ch],dx call SUB_L000292F0 jmp L00028B54 Align 16 SUB_L00028C40: push ebx mov ebx,[esp+08h] push ebp push esi mov esi,[ebx+08h] mov eax,[esi+00000130h] xor ebp,ebp cmp eax,ebp push edi jz L00028C75 mov [ebx+000000B8h],eax mov eax,[esi+00000134h] pop edi pop esi mov [ebx+000000BCh],eax pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00028C75: push 00000010h push ebp call OsAllocMem mov edi,eax cmp edi,ebp mov [esi+00000130h],edi jnz L00028C98 pop edi mov [esi+00000134h],ebp pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L00028C98: mov [ebx+000000B8h],edi mov [edi+0Ch],ebp mov eax,[esi+00000130h] push 00000022h mov [esi+00000134h],eax push ebp mov [ebx+000000BCh],eax call OsAllocMem cmp eax,ebp mov [edi+04h],eax jnz L00028CE3 mov ecx,[esi+00000130h] push ecx call OsFreeMem pop edi mov [esi+00000130h],ebp mov [esi+00000134h],ebp pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L00028CE3: xor ecx,ecx L00028CE5: inc ecx mov [eax],cx add eax,00000002h cmp cx,0011h jc L00028CE5 mov [edi+08h],ebp mov dword ptr [edi+0Ch],00000011h pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00028D10: push ebx push ebp push esi push edi mov edi,[esp+14h] mov esi,[edi+08h] mov ebx,[esi+00000134h] mov eax,[ebx+04h] push eax call OsFreeMem xor ebp,ebp mov [ebx+04h],ebp mov ecx,[esi+00000130h] push ecx call OsFreeMem mov [edi+000000B8h],ebp mov [edi+000000BCh],ebp pop edi mov [esi+00000130h],ebp mov [esi+00000134h],ebp pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00028D60: mov eax,[esp+04h] mov ecx,[eax+08h] mov edx,[esp+10h] push esi mov esi,[ecx+000000ACh] mov ecx,[esp+10h] push 80008000h shl edx,0Ch push edx push ecx push 00000000h push 00000000h push eax call SUB_L00028830 test eax,eax jnz L00028D92 pop esi retn 0010h ;------------------------------------------------------------------------------ L00028D92: mov word ptr [esi+00000258h],0000h mov eax,00000001h pop esi retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00028DB0: sub esp,00000044h push ebx push ebp mov ebp,[esp+50h] mov eax,[ebp+08h] mov ecx,[eax+000000ACh] push esi mov esi,[eax+00000134h] test esi,esi push edi mov [esp+58h],ecx mov [ebp+000000BCh],esi jnz L00028DE5 pop edi pop esi pop ebp xor ax,ax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00028DE5: mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+01h] cmp ecx,edx jz L00028E03 mov edx,[esi+04h] mov di,[edx+eax*2] cmp di,FFFFh mov [esi+08h],ecx jnz L00028E34 L00028E03: push ebp call SUB_L00025D40 mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+01h] cmp ecx,edx jz L00028E27 mov edx,[esi+04h] mov di,[edx+eax*2] cmp di,FFFFh mov [esi+08h],ecx jnz L00028E34 L00028E27: pop edi pop esi pop ebp xor ax,ax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00028E34: mov eax,[esp+5Ch] mov edx,[esp+58h] lea ebx,[eax+003FFFFFh] xor eax,eax mov ax,[edx+00000258h] lea ecx,[esp+10h] push ecx and ebx,FFC00000h push ebx push eax push ebp call SUB_L000288F0 test eax,eax jnz L00028EB4 push ebp call SUB_L00025D40 mov edx,[esp+58h] xor eax,eax mov ax,[edx+00000258h] lea ecx,[esp+10h] push ecx push ebx push eax push ebp call SUB_L000288F0 test eax,eax jnz L00028EB4 mov eax,[esi+0Ch] mov ecx,edi and ecx,0000FFFFh cmp ecx,eax jnc L00028EA7 mov eax,[esi+08h] test eax,eax jz L00028EA7 mov edx,[esi+04h] dec eax mov [esi+08h],eax mov [edx+eax*2],di L00028EA7: pop edi pop esi pop ebp xor ax,ax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00028EB4: mov eax,[esp+60h] mov ecx,[esp+5Ch] mov edx,[esp+10h] push eax mov eax,[esp+18h] push ecx push edx push eax push edi push ebp call SUB_L00028830 test eax,eax jnz L00028F1F mov eax,[esi+0Ch] mov ecx,edi and ecx,0000FFFFh cmp ecx,eax jnc L00028EF4 mov eax,[esi+08h] test eax,eax jz L00028EF4 mov edx,[esi+04h] dec eax mov [esi+08h],eax mov [edx+eax*2],di L00028EF4: mov eax,[esp+20h] mov edx,[esp+58h] mov ecx,[esp+4Ch] push eax xor eax,eax mov ax,[edx+00000258h] push ecx push eax push ebp call SUB_L00028A40 pop edi pop esi pop ebp xor ax,ax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00028F1F: mov ax,di pop edi pop esi pop ebp pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00028F30: mov edx,[esp+04h] mov eax,[edx+08h] mov ecx,[eax+000000ACh] push ebx mov ebx,[esp+0Ch] push ebp mov ebp,[eax+00000134h] push edi xor edi,edi cmp ebx,edi jz L00029025 cmp ebx,[ebp+0Ch] jnc L00029025 push esi lea eax,[ebx+ebx*8] lea esi,[ecx+eax*8] mov eax,[esi+000002F8h] mov cx,[ecx+00000258h] add eax,003FFFFFh and eax,FFC00000h push eax mov eax,[esi+000002ECh] push eax push ecx push edx call SUB_L00028A40 mov eax,[esi+00000304h] cmp eax,edi jz L00028FA0 push eax call OsFreeMem mov [esi+00000304h],edi L00028FA0: mov [esi+00000304h],edi mov [esi+00000308h],edi mov eax,0000FFFFh mov [esi+0000030Ch],ax mov [esi+0000030Eh],ax mov [esi+00000310h],di mov [esi+00000312h],di mov [esi+000002ECh],edi mov [esi+000002F0h],edi mov [esi+000002F4h],edi mov [esi+000002F8h],edi mov [esi+000002FCh],edi mov [esi+00000300h],edi mov [esi+0000032Ch],edi mov [esi+0000031Ch],edi mov [esi+00000330h],edi mov edx,ebx mov [esi+00000328h],edi and edx,eax cmp edx,[ebp+0Ch] pop esi jnc L00029025 mov eax,[ebp+08h] cmp eax,edi jz L00029025 mov ecx,[ebp+04h] dec eax mov [ebp+08h],eax mov [ecx+eax*2],bx L00029025: pop edi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00029030: sub esp,00000124h push ebx push ebp push esi mov esi,[esp+0000013Ch] test esi,esi push edi mov dword ptr [esp+10h],00000001h jnz L0002905C pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000124h retn 0010h ;------------------------------------------------------------------------------ L0002905C: mov ebx,[esp+0000013Ch] mov eax,ebx shr eax,06h lea ecx,[00000010h+eax*8] push ecx push 00000001h call OsAllocMem mov edi,eax test edi,edi mov [esp+20h],edi jnz L0002908E pop edi pop esi pop ebp pop ebx add esp,00000124h retn 0010h ;------------------------------------------------------------------------------ L0002908E: test ebx,ebx mov edx,[esp+00000144h] mov [esp+14h],esi mov [edi],edx lea ebp,[edi+04h] jz L00029154 L000290A6: mov eax,[esp+10h] test eax,eax jz L000290BD cmp ebx,00000040h jbe L000290CA mov dword ptr [esp+1Ch],00000040h jmp L000290CE L000290BD: cmp ebx,00000020h mov dword ptr [esp+1Ch],00000020h ja L000290CE L000290CA: mov [esp+1Ch],ebx L000290CE: mov eax,[esp+00000144h] mov esi,[esp+00000138h] lea ecx,[esp+24h] push ecx mov ecx,[esi] push 0000010Ch lea edx,[esp+30h] push edx push 00000008h mov [esp+28h],eax lea eax,[esp+28h] push eax push 002320C0h push ecx call OsDeviceIoControl mov eax,[esp+28h] test eax,eax jnz L0002913C mov edx,[esp+30h] mov [ebp+00h],edx mov eax,[esp+1Ch] add ebp,00000004h sub ebx,eax test eax,eax jbe L0002914C mov edi,[esp+14h] mov ecx,eax lea esi,[esp+34h] rep movsd mov ecx,[esp+14h] mov edi,[esp+20h] lea edx,[ecx+eax*4] mov [esp+14h],edx jmp L0002914C L0002913C: mov eax,[esp+10h] test eax,eax jz L00029163 mov dword ptr [esp+10h],00000000h L0002914C: test ebx,ebx jnz L000290A6 L00029154: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,00000124h retn 0010h ;------------------------------------------------------------------------------ L00029163: push edi push esi call SUB_L00029180 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000124h retn 0010h ;------------------------------------------------------------------------------ Align 8 SUB_L00029180: sub esp,00000008h push ebp mov ebp,[esp+14h] test ebp,ebp jz L000291E1 mov eax,[ebp+04h] test eax,eax push esi lea esi,[ebp+04h] push edi mov edi,[ebp+00h] jz L000291D9 push ebx mov ebx,[esp+1Ch] L000291A0: mov [esp+14h],eax lea eax,[esp+20h] push eax mov eax,[ebx] push 00000004h lea ecx,[esp+24h] push ecx push 00000008h lea edx,[esp+20h] push edx push 002320C4h push eax mov [esp+2Ch],edi call OsDeviceIoControl mov dword ptr [esi],00000000h mov eax,[esi+04h] add esi,00000004h test eax,eax jnz L000291A0 pop ebx L000291D9: push ebp call OsFreeMem pop edi pop esi L000291E1: pop ebp add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000291F0: push 00010000h push 00000001h call OsAllocMem xor edx,edx cmp eax,edx jnz L00029207 xor eax,eax retn 0004h ;------------------------------------------------------------------------------ L00029207: mov ecx,[esp+04h] mov [ecx],eax mov eax,00001000h push ecx mov [ecx+04h],edx mov word ptr [ecx+08h],FFFFh mov [ecx+0Ah],dx mov [ecx+0Ch],ax mov [ecx+0Eh],ax call SUB_L00029240 mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00029240: mov ecx,[esp+04h] mov ax,[ecx+0Eh] push esi xor esi,esi cmp ax,si push edi mov edi,[ecx] jz L0002929E xor edx,edx cmp ax,si mov [ecx+0Ah],si mov [ecx+0Ch],ax mov word ptr [ecx+08h],FFFFh jbe L0002928E push ebp lea eax,[edi+04h] L0002926C: lea ebp,[edx+01h] mov [eax+08h],bp mov [eax-04h],esi mov [eax],esi mov [eax+04h],esi xor ebp,ebp mov [eax+0Ah],si mov bp,[ecx+0Eh] inc edx add eax,00000010h cmp edx,ebp jl L0002926C pop ebp L0002928E: xor eax,eax mov ax,[ecx+0Eh] shl eax,04h mov word ptr [eax+edi-04h],FFFFh L0002929E: pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000292B0: mov ecx,[esp+04h] mov edx,[ecx] test edx,edx mov eax,0000FFFFh jz L000292DF mov ax,[ecx+0Ah] cmp ax,FFFFh jz L000292DF push esi mov esi,eax and esi,0000FFFFh shl esi,04h mov dx,[esi+edx+0Ch] mov [ecx+0Ah],dx pop esi L000292DF: retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000292F0: mov edx,[esp+08h] mov ecx,[esp+04h] mov eax,[ecx] push esi mov esi,edx and esi,0000FFFFh shl esi,04h add eax,esi mov si,[ecx+0Ah] mov [eax+0Ch],si mov [ecx+0Ah],dx xor ecx,ecx mov [eax],ecx mov [eax+04h],ecx mov [eax+08h],ecx mov [eax+0Eh],cx pop esi retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00029330: push 00002344h push 00000001h call OsAllocMem test eax,eax jz L00029349 mov ecx,[esp+04h] mov [eax],ecx retn 0004h ;------------------------------------------------------------------------------ L00029349: or eax,FFFFFFFFh retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00029350: sub esp,000000B8h mov eax,[esp+000000C4h] mov ecx,[eax+04h] push ebx mov ebx,[eax+000000ACh] push ebp mov ebp,[esp+000000C4h] push esi mov esi,[esp+000000CCh] mov [ebp+04h],esi mov [ebp+08h],eax mov edx,[ebx+44h] mov eax,[ebx+40h] add edx,00000010h test eax,eax push edi mov dword ptr [esp+10h],00000001h mov [esp+18h],ecx mov [ebx+54h],edx jnz L0002952B lea eax,[ebp+10h] mov [esp+14h],eax mov edi,00010000h L000293AA: mov ecx,[esp+14h] push ecx push edi push 01000000h push esi call SUB_L00026250 cmp eax,00000001h jz L000293D8 shr edi,1 cmp edi,00004000h jc L000293D0 test edi,edi jbe L000293D8 jmp L000293AA L000293D0: mov dword ptr [esp+10h],00000000h L000293D8: mov edi,00100000h L000293DD: lea eax,[ebx+000000F4h] push eax push edi push 82800000h push esi call SUB_L00026250 cmp eax,00000001h jz L0002940D shr edi,1 cmp edi,00004000h jc L00029405 test edi,edi jbe L0002940D jmp L000293DD L00029405: mov dword ptr [esp+10h],00000000h L0002940D: mov edi,00100000h L00029412: lea eax,[ebx+0000017Ch] push eax push edi push 82000400h push esi call SUB_L00026250 cmp eax,00000001h jz L00029442 shr edi,1 cmp edi,00004000h jc L0002943A test edi,edi jbe L00029442 jmp L00029412 L0002943A: mov dword ptr [esp+10h],00000000h L00029442: mov edi,L00020000 L00029447: lea eax,[ebx+000001C0h] push eax push edi push 82000400h push esi call SUB_L00026250 cmp eax,00000001h jz L0002946D shr edi,1 cmp edi,00004000h jc L00029475 test edi,edi ja L00029447 L0002946D: mov eax,[esp+10h] test eax,eax jnz L000294E0 L00029475: mov eax,[esp+14h] cmp dword ptr [eax],00000000h jz L00029485 push eax push esi call SUB_L00026030 L00029485: mov ecx,[ebx+000000F4h] test ecx,ecx lea eax,[ebx+000000F4h] jz L0002949C push eax push esi call SUB_L00026030 L0002949C: mov ecx,[ebx+0000017Ch] test ecx,ecx lea eax,[ebx+0000017Ch] jz L000294B3 push eax push esi call SUB_L00026030 L000294B3: mov ecx,[ebx+000001C0h] test ecx,ecx lea eax,[ebx+000001C0h] jz L000294CA push eax push esi call SUB_L00026030 L000294CA: pop edi pop esi pop ebp mov dword ptr [ebx+40h],00000000h xor eax,eax pop ebx add esp,000000B8h retn 0030h ;------------------------------------------------------------------------------ L000294E0: lea edx,[ebx+00000138h] push edx push 80100000h push esi call SUB_L00025B10 push ebp call SUB_L000302E0 push ebp call SUB_L0002FE60 mov eax,[esp+000000D4h] push eax push ebp call SUB_L0002DD80 mov ecx,[ebx+44h] mov eax,[esp+18h] mov [eax+00002080h],ecx mov word ptr [eax+00002098h],F7FFh mov dword ptr [ebx+40h],00000001h jmp L00029575 L0002952B: lea edx,[ebp+10h] push edx push 00010000h push 01000000h push esi call SUB_L00026250 test eax,eax jnz L00029550 pop edi pop esi pop ebp pop ebx add esp,000000B8h retn 0030h ;------------------------------------------------------------------------------ L00029550: push ebp call SUB_L000302E0 push ebp call SUB_L0002FE60 mov eax,[esp+000000D4h] push eax push ebp call SUB_L0002DD80 inc [ebx+40h] mov dword ptr [esp+10h],00000001h L00029575: mov ecx,[esp+000000D4h] lea edx,[esp+1Ch] push edx mov [esp+20h],ecx call SUB_L0002AC80 mov eax,[esp+10h] pop edi pop esi pop ebp pop ebx add esp,000000B8h retn 0030h ;------------------------------------------------------------------------------ Align 8 SUB_L000295A0: mov ecx,[esp+08h] mov eax,00000001h cmp ecx,eax jnz L000295B7 mov ecx,[esp+04h] mov [ecx+0Ch],eax retn 0008h ;------------------------------------------------------------------------------ L000295B7: push esi mov esi,[esp+08h] mov edx,[esi+08h] push edx call SUB_L00029670 mov dword ptr [esi+0Ch],00000000h pop esi retn 0008h ;------------------------------------------------------------------------------ SUB_L000295D0: push esi push edi mov edi,[esp+0Ch] mov eax,[edi+08h] mov esi,[eax+000000ACh] mov eax,[esi+40h] dec eax lea ecx,[edi+10h] mov [esi+40h],eax mov edx,[edi+04h] push ecx push edx call SUB_L00026030 mov eax,[esi+40h] test eax,eax jnz L0002963A mov ecx,[edi+04h] lea eax,[esi+000000F4h] push eax push ecx call SUB_L00026030 mov eax,[edi+04h] lea edx,[esi+0000017Ch] push edx push eax call SUB_L00026030 mov edx,[edi+04h] lea ecx,[esi+000001C0h] push ecx push edx call SUB_L00026030 mov eax,[edi+04h] add esi,00000138h push esi push eax call SUB_L00026030 L0002963A: push edi call OsFreeMem pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00029650: mov eax,[esp+08h] mov ecx,[esp+04h] mov edx,[ecx+04h] shl eax,04h mov [edx+L0007000C],ax retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00029670: push ebx push edi mov edi,[esp+0Ch] mov eax,[edi+0000011Ch] test eax,eax jz L000296D6 lea ebx,[edi+00000104h] push ebx call SUB_L000B70E0 test eax,eax jz L000296D6 push esi mov esi,[edi+000000ACh] push 00000004h push edi call HS_MM_GetRingSpace mov ecx,[esi+54h] mov edx,[esi+50h] push ecx push eax add edx,00000004h push edx push edi call SUB_L0002DD50 mov ecx,[esi+50h] push 00000004h add ecx,00000004h push edi mov [esi+50h],ecx call HS_FireRing mov eax,[esi+50h] cmp eax,[esi+10h] jbe L000296CF L000296CA: cmp eax,[esi+10h] ja L000296CA L000296CF: push ebx call SUB_L000B7110 pop esi L000296D6: pop edi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000296E0: mov ecx,[esp+04h] mov ecx,[ecx+000000ACh] push esi mov esi,[esp+0Ch] or eax,FFFFFFFFh lea edx,[esi+04h] cmp [ecx+10h],edx jnc L00029706 mov edx,[ecx+50h] cmp [ecx+10h],edx ja L00029708 cmp edx,esi jnc L00029708 L00029706: xor eax,eax L00029708: pop esi retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00029710: mov ecx,[esp+04h] mov ecx,[ecx+000000ACh] push esi mov esi,[esp+0Ch] or eax,FFFFFFFFh cmp [ecx+10h],esi jnc L00029733 mov edx,[ecx+50h] cmp [ecx+10h],edx ja L00029735 cmp edx,esi jnc L00029735 L00029733: xor eax,eax L00029735: pop esi retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00029740: mov eax,[esp+04h] mov ecx,[eax+04h] xor eax,eax mov al,[ecx+000003DAh] and eax,00000008h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00029760: mov eax,[esp+04h] mov ecx,[eax+04h] mov edx,[eax+34h] mov eax,[ecx+L00060018] push esi mov esi,[ecx+L0006000C] and eax,B0000000h and esi,000007FFh cmp eax,80000000h jz L0002979F cmp eax,A0000000h jz L0002979F mov eax,[ecx+L00070000] and eax,00000FFFh pop esi retn 0004h ;------------------------------------------------------------------------------ L0002979F: mov eax,[ecx+L00070000] and eax,00000FFFh imul eax,edx xor edx,edx div esi pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000297C0: push esi mov esi,[esp+08h] push esi call SUB_L00029740 test eax,eax jnz L000297D9 L000297CF: push esi call SUB_L00029740 test eax,eax jz L000297CF L000297D9: mov eax,[esi+04h] mov byte ptr [eax+000003C4h],01h mov esi,[esi+04h] and byte ptr [esi+000003C5h],DFh pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00029800: push esi mov esi,[esp+08h] push esi call SUB_L00029740 test eax,eax jnz L00029819 L0002980F: push esi call SUB_L00029740 test eax,eax jz L0002980F L00029819: mov eax,[esi+04h] mov byte ptr [eax+000003C4h],01h mov esi,[esi+04h] or byte ptr [esi+000003C5h],20h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00029840: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] push esi mov esi,[ebp+00h] mov eax,[esi+000000ACh] mov [esp+0Ch],eax cmp dword ptr [ebp+08h],00000100h push edi mov edi,[esi+000000A4h] mov [esp+14h],esi jnz L0002987E cmp dword ptr [esi+28h],00000018h jnz L0002987E pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ L0002987E: cmp word ptr [ebp+7Ah],0000h jz L000298A3 push edi push ebp call SUB_L000300C0 test eax,eax jz L0002989D pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ L0002989D: mov word ptr [ebp+04h],0001h L000298A3: xor ebx,ebx mov bl,[ebp+07h] test bl,04h jz L000298B3 and ebx,00000003h inc ebx jmp L000298B9 L000298B3: mov ebx,[esi+28h] shr ebx,03h L000298B9: mov eax,[ebp+7Ch] test eax,eax mov [esp+38h],ebx mov dword ptr [esp+2Ch],00000000h jz L00029904 mov ecx,[esp+10h] mov edx,[ecx+50h] add edx,00000002h push edx lea eax,[esp+2Ch] push eax push edi call SUB_L00030340 cmp eax,FFFFFFFFh jnz L000298F3 pop edi pop esi pop ebp or eax,eax pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ L000298F3: push ebp lea ecx,[esp+2Ch] push ecx call SUB_L000303E0 mov word ptr [ebp+04h],0001h L00029904: mov edx,[ebp+08h] or edx,51400006h mov [edi+000022A4h],edx mov al,[ebp+06h] mov [edi+000022AAh],al mov cl,[ebp+07h] mov [edi+000022ABh],cl mov dx,[ebp+18h] lea esi,[edi+000022A4h] mov [edi+000022A8h],dx mov al,bl dec al or al,04h or cl,al mov [edi+000022ABh],cl imul bx,[ebp+24h] mov [edi+000022ACh],bx mov cx,[ebp+26h] mov [edi+000022AEh],cx movsx edx,[ebp+1Ch] movsx ecx,[ebp+1Eh] xor eax,eax mov ax,[ebp+26h] movsx ebx,[ebp+50h] mov [esp+20h],edx lea edx,[eax+ecx-01h] mov [esp+18h],edx xor edx,edx mov dx,[ebp+24h] mov [esp+24h],edx movsx edx,[ebp+52h] cmp ecx,edx lea eax,[eax+edx-01h] mov [esp+1Ch],eax mov eax,[ebp+18h] mov [edi+000022B0h],eax mov eax,[ebp+4Ch] mov [edi+000022B4h],eax mov eax,[ebp+4Ch] mov [edi+000022B8h],eax jbe L00029A0F mov edx,[ebp+00000080h] mov eax,[esp+18h] mov ecx,eax sub ecx,edx mov edx,[esi] shl ecx,05h and ecx,000000E0h or edx,ecx mov cx,[edi+000022B4h] mov [esi],edx mov dx,[edi+000022A8h] neg dx mov [edi+000022A8h],dx mov edx,[edi+000022B0h] imul edx,eax mov eax,[edi+000022B8h] neg cx imul eax,[esp+1Ch] mov [edi+000022B4h],cx mov [edi+000022B0h],edx mov [edi+000022B8h],eax jmp L00029A3F L00029A0F: mov eax,ecx sub eax,[ebp+00000080h] shl eax,05h and eax,000000E0h or [esi],eax mov eax,[edi+000022B0h] imul eax,ecx mov ecx,[edi+000022B8h] imul ecx,edx mov [edi+000022B0h],eax mov [edi+000022B8h],ecx L00029A3F: mov eax,[esp+20h] cmp eax,ebx jbe L00029A76 or dword ptr [edi+000022A8h],40000000h mov ecx,[esp+24h] lea edx,[ecx+eax] mov eax,[esp+38h] imul edx,eax add ecx,ebx imul ecx,eax mov eax,[edi+000022B8h] dec edx add [edi+000022B0h],edx dec ecx add eax,ecx jmp L00029A96 L00029A76: mov ecx,[esp+38h] mov edx,[edi+000022B0h] imul eax,ecx imul ebx,ecx add edx,eax mov eax,[edi+000022B8h] mov [edi+000022B0h],edx add eax,ebx L00029A96: mov ebx,[edi+000022B0h] mov [edi+000022B8h],eax mov eax,[ebp+14h] mov edx,[edi+000022B8h] add ebx,eax mov [edi+000022B0h],ebx mov ecx,[ebp+48h] add edx,ecx mov [edi+000022B8h],edx mov edx,[ebp+000000A4h] mov [edi+000022BCh],edx mov eax,[esp+2Ch] mov [edi+000022C0h],eax cmp word ptr [ebp+04h],0000h jz L00029B28 mov ebx,[esp+14h] push 0000000Bh push ebx call HS_MM_GetRingSpace mov edi,eax mov ecx,00000008h rep movsd mov esi,[esp+10h] mov ecx,[esi+54h] mov edx,[esi+50h] push ecx add eax,00000020h push eax add edx,00000002h push edx push ebx call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 0000000Bh mov [esi+50h],edx push ebx mov esi,edx call HS_FireRing pop edi mov eax,esi pop esi pop ebp pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ L00029B28: mov ebx,[esp+14h] push 00000008h push ebx call HS_MM_GetRingSpace push 00000008h mov edi,eax mov ecx,00000008h push ebx rep movsd call HS_FireRing xor esi,esi pop edi mov eax,esi pop esi pop ebp pop ebx add esp,00000024h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00029B60: sub esp,00000010h push ebx push ebp mov ebp,[esp+1Ch] mov eax,[ebp+00h] mov ebx,[eax+000000ACh] push edi mov edi,[eax+000000A4h] mov [esp+20h],eax mov eax,[eax+28h] push edi shr eax,03h push ebp mov [esp+14h],eax call SUB_L000301D0 test eax,eax jz L00029B9E pop edi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ L00029B9E: mov eax,[ebx+50h] add eax,00000002h push eax lea ecx,[esp+14h] push ecx push edi call SUB_L00030340 cmp eax,FFFFFFFFh jnz L00029BC0 pop edi pop ebp or eax,eax pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ L00029BC0: push esi push ebp lea edx,[esp+18h] push edx call SUB_L000303E0 mov ecx,[ebp+00000080h] xor eax,eax mov ax,[ebp+1Eh] lea esi,[edi+000022A4h] push 0000000Ch sub eax,ecx xor ecx,ecx mov cl,[ebp+50h] shl eax,05h and eax,000000E0h and ecx,00000007h shl ecx,11h or eax,ecx or eax,51800007h mov [esi],eax mov dl,[ebp+06h] mov [edi+000022AAh],dl mov al,[ebp+07h] mov [edi+000022ABh],al mov cx,[ebp+18h] mov [edi+000022A8h],cx mov ecx,[esp+14h] mov dl,cl dec dl or dl,04h or al,dl mov [edi+000022ABh],al mov ax,[ebp+24h] imul ax,cx mov [edi+000022ACh],ax mov dx,[ebp+26h] mov [edi+000022AEh],dx mov edx,[ebp+18h] mov [edi+000022B0h],edx movsx eax,[ebp+1Eh] imul eax,edx mov [edi+000022B0h],eax movsx edx,[ebp+1Ch] imul edx,ecx add eax,edx mov [edi+000022B0h],eax mov ecx,[ebp+14h] add ecx,eax mov [edi+000022B0h],ecx mov edx,[ebp+4Ch] dec edx mov [edi+000022B4h],edx mov eax,[ebp+48h] mov [edi+000022B8h],eax mov ecx,[ebp+5Ch] mov [edi+000022BCh],ecx mov edx,[ebp+58h] mov ecx,[esp+28h] mov [edi+000022C0h],edx mov eax,[esp+1Ch] push ecx mov [edi+000022C4h],eax call HS_MM_GetRingSpace mov edi,eax mov ecx,00000009h rep movsd mov edx,[ebx+54h] mov esi,[esp+24h] push edx add eax,00000024h push eax mov eax,[ebx+50h] add eax,00000002h push eax push esi call SUB_L0002DD30 mov edx,[ebx+50h] add edx,00000002h mov [ebx+50h],edx mov ebx,edx push 0000000Ch push esi call HS_FireRing pop esi pop edi pop ebp mov eax,ebx pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00029D00: sub esp,00000020h push ebx push ebp mov ebp,[esp+2Ch] mov eax,[ebp+00h] mov ebx,[eax+28h] mov ecx,[eax+000000ACh] shr ebx,03h cmp word ptr [ebp+7Ah],0000h push edi mov edi,[eax+000000A4h] mov [esp+30h],eax mov [esp+20h],ecx jz L00029D4B push edi push ebp call SUB_L000300C0 test eax,eax jz L00029D45 pop edi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L00029D45: mov word ptr [ebp+04h],0001h L00029D4B: mov dword ptr [edi+000022A4h],51C00009h mov dl,[ebp+06h] mov [edi+000022AAh],dl mov al,[ebp+07h] mov [edi+000022ABh],al mov cx,[ebp+18h] mov [edi+000022A8h],cx mov cl,al mov dl,bl dec dl or dl,04h or cl,dl mov [edi+000022ABh],cl mov ax,bx imul ax,[ebp+24h] mov [edi+000022ACh],ax mov cx,[ebp+26h] mov [edi+000022AEh],cx movsx edx,[ebp+1Ch] movsx ecx,[ebp+1Eh] xor eax,eax mov ax,[ebp+26h] mov [esp+18h],edx push esi movsx esi,[ebp+50h] mov [esp+18h],esi lea edx,[eax+ecx-01h] mov [esp+10h],edx xor edx,edx mov dx,[ebp+24h] mov [esp+20h],edx movsx edx,[ebp+52h] cmp ecx,edx lea eax,[eax+edx-01h] mov [esp+14h],eax mov eax,[ebp+18h] mov [edi+000022B0h],eax mov eax,[ebp+4Ch] mov [edi+000022B4h],eax mov eax,[ebp+4Ch] mov [edi+000022B8h],eax jbe L00029E68 mov edx,[ebp+00000080h] mov eax,[esp+10h] mov ecx,eax sub ecx,edx shl ecx,05h mov edx,ecx and edx,000000E0h or edx,51C00009h mov [edi+000022A4h],edx mov dx,[edi+000022B4h] lea ecx,[edi+000022A4h] mov [esp+10h],ecx mov cx,[edi+000022A8h] neg cx neg dx mov [edi+000022A8h],cx mov ecx,[edi+000022B0h] mov [edi+000022B4h],dx imul ecx,eax mov edx,[edi+000022B8h] imul edx,[esp+14h] mov [edi+000022B0h],ecx mov [edi+000022B8h],edx jmp L00029EB1 L00029E68: mov esi,[ebp+00000080h] mov eax,ecx sub eax,esi shl eax,05h mov esi,eax and esi,000000E0h or esi,51C00009h lea eax,[edi+000022A4h] mov [eax],esi mov esi,[esp+18h] mov [esp+10h],eax mov eax,[edi+000022B0h] imul eax,ecx mov ecx,[edi+000022B8h] imul ecx,edx mov [edi+000022B0h],eax mov [edi+000022B8h],ecx L00029EB1: mov eax,[esp+1Ch] cmp eax,esi jbe L00029EEC or dword ptr [edi+000022A8h],40000000h mov ecx,[esp+20h] lea edx,[ecx+eax] mov eax,[edi+000022B0h] imul edx,ebx add ecx,esi imul ecx,ebx dec edx add eax,edx mov [edi+000022B0h],eax mov eax,[edi+000022B8h] dec ecx add eax,ecx jmp L00029F08 L00029EEC: mov ecx,[edi+000022B0h] imul eax,ebx imul esi,ebx add ecx,eax mov eax,[edi+000022B8h] mov [edi+000022B0h],ecx add eax,esi L00029F08: mov esi,[edi+000022B0h] mov [edi+000022B8h],eax mov eax,[ebp+14h] mov edx,[edi+000022B8h] add esi,eax mov [edi+000022B0h],esi mov ecx,[ebp+48h] add edx,ecx xor esi,esi mov [edi+000022B8h],edx mov [edi+000022BCh],esi mov edx,[ebp+00000088h] mov [edi+000022C0h],edx mov eax,[ebp+0000008Ch] mov [edi+000022C4h],eax test byte ptr [ebp+07h],80h jz L00029F64 mov [edi+000022C8h],esi mov [edi+000022CCh],esi jmp L00029F83 L00029F64: lea ecx,[esp+28h] push ecx push ebp call SUB_L000306B0 mov edx,[esp+28h] mov [edi+000022C8h],edx mov eax,[esp+2Ch] mov [edi+000022CCh],eax L00029F83: cmp [ebp+04h],si jz L00029FDE mov ecx,[esp+34h] push 0000000Eh push ecx call HS_MM_GetRingSpace mov esi,[esp+10h] mov edi,eax mov ecx,0000000Bh rep movsd mov esi,[esp+24h] mov edx,[esi+54h] mov edi,[esp+34h] push edx add eax,0000002Ch push eax mov eax,[esi+50h] add eax,00000002h push eax push edi call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 0000000Eh mov [esi+50h],edx push edi mov esi,edx call HS_FireRing mov eax,esi pop esi pop edi pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ L00029FDE: mov ecx,[esp+34h] push 0000000Bh push ecx call HS_MM_GetRingSpace mov edx,[esp+34h] mov esi,[esp+10h] push 0000000Bh mov edi,eax mov ecx,0000000Bh push edx rep movsd call HS_FireRing xor esi,esi mov eax,esi pop esi pop edi pop ebp pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002A020: sub esp,0000000Ch push ebx push ebp mov ebp,[esp+18h] mov eax,[ebp+00h] mov ecx,[eax+000000ACh] mov ebx,[eax+28h] push edi mov edi,[eax+000000A4h] push edi push ebp mov [esp+24h],eax mov [esp+14h],ecx shr ebx,03h call SUB_L000301D0 test eax,eax jz L0002A05E pop edi pop ebp or eax,FFFFFFFFh pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L0002A05E: xor edx,edx mov dl,[ebp+50h] push esi lea esi,[edi+000022A4h] and edx,00000007h shl edx,11h or edx,5200000Ah mov [esi],edx mov al,[ebp+06h] mov [edi+000022AAh],al mov cl,[ebp+07h] mov [edi+000022ABh],cl mov dx,[ebp+18h] mov [edi+000022A8h],dx mov al,bl dec al or al,04h or cl,al mov [edi+000022ABh],cl mov cx,[ebp+24h] imul cx,bx mov [edi+000022ACh],cx mov dx,[ebp+26h] mov [edi+000022AEh],dx mov ecx,[ebp+18h] mov [edi+000022B0h],ecx movsx eax,[ebp+1Eh] imul eax,ecx mov [edi+000022B0h],eax movsx ecx,[ebp+1Ch] imul ecx,ebx add eax,ecx mov [edi+000022B0h],eax mov edx,[ebp+14h] add edx,eax mov [edi+000022B0h],edx mov eax,[ebp+4Ch] dec eax mov [edi+000022B4h],eax mov ecx,[ebp+48h] mov [edi+000022B8h],ecx mov edx,[ebp+5Ch] mov [edi+000022BCh],edx mov eax,[ebp+58h] mov [edi+000022C0h],eax mov ecx,[ebp+00000088h] mov [edi+000022C4h],ecx mov edx,[ebp+0000008Ch] mov [edi+000022C8h],edx test byte ptr [ebp+07h],80h jz L0002A140 xor eax,eax mov [edi+000022CCh],eax mov [edi+000022D0h],eax jmp L0002A179 L0002A140: lea eax,[esp+14h] push eax push ebp call SUB_L000306B0 mov ecx,[esp+14h] mov [edi+000022CCh],ecx mov edx,[esp+18h] mov ecx,[esi] xor eax,eax mov [edi+000022D0h],edx mov ax,[ebp+1Eh] sub eax,[ebp+00000080h] shl eax,05h and eax,000000E0h or ecx,eax mov [esi],ecx L0002A179: mov ecx,[esp+20h] push 0000000Fh push ecx call HS_MM_GetRingSpace mov edi,eax mov ecx,0000000Ch rep movsd mov esi,[esp+10h] mov edx,[esi+54h] mov edi,[esp+20h] push edx add eax,00000030h push eax mov eax,[esi+50h] add eax,00000002h push eax push edi call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 0000000Fh mov [esi+50h],edx push edi mov esi,edx call HS_FireRing mov eax,esi pop esi pop edi pop ebp pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002A1D0: sub esp,0000000Ch mov eax,[esp+10h] mov cx,[eax+26h] mov dx,[eax+24h] push ebx mov bx,[eax+1Ch] push ebp mov bp,[eax+28h] push esi mov si,[eax+1Eh] push edi xor edi,edi cmp si,cx mov [esp+10h],edi mov [esp+20h],ebx jnz L0002A266 cmp si,[eax+2Ah] jl L0002A27B cmp si,[eax+2Eh] jge L0002A27B cmp bx,dx jnz L0002A21B pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L0002A21B: jle L0002A229 inc edx mov [esp+20h],edx lea edx,[ebx+01h] mov ebx,[esp+20h] L0002A229: mov di,[eax+2Ch] cmp bx,di jg L0002A27B cmp dx,bp jl L0002A27B cmp bx,bp jge L0002A242 mov [esp+20h],ebp mov ebx,ebp L0002A242: cmp dx,di jle L0002A249 mov edx,edi L0002A249: mov edi,edx sub edi,ebx test di,di mov dword ptr [esp+10h],00000001h jnz L0002A266 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L0002A266: cmp bx,dx jnz L0002A2BC cmp bx,bp jl L0002A27B cmp bx,[eax+2Ch] jge L0002A27B cmp si,cx jnz L0002A287 L0002A27B: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L0002A287: jle L0002A291 mov edx,ecx mov ecx,esi lea esi,[edx+01h] inc ecx L0002A291: mov di,[eax+2Eh] cmp si,di jg L0002A27B mov dx,[eax+2Ah] cmp cx,dx jl L0002A27B cmp si,dx jge L0002A2AA mov esi,edx L0002A2AA: cmp cx,di jle L0002A2B1 mov ecx,edi L0002A2B1: sub ecx,esi mov edi,00000001h mov [esp+10h],ecx L0002A2BC: mov ebp,[eax] mov ecx,[ebp+000000ACh] mov edx,[ebp+28h] mov [esp+18h],ecx mov ecx,[ebp+000000A4h] mov dword ptr [ecx+000022A4h],50000003h lea ebx,[ecx+000022A4h] mov [esp+14h],ebx mov bl,[eax+06h] mov [ecx+000022AAh],bl mov byte ptr [ecx+000022ABh],80h mov bx,[eax+18h] mov [ecx+000022A8h],bx shr edx,03h mov bl,dl dec bl or bl,84h mov [ecx+000022ABh],bl mov ebx,edx imul ebx,edi mov di,[esp+10h] mov [ecx+000022AEh],di movsx edi,[esp+20h] movsx esi,si imul edi,edx mov [ecx+000022ACh],bx imul esi,[eax+18h] lea edx,[esi+edi] mov [ecx+000022B0h],edx mov esi,[eax+14h] add esi,edx mov [ecx+000022B0h],esi mov edx,[eax+00000088h] mov [ecx+000022B4h],edx cmp word ptr [eax+04h],0000h jz L0002A3AB push 00000008h push ebp call HS_MM_GetRingSpace mov esi,[esp+14h] mov edi,eax mov ecx,00000005h rep movsd mov esi,[esp+18h] mov ecx,[esi+54h] mov edx,[esi+50h] push ecx add eax,00000014h push eax add edx,00000002h push edx push ebp call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 00000008h mov [esi+50h],edx push ebp mov esi,edx call HS_FireRing pop edi mov eax,esi pop esi pop ebp pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L0002A3AB: push 00000005h push ebp call HS_MM_GetRingSpace mov esi,[esp+14h] push 00000005h mov edi,eax mov ecx,00000005h push ebp rep movsd call HS_FireRing xor esi,esi pop edi mov eax,esi pop esi pop ebp pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002A3E0: push ebx push ebp mov ebp,[esp+0Ch] push esi mov esi,[ebp+00h] mov ebx,[esi+000000A4h] cmp word ptr [ebx+64h],0000h push edi mov edi,[esi+000000ACh] jz L0002A408 mov eax,[ebx+60h] push eax push esi call HS_FireRing L0002A408: mov word ptr [ebx+64h],0000h cmp word ptr [ebp+04h],0000h jz L0002A44B push 00000003h push esi call HS_MM_GetRingSpace mov ecx,[edi+54h] mov edx,[edi+50h] push ecx push eax add edx,00000002h push edx push esi call SUB_L0002DD30 mov edx,[edi+50h] add edx,00000002h push 00000003h mov [edi+50h],edx push esi mov edi,edx call HS_FireRing mov eax,edi pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002A44B: pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002A460: mov eax,[esp+04h] push ebx push esi push edi mov edi,[eax] mov ebx,[edi+000000A4h] lea esi,[ebx+000022A4h] mov dword ptr [esi],40000006h mov ecx,[eax+08h] test ch,40h jz L0002A48C mov byte ptr [ebx+000022AAh],88h jmp L0002A493 L0002A48C: mov byte ptr [ebx+000022AAh],CCh L0002A493: mov byte ptr [ebx+000022ABh],20h mov cx,[eax+18h] mov [ebx+000022A8h],cx mov edx,[edi+28h] shr edx,03h dec dl or dl,24h mov [ebx+000022ABh],dl xor edx,edx mov dx,[eax+18h] xor ecx,ecx push 00000200h push edi mov [ebx+000022ACh],edx mov cx,[eax+2Ah] imul ecx,edx mov [ebx+000022ACh],ecx mov edx,[eax+14h] add edx,ecx mov [ebx+000022ACh],edx xor edx,edx mov dx,[eax+18h] xor ecx,ecx mov [ebx+000022B0h],edx mov cx,[eax+2Eh] dec cx and ecx,0000FFFFh imul ecx,edx mov [ebx+000022B0h],ecx mov edx,[eax+14h] add edx,ecx mov [ebx+000022B0h],edx mov cx,[eax+28h] mov [ebx+000022B4h],cx mov dx,[eax+2Ch] dec dx mov [ebx+000022B6h],dx mov ecx,[eax+58h] mov [ebx+000022B8h],ecx mov edx,[eax+5Ch] mov [ebx+000022BCh],edx mov dword ptr [ebx+000022C0h],00000000h mov ecx,[eax+14h] mov [ebx+54h],ecx mov edx,[eax+18h] mov [ebx+58h],edx call HS_MM_GetRingSpace mov [ebx+5Ch],eax mov edi,eax mov ecx,00000008h rep movsd pop edi pop esi mov dword ptr [ebx+60h],00000008h mov word ptr [ebx+64h],0001h xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002A580: push ecx push ebx push ebp push esi mov esi,[esp+14h] mov ax,[esi+1Ch] push edi mov edi,[esi] mov ebx,[edi+000000A4h] xor ebp,ebp cmp ax,bp mov [esp+18h],edi jl L0002A705 cmp [esi+1Eh],bp jl L0002A705 cmp ax,[esi+2Ch] jl L0002A5BE pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0002A5BE: cmp [esi+26h],bp jle L0002A6FB cmp [esi+24h],bp jle L0002A6FB mov eax,[esi+08h] or eax,4C000002h mov [ebx+000022A4h],eax mov cx,[esi+1Ch] xor edx,edx mov [ebx+000022A8h],cx mov dx,[esi+24h] add dx,[esi+1Ch] mov ecx,[ebx+58h] dec edx mov [ebx+000022AAh],dx movsx eax,[esi+1Eh] mov edx,[ebx+54h] imul eax,ecx add eax,edx cmp eax,ebp mov [ebx+000022ACh],eax jl L0002A705 movsx edi,[esi+1Eh] xor eax,eax mov ax,[esi+26h] lea eax,[eax+edi-01h] imul eax,ecx add eax,edx mov [ebx+000022B0h],eax test dword ptr [esi+08h],00010000h jz L0002A64A xor eax,eax mov ax,[esi+24h] add eax,00000007h and eax,FFFFFFF8h jmp L0002A650 L0002A64A: xor eax,eax mov ax,[esi+24h] L0002A650: xor edi,edi mov di,[esi+26h] mov ecx,[ebx+60h] imul edi,eax add edi,00000007h shr edi,03h lea ebp,[edi+07h] and ebp,FFFFFFF8h add ebp,00000018h shr ebp,02h lea eax,[ebp+04h] lea edx,[ecx+eax] cmp edx,00000200h mov [esp+10h],eax jbe L0002A6AE mov eax,[esp+18h] push ecx push eax call HS_FireRing mov ecx,[esp+10h] mov edx,[esp+18h] add ecx,00000200h push ecx push edx call HS_MM_GetRingSpace mov [ebx+5Ch],eax mov eax,[esp+10h] mov dword ptr [ebx+60h],00000000h L0002A6AE: mov ecx,[ebx+60h] mov edx,[ebx+5Ch] lea edx,[edx+ecx*4] add [ebx+000022A4h],ebp mov ebp,[ebx+000022A4h] mov ecx,edx mov [ecx],ebp mov ebp,[ebx+000022A8h] mov [ecx+04h],ebp mov ebp,[ebx+000022ACh] mov [ecx+08h],ebp mov ebp,[ebx+000022B0h] mov [ecx+0Ch],ebp mov esi,[esi+48h] mov ecx,edi lea edi,[edx+10h] mov edx,ecx shr ecx,02h rep movsd mov ecx,edx and ecx,00000003h rep movsb add [ebx+60h],eax L0002A6FB: pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0002A705: mov [ebx+64h],bp mov [edi+00000104h],ebp pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002A720: sub esp,00000010h mov eax,[esp+14h] mov edx,[eax] mov ecx,[edx+000000A4h] push ebx mov ebx,[edx+28h] mov [esp+10h],edx movsx edx,[eax+1Ch] push ebp movsx ebp,[eax+1Eh] push esi mov [esp+14h],edx xor edx,edx mov dx,[eax+26h] xor esi,esi mov si,[eax+24h] push edi movsx edi,[eax+2Ah] shr ebx,03h cmp ebp,edi mov [esp+14h],ebp mov [esp+24h],edx mov [esp+10h],esi jge L0002A77B mov ebp,edx sub ebp,edi mov [esp+14h],edi movsx edi,[eax+1Eh] add ebp,edi mov [esp+24h],ebp L0002A77B: movsx ebp,[eax+28h] movsx edi,[eax+1Ch] cmp edi,ebp jge L0002A799 mov edi,esi sub edi,ebp mov [esp+18h],ebp movsx ebp,[eax+1Ch] add edi,ebp mov [esp+10h],edi L0002A799: movsx ebp,[eax+1Eh] movsx edi,[eax+2Eh] add ebp,edx cmp ebp,edi jle L0002A7B7 mov ebp,[esp+24h] sub edi,edx movsx edx,[eax+1Eh] sub edi,edx add ebp,edi jmp L0002A7BB L0002A7B7: mov ebp,[esp+24h] L0002A7BB: movsx edi,[eax+1Ch] movsx edx,[eax+2Ch] add edi,esi cmp edi,edx jle L0002A7D9 mov edi,[esp+10h] sub edx,esi movsx esi,[eax+1Ch] sub edx,esi add edi,edx jmp L0002A7DD L0002A7D9: mov edi,[esp+10h] L0002A7DD: test edi,edi jle L0002A881 test ebp,ebp jle L0002A881 mov byte ptr [ecx+000022ABh],80h mov dword ptr [ecx+000022A4h],50000003h mov byte ptr [ecx+000022AAh],F0h mov dx,[eax+18h] mov [ecx+000022A8h],dx lea esi,[ecx+000022A4h] mov dl,bl dec dl or dl,84h mov [ecx+000022ABh],dl mov edx,ebx imul edx,edi mov [ecx+000022ACh],dx mov edx,[esp+18h] mov [ecx+000022AEh],bp imul edx,ebx mov edi,[eax+18h] imul edi,[esp+14h] mov ebx,[esp+1Ch] add edx,edi mov [ecx+000022B0h],edx mov edi,[eax+14h] add edi,edx mov [ecx+000022B0h],edi mov eax,[eax+00000088h] push 00000005h push ebx mov [ecx+000022B4h],eax call HS_MM_GetRingSpace push 00000005h mov edi,eax mov ecx,00000005h push ebx rep movsd call HS_FireRing L0002A881: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0002A890: sub esp,00000010h push ebx push ebp push esi mov esi,[esp+20h] mov ebp,[esi] mov eax,[ebp+000000ACh] mov ebx,[ebp+000000A4h] push edi mov [esp+24h],eax mov ax,[esi+1Ch] xor edi,edi cmp ax,di mov [esp+10h],ebp jl L0002AA29 cmp [esi+1Eh],di jl L0002AA29 cmp ax,[esi+2Ch] jl L0002A8DC pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ L0002A8DC: cmp [esi+26h],di jle L0002AA1D cmp [esi+24h],di jle L0002AA1D mov ecx,[esi+08h] or ecx,48800004h mov [ebx+000022A4h],ecx mov dx,[esi+1Ch] mov ecx,[ebx+58h] xor eax,eax mov [ebx+000022A8h],dx mov ax,[esi+24h] add ax,[esi+1Ch] mov edx,[ebx+54h] dec eax mov [ebx+000022AAh],ax movsx eax,[esi+1Eh] imul eax,ecx add eax,edx cmp eax,edi mov [ebx+000022ACh],eax jl L0002AA29 movsx edi,[esi+1Eh] xor eax,eax mov ax,[esi+26h] lea eax,[eax+edi-01h] imul eax,ecx add eax,edx mov [ebx+000022B0h],eax test dword ptr [esi+08h],00010000h jz L0002A96D xor ecx,ecx mov cx,[esi+24h] lea eax,[00000007h+ecx*4] and eax,FFFFFFF8h jmp L0002A976 L0002A96D: xor eax,eax mov ax,[esi+24h] shl eax,02h L0002A976: mov edx,[esp+24h] xor ebp,ebp mov bp,[esi+26h] lea ecx,[esp+14h] imul ebp,eax add ebp,00000007h shr ebp,03h mov [esp+1Ch],ebp mov eax,[edx+50h] add eax,00000002h push eax push ecx push ebx call SUB_L0002FEF0 test eax,eax jnz L0002AA33 mov esi,[esi+48h] mov edi,[esp+14h] mov ecx,ebp mov edx,ecx shr ecx,02h rep movsd add ebp,00000007h mov ecx,edx and ecx,00000003h rep movsb shr ebp,03h dec ebp mov [ebx+000022B4h],ebp mov eax,[esp+18h] mov [ebx+000022B8h],eax mov eax,[ebx+60h] lea ecx,[eax+06h] cmp ecx,00000200h jbe L0002AA03 mov esi,[esp+10h] push eax push esi call HS_FireRing push 00000206h push esi call HS_MM_GetRingSpace mov [ebx+5Ch],eax mov dword ptr [ebx+60h],00000000h L0002AA03: mov edx,[ebx+60h] mov eax,[ebx+5Ch] lea edi,[eax+edx*4] mov ecx,00000006h lea esi,[ebx+000022A4h] rep movsd add dword ptr [ebx+60h],00000006h L0002AA1D: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ L0002AA29: mov [ebx+64h],di mov [ebp+00000104h],edi L0002AA33: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ SUB_L0002AA40: mov ecx,[esp+04h] mov edx,[ecx] mov eax,[edx+04h] or dword ptr [eax+L00070008],00001000h cmp dword ptr [esp+08h],00000001h jnz L0002AACE mov eax,[ecx+000000A0h] cmp eax,00400040h ja L0002AAAF jz L0002AA9B sub eax,00200020h jz L0002AA87 dec eax jnz L0002AABB mov ecx,[edx+04h] mov eax,00000026h or eax,00000010h mov [ecx+L00070080],eax retn 0008h ;------------------------------------------------------------------------------ L0002AA87: mov ecx,[edx+04h] mov eax,00000001h or eax,00000010h mov [ecx+L00070080],eax retn 0008h ;------------------------------------------------------------------------------ L0002AA9B: mov ecx,[edx+04h] mov eax,00000005h or eax,00000010h mov [ecx+L00070080],eax retn 0008h ;------------------------------------------------------------------------------ L0002AAAF: cmp eax,00400041h mov eax,00000027h jz L0002AABF L0002AABB: mov eax,[esp+04h] L0002AABF: mov ecx,[edx+04h] or eax,00000010h mov [ecx+L00070080],eax retn 0008h ;------------------------------------------------------------------------------ L0002AACE: mov edx,[edx+04h] mov eax,00000010h mov [edx+L00070080],eax retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L0002AAE0: mov edx,[esp+04h] push ebx push ebp mov ebp,[edx] mov eax,[ebp+000000ACh] push esi push edi mov edi,[eax+00000138h] mov [esp+14h],eax mov eax,[edx+000000A0h] cmp eax,00400040h ja L0002ABE6 jz L0002ABDC sub eax,00200020h jz L0002AB29 dec eax jnz L0002ABED mov ecx,00001000h jmp L0002ABFC L0002AB29: mov ebx,00000080h L0002AB2E: mov eax,[edx+14h] mov esi,ebx and esi,0000FFFFh mov ecx,esi shr ecx,02h test bx,bx lea ecx,[eax+ecx*4] jbe L0002AB6F add esi,00000007h shr esi,03h L0002AB4C: mov ebx,[eax] mov [edi],ebx mov ebx,[eax+04h] mov [edi+04h],ebx mov ebx,[ecx] add edi,00000008h mov [edi],ebx mov ebx,[ecx+04h] mov [edi+04h],ebx add edi,00000008h add eax,00000008h add ecx,00000008h dec esi jnz L0002AB4C L0002AB6F: mov cx,[edx+1Ch] test cx,cx mov ax,[edx+1Eh] jge L0002AB85 not ecx inc ecx or ecx,FFFF8000h L0002AB85: test ax,ax jge L0002AB92 not eax inc eax or eax,FFFF8000h L0002AB92: mov edx,[esp+14h] mov esi,[edx+0000013Ch] mov edx,[ebp+04h] mov byte ptr [edx+000003D4h],09h mov edx,[ebp+04h] test byte ptr [edx+000003D5h],80h jz L0002ABB4 add eax,eax L0002ABB4: and eax,0000FFFFh shl eax,10h and ecx,0000FFFFh add eax,ecx mov [edx+L00070088],eax mov eax,[ebp+04h] pop edi mov [eax+L00070084],esi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002ABDC: mov ebx,00000200h jmp L0002AB2E L0002ABE6: cmp eax,00400041h jz L0002ABF7 L0002ABED: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002ABF7: mov ecx,00004000h L0002ABFC: mov esi,[edx+14h] and ecx,0000FFFFh mov eax,ecx shr ecx,02h rep movsd mov ecx,eax and ecx,00000003h rep movsb jmp L0002AB6F Align 16 SUB_L0002AC20: mov eax,[esp+04h] mov cx,[eax+1Ch] test cx,cx mov edx,[eax] mov ax,[eax+1Eh] jge L0002AC3C not ecx inc ecx or ecx,FFFF8000h L0002AC3C: test ax,ax jge L0002AC49 not eax inc eax or eax,FFFF8000h L0002AC49: push ebx push esi mov esi,[edx+04h] mov byte ptr [esi+000003D4h],09h mov edx,[edx+04h] mov bl,[edx+000003D5h] pop esi test bl,80h pop ebx jz L0002AC67 add eax,eax L0002AC67: and eax,0000FFFFh shl eax,10h and ecx,0000FFFFh add eax,ecx mov [edx+L00070088],eax retn 0004h ;------------------------------------------------------------------------------ SUB_L0002AC80: mov eax,[esp+04h] mov ecx,[eax] mov eax,[ecx+04h] push esi mov esi,[eax+L00070008] mov edx,esi or edx,00000100h mov [eax+L00070008],edx mov eax,[ecx+04h] mov byte ptr [eax+000003C8h],04h mov edx,[ecx+04h] xor al,al mov [edx+000003C9h],al mov edx,[ecx+04h] mov [edx+000003C9h],al mov edx,[ecx+04h] mov [edx+000003C9h],al mov eax,[ecx+04h] mov byte ptr [eax+000003C8h],05h mov edx,[ecx+04h] mov al,FFh mov [edx+000003C9h],al mov edx,[ecx+04h] mov [edx+000003C9h],al mov edx,[ecx+04h] mov [edx+000003C9h],al mov dx,03C6h in al,dx mov eax,[ecx+04h] mov [eax+L00070008],esi pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0002AD00: mov eax,[esp+0Ch] cmp eax,00000004h push esi push edi ja CASE_0002AE18_PROC0002 jmp [CASE_PROCTABLE_0002AE18+eax*4] CASE_0002AE18_PROC0003: mov esi,[esp+0Ch] add dword ptr [esi+04h],FFFFFFC0h jns L0002AD27 mov dword ptr [esi+04h],00000000h L0002AD27: mov eax,[esp+10h] mov ecx,[eax+28h] mov edi,[eax+24h] imul edi,[esi+08h] shr ecx,03h imul ecx,[esi+04h] add edi,ecx push edi push eax call SUB_L0002AF10 mov [esi+14h],edi pop edi mov eax,00000001h pop esi retn 000Ch ;------------------------------------------------------------------------------ CASE_0002AE18_PROC0004: mov esi,[esp+0Ch] mov eax,[esi+04h] mov edx,[esi+0Ch] add eax,00000040h mov [esi+04h],eax mov edi,eax mov eax,[esp+10h] mov ecx,[eax+30h] add edi,edx cmp edi,ecx jbe L0002AD76 sub ecx,edx mov [esi+04h],ecx L0002AD76: mov edx,[eax+28h] mov edi,[eax+24h] imul edi,[esi+08h] shr edx,03h imul edx,[esi+04h] jmp L0002ADFA CASE_0002AE18_PROC0000: mov esi,[esp+0Ch] add dword ptr [esi+08h],FFFFFFC0h jns L0002AD9A mov dword ptr [esi+08h],00000000h L0002AD9A: mov eax,[esp+10h] mov edi,[eax+28h] mov ecx,[eax+24h] imul ecx,[esi+08h] shr edi,03h imul edi,[esi+04h] add edi,ecx push edi push eax call SUB_L0002AF10 mov [esi+14h],edi pop edi mov eax,00000001h pop esi retn 000Ch ;------------------------------------------------------------------------------ CASE_0002AE18_PROC0001: mov esi,[esp+0Ch] mov eax,[esi+08h] mov edx,[esi+10h] add eax,00000040h mov [esi+08h],eax mov edi,eax mov eax,[esp+10h] mov ecx,[eax+34h] add edi,edx cmp edi,ecx jbe L0002ADE9 sub ecx,edx mov [esi+08h],ecx L0002ADE9: mov edi,[eax+28h] mov edx,[eax+24h] shr edi,03h imul edi,[esi+04h] imul edx,[esi+08h] L0002ADFA: add edi,edx push edi push eax call SUB_L0002AF10 mov [esi+14h],edi pop edi mov eax,00000001h pop esi retn 000Ch ;------------------------------------------------------------------------------ CASE_0002AE18_PROC0002: pop edi xor eax,eax pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0002AE18: dd CASE_0002AE18_PROC0000 dd CASE_0002AE18_PROC0001 dd CASE_0002AE18_PROC0002 dd CASE_0002AE18_PROC0003 dd CASE_0002AE18_PROC0004 Align 8 SUB_L0002AE30: push ebx push ebp push esi mov esi,[esp+10h] cmp dword ptr [esi],00000001h push edi jnz L0002AEF8 mov edi,[esp+18h] mov eax,[edi+04h] mov ecx,[eax+L00070018] test ch,0Eh jnz L0002AE66 L0002AE53: mov dword ptr [edi+00000118h],00000000h pop edi pop esi pop ebp xor eax,eax pop ebx retn 0010h ;------------------------------------------------------------------------------ L0002AE66: mov ecx,[edi+30h] cmp ecx,[esi+0Ch] jbe L0002AE53 mov bx,[esp+1Ch] cmp bx,cx mov dword ptr [edi+00000118h],00000001h jge L0002AF06 mov bp,[esp+20h] cmp bp,[edi+34h] jge L0002AF06 L0002AE91: mov dx,[esi+04h] add dx,[esi+0Ch] xor eax,eax cmp bx,dx jle L0002AEA9 push 00000004h push edi push esi call SUB_L0002AD00 L0002AEA9: mov cx,[esi+10h] add cx,[esi+08h] cmp bp,cx jle L0002AEBF push 00000001h push edi push esi call SUB_L0002AD00 L0002AEBF: cmp bp,[esi+08h] jge L0002AED3 test bp,bp jl L0002AED3 push 00000000h push edi push esi call SUB_L0002AD00 L0002AED3: cmp bx,[esi+04h] jge L0002AEE7 test bx,bx jl L0002AEE7 push 00000003h push edi push esi call SUB_L0002AD00 L0002AEE7: cmp eax,00000001h jz L0002AE91 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0010h ;------------------------------------------------------------------------------ L0002AEF8: mov edx,[esp+18h] mov dword ptr [edx+00000118h],00000000h L0002AF06: pop edi pop esi pop ebp xor eax,eax pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L0002AF10: push ecx mov eax,[esp+08h] mov eax,[eax+04h] lea ecx,[eax+000003D4h] mov [esp+08h],ecx add eax,000003D5h mov [esp+00h],eax mov edx,[esp+08h] mov eax,[esp+0Ch] mov ecx,eax mov byte ptr [edx],0Dh shr ecx,02h mov edx,[esp+00h] mov [edx],cl mov ecx,[esp+08h] mov edx,eax mov byte ptr [ecx],0Ch shr edx,0Ah mov ecx,[esp+00h] mov [ecx],dl mov edx,[esp+08h] mov ecx,eax mov byte ptr [edx],42h shr ecx,18h mov edx,[esp+00h] mov [edx],cl mov ecx,[esp+08h] shr eax,12h and al,3Fh mov byte ptr [ecx],40h or al,80h mov edx,[esp+00h] mov [edx],al pop ecx retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L0002AF80: push ecx mov ecx,[esp+08h] push ebx push ebp mov ebp,[ecx] mov ebx,[ebp+000000ACh] mov eax,[ebp+000000A4h] xor edx,edx mov dl,[ecx+07h] test dl,04h push esi push edi jz L0002AFAB and edx,00000003h inc edx mov [esp+18h],edx jmp L0002AFB5 L0002AFAB: mov esi,[ebp+28h] shr esi,03h mov [esp+18h],esi L0002AFB5: lea esi,[eax+000022A4h] mov dword ptr [esi],50000003h mov edx,[ecx+000000A8h] cmp edx,00000001h mov [esp+10h],esi jnz L0002AFD8 mov dword ptr [esi],50200003h jmp L0002AFE2 L0002AFD8: test edx,edx jnz L0002AFE2 mov dword ptr [esi],50100003h L0002AFE2: mov dl,[ecx+06h] mov [eax+000022AAh],dl mov dl,[ecx+07h] or dl,80h mov [eax+000022ABh],dl mov dx,[ecx+18h] mov [eax+000022A8h],dx mov dl,[esp+18h] dec dl or dl,04h or [eax+000022ABh],dl mov dx,[ecx+24h] imul dx,[esp+18h] mov [eax+000022ACh],dx mov dx,[ecx+26h] mov [eax+000022AEh],dx mov edx,[ecx+18h] mov [eax+000022B0h],edx movsx edi,[ecx+1Eh] imul edi,edx mov [eax+000022B0h],edi movsx edx,[ecx+1Ch] imul edx,[esp+18h] add edx,edi mov [eax+000022B0h],edx mov esi,[ecx+14h] add esi,edx mov [eax+000022B0h],esi mov edx,[ecx+00000088h] mov [eax+000022B4h],edx cmp word ptr [ecx+04h],0000h jz L0002B0B9 push 00000008h push ebp call HS_MM_GetRingSpace mov esi,[esp+10h] mov edi,eax mov ecx,00000005h rep movsd mov ecx,[ebx+54h] mov edx,[ebx+50h] push ecx add eax,00000014h push eax add edx,00000002h push edx push ebp call SUB_L0002DD30 mov edx,[ebx+50h] add edx,00000002h push 00000008h mov [ebx+50h],edx push ebp mov ebx,edx call HS_FireRing pop edi pop esi pop ebp mov eax,ebx pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ L0002B0B9: push 00000005h push ebp call HS_MM_GetRingSpace mov esi,[esp+10h] push 00000005h mov edi,eax mov ecx,00000005h push ebp rep movsd call HS_FireRing pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ SUB_L0002B0E0: sub esp,00000010h push ebx push ebp mov ebp,[esp+1Ch] mov eax,[ebp+00h] mov ebx,[eax+000000ACh] push edi mov edi,[eax+000000A4h] mov [esp+20h],eax mov eax,[eax+28h] shr eax,03h mov [esp+0Ch],eax mov eax,[ebx+50h] add eax,00000002h push eax lea ecx,[esp+14h] push ecx push edi call SUB_L00030340 cmp eax,FFFFFFFFh jnz L0002B129 pop edi pop ebp or eax,eax pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ L0002B129: push esi push ebp lea edx,[esp+18h] push edx call SUB_L000303E0 mov edx,[ebp+00000080h] xor eax,eax mov ax,[ebp+1Eh] lea esi,[edi+000022A4h] push 00000008h sub eax,edx shl eax,05h and eax,000000E0h or eax,50400003h mov [esi],eax mov cl,[ebp+06h] mov [edi+000022AAh],cl mov ecx,[esp+14h] mov byte ptr [edi+000022ABh],00h mov dx,[ebp+18h] mov al,cl dec al mov [edi+000022A8h],dx or al,04h mov [edi+000022ABh],al mov dx,[ebp+24h] imul dx,cx mov [edi+000022ACh],dx mov ax,[ebp+26h] mov [edi+000022AEh],ax mov edx,[ebp+18h] mov [edi+000022B0h],edx movsx eax,[ebp+1Eh] imul eax,edx mov [edi+000022B0h],eax movsx edx,[ebp+1Ch] imul edx,ecx add eax,edx mov [edi+000022B0h],eax mov ecx,[ebp+14h] add ecx,eax mov eax,[esp+28h] mov [edi+000022B0h],ecx mov edx,[esp+1Ch] push eax mov [edi+000022B4h],edx call HS_MM_GetRingSpace mov edi,eax mov ecx,00000005h rep movsd mov ecx,[ebx+54h] mov edx,[ebx+50h] mov esi,[esp+24h] push ecx add eax,00000014h push eax add edx,00000002h push edx push esi call SUB_L0002DD30 mov edx,[ebx+50h] add edx,00000002h push 00000008h mov [ebx+50h],edx push esi mov ebx,edx call HS_FireRing pop esi pop edi pop ebp mov eax,ebx pop ebx add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002B230: sub esp,0000000Ch push ebx push ebp mov ebp,[esp+18h] mov ebx,[ebp+00h] mov eax,[ebx+000000ACh] push esi push edi mov edi,[ebx+000000A4h] mov [esp+10h],eax mov eax,[ebx+28h] lea ecx,[esp+14h] push ecx shr eax,03h push ebp mov [esp+28h],eax call SUB_L000306B0 mov ecx,[ebp+00000080h] xor edx,edx mov dx,[ebp+1Eh] lea esi,[edi+000022A4h] push 0000000Bh push ebx sub edx,ecx shl edx,05h and edx,000000E0h or edx,50800006h mov [esi],edx mov al,[ebp+06h] mov [edi+000022AAh],al mov cl,[ebp+07h] mov [edi+000022ABh],cl mov dx,[ebp+18h] mov ecx,[esp+28h] mov [edi+000022A8h],dx mov dl,[edi+000022ABh] mov al,cl dec al or al,04h or dl,al mov [edi+000022ABh],dl mov dx,[ebp+24h] imul dx,cx mov [edi+000022ACh],dx mov ax,[ebp+26h] mov [edi+000022AEh],ax mov edx,[ebp+18h] mov [edi+000022B0h],edx movsx eax,[ebp+1Eh] imul eax,edx mov [edi+000022B0h],eax movsx edx,[ebp+1Ch] imul edx,ecx add eax,edx mov [edi+000022B0h],eax mov ecx,[ebp+14h] add ecx,eax mov [edi+000022B0h],ecx mov edx,[ebp+00000088h] mov [edi+000022B4h],edx mov eax,[ebp+0000008Ch] mov [edi+000022B8h],eax mov ecx,[esp+1Ch] mov [edi+000022BCh],ecx mov edx,[esp+20h] mov [edi+000022C0h],edx call HS_MM_GetRingSpace mov edi,eax mov ecx,00000008h rep movsd mov esi,[esp+10h] mov ecx,[esi+54h] mov edx,[esi+50h] push ecx add eax,00000020h push eax add edx,00000002h push edx push ebx call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 0000000Bh mov [esi+50h],edx push ebx mov esi,edx call HS_FireRing pop edi mov eax,esi pop esi pop ebp pop ebx add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002B380: mov ecx,[esp+04h] push ebx push ebp mov ebp,[ecx] mov eax,[ebp+000000ACh] mov edx,[ebp+28h] mov [esp+0Ch],eax mov eax,[ebp+000000A4h] mov dword ptr [eax+000022A4h],50000003h mov bl,[ecx+06h] mov [eax+000022AAh],bl push esi shr edx,03h lea esi,[eax+000022A4h] mov byte ptr [eax+000022ABh],80h push edi mov di,[ecx+18h] mov [eax+000022A8h],di mov bl,dl dec bl or bl,84h mov [eax+000022ABh],bl mov di,[ecx+24h] imul di,dx mov [eax+000022ACh],di mov di,[ecx+26h] mov [eax+000022AEh],di mov ebx,[ecx+18h] mov [eax+000022B0h],ebx movsx edi,[ecx+1Eh] imul edi,ebx mov [eax+000022B0h],edi movsx ebx,[ecx+1Ch] imul ebx,edx lea edx,[ebx+edi] mov [eax+000022B0h],edx mov edi,[ecx+14h] add edi,edx mov [eax+000022B0h],edi mov edx,[ecx+00000088h] mov [eax+000022B4h],edx cmp word ptr [ecx+04h],0000h jz L0002B47C push 00000008h push ebp call HS_MM_GetRingSpace mov edi,eax mov ecx,00000005h rep movsd mov esi,[esp+14h] mov ecx,[esi+54h] mov edx,[esi+50h] push ecx add eax,00000014h push eax add edx,00000002h push edx push ebp call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 00000008h mov [esi+50h],edx push ebp mov esi,edx call HS_FireRing pop edi mov eax,esi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002B47C: push 00000005h push ebp call HS_MM_GetRingSpace push 00000005h mov edi,eax mov ecx,00000005h push ebp rep movsd call HS_FireRing pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0002B4A0: push ebx push ebp push esi mov esi,[esp+10h] mov ebx,[esi+00000088h] xor eax,eax mov al,bh push edi push esi mov [esp+18h],ebx mov [esi+00000088h],eax call SUB_L0002AF80 cmp eax,FFFFFFFFh jnz L0002B4D0 pop edi pop esi pop ebp or eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002B4D0: mov ecx,[esi+30h] cmp ecx,32315659h jz L0002B557 cmp ecx,33434D49h jnz L0002B5C8 mov eax,[esi+3Ch] imul eax,[esi+18h] mov ecx,[esi+14h] add ecx,eax shr eax,1 add eax,ecx mov edi,eax movsx eax,[esi+1Ch] shr word ptr [esi+24h],1 shr word ptr [esi+26h],1 cdq sub eax,edx sar eax,1 mov [esi+1Ch],ax movsx eax,[esi+1Eh] mov [esi+14h],ecx xor ecx,ecx mov cl,[esp+16h] cdq sub eax,edx sar eax,1 push esi mov [esi+1Eh],ax mov [esi+00000088h],ecx call SUB_L0002AF80 cmp eax,FFFFFFFFh jnz L0002B53E pop edi pop esi pop ebp or eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002B53E: shr ebx,18h push esi mov [esi+00000088h],ebx mov [esi+14h],edi call SUB_L0002AF80 pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002B557: mov ecx,[esi+18h] mov eax,[esi+3Ch] mov edi,[esi+14h] imul eax,ecx add edi,eax shr eax,02h add eax,edi mov ebp,eax movsx eax,[esi+1Ch] shr word ptr [esi+24h],1 shr word ptr [esi+26h],1 cdq sub eax,edx sar eax,1 mov [esi+1Ch],ax movsx eax,[esi+1Eh] cdq sub eax,edx sar eax,1 shr ecx,1 shr ebx,18h push esi mov [esi+1Eh],ax mov [esi+14h],edi mov [esi+18h],ecx mov [esi+00000088h],ebx call SUB_L0002AF80 cmp eax,FFFFFFFFh jnz L0002B5B3 pop edi pop esi pop ebp or eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002B5B3: xor edx,edx mov dl,[esp+16h] push esi mov [esi+14h],ebp mov [esi+00000088h],edx call SUB_L0002AF80 L0002B5C8: pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0002B5D0: sub esp,00000018h push ebx mov ebx,[esp+20h] cmp word ptr [ebx+7Ah],0000h push esi mov esi,[ebx] mov eax,[esi+000000ACh] push edi mov edi,[esi+000000A4h] mov [esp+28h],esi mov [esp+20h],eax jz L0002B614 push edi push ebx call SUB_L000300C0 test eax,eax jz L0002B60E pop edi pop esi or eax,FFFFFFFFh pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ L0002B60E: mov word ptr [ebx+04h],0001h L0002B614: xor ecx,ecx mov cl,[ebx+07h] test cl,04h jz L0002B624 and ecx,00000003h inc ecx jmp L0002B62A L0002B624: mov ecx,[esi+28h] shr ecx,03h L0002B62A: mov dword ptr [edi+000022A4h],50C00004h mov dl,[ebx+06h] mov [edi+000022AAh],dl lea eax,[edi+000022A4h] mov [esp+0Ch],eax mov al,[ebx+07h] mov [edi+000022ABh],al mov dx,[ebx+18h] mov [edi+000022A8h],dx mov dl,[edi+000022ABh] mov al,cl dec al or al,04h or dl,al mov [edi+000022ABh],dl mov dx,[ebx+24h] imul dx,cx mov [edi+000022ACh],dx mov ax,[ebx+26h] mov [edi+000022AEh],ax movsx edx,[ebx+1Ch] movsx esi,[ebx+1Eh] xor eax,eax mov ax,[ebx+26h] push ebp movsx ebp,[ebx+52h] mov [esp+14h],ebp movsx ebp,[ebx+50h] mov [esp+1Ch],edx lea edx,[eax+esi-01h] mov [esp+20h],ebp mov ebp,[esp+14h] lea eax,[eax+ebp-01h] mov [esp+18h],edx mov [esp+14h],eax mov eax,[ebx+18h] xor edx,edx cmp esi,ebp mov dx,[ebx+24h] mov [edi+000022B0h],eax mov eax,[ebx+4Ch] mov [edi+000022B4h],eax mov eax,[ebx+4Ch] mov [edi+000022B8h],eax jbe L0002B725 mov ax,[edi+000022A8h] neg ax mov [edi+000022A8h],ax mov ax,[edi+000022B4h] neg ax mov [edi+000022B4h],ax mov eax,[edi+000022B0h] imul eax,[esp+18h] mov [edi+000022B0h],eax mov eax,[edi+000022B8h] imul eax,[esp+14h] jmp L0002B73D L0002B725: mov eax,[edi+000022B0h] imul eax,esi mov [edi+000022B0h],eax mov eax,[edi+000022B8h] imul eax,ebp L0002B73D: mov esi,[esp+20h] mov [edi+000022B8h],eax mov eax,[esp+1Ch] cmp eax,esi jbe L0002B785 mov ebp,[edi+000022A8h] add eax,edx imul eax,ecx add edx,esi imul edx,ecx or ebp,40000000h dec eax mov [edi+000022A8h],ebp mov ebp,[edi+000022B0h] add ebp,eax mov eax,[edi+000022B8h] dec edx mov [edi+000022B0h],ebp add eax,edx jmp L0002B7A1 L0002B785: mov edx,[edi+000022B0h] imul eax,ecx imul esi,ecx add edx,eax mov eax,[edi+000022B8h] mov [edi+000022B0h],edx add eax,esi L0002B7A1: mov edx,[edi+000022B0h] mov [edi+000022B8h],eax mov ecx,[ebx+14h] add edx,ecx mov [edi+000022B0h],edx mov edx,[ebx+48h] mov ecx,eax add ecx,edx mov [edi+000022B8h],ecx cmp word ptr [ebx+04h],0000h pop ebp jz L0002B81D mov ebx,[esp+28h] push 00000009h push ebx call HS_MM_GetRingSpace mov esi,[esp+0Ch] mov edi,eax mov ecx,00000006h rep movsd mov esi,[esp+20h] mov ecx,[esi+54h] mov edx,[esi+50h] push ecx add eax,00000018h push eax add edx,00000002h push edx push ebx call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 00000009h mov [esi+50h],edx push ebx mov esi,edx call HS_FireRing pop edi mov eax,esi pop esi pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ L0002B81D: mov ebx,[esp+28h] push 00000006h push ebx call HS_MM_GetRingSpace mov esi,[esp+0Ch] push 00000006h mov edi,eax mov ecx,00000006h push ebx rep movsd call HS_FireRing xor esi,esi pop edi mov eax,esi pop esi pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002B850: sub esp,0000001Ch push ebx push ebp mov ebp,[esp+28h] mov eax,[ebp+00h] mov ecx,[eax+000000ACh] mov ebx,[eax+000000A4h] push esi mov [esp+20h],ecx mov ecx,[eax+28h] push ebx shr ecx,03h xor esi,esi mov si,[ebp+26h] push ebp mov [esp+18h],eax mov [esp+14h],ecx call SUB_L000301D0 test eax,eax jz L0002B898 pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ L0002B898: movsx edx,[ebp+50h] and edx,80000007h push edi jns L0002B8AA dec edx or edx,FFFFFFF8h inc edx L0002B8AA: xor eax,eax mov ax,[ebp+24h] mov cl,[esp+10h] lea edi,[edx+eax+07h] sar edi,03h inc edi and edi,FFFFFFFEh xor edx,edx mov eax,L0001FFF8 div edi mov [esp+20h],edi and eax,FFFFFFF0h dec cl mov edx,eax imul edx,edi mov [esp+18h],eax mov [esp+30h],cl mov [esp+28h],edx jmp L0002B8F0 L0002B8E4: mov esi,[esp+1Ch] mov cl,[esp+30h] mov eax,[esp+18h] L0002B8F0: cmp esi,eax jnc L0002B8F6 mov eax,esi L0002B8F6: xor edx,edx mov dl,[ebp+50h] sub esi,eax mov [esp+1Ch],esi lea esi,[ebx+000022A4h] or cl,04h push 0000000Bh and edx,00000007h shl edx,11h or edx,51000006h mov [esi],edx mov dl,[ebp+06h] mov [ebx+000022AAh],dl mov dl,[ebp+07h] mov [ebx+000022ABh],dl mov dx,[ebp+18h] mov [ebx+000022A8h],dx or [ebx+000022ABh],cl mov cx,[ebp+24h] imul cx,[esp+14h] mov [ebx+000022AEh],ax imul eax,[esp+24h] mov [ebx+000022ACh],cx mov ecx,[ebp+18h] mov [ebx+000022B0h],ecx movsx edi,[ebp+1Eh] imul edi,ecx mov [ebx+000022B0h],edi movsx edx,[ebp+1Ch] imul edx,[esp+14h] lea ecx,[edx+edi] mov [ebx+000022B0h],ecx mov edx,[ebp+14h] add eax,00000007h add ecx,edx shr eax,03h dec eax mov [ebx+000022B4h],eax mov [ebx+000022B0h],ecx mov eax,[ebp+48h] mov [ebx+000022B8h],eax mov ecx,[ebp+5Ch] mov eax,[esp+18h] mov [ebx+000022BCh],ecx mov edx,[ebp+58h] push eax mov [ebx+000022C0h],edx call HS_MM_GetRingSpace mov edi,eax mov ecx,00000008h rep movsd mov esi,[esp+24h] mov ecx,[esi+54h] mov edx,[esi+50h] mov edi,[esp+14h] push ecx add eax,00000020h push eax add edx,00000002h push edx push edi call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 0000000Bh mov [esi+50h],edx push edi mov esi,edx call HS_FireRing mov ax,[esp+18h] add [ebp+1Eh],ax mov edx,[ebp+48h] mov ecx,[esp+28h] mov eax,[esp+1Ch] add edx,ecx test eax,eax mov [ebp+48h],edx jnz L0002B8E4 pop edi mov eax,esi pop esi pop ebp pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002BA30: sub esp,000000CCh push ebx push ebp mov ebp,[esp+000000D8h] mov eax,[ebp+00h] mov ecx,[ebp+70h] movsx ebx,[ebp+1Ch] mov [esp+14h],eax mov eax,[eax+000000ACh] mov [esp+54h],eax movsx eax,[ebp+50h] push esi xor esi,esi mov si,[ebp+54h] mov [esp+2Ch],eax mov edx,[ebp+48h] push edi xor edi,edi mov di,[ebp+56h] mov [esp+18h],ecx mov ecx,[ebp+14h] add eax,esi mov [esp+3Ch],eax movsx eax,[ebp+52h] mov [esp+28h],eax add eax,edi mov [esp+44h],eax mov eax,[ebp+4Ch] mov [esp+24h],eax xor eax,eax mov ax,[ebp+24h] mov [esp+2Ch],ecx xor ecx,ecx mov cx,[ebp+26h] mov [esp+40h],ebx mov [esp+20h],edx mov edx,[ebp+18h] add ebx,eax mov [esp+54h],eax movsx eax,[ebp+1Eh] mov [esp+38h],eax add eax,ecx mov [esp+10h],eax mov eax,[esp+1Ch] mov [esp+34h],ecx mov ecx,02000001h mov [esp+4Ch],ebx mov ebx,[eax+000000A4h] xor eax,eax cmp edx,00000800h mov [ebx+000022A4h],ecx mov [ebx+000022B8h],ecx mov [ebx+000022C0h],ecx mov ecx,[esp+2Ch] mov dword ptr [esp+48h],00000000h mov [esp+60h],edx mov [ebx+000022A8h],eax mov [ebx+000022ACh],eax mov [ebx+000022B0h],eax mov [ebx+000022B4h],eax mov dword ptr [ebx+000022BCh],02820100h mov dword ptr [ebx+000022C4h],0A800000h mov [ebx+000022C8h],ecx ja L0002BB64 jz L0002BB57 cmp edx,00000200h jz L0002BB4F cmp edx,00000400h jnz L0002BB6C mov edx,ecx or edx,00000001h jmp L0002BB81 L0002BB4F: mov [ebx+000022C8h],ecx jmp L0002BB87 L0002BB57: mov eax,ecx or eax,00000002h mov [ebx+000022C8h],eax jmp L0002BB87 L0002BB64: cmp edx,00001000h jz L0002BB7C L0002BB6C: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BB7C: mov edx,ecx or edx,00000003h L0002BB81: mov [ebx+000022C8h],edx L0002BB87: mov dword ptr [ebx+000022CCh],7D850000h mov dword ptr [ebx+000022D4h],7D000002h mov eax,[ebp+6Ch] or eax,00000400h mov [ebx+000022D8h],eax test byte ptr [ebp+68h],02h jz L0002BBFF xor edx,edx mov dx,[ebp+78h] sub edx,0000000Fh jz L0002BBE6 dec edx jz L0002BBCD pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BBCD: or eax,02000000h mov [ebx+000022D8h],eax mov eax,00000010h mov byte ptr [ebp+07h],05h jmp L0002BCA7 L0002BBE6: or eax,02200000h mov [ebx+000022D8h],eax mov eax,00000010h mov byte ptr [ebp+07h],05h jmp L0002BCA7 L0002BBFF: mov edx,[ebp+64h] cmp edx,33434D49h ja L0002BC63 jz L0002BC47 cmp edx,32315659h jz L0002BC23 cmp edx,32595559h jnz L0002BC73 or eax,05200000h jmp L0002BC8F L0002BC23: mov ecx,[esp+18h] mov edx,ecx or eax,01000000h shr edx,1 add ecx,edx mov [ebx+000022D8h],eax mov [esp+18h],ecx mov ecx,[esp+2Ch] mov eax,00000008h jmp L0002BC9A L0002BC47: mov edx,[esp+18h] or eax,01000000h add edx,edx mov [ebx+000022D8h],eax mov eax,00000008h mov [esp+18h],edx jmp L0002BC9A L0002BC63: cmp edx,55595659h jz L0002BC8A cmp edx,59565955h jz L0002BC83 L0002BC73: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BC83: or eax,05000000h jmp L0002BC8F L0002BC8A: or eax,05400000h L0002BC8F: mov [ebx+000022D8h],eax mov eax,00000010h L0002BC9A: mov edx,eax shr edx,03h dec dl or dl,04h mov [ebp+07h],dl L0002BCA7: cmp ecx,[esp+20h] jnz L0002BE21 mov edx,[esp+18h] lea ecx,[esp+00000098h] push ecx mov ecx,[esp+20h] push eax mov eax,[ebp+74h] push edx mov edx,[ecx+000000A8h] push eax push 21080000h push edx call SUB_L000267C0 test eax,eax jnz L0002BCEC pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BCEC: mov eax,[esp+000000A4h] mov ecx,[esp+0000009Ch] mov dx,[esp+30h] mov [ebp+18h],eax mov ax,[esp+28h] mov [ebp+1Eh],ax mov eax,[ebp+64h] cmp eax,33434D49h mov dword ptr [esp+48h],00000001h mov [ebp+14h],ecx mov [ebp+1Ch],dx mov [ebp+24h],si mov [ebp+26h],di jz L0002BD3B cmp eax,32315659h jz L0002BD3B push ebp call SUB_L0002B5D0 jmp L0002BDA2 L0002BD3B: mov ecx,[ebp+40h] mov edx,[ebp+3Ch] mov [esp+18h],ecx mov ecx,[ebp+30h] mov [esp+58h],edx mov edx,[ebp+74h] mov [esp+64h],ecx mov ecx,[ebp+70h] push ebp mov [ebp+40h],edx mov [ebp+3Ch],ecx mov [ebp+30h],eax call SUB_L0002C1C0 mov edx,[esp+18h] mov ecx,[esp+58h] mov [ebp+40h],edx mov edx,[esp+64h] mov [ebp+3Ch],ecx mov ecx,[esp+24h] mov [ebp+30h],edx mov edx,[esp+20h] mov [ebp+4Ch],ecx mov cx,[esp+30h] mov [ebp+48h],edx mov dx,[esp+28h] mov [ebp+50h],cx mov [ebp+52h],dx mov [ebp+54h],si mov [ebp+56h],di L0002BDA2: cmp eax,FFFFFFFFh jnz L0002BDCF mov ecx,[esp+1Ch] mov edx,[ecx+000000A8h] lea eax,[esp+00000098h] push eax push edx call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BDCF: mov eax,[esp+1Ch] push eax call SUB_L00029670 mov ecx,[esp+60h] mov edx,[esp+2Ch] mov ax,[esp+40h] mov [ebp+18h],ecx mov cx,[esp+38h] mov [ebp+14h],edx mov dx,[esp+54h] mov [ebp+1Ch],ax mov ax,[esp+34h] mov [ebp+1Eh],cx mov ecx,[esp+000000A4h] mov [ebp+24h],dx mov edx,[esp+0000009Ch] mov [ebp+26h],ax mov [esp+24h],ecx mov [esp+20h],edx L0002BE21: test byte ptr [ebp+34h],02h jz L0002BE6D test byte ptr [ebp+68h],02h jnz L0002BE37 or dword ptr [ebx+000022D8h],L00040000 L0002BE37: xor eax,eax mov ax,[ebp+44h] sub eax,0000000Fh jz L0002BE61 dec eax jz L0002BE55 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BE55: mov dword ptr [ebx+000022D0h],00000200h jmp L0002BEB7 L0002BE61: mov dword ptr [ebx+000022D0h],00000100h jmp L0002BEB7 L0002BE6D: mov eax,[ebp+30h] cmp eax,32595559h jz L0002BEAD cmp eax,55595659h jz L0002BEA1 cmp eax,59565955h jz L0002BE95 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BE95: mov dword ptr [ebx+000022D0h],00000400h jmp L0002BEB7 L0002BEA1: mov dword ptr [ebx+000022D0h],00000600h jmp L0002BEB7 L0002BEAD: mov dword ptr [ebx+000022D0h],00000500h L0002BEB7: mov eax,[ebp+38h] mov ecx,[ebx+000022D0h] or eax,00000880h shl eax,0Ch or ecx,eax mov [ebx+000022D0h],ecx xor eax,eax L0002BED2: lea ecx,[eax+03h] mov edx,00000001h shl edx,cl cmp [esp+24h],edx jz L0002BEE8 inc eax cmp eax,00000010h jc L0002BED2 L0002BEE8: cmp eax,00000010h jnz L0002BEFD pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ L0002BEFD: mov esi,[ebx+000022D8h] mov ecx,[esp+3Ch] mov edx,[esp+20h] or esi,eax mov eax,[esp+44h] shl eax,10h dec eax and eax,03FF0000h dec ecx and ecx,000003FFh or eax,ecx mov [ebx+000022DCh],eax xor eax,eax mov [ebx+000022D8h],esi mov [ebx+000022E0h],edx mov dword ptr [ebx+000022E4h],65000106h mov dword ptr [ebx+000022E8h],7C0080C0h mov dword ptr [ebx+000022ECh],7C088000h mov dword ptr [ebx+000022F0h],7C101224h mov dword ptr [ebx+000022F4h],630AAAAAh mov dword ptr [ebx+000022F8h],6403AA0Eh mov dword ptr [ebx+000022FCh],680008E3h mov dword ptr [ebx+00002300h],02000001h mov dword ptr [ebx+00002304h],02810001h mov dword ptr [ebx+00002308h],7D800003h mov [ebx+0000230Ch],eax mov [ebx+00002310h],eax mov [ebx+00002314h],eax mov [ebx+00002318h],eax cmp [ebp+04h],ax jz L0002BFC2 mov eax,[esp+1Ch] push 00000032h push eax jmp L0002BFC9 L0002BFC2: mov ecx,[esp+1Ch] push 0000002Fh push ecx L0002BFC9: call HS_MM_GetRingSpace mov edx,[esp+4Ch] lea esi,[ebx+000022A4h] mov edi,eax mov [esp+4Ch],edx xor edx,edx mov ecx,0000001Eh rep movsd mov dword ptr [ebx+000022A4h],7F1C000Bh lea ecx,[ebx+000022A4h] mov [esp+34h],ecx mov ecx,[esp+10h] mov [esp+10h],ecx mov ecx,[esp+3Ch] mov [esp+14h],edx mov [esp+50h],edx lea edi,[ebx+000022A8h] lea esi,[esp+68h] fild qword ptr [esp+4Ch] mov dword ptr [ebx+000022DCh],02830000h mov dword ptr [ebx+000022E4h],03800000h add eax,00000078h fstp dword ptr [esp+68h] fild qword ptr [esp+10h] mov [esp+10h],ecx mov ecx,[esp+44h] mov [esp+14h],edx fst dword ptr [esp+6Ch] fild qword ptr [esp+10h] mov [esp+10h],ecx mov ecx,[esp+40h] mov [esp+14h],edx fstp dword ptr [esp+70h] fild qword ptr [esp+10h] mov [esp+10h],ecx mov ecx,[esp+30h] mov [esp+14h],edx fstp dword ptr [esp+74h] fild qword ptr [esp+10h] mov [esp+10h],ecx mov ecx,[esp+74h] mov [esp+00000084h],ecx fstp dword ptr [esp+78h] mov ecx,[esp+78h] mov [esp+00000088h],ecx mov ecx,[esp+38h] fstp dword ptr [esp+7Ch] mov [esp+14h],edx fild qword ptr [esp+10h] mov [esp+10h],ecx mov ecx,[esp+28h] mov [esp+14h],edx fst dword ptr [esp+00000080h] fild qword ptr [esp+10h] mov [esp+10h],ecx mov [esp+14h],edx mov ecx,0000000Ch fstp dword ptr [esp+0000008Ch] fstp dword ptr [esp+00000090h] fild qword ptr [esp+10h] fstp dword ptr [esp+00000094h] rep movsd mov esi,[esp+34h] mov ecx,02000001h mov [ebx+000022D8h],ecx mov [ebx+000022E0h],ecx mov ebx,[esp+1Ch] mov [ebx+74h],edx mov ecx,00000011h mov edi,eax rep movsd cmp [ebp+04h],dx jz L0002C13E mov esi,[esp+5Ch] mov edx,[esi+54h] push edx add eax,00000044h push eax mov eax,[esi+50h] add eax,00000002h push eax push ebx call SUB_L0002DD30 mov edx,[esi+50h] add edx,00000002h push 00000032h mov [esi+50h],edx push ebx mov esi,edx call HS_FireRing jmp L0002C148 L0002C13E: push 0000002Fh push ebx call HS_FireRing xor esi,esi L0002C148: mov eax,[esp+48h] test eax,eax jz L0002C16A push ebx call SUB_L00029670 mov edx,[ebx+000000A8h] lea ecx,[esp+00000098h] push ecx push edx call SUB_L00026030 L0002C16A: pop edi mov eax,esi pop esi pop ebp pop ebx add esp,000000CCh retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002C180: mov eax,[esp+04h] mov cx,[eax+24h] cmp cx,[eax+54h] jnz L0002C1A9 mov dx,[eax+26h] cmp dx,[eax+56h] jnz L0002C1A9 mov ecx,[eax+64h] cmp ecx,[eax+30h] jnz L0002C1A9 push eax call SUB_L0002B5D0 retn 0004h ;------------------------------------------------------------------------------ L0002C1A9: xor ecx,ecx push eax mov [eax+38h],ecx mov [eax+6Ch],ecx call SUB_L0002BA30 retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002C1C0: push ebx push ebp push esi mov esi,[esp+10h] mov ax,[esi+24h] cmp ax,[esi+54h] jnz L0002C355 mov cx,[esi+26h] cmp cx,[esi+56h] jnz L0002C355 push esi call SUB_L0002B5D0 cmp eax,FFFFFFFFh jnz L0002C1F6 pop esi pop ebp or eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002C1F6: mov eax,[esi+64h] cmp eax,32315659h jz L0002C20E cmp eax,33434D49h jnz L0002C212 mov ecx,00000002h jmp L0002C216 L0002C20E: xor ecx,ecx jmp L0002C216 L0002C212: mov ecx,[esp+10h] L0002C216: mov eax,[esi+30h] cmp eax,32315659h jz L0002C22E cmp eax,33434D49h jnz L0002C235 mov eax,00000008h jmp L0002C239 L0002C22E: mov eax,00000004h jmp L0002C239 L0002C235: mov eax,[esp+10h] L0002C239: or eax,ecx add eax,FFFFFFFCh cmp eax,00000006h push edi ja CASE_0002C364_PROC0001 jmp [CASE_PROCTABLE_0002C364+eax*4] CASE_0002C364_PROC0000: mov eax,[esi+4Ch] mov ebx,[esi+70h] mov ecx,[esi+48h] imul ebx,eax add ecx,ebx cdq shr ebx,02h sub eax,edx add ebx,ecx sar eax,1 mov [esi+4Ch],eax jmp L0002C27C CASE_0002C364_PROC0002: mov ecx,[esi+70h] imul ecx,[esi+4Ch] mov ebx,[esi+48h] add ebx,ecx shr ecx,1 add ecx,ebx L0002C27C: mov eax,[esi+18h] mov ebp,[esi+3Ch] mov edi,[esi+14h] imul ebp,eax add edi,ebp shr ebp,02h add ebp,edi shr eax,1 mov [esi+18h],eax jmp L0002C2E5 CASE_0002C364_PROC0004: mov eax,[esi+4Ch] mov ebx,[esi+70h] mov ecx,[esi+48h] imul ebx,eax add ecx,ebx cdq shr ebx,02h sub eax,edx add ebx,ecx sar eax,1 mov [esi+4Ch],eax jmp L0002C2C3 CASE_0002C364_PROC0006: mov ecx,[esi+70h] imul ecx,[esi+4Ch] mov ebx,[esi+48h] add ebx,ecx shr ecx,1 add ecx,ebx L0002C2C3: mov edi,[esi+3Ch] imul edi,[esi+18h] mov ebp,[esi+14h] add ebp,edi shr edi,1 add edi,ebp jmp L0002C2E5 CASE_0002C364_PROC0001: mov ecx,[esp+14h] mov ebx,[esp+14h] mov edi,[esp+14h] mov ebp,[esp+14h] L0002C2E5: movsx eax,[esi+50h] cdq sub eax,edx sar eax,1 mov [esi+50h],ax movsx eax,[esi+52h] cdq sub eax,edx sar eax,1 mov [esi+52h],ax movsx eax,[esi+1Ch] shr word ptr [esi+54h],1 shr word ptr [esi+56h],1 shr word ptr [esi+24h],1 shr word ptr [esi+26h],1 cdq sub eax,edx sar eax,1 mov [esi+1Ch],ax movsx eax,[esi+1Eh] cdq sub eax,edx sar eax,1 push esi mov [esi+48h],ecx mov [esi+1Eh],ax mov [esi+14h],edi call SUB_L0002B5D0 cmp eax,FFFFFFFFh pop edi jnz L0002C343 pop esi pop ebp or eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002C343: push esi mov [esi+48h],ebx mov [esi+14h],ebp call SUB_L0002B5D0 pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ L0002C355: push esi call SUB_L0002CBA0 pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0002C364: dd CASE_0002C364_PROC0000 dd CASE_0002C364_PROC0001 dd CASE_0002C364_PROC0002 dd CASE_0002C364_PROC0001 dd CASE_0002C364_PROC0004 dd CASE_0002C364_PROC0001 dd CASE_0002C364_PROC0006 SUB_L0002C380: sub esp,00000060h push ebx push ebp push esi mov esi,[esp+70h] mov ebp,[esi] push edi xor ebx,ebx push esi mov dword ptr [esi+38h],00000001h mov [esi+6Ch],ebx call SUB_L0002BA30 mov edi,eax cmp edi,FFFFFFFFh jnz L0002C3B2 pop edi pop esi pop ebp or eax,eax pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0002C3B2: mov eax,[esi+30h] cmp eax,32315659h jz L0002C41F cmp eax,33434D49h jnz L0002C5A9 movsx eax,[esi+1Ch] cdq sub eax,edx sar eax,1 mov [esi+1Ch],ax movsx eax,[esi+1Eh] shr word ptr [esi+24h],1 shr word ptr [esi+26h],1 cdq sub eax,edx mov edx,[esi+14h] sar eax,1 mov [esi+1Eh],ax mov eax,[esi+3Ch] imul eax,[esi+18h] add edx,eax push esi mov [esi+14h],edx mov [esi+38h],ebx mov dword ptr [esi+6Ch],00100000h call SUB_L0002BA30 mov edi,eax cmp edi,FFFFFFFFh jnz L0002C5A9 pop edi pop esi pop ebp or eax,eax pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0002C41F: mov edx,[esi+3Ch] mov eax,[esi+40h] lea ecx,[esp+2Ch] push ecx mov ecx,[ebp+000000A8h] push 00000008h push edx push eax push 21080010h push ecx call SUB_L000267C0 test eax,eax jnz L0002C450 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0002C450: mov eax,[esi+18h] mov edi,[esi+3Ch] mov dx,[esi+1Ch] imul edi,eax mov ecx,[esp+30h] shr word ptr [esi+24h],1 shr word ptr [esi+26h],1 mov ebx,eax add edi,[esi+14h] mov ax,[esi+1Eh] mov [esp+74h],dx mov edx,[esp+38h] mov [esp+10h],ax xor eax,eax push esi shr ebx,1 mov [esi+1Ch],ax mov [esi+1Eh],ax mov [esi+38h],eax mov [esi+14h],ecx mov [esi+18h],edx mov dword ptr [esi+6Ch],L00080000 call SUB_L0002BA30 cmp eax,FFFFFFFFh jnz L0002C4C5 mov ecx,[ebp+000000A8h] lea eax,[esp+2Ch] push eax push ecx call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0002C4C5: push ebp call SUB_L00029670 mov ax,[esi+56h] mov dx,[esi+54h] mov cx,[esi+50h] mov [esp+18h],ax mov eax,[esi+4Ch] mov [esp+24h],eax mov ax,[esi+26h] mov [esi+56h],ax mov eax,[esi+18h] mov [esp+14h],dx mov dx,[esi+52h] mov [esi+4Ch],eax movsx eax,[esp+74h] mov [esp+20h],dx mov dx,[esi+24h] mov [esi+54h],dx mov dx,[esi+1Eh] mov [esi+52h],dx cdq sub eax,edx mov [esp+1Ch],cx mov ecx,[esi+48h] sar eax,1 mov [esp+28h],ecx mov cx,[esi+1Ch] mov [esi+1Ch],ax movsx eax,[esp+10h] cdq sub eax,edx mov [esi+50h],cx mov ecx,[esi+14h] sar eax,1 push esi mov [esi+48h],ecx mov [esi+1Eh],ax mov [esi+14h],edi mov [esi+18h],ebx call SUB_L0002B5D0 mov edi,eax cmp edi,FFFFFFFFh jnz L0002C575 mov eax,[ebp+000000A8h] lea edx,[esp+2Ch] push edx push eax call SUB_L00026030 or eax,edi pop edi pop esi pop ebp pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0002C575: mov cx,[esp+14h] mov dx,[esp+18h] mov ax,[esp+1Ch] mov [esi+54h],cx mov cx,[esp+20h] mov [esi+56h],dx mov edx,[esp+24h] mov [esi+50h],ax mov eax,[esp+28h] mov [esi+52h],cx mov [esi+4Ch],edx mov [esi+48h],eax jmp L0002C5AD L0002C5A9: mov ebx,[esp+74h] L0002C5AD: mov eax,[esi+30h] cmp eax,32315659h jz L0002C5F3 cmp eax,33434D49h jnz L0002C6BF mov ecx,[esi+3Ch] imul ecx,[esi+18h] mov edx,[esi+14h] shr ecx,1 add edx,ecx push esi mov [esi+14h],edx mov dword ptr [esi+38h],00000000h mov dword ptr [esi+6Ch],L00080000 call SUB_L0002BA30 mov edi,eax pop edi pop esi pop ebp pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0002C5F3: mov edi,[esi+3Ch] imul edi,[esi+18h] mov eax,[esi+14h] mov edx,[esp+30h] shr edi,1 add edi,eax xor eax,eax mov [esi+38h],eax mov [esi+1Ch],ax mov [esi+1Eh],ax mov eax,[esp+38h] push esi mov [esi+14h],edx mov [esi+18h],eax mov dword ptr [esi+6Ch],00100000h call SUB_L0002BA30 cmp eax,FFFFFFFFh jnz L0002C64C mov edx,[ebp+000000A8h] lea ecx,[esp+2Ch] push ecx push edx call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ L0002C64C: push ebp call SUB_L00029670 mov ax,[esi+24h] mov dx,[esi+1Ch] mov cx,[esi+26h] mov [esi+54h],ax mov ax,[esi+1Eh] mov [esi+52h],ax movsx eax,[esp+74h] mov [esi+50h],dx mov edx,[esi+14h] mov [esi+48h],edx cdq sub eax,edx sar eax,1 mov [esi+1Ch],ax movsx eax,[esp+10h] cdq sub eax,edx mov [esi+56h],cx mov ecx,[esi+18h] sar eax,1 push esi mov [esi+4Ch],ecx mov [esi+1Eh],ax mov [esi+14h],edi mov [esi+18h],ebx call SUB_L0002B5D0 push ebp mov edi,eax call SUB_L00029670 mov ecx,[ebp+000000A8h] lea eax,[esp+2Ch] push eax push ecx call SUB_L00026030 L0002C6BF: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,00000060h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002C6D0: sub esp,00000068h push ebx push ebp push esi mov esi,[esp+78h] mov ebx,[esi] push edi xor ebp,ebp push esi mov dword ptr [esi+38h],00000001h mov [esi+6Ch],ebp call SUB_L0002BA30 mov edi,eax cmp edi,FFFFFFFFh jnz L0002C702 pop edi pop esi pop ebp or eax,eax pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ L0002C702: mov eax,[esi+64h] cmp eax,32315659h jz L0002C76C cmp eax,33434D49h jnz L0002C904 mov eax,[esi+70h] imul eax,[esi+4Ch] mov ecx,[esi+48h] add ecx,eax movsx eax,[esi+50h] shr word ptr [esi+54h],1 shr word ptr [esi+56h],1 cdq sub eax,edx sar eax,1 mov [esi+50h],ax movsx eax,[esi+52h] cdq sub eax,edx sar eax,1 push esi mov [esi+48h],ecx mov [esi+52h],ax mov dword ptr [esi+38h],00000003h call SUB_L0002BA30 mov edi,eax cmp edi,FFFFFFFFh jnz L0002C904 pop edi pop esi pop ebp or eax,eax pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ L0002C76C: mov edx,[esi+70h] mov eax,[esi+74h] lea ecx,[esp+34h] push ecx mov ecx,[ebx+000000A8h] push 00000008h push edx push eax push 21080010h push ecx call SUB_L000267C0 test eax,eax jnz L0002C79D pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ L0002C79D: mov eax,[esi+4Ch] mov ecx,[esi+48h] mov edx,eax imul edx,[esi+70h] add ecx,edx cdq sub eax,edx sar eax,1 mov [esi+4Ch],eax movsx eax,[esi+50h] shr word ptr [esi+54h],1 shr word ptr [esi+56h],1 cdq sub eax,edx mov edi,[esi+18h] sar eax,1 mov [esi+50h],ax movsx eax,[esi+52h] cdq sub eax,edx mov dx,[esi+24h] mov [esp+7Ch],dx mov dx,[esi+26h] mov [esp+10h],dx mov dx,[esi+1Ch] sar eax,1 mov [esi+48h],ecx mov cx,[esi+56h] mov [esi+52h],ax mov ax,[esi+54h] mov [esp+14h],dx mov dx,[esi+1Eh] mov [esp+18h],dx mov edx,[esi+14h] mov [esi+24h],ax mov eax,[esp+38h] mov [esi+26h],cx mov ecx,[esp+40h] push esi mov [esp+34h],edi mov [esp+20h],edx mov [esi+1Ch],bp mov [esi+1Eh],bp mov [esi+14h],eax mov [esi+18h],ecx mov byte ptr [esi+07h],04h call SUB_L0002B5D0 cmp eax,FFFFFFFFh jnz L0002C85D mov eax,[ebx+000000A8h] lea edx,[esp+34h] push edx push eax call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ L0002C85D: push ebx call SUB_L00029670 mov ecx,[esi+48h] mov edx,[esi+4Ch] mov ax,[esi+52h] mov [esp+20h],ecx mov cx,[esi+50h] mov [esp+24h],edx mov edx,[esi+14h] mov [esp+2Ch],ax mov eax,[esi+18h] mov [esp+28h],cx mov cx,[esp+7Ch] mov [esi+48h],edx mov dx,[esp+10h] mov [esi+4Ch],eax mov ax,[esp+14h] mov [esi+24h],cx mov cx,[esp+18h] mov [esi+26h],dx mov edx,[esp+1Ch] push esi mov [esi+52h],bp mov [esi+50h],bp mov [esi+1Ch],ax mov [esi+1Eh],cx mov [esi+14h],edx mov [esi+18h],edi mov dword ptr [esi+38h],00000002h call SUB_L0002BA30 mov edi,eax cmp edi,FFFFFFFFh jnz L0002C8F6 mov ecx,[ebx+000000A8h] lea eax,[esp+34h] push eax push ecx call SUB_L00026030 or eax,edi pop edi pop esi pop ebp pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ L0002C8F6: mov edx,[esp+20h] mov eax,[esp+24h] mov [esi+48h],edx mov [esi+4Ch],eax L0002C904: mov eax,[esi+64h] cmp eax,32315659h jz L0002C943 cmp eax,33434D49h jnz L0002CA27 mov ecx,[esi+70h] imul ecx,[esi+4Ch] mov edx,[esi+48h] shr ecx,1 add edx,ecx push esi mov [esi+48h],edx mov dword ptr [esi+38h],00000002h call SUB_L0002BA30 mov edi,eax pop edi pop esi pop ebp pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ L0002C943: mov ecx,[esi+70h] imul ecx,[esi+4Ch] mov dx,[esp+28h] mov ax,[esp+2Ch] mov edi,[esi+48h] mov [esi+50h],dx mov dx,[esi+54h] shr ecx,1 add edi,ecx mov ecx,[esp+38h] mov [esi+52h],ax mov ax,[esi+56h] mov [esi+24h],dx mov edx,[esp+40h] push esi mov [esi+48h],edi mov [esi+26h],ax mov [esi+1Ch],bp mov [esi+1Eh],bp mov [esi+14h],ecx mov [esi+18h],edx call SUB_L0002B5D0 cmp eax,FFFFFFFFh jnz L0002C9B5 mov ecx,[ebx+000000A8h] lea eax,[esp+34h] push eax push ecx call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ L0002C9B5: push ebx call SUB_L00029670 mov edx,[esi+14h] mov eax,[esi+18h] mov cx,[esp+7Ch] mov [esi+48h],edx mov dx,[esp+10h] mov [esi+4Ch],eax mov ax,[esp+14h] mov [esi+24h],cx mov cx,[esp+18h] mov [esi+26h],dx mov edx,[esp+1Ch] mov [esi+1Ch],ax mov eax,[esp+30h] push esi mov [esi+50h],bp mov [esi+52h],bp mov [esi+1Eh],cx mov [esi+14h],edx mov [esi+18h],eax mov dword ptr [esi+38h],00000003h call SUB_L0002BA30 push ebx mov edi,eax call SUB_L00029670 mov edx,[ebx+000000A8h] lea ecx,[esp+34h] push ecx push edx call SUB_L00026030 L0002CA27: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,00000068h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002CA40: mov eax,[esp+04h] xor ecx,ecx push eax mov [eax+38h],ecx mov [eax+6Ch],ecx call SUB_L0002BA30 retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002CA60: sub esp,00000050h push ebx push ebp push esi mov esi,[esp+60h] mov edx,[esi+3Ch] mov eax,[esi] push edi lea ecx,[esp+1Ch] push ecx mov ecx,[esi+40h] push 00000010h push edx mov edx,[eax+000000A8h] push ecx push 21080010h push edx mov [esp+7Ch],eax call SUB_L000267C0 test eax,eax jnz L0002CAA2 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000050h retn 0004h ;------------------------------------------------------------------------------ L0002CAA2: mov eax,[esi+14h] mov ecx,[esi+18h] mov dx,[esi+26h] mov di,[esi+1Eh] mov bx,[esi+1Ch] mov bp,[esi+24h] mov [esp+14h],eax mov eax,[esp+20h] mov [esp+18h],ecx mov ecx,[esp+28h] mov [esp+10h],dx mov edx,[esi+68h] push esi mov [esi+14h],eax mov [esi+18h],ecx mov [esi+34h],edx mov dword ptr [esi+30h],32595559h call SUB_L0002C6D0 cmp eax,FFFFFFFFh jnz L0002CB0D mov ecx,[esp+64h] mov edx,[ecx+000000A8h] lea eax,[esp+1Ch] push eax push edx call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000050h retn 0004h ;------------------------------------------------------------------------------ L0002CB0D: mov eax,[esi+14h] mov ecx,[esi+18h] mov edx,[esp+14h] mov [esi+48h],eax mov eax,[esp+10h] db 89h; '%' db 4Eh; 'N' L0002CB20: db 4Ch; 'L' L0002CB21: mov ecx,[esp+18h] mov [esi+56h],ax mov [esi+26h],ax xor eax,eax push esi mov [esi+50h],bx mov [esi+52h],di mov [esi+54h],bp mov dword ptr [esi+64h],32595559h mov [esi+14h],edx mov [esi+18h],ecx mov [esi+1Ch],bx mov [esi+1Eh],di mov [esi+24h],bp mov dword ptr [esi+34h],00000002h mov [esi+30h],eax mov [esi+38h],eax mov [esi+6Ch],eax call SUB_L0002BA30 mov edi,[esp+64h] push edi mov esi,eax call SUB_L00029670 mov eax,[edi+000000A8h] lea edx,[esp+1Ch] push edx push eax call SUB_L00026030 pop edi mov eax,esi pop esi pop ebp pop ebx add esp,00000050h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002CBA0: sub esp,000000C0h push ebx push ebp push esi mov esi,[esp+000000D0h] mov eax,[esi] push edi xor edi,edi push esi mov [esp+1Ch],edi mov [esp+18h],edi mov [esp+14h],eax mov dword ptr [esi+38h],00000001h mov [esi+6Ch],edi call SUB_L0002BA30 cmp eax,FFFFFFFFh jz L0002D175 mov eax,[esi+64h] cmp eax,32315659h jz L0002CBF4 cmp eax,33434D49h mov edi,00000002h jz L0002CBF4 mov edi,[esp+1Ch] L0002CBF4: mov eax,[esi+30h] cmp eax,32315659h jz L0002CC0C cmp eax,33434D49h jnz L0002CC13 mov eax,00000008h jmp L0002CC17 L0002CC0C: mov eax,00000004h jmp L0002CC17 L0002CC13: mov eax,[esp+1Ch] L0002CC17: or eax,edi add eax,FFFFFFFCh cmp eax,00000006h ja CASE_0002D240_PROC0001 jmp [CASE_PROCTABLE_0002D240+eax*4] CASE_0002D240_PROC0000: mov eax,[esi+4Ch] mov ecx,[esi+70h] mov edi,[esi+48h] imul ecx,eax mov ebx,[esi+14h] cdq sub eax,edx add edi,ecx sar eax,1 shr ecx,02h add ecx,edi mov [esi+4Ch],eax mov eax,[esi+3Ch] mov ebp,ecx mov ecx,[esi+18h] imul eax,ecx add ebx,eax shr eax,02h add eax,ebx mov [esp+24h],eax mov eax,00000001h shr ecx,1 mov [esi+18h],ecx mov [esp+18h],eax mov [esp+14h],eax jmp L0002CD34 CASE_0002D240_PROC0002: mov ecx,[esi+18h] mov edi,[esi+70h] imul edi,[esi+4Ch] mov eax,[esi+3Ch] mov ebp,[esi+48h] imul eax,ecx mov ebx,[esi+14h] add ebp,edi add ebx,eax shr edi,1 shr eax,02h add eax,ebx add edi,ebp shr ecx,1 mov [esp+24h],eax mov [esi+18h],ecx mov dword ptr [esp+18h],00000000h mov dword ptr [esp+14h],00000001h jmp L0002CD34 CASE_0002D240_PROC0004: mov eax,[esi+4Ch] mov ecx,[esi+70h] mov ebx,[esi+3Ch] imul ecx,eax imul ebx,[esi+18h] mov edi,[esi+48h] cdq sub eax,edx sar eax,1 add edi,ecx mov [esi+4Ch],eax mov eax,[esi+14h] shr ecx,02h add eax,ebx add ecx,edi shr ebx,1 mov ebp,ecx mov [esp+24h],eax add ebx,eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+14h],00000000h jmp L0002CD34 CASE_0002D240_PROC0006: mov edi,[esi+70h] imul edi,[esi+4Ch] mov ebx,[esi+3Ch] imul ebx,[esi+18h] mov ebp,[esi+48h] mov eax,[esi+14h] add eax,ebx add ebp,edi shr edi,1 shr ebx,1 add edi,ebp mov [esp+24h],eax add ebx,eax xor eax,eax mov [esp+18h],eax mov [esp+14h],eax jmp L0002CD34 CASE_0002D240_PROC0001: mov edi,[esp+1Ch] mov ebp,[esp+1Ch] mov ebx,[esp+1Ch] L0002CD34: movsx eax,[esi+50h] cdq sub eax,edx mov ecx,eax movsx eax,[esi+52h] cdq sub eax,edx sar eax,1 mov [esp+44h],eax mov ax,[esi+54h] shr ax,1 mov edx,[esi+4Ch] mov [esp+1Ch],edx sar ecx,1 mov [esp+30h],ecx mov [esp+3Ch],eax mov ax,[esi+56h] shr ax,1 mov [esp+28h],eax movsx eax,[esi+1Ch] cdq sub eax,edx sar eax,1 mov [esp+34h],eax movsx eax,[esi+1Eh] cdq sub eax,edx sar eax,1 mov [esp+38h],eax mov ax,[esi+24h] shr ax,1 mov [esp+40h],eax mov ax,[esi+26h] shr ax,1 mov [esp+20h],eax mov eax,[esi+18h] mov [esp+2Ch],eax mov eax,[esp+18h] test eax,eax jz L0002CDDC mov edx,[esi+70h] mov eax,[esi+74h] lea ecx,[esp+48h] push ecx mov ecx,[esp+14h] push 00000008h push edx mov edx,[ecx+000000A8h] push eax push 21080010h push edx call SUB_L000267C0 test eax,eax jz L0002D175 mov ecx,[esp+30h] L0002CDDC: mov eax,[esp+14h] test eax,eax jz L0002CE28 mov ecx,[esi+3Ch] mov edx,[esi+40h] lea eax,[esp+0000008Ch] push eax mov eax,[esp+14h] push 00000008h push ecx mov ecx,[eax+000000A8h] push edx push 21080010h push ecx call SUB_L000267C0 test eax,eax jnz L0002CE24 mov eax,[esp+18h] test eax,eax jz L0002D175 lea edx,[esp+48h] jmp L0002D164 L0002CE24: mov ecx,[esp+30h] L0002CE28: mov dx,[esp+3Ch] mov eax,[esp+44h] mov [esi+48h],edi mov edi,[esp+18h] test edi,edi mov [esi+54h],dx mov edx,[esp+28h] mov [esi+50h],cx mov [esi+52h],ax mov [esi+56h],dx jz L0002CEE1 mov [esi+1Ch],cx mov ecx,[esp+4Ch] mov [esi+1Eh],ax mov ax,[esp+3Ch] mov [esi+26h],dx mov edx,[esp+54h] push esi mov [esi+24h],ax mov [esi+14h],ecx mov [esi+18h],edx call SUB_L0002B5D0 cmp eax,FFFFFFFFh jnz L0002CEC7 mov esi,[esp+10h] mov ecx,[esi+000000A8h] lea eax,[esp+48h] push eax push ecx call SUB_L00026030 mov eax,[esp+14h] test eax,eax jz L0002D175 mov eax,[esi+000000A8h] lea edx,[esp+0000008Ch] push edx push eax call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000C0h retn 0004h ;------------------------------------------------------------------------------ L0002CEC7: mov edi,[esp+10h] push edi call SUB_L00029670 mov ecx,[esp+4Ch] mov edx,[esp+54h] mov [esi+48h],ecx mov [esi+4Ch],edx jmp L0002CEE5 L0002CEE1: mov edi,[esp+10h] L0002CEE5: mov ax,[esp+34h] mov cx,[esp+38h] mov dx,[esp+40h] mov [esi+1Ch],ax mov ax,[esp+20h] mov [esi+26h],ax mov eax,[esp+14h] test eax,eax mov [esi+1Eh],cx mov ecx,[esp+2Ch] mov [esi+24h],dx mov [esi+14h],ebx mov [esi+18h],ecx jz L0002CF2F mov edx,[esp+00000090h] mov eax,[esp+00000098h] mov [esi+14h],edx mov [esi+18h],eax L0002CF2F: push esi call SUB_L0002BA30 cmp eax,FFFFFFFFh jnz L0002CF83 mov eax,[esp+18h] test eax,eax jz L0002CF53 mov edx,[edi+000000A8h] lea ecx,[esp+48h] push ecx push edx call SUB_L00026030 L0002CF53: mov eax,[esp+14h] test eax,eax jz L0002D175 mov ecx,[edi+000000A8h] lea eax,[esp+0000008Ch] push eax push ecx call SUB_L00026030 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000C0h retn 0004h ;------------------------------------------------------------------------------ L0002CF83: mov eax,[esp+14h] test eax,eax jz L0002D026 push edi call SUB_L00029670 mov dx,[esp+20h] mov eax,[esp+38h] mov ecx,[esp+40h] mov edi,[esp+34h] mov [esi+56h],dx mov edx,[esp+00000090h] mov [esi+52h],ax mov [esi+54h],cx mov [esi+48h],edx mov edx,[esp+00000098h] mov [esi+1Eh],ax mov ax,[esp+20h] mov [esi+24h],cx mov ecx,[esp+2Ch] push esi mov [esi+50h],di mov [esi+4Ch],edx mov [esi+1Ch],di mov [esi+26h],ax mov [esi+14h],ebx mov [esi+18h],ecx call SUB_L0002B5D0 cmp eax,FFFFFFFFh jnz L0002D01A mov eax,[esp+18h] test eax,eax jz L0002D15D mov eax,[esp+10h] mov ecx,[eax+000000A8h] lea edx,[esp+48h] push edx push ecx call SUB_L00026030 jmp L0002D15D L0002D01A: mov edx,[esp+10h] push edx call SUB_L00029670 jmp L0002D02A L0002D026: mov edi,[esp+34h] L0002D02A: mov eax,[esp+30h] mov ecx,[esp+44h] mov edx,[esp+3Ch] mov ebx,[esp+28h] mov [esi+48h],ebp mov ebp,[esp+1Ch] mov [esi+4Ch],ebp mov ebp,[esp+18h] test ebp,ebp mov [esi+50h],ax mov [esi+52h],cx mov [esi+54h],dx mov [esi+56h],bx jz L0002D0E2 mov [esi+1Ch],ax mov eax,[esp+4Ch] mov [esi+1Eh],cx mov ecx,[esp+54h] push esi mov [esi+24h],dx mov [esi+26h],bx mov [esi+14h],eax mov [esi+18h],ecx call SUB_L0002B5D0 cmp eax,FFFFFFFFh jnz L0002D0CA mov esi,[esp+10h] mov eax,[esi+000000A8h] lea edx,[esp+48h] push edx push eax call SUB_L00026030 mov eax,[esp+14h] test eax,eax jz L0002D0BA mov edx,[esi+000000A8h] lea ecx,[esp+0000008Ch] push ecx push edx call SUB_L00026030 L0002D0BA: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000C0h retn 0004h ;------------------------------------------------------------------------------ L0002D0CA: mov eax,[esp+10h] push eax call SUB_L00029670 mov ecx,[esp+4Ch] mov edx,[esp+54h] mov [esi+48h],ecx mov [esi+4Ch],edx L0002D0E2: mov ax,[esp+20h] mov ebp,[esp+38h] mov ebx,[esp+40h] mov ecx,[esp+24h] mov edx,[esp+2Ch] mov [esi+26h],ax mov eax,[esp+14h] test eax,eax mov [esi+1Ch],di mov [esi+1Eh],bp mov [esi+24h],bx mov [esi+14h],ecx mov [esi+18h],edx jz L0002D129 mov eax,[esp+00000090h] mov ecx,[esp+00000098h] mov [esi+14h],eax mov [esi+18h],ecx L0002D129: push esi call SUB_L0002BA30 cmp eax,FFFFFFFFh mov [esp+28h],eax jnz L0002D185 mov eax,[esp+18h] test eax,eax jz L0002D155 mov eax,[esp+10h] mov ecx,[eax+000000A8h] lea edx,[esp+48h] push edx push ecx call SUB_L00026030 L0002D155: mov eax,[esp+14h] test eax,eax jz L0002D175 L0002D15D: lea edx,[esp+0000008Ch] L0002D164: mov eax,[esp+10h] mov ecx,[eax+000000A8h] push edx push ecx call SUB_L00026030 L0002D175: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000C0h retn 0004h ;------------------------------------------------------------------------------ L0002D185: mov eax,[esp+14h] test eax,eax jz L0002D1F3 mov edx,[esp+10h] push edx call SUB_L00029670 mov eax,[esp+20h] mov ecx,[esp+00000090h] mov edx,[esp+00000098h] mov [esi+56h],ax mov [esi+48h],ecx mov ecx,[esp+2Ch] mov [esi+26h],ax mov eax,[esp+24h] push esi mov [esi+50h],di mov [esi+52h],bp mov [esi+54h],bx mov [esi+4Ch],edx mov [esi+1Ch],di mov [esi+1Eh],bp mov [esi+24h],bx mov [esi+14h],eax mov [esi+18h],ecx call SUB_L0002B5D0 mov esi,[esp+10h] push esi mov [esp+2Ch],eax call SUB_L00029670 jmp L0002D1F7 L0002D1F3: mov esi,[esp+10h] L0002D1F7: mov eax,[esp+18h] test eax,eax jz L0002D210 mov eax,[esi+000000A8h] lea edx,[esp+48h] push edx push eax call SUB_L00026030 L0002D210: mov eax,[esp+14h] test eax,eax jz L0002D22C mov edx,[esi+000000A8h] lea ecx,[esp+0000008Ch] push ecx push edx call SUB_L00026030 L0002D22C: mov eax,[esp+28h] pop edi pop esi pop ebp pop ebx add esp,000000C0h retn 0004h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0002D240: dd CASE_0002D240_PROC0000 dd CASE_0002D240_PROC0001 dd CASE_0002D240_PROC0002 dd CASE_0002D240_PROC0001 dd CASE_0002D240_PROC0004 dd CASE_0002D240_PROC0001 dd CASE_0002D240_PROC0006 Align 8 SUB_L0002D260: sub esp,000000B0h push ebx push ebp push esi mov esi,[esp+000000C0h] mov al,[esi+68h] mov ebp,[esi] mov edx,00000001h mov ecx,00000002h test cl,al mov ebx,edx push edi mov [esp+1Ch],ebx mov [esp+10h],edx mov [esp+20h],ebp jz L0002D29C xor edi,edi mov [esp+1Ch],edi mov ebx,edi jmp L0002D29E L0002D29C: xor edi,edi L0002D29E: test [esi+34h],cl jz L0002D2A7 mov [esp+10h],edi L0002D2A7: mov eax,[esi+08h] test ah,07h jz L0002D2B3 mov [esp+10h],edx L0002D2B3: cmp ebx,edi mov [esi+68h],ecx mov [esi+34h],ecx jz L0002D2F1 mov ecx,[esi+70h] mov edx,[esi+74h] lea eax,[esp+38h] push eax mov eax,[ebp+000000A8h] push 00000010h push ecx push edx push 21080000h push eax call SUB_L000267C0 test eax,eax jnz L0002D2F1 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000B0h retn 0004h ;------------------------------------------------------------------------------ L0002D2F1: cmp [esp+10h],edi jz L0002D340 mov edx,[esi+3Ch] mov eax,[esi+40h] lea ecx,[esp+7Ch] push ecx mov ecx,[ebp+000000A8h] push 00000010h push edx push eax push 21080000h push ecx call SUB_L000267C0 test eax,eax jnz L0002D340 cmp ebx,edi jz L0002D330 mov eax,[ebp+000000A8h] lea edx,[esp+38h] push edx push eax call SUB_L00026030 L0002D330: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000B0h retn 0004h ;------------------------------------------------------------------------------ L0002D340: cmp ebx,edi jz L0002D48A mov ax,[esi+1Ch] mov cx,[esi+24h] mov dx,[esi+26h] mov di,[esi+52h] mov bx,[esi+50h] mov bp,[esi+54h] mov [esp+30h],ax mov eax,[esi+14h] mov [esp+14h],eax xor eax,eax test di,di mov ax,[esi+56h] mov [esp+24h],cx mov cx,[esi+1Eh] mov [esp+34h],dx mov edx,[esi+18h] mov [esp+28h],cx mov [esp+18h],edx mov [esp+2Ch],eax mov [esi+24h],bp mov [esi+26h],ax mov [esi+1Ch],bx mov [esi+1Eh],di jz L0002D3B9 lea ecx,[edi-01h] inc eax mov [esi+1Eh],cx mov [esi+52h],cx mov [esi+26h],ax mov [esi+56h],ax L0002D3B9: test bx,bx jz L0002D3D4 lea eax,[ebx-01h] mov [esi+1Ch],ax mov [esi+50h],ax lea eax,[ebp+01h] mov [esi+24h],ax mov [esi+54h],ax L0002D3D4: mov ecx,[esp+3Ch] mov edx,[esp+44h] push esi mov [esi+14h],ecx mov [esi+18h],edx call SUB_L0002B5D0 cmp eax,FFFFFFFFh jnz L0002D42B mov esi,[esp+20h] mov ecx,[esi+000000A8h] lea eax,[esp+38h] push eax push ecx call SUB_L00026030 mov eax,[esp+10h] test eax,eax jz L0002D41B mov eax,[esi+000000A8h] lea edx,[esp+7Ch] push edx push eax call SUB_L00026030 L0002D41B: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000B0h retn 0004h ;------------------------------------------------------------------------------ L0002D42B: mov cx,[esp+24h] mov dx,[esp+34h] mov ax,[esp+30h] mov [esi+24h],cx mov cx,[esp+28h] mov [esi+26h],dx mov edx,[esp+14h] mov [esi+1Ch],ax mov eax,[esp+18h] mov [esi+1Eh],cx mov cx,[esp+2Ch] mov [esi+14h],edx mov edx,[esp+3Ch] mov [esi+18h],eax mov eax,[esp+44h] mov [esi+50h],bx mov ebx,[esp+1Ch] mov [esi+52h],di mov [esi+54h],bp mov ebp,[esp+20h] mov [esi+56h],cx mov [esi+48h],edx mov [esi+4Ch],eax xor edi,edi L0002D48A: cmp [esp+10h],edi jz L0002D4B2 mov ecx,[esi+18h] mov edx,[esi+14h] mov eax,[esp+00000080h] mov [esp+18h],ecx mov ecx,[esp+00000088h] mov [esp+14h],edx mov [esi+14h],eax mov [esi+18h],ecx L0002D4B2: push esi mov [esi+38h],edi mov [esi+6Ch],edi call SUB_L0002BA30 mov edi,eax cmp edi,FFFFFFFFh jnz L0002D503 test ebx,ebx jz L0002D4DA mov eax,[ebp+000000A8h] lea edx,[esp+38h] push edx push eax call SUB_L00026030 L0002D4DA: mov eax,[esp+10h] test eax,eax jz L0002D4F3 mov edx,[ebp+000000A8h] lea ecx,[esp+7Ch] push ecx push edx call SUB_L00026030 L0002D4F3: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,000000B0h retn 0004h ;------------------------------------------------------------------------------ L0002D503: mov eax,[esp+10h] test eax,eax jz L0002D564 mov ax,[esi+24h] mov cx,[esi+26h] mov dx,[esi+1Ch] mov [esi+54h],ax mov ax,[esi+1Eh] mov [esi+52h],ax mov eax,[esp+14h] mov [esi+56h],cx mov ecx,[esp+00000080h] mov [esi+14h],eax mov eax,[esi+08h] test ah,07h mov [esi+50h],dx mov edx,[esp+00000088h] mov [esi+48h],ecx mov ecx,[esp+18h] mov [esi+4Ch],edx mov [esi+18h],ecx push esi jnz L0002D55D call SUB_L0002B5D0 jmp L0002D562 L0002D55D: call SUB_L00029840 L0002D562: mov edi,eax L0002D564: test ebx,ebx mov eax,[esp+10h] jz L0002D5CC test eax,eax push ebp jz L0002D5A7 call SUB_L00029670 mov eax,[ebp+000000A8h] lea edx,[esp+38h] push edx push eax call SUB_L00026030 mov edx,[ebp+000000A8h] lea ecx,[esp+7Ch] push ecx push edx call SUB_L00026030 mov eax,edi pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0004h ;------------------------------------------------------------------------------ L0002D5A7: call SUB_L00029670 mov ecx,[ebp+000000A8h] lea eax,[esp+38h] push eax push ecx call SUB_L00026030 mov eax,edi pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0004h ;------------------------------------------------------------------------------ L0002D5CC: test eax,eax jz L0002D5E7 push ebp call SUB_L00029670 mov eax,[ebp+000000A8h] lea edx,[esp+7Ch] push edx push eax call SUB_L00026030 L0002D5E7: mov eax,edi pop edi pop esi pop ebp pop ebx add esp,000000B0h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002D600: sub esp,0000057Ch xor ecx,ecx push ebx mov ebx,[esp+00000584h] mov cx,[ebx+54h] mov eax,[ebx] mov [esp+18h],eax mov eax,[eax+000000ACh] mov [esp+4Ch],eax movsx eax,[ebx+50h] add ecx,eax mov [esp+20h],ecx xor ecx,ecx mov cx,[ebx+56h] mov [esp+24h],eax movsx eax,[ebx+52h] mov [esp+2Ch],eax mov edx,[ebx+14h] add ecx,eax xor eax,eax mov ax,[ebx+24h] mov [esp+1Ch],ecx movsx ecx,[ebx+1Ch] mov [esp+34h],ecx push ebp add eax,ecx movsx ecx,[ebx+1Eh] mov [esp+48h],eax xor eax,eax mov ax,[ebx+26h] push esi mov [esp+44h],ecx push edi lea edi,[esp+0000008Ch] mov [esp+18h],edx mov ebp,00000001h add eax,ecx mov [esp+1Ch],eax xor eax,eax mov ecx,00000140h rep stosd mov eax,02000001h xor ecx,ecx mov [esp+0000008Ch],eax mov [esp+000000A0h],eax mov [esp+000000A8h],eax mov eax,[ebx+64h] cmp eax,34344149h mov [esp+00000090h],ecx mov [esp+00000094h],ecx mov [esp+00000098h],ecx mov [esp+0000009Ch],ecx mov dword ptr [esp+000000A4h],02820100h mov dword ptr [esp+000000ACh],7D8200FFh jz L0002D82D cmp eax,34344941h jz L0002D700 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,0000057Ch retn 000Ch ;------------------------------------------------------------------------------ L0002D700: mov eax,[esp+00000598h] sub eax,ecx jz L0002D7D0 dec eax jz L0002D773 dec eax jnz L0002D966 mov [esp+10h],ecx lea edx,[esp+000000B0h] mov ebp,00000101h jmp L0002D72F L0002D72B: mov edx,[esp+14h] L0002D72F: mov edi,[esp+00000594h] mov eax,ecx shl eax,04h or eax,ecx shl eax,08h mov esi,edx add edx,00000040h mov ecx,00000010h mov [esp+14h],edx L0002D74E: xor edx,edx mov dl,[edi] add esi,00000004h add edi,00000004h or edx,eax dec ecx mov [esi-04h],edx jnz L0002D74E mov ecx,[esp+10h] inc ecx cmp ecx,00000010h mov [esp+10h],ecx jc L0002D72B jmp L0002D962 L0002D773: mov [esp+10h],ecx lea edx,[esp+000000B0h] mov ebp,00000101h jmp L0002D789 L0002D785: mov edx,[esp+14h] L0002D789: mov eax,ecx shl eax,04h or eax,ecx mov ecx,[esp+00000594h] shl eax,08h mov esi,edx add edx,00000040h lea edi,[ecx+01h] mov ecx,00000010h mov [esp+14h],edx L0002D7AB: xor edx,edx mov dl,[edi] add esi,00000004h add edi,00000004h or edx,eax dec ecx mov [esi-04h],edx jnz L0002D7AB mov ecx,[esp+10h] inc ecx cmp ecx,00000010h mov [esp+10h],ecx jc L0002D785 jmp L0002D962 L0002D7D0: mov [esp+10h],ecx lea edx,[esp+000000B0h] mov ebp,00000101h jmp L0002D7E6 L0002D7E2: mov edx,[esp+14h] L0002D7E6: mov eax,ecx shl eax,04h or eax,ecx mov ecx,[esp+00000594h] shl eax,08h mov esi,edx add edx,00000040h lea edi,[ecx+02h] mov ecx,00000010h mov [esp+14h],edx L0002D808: xor edx,edx mov dl,[edi] add esi,00000004h add edi,00000004h or edx,eax dec ecx mov [esi-04h],edx jnz L0002D808 mov ecx,[esp+10h] inc ecx cmp ecx,00000010h mov [esp+10h],ecx jc L0002D7E2 jmp L0002D962 L0002D82D: mov eax,[esp+00000598h] sub eax,ecx jz L0002D904 dec eax jz L0002D8A6 dec eax jnz L0002D966 mov eax,[esp+00000594h] lea edi,[esp+000000B0h] mov [esp+10h],eax mov dword ptr [esp+14h],00000010h mov ebp,00000101h L0002D865: mov ecx,[esp+10h] xor edx,edx mov dl,[ecx] xor eax,eax mov ecx,edi add edi,00000040h L0002D874: mov esi,eax shl esi,04h or esi,eax shl esi,08h or esi,edx mov [ecx],esi add ecx,00000004h inc eax cmp eax,00000010h jc L0002D874 mov ecx,[esp+10h] mov eax,[esp+14h] add ecx,00000004h dec eax mov [esp+10h],ecx mov [esp+14h],eax jnz L0002D865 jmp L0002D962 L0002D8A6: mov edx,[esp+00000594h] inc edx lea edi,[esp+000000B0h] mov [esp+10h],edx mov dword ptr [esp+14h],00000010h mov ebp,00000101h L0002D8C6: mov ecx,[esp+10h] xor edx,edx mov dl,[ecx] xor eax,eax mov ecx,edi add edi,00000040h L0002D8D5: mov esi,eax shl esi,04h or esi,eax shl esi,08h or esi,edx mov [ecx],esi add ecx,00000004h inc eax cmp eax,00000010h jc L0002D8D5 mov ecx,[esp+10h] mov eax,[esp+14h] add ecx,00000004h dec eax mov [esp+10h],ecx mov [esp+14h],eax jnz L0002D8C6 jmp L0002D962 L0002D904: mov edx,[esp+00000594h] add edx,00000002h lea edi,[esp+000000B0h] mov [esp+10h],edx mov dword ptr [esp+14h],00000010h mov ebp,00000101h L0002D926: mov ecx,[esp+10h] xor edx,edx mov dl,[ecx] xor eax,eax mov ecx,edi add edi,00000040h L0002D935: mov esi,eax shl esi,04h or esi,eax shl esi,08h or esi,edx mov [ecx],esi add ecx,00000004h inc eax cmp eax,00000010h jc L0002D935 mov ecx,[esp+10h] mov eax,[esp+14h] add ecx,00000004h dec eax mov [esp+10h],ecx mov [esp+14h],eax jnz L0002D926 L0002D962: mov edx,[esp+18h] L0002D966: mov eax,[ebx+18h] cmp eax,00000800h mov dword ptr [esp+ebp*4+000000ACh],0A800000h mov [esp+ebp*4+000000B0h],edx ja L0002D99C jz L0002D997 cmp eax,00000200h jz L0002D9B6 cmp eax,00000400h jnz L0002D9A3 or edx,00000001h jmp L0002D9B6 L0002D997: or edx,00000002h jmp L0002D9B6 L0002D99C: cmp eax,00001000h jz L0002D9B3 L0002D9A3: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,0000057Ch retn 000Ch ;------------------------------------------------------------------------------ L0002D9B3: or edx,00000003h L0002D9B6: mov [esp+ebp*4+000000B0h],edx mov dword ptr [esp+ebp*4+000000B4h],7D850000h mov dword ptr [esp+ebp*4+000000BCh],7D000002h mov dword ptr [esp+ebp*4+000000C0h],00600400h or dword ptr [esp+ebp*4+000000B8h],00880000h xor edx,edx xor eax,eax L0002D9ED: lea ecx,[eax+03h] mov esi,00000001h shl esi,cl cmp [ebx+4Ch],esi jz L0002DA02 inc eax cmp eax,00000010h jc L0002D9ED L0002DA02: cmp eax,00000010h jnz L0002DA17 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,0000057Ch retn 000Ch ;------------------------------------------------------------------------------ L0002DA17: mov ecx,[esp+ebp*4+000000C0h] or ecx,eax mov eax,[esp+28h] mov [esp+ebp*4+000000C0h],ecx mov ecx,[esp+2Ch] shl eax,10h dec eax and eax,03FF0000h dec ecx and ecx,000003FFh or eax,ecx cmp [ebx+04h],dx mov [esp+ebp*4+000000C4h],eax mov eax,[ebx+48h] mov [esp+ebp*4+000000C8h],eax mov dword ptr [esp+ebp*4+000000CCh],65000106h mov dword ptr [esp+ebp*4+000000D0h],7C088000h mov dword ptr [esp+ebp*4+000000D4h],6300000Ch mov [esp+ebp*4+000000D8h],edx mov dword ptr [esp+ebp*4+000000DCh],68000940h mov dword ptr [esp+ebp*4+000000E0h],7C100224h mov dword ptr [esp+ebp*4+000000E4h],02000001h mov dword ptr [esp+ebp*4+000000E8h],02810001h mov dword ptr [esp+ebp*4+000000ECh],7D800003h mov [esp+ebp*4+000000F0h],edx mov [esp+ebp*4+000000F4h],edx mov [esp+ebp*4+000000F8h],edx mov [esp+ebp*4+000000FCh],edx jz L0002DADE mov eax,[esp+24h] lea edx,[ebp+30h] push edx push eax jmp L0002DAE7 L0002DADE: mov edx,[esp+24h] lea ecx,[ebp+2Dh] push ecx push edx L0002DAE7: call HS_MM_GetRingSpace lea edx,[00000074h+ebp*4] mov [esp+18h],eax mov edi,eax mov ecx,edx mov eax,ecx shr ecx,02h lea esi,[esp+0000008Ch] rep movsd mov ecx,eax and ecx,00000003h rep movsb mov ecx,[esp+50h] add [esp+18h],edx mov esi,[esp+1Ch] mov [esp+1Ch],esi mov esi,[esp+2Ch] mov [esp+50h],ecx xor ecx,ecx mov [esp+54h],ecx mov [esp+20h],ecx mov [esp+44h],ecx fild qword ptr [esp+50h] mov [esp+34h],ecx mov [esp+4Ch],ecx mov [esp+3Ch],ecx fstp dword ptr [esp+5Ch] lea eax,[esp+edx+0000008Ch] fild qword ptr [esp+1Ch] mov [esp+1Ch],esi mov esi,[esp+28h] mov [esp+20h],ecx fst dword ptr [esp+60h] mov dword ptr [eax],7F1C000Bh lea edi,[esp+edx+00000090h] fild qword ptr [esp+1Ch] mov [esp+1Ch],esi mov esi,[esp+40h] mov [esp+20h],ecx fstp dword ptr [esp+64h] mov [esp+40h],esi mov esi,[esp+30h] fild qword ptr [esp+1Ch] mov [esp+30h],esi mov ecx,0000000Ch fstp dword ptr [esp+68h] mov esi,[esp+68h] fild qword ptr [esp+40h] mov [esp+78h],esi fstp dword ptr [esp+6Ch] mov esi,[esp+6Ch] mov [esp+7Ch],esi mov esi,[esp+48h] fstp dword ptr [esp+70h] fild qword ptr [esp+30h] mov [esp+48h],esi mov esi,[esp+38h] mov [esp+38h],esi fst dword ptr [esp+74h] lea esi,[esp+5Ch] fild qword ptr [esp+48h] fstp dword ptr [esp+00000080h] fstp dword ptr [esp+00000084h] fild qword ptr [esp+38h] fstp dword ptr [esp+00000088h] rep movsd mov ecx,02000001h mov [esp+edx+000000C0h],ecx mov dword ptr [esp+edx+000000C4h],02830000h mov [esp+edx+000000C8h],ecx mov edx,[esp+24h] mov esi,eax mov eax,[esp+18h] mov dword ptr [edx+74h],00000000h mov ecx,00000010h mov edi,eax rep movsd cmp word ptr [ebx+04h],0000h jz L0002DC76 mov esi,[esp+58h] mov ecx,[esi+54h] push ecx add eax,00000040h push eax mov eax,[esi+50h] add eax,00000002h push eax push edx call SUB_L0002DD30 mov edx,[esi+50h] mov ecx,[esp+24h] add ebp,00000030h add edx,00000002h push ebp mov [esi+50h],edx push ecx mov esi,edx call HS_FireRing pop edi mov eax,esi pop esi pop ebp pop ebx add esp,0000057Ch retn 000Ch ;------------------------------------------------------------------------------ L0002DC76: add ebp,0000002Dh push ebp push edx call HS_FireRing xor esi,esi pop edi mov eax,esi pop esi pop ebp pop ebx add esp,0000057Ch retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L0002DCA0: push ebx push esi push edi mov edi,[esp+14h] test edi,edi jnz L0002DCB0 mov edi,L000B2B18 L0002DCB0: mov esi,[esp+10h] push 00000000h push edi push esi call SUB_L0002D600 cmp eax,FFFFFFFFh jz L0002DD18 mov eax,[esi+3Ch] imul eax,[esi+18h] mov ecx,[esi+14h] add ecx,eax shr eax,1 add eax,ecx mov ebx,eax movsx eax,[esi+1Ch] shr word ptr [esi+24h],1 shr word ptr [esi+26h],1 cdq sub eax,edx sar eax,1 mov [esi+1Ch],ax movsx eax,[esi+1Eh] cdq push 00000001h sub eax,edx push edi sar eax,1 push esi mov [esi+1Eh],ax mov [esi+14h],ecx call SUB_L0002D600 cmp eax,FFFFFFFFh jz L0002DD18 push 00000002h push edi push esi mov [esi+14h],ebx call SUB_L0002D600 cmp eax,FFFFFFFFh jnz L0002DD1B L0002DD18: or eax,FFFFFFFFh L0002DD1B: pop edi pop esi pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0002DD30: mov eax,[esp+0Ch] mov ecx,[esp+10h] mov edx,[esp+08h] mov dword ptr [eax],10000001h mov [eax+04h],ecx mov [eax+08h],edx xor eax,eax retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L0002DD50: mov eax,[esp+0Ch] mov ecx,[esp+10h] mov edx,[esp+08h] mov dword ptr [eax],02000001h mov dword ptr [eax+04h],10000001h mov [eax+08h],ecx mov [eax+0Ch],edx xor eax,eax retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L0002DD80: push esi mov esi,[esp+0Ch] mov eax,[esi+000000ACh] mov ecx,[esi+04h] add ecx,00002030h push edi xor edx,edx mov [ecx+0Ch],edx mov [ecx],edx mov [ecx+04h],edx mov edi,[eax+00000180h] mov [ecx+08h],edi mov edi,[eax+0000018Ch] sub edi,00001000h or edi,00000003h mov [ecx+0Ch],edi mov ecx,[eax+68h] mov edi,[eax+08h] and edi,001FFFFFh cmp ecx,edi jz L0002DDD7 L0002DDCA: mov edi,[eax+08h] and edi,001FFFFFh cmp ecx,edi jnz L0002DDCA L0002DDD7: mov ecx,[esi+04h] add ecx,00002040h mov [ecx+0Ch],edx mov [ecx],edx mov [ecx+04h],edx mov esi,[eax+000001C4h] mov [ecx+08h],esi mov esi,[eax+000001D0h] sub esi,00001000h or esi,00000003h mov [ecx+0Ch],esi mov [eax+58h],edx mov [eax+04h],edx mov ecx,[eax+0000018Ch] dec ecx mov [eax+5Ch],ecx mov [eax+68h],edx mov [eax+08h],edx mov edx,[eax+000001D0h] dec edx pop edi mov [eax+6Ch],edx xor eax,eax pop esi retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L0002DE30: push esi push edi mov edi,[esp+0Ch] mov esi,[edi+000000ACh] push 00000007h push edi call HS_MM_GetRingSpace mov ecx,[esp+10h] mov edx,[esp+14h] mov [eax+04h],ecx lea ecx,[ecx+edx-08h] mov [eax+08h],ecx mov dword ptr [eax],18000001h mov dword ptr [eax+0Ch],02000001h mov dword ptr [eax+10h],10000001h mov edx,[esi+54h] mov [eax+14h],edx mov edx,[esi+50h] add edx,00000002h push 00000007h mov ecx,edx mov [esi+50h],edx push edi mov [eax+18h],ecx call HS_FireRing mov eax,[esi+50h] pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L0002DE90: mov eax,[esp+08h] mov dword ptr [eax],00000000h xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 4 HS_MM_GetRingSpace: push ebp mov ebp,esp mov eax,[ebp+0Ch] push ebx push esi push edi mov edi,[ebp+08h] mov esi,[edi+000000ACh] lea ebx,[00000000h+eax*4] test bl,07h mov dword ptr [edi+00000104h],00000002h jz L0002DECB add ebx,00000004h L0002DECB: mov eax,[esi+5Ch] mov edx,[esi+58h] mov ecx,[esi+04h] and ecx,eax cmp edx,ecx lea ecx,[edx+ebx] jc L0002DF2D cmp ecx,eax jbe L0002DFA6 cmp edx,eax jnc L0002DF0B L0002DEE9: mov edx,[esi+58h] add edx,[esi+0000017Ch] push edx push edi call SUB_L0002DE90 mov edx,[esi+58h] mov ecx,[esi+5Ch] add edx,00000004h mov eax,edx cmp eax,ecx mov [esi+58h],edx jc L0002DEE9 L0002DF0B: mov eax,[esi+5Ch] mov dword ptr [esi+58h],00000000h mov ecx,[esi+04h] and ecx,eax cmp ebx,ecx jbe L0002DFA6 L0002DF22: mov edx,[esi+04h] and edx,eax cmp ebx,edx ja L0002DF22 jmp L0002DFA6 L0002DF2D: cmp ecx,eax jbe L0002DF8B mov ecx,[esi+04h] and ecx,eax add ecx,ebx cmp ecx,eax jbe L0002DF47 L0002DF3C: mov ecx,[esi+04h] and ecx,eax add ecx,ebx cmp ecx,eax ja L0002DF3C L0002DF47: cmp edx,eax jnc L0002DF6D L0002DF4B: mov edx,[esi+58h] add edx,[esi+0000017Ch] push edx push edi call SUB_L0002DE90 mov edx,[esi+58h] mov ecx,[esi+5Ch] add edx,00000004h mov eax,edx cmp eax,ecx mov [esi+58h],edx jc L0002DF4B L0002DF6D: mov eax,[esi+5Ch] mov dword ptr [esi+58h],00000000h mov ecx,[esi+04h] and ecx,eax cmp ebx,ecx jbe L0002DFA6 L0002DF80: mov edx,[esi+04h] and edx,eax cmp ebx,edx ja L0002DF80 jmp L0002DFA6 L0002DF8B: mov edi,[esi+04h] and edi,eax cmp ecx,edi jbe L0002DFA6 L0002DF94: mov edi,[esi+04h] and edi,eax cmp edx,edi jnc L0002DFA6 mov edi,[esi+04h] and edi,eax cmp ecx,edi ja L0002DF94 L0002DFA6: mov ecx,[esi+0000017Ch] add ecx,[esi+58h] xchg eax,[ebp+00h] xchg eax,[ebp+00h] pop edi pop esi mov eax,ecx pop ebx pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 4 HS_FireRing: mov eax,[esp+08h] push ebx push esi push edi mov edi,[esp+10h] mov esi,[edi+000000ACh] lea ebx,[00000000h+eax*4] test bl,07h jz L0002DFF9 mov ecx,[esi+58h] mov edx,[esi+5Ch] mov eax,[esi+0000017Ch] add ecx,ebx and ecx,edx add ecx,eax push ecx push edi call SUB_L0002DE90 add ebx,00000004h L0002DFF9: mov eax,[esi+58h] mov ecx,[esi+5Ch] add eax,ebx and eax,ecx xor edx,edx cmp eax,ecx mov [esi+58h],eax jbe L0002E00F mov [esi+58h],edx L0002E00F: mov eax,[esi+58h] mov ebx,[esi+04h] and ebx,ecx cmp eax,ebx jnz L0002E024 L0002E01B: mov ebx,[esi+04h] and ebx,ecx cmp eax,ebx jz L0002E01B L0002E024: mov ecx,[edi+04h] mov [ecx+00002030h],eax mov [edi+00000104h],edx pop edi pop esi xor eax,eax pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 8 HS_MM_CancelGetRingSpace: mov eax,[esp+04h] mov dword ptr [eax+00000104h],00000000h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002E060: push ebp mov ebp,esp mov eax,[ebp+0Ch] push ebx push esi push edi mov edi,[ebp+08h] mov esi,[edi+000000ACh] lea ebx,[00000000h+eax*4] test bl,07h jz L0002E081 add ebx,00000004h L0002E081: mov eax,[esi+6Ch] mov edx,[esi+68h] mov ecx,[esi+08h] and ecx,eax cmp edx,ecx lea ecx,[edx+ebx] jc L0002E0E3 cmp ecx,eax jbe L0002E15C cmp edx,eax jnc L0002E0C1 L0002E09F: mov edx,[esi+68h] add edx,[esi+000001C0h] push edx push edi call SUB_L0002DE90 mov edx,[esi+68h] mov ecx,[esi+6Ch] add edx,00000004h mov eax,edx cmp eax,ecx mov [esi+68h],edx jc L0002E09F L0002E0C1: mov eax,[esi+6Ch] mov dword ptr [esi+68h],00000000h mov ecx,[esi+08h] and ecx,eax cmp ebx,ecx jbe L0002E15C L0002E0D8: mov edx,[esi+08h] and edx,eax cmp ebx,edx ja L0002E0D8 jmp L0002E15C L0002E0E3: cmp ecx,eax jbe L0002E141 mov ecx,[esi+08h] and ecx,eax add ecx,ebx cmp ecx,eax jbe L0002E0FD L0002E0F2: mov ecx,[esi+08h] and ecx,eax add ecx,ebx cmp ecx,eax ja L0002E0F2 L0002E0FD: cmp edx,eax jnc L0002E123 L0002E101: mov edx,[esi+68h] add edx,[esi+000001C0h] push edx push edi call SUB_L0002DE90 mov edx,[esi+68h] mov ecx,[esi+6Ch] add edx,00000004h mov eax,edx cmp eax,ecx mov [esi+68h],edx jc L0002E101 L0002E123: mov eax,[esi+6Ch] mov dword ptr [esi+68h],00000000h mov ecx,[esi+08h] and ecx,eax cmp ebx,ecx jbe L0002E15C L0002E136: mov edx,[esi+08h] and edx,eax cmp ebx,edx ja L0002E136 jmp L0002E15C L0002E141: mov edi,[esi+08h] and edi,eax cmp ecx,edi jbe L0002E15C L0002E14A: mov edi,[esi+08h] and edi,eax cmp edx,edi jnc L0002E15C mov edi,[esi+08h] and edi,eax cmp ecx,edi ja L0002E14A L0002E15C: mov ecx,[esi+000001C0h] add ecx,[esi+68h] xchg eax,[ebp+00h] xchg eax,[ebp+00h] pop edi pop esi mov eax,ecx pop ebx pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0002E180: mov eax,[esp+08h] push ebx push esi push edi mov edi,[esp+10h] mov esi,[edi+000000ACh] lea ebx,[00000000h+eax*4] test bl,07h jz L0002E1B9 mov ecx,[esi+68h] mov edx,[esi+6Ch] mov eax,[esi+000001C0h] add ecx,ebx and ecx,edx add ecx,eax push ecx push edi call SUB_L0002DE90 add ebx,00000004h L0002E1B9: mov eax,[esi+68h] mov ecx,[esi+6Ch] add eax,ebx and eax,001FFFFFh cmp eax,ecx mov [esi+68h],eax jbe L0002E1D4 mov dword ptr [esi+68h],00000000h L0002E1D4: mov eax,[esi+68h] mov edx,[esi+08h] and edx,001FFFFFh cmp eax,edx jnz L0002E1F1 L0002E1E4: mov ecx,[esi+08h] and ecx,001FFFFFh cmp eax,ecx jz L0002E1E4 L0002E1F1: mov edx,[edi+04h] pop edi pop esi mov [edx+00002040h],eax xor eax,eax pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0002E210: or eax,FFFFFFFFh retn 0004h ;------------------------------------------------------------------------------ Align 16 GHAL_UpdateFlipStatus: mov eax,[esp+04h] mov ecx,[eax+000000ACh] mov eax,[esp+08h] cmp eax,[ecx+00000210h] jbe L0002E240 mov edx,[ecx+00000210h] sub eax,edx jnz L0002E248 L0002E240: mov eax,[ecx] shr eax,0Bh and eax,00000001h L0002E248: retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L0002E250: push ecx mov eax,[esp+08h] push ebx mov ebx,[eax] push ebp mov ebp,[eax+08h] push esi push edi mov edi,[ebx+000000ACh] mov esi,[edi+0000020Ch] mov ecx,[edi+44h] and ebp,00000010h push 0000000Ah shl ebp,02h inc esi push ebx mov [esp+18h],ecx mov [edi+0000020Ch],esi call HS_MM_GetRingSpace mov ecx,[esp+10h] mov esi,eax mov eax,[esp+18h] mov dword ptr [esi],02000001h mov dword ptr [esi+04h],01800004h mov edx,[eax+18h] add esi,00000004h and edx,FFFFFFF8h or edx,00500000h shl edx,05h add esi,00000004h or edx,ebp mov [esi],edx mov eax,[eax+14h] add esi,00000004h mov [esi],eax mov edx,[edi+0000020Ch] add ecx,00000210h push ecx add esi,00000004h push esi push edx push ebx call SUB_L0002DD30 mov ebp,[edi+50h] mov ecx,[edi+54h] push ecx add ebp,00000002h add esi,0000000Ch push esi mov eax,ebp push eax push ebx mov [edi+50h],ebp call SUB_L0002DD30 mov edi,[edi+50h] push 0000000Ah push ebx call HS_FireRing mov eax,edi pop edi pop esi pop ebp pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002E310: mov eax,[esp+04h] push esi mov esi,[eax] push 00000002h push esi call HS_MM_GetRingSpace push 00000002h mov dword ptr [eax],01800004h push esi mov dword ptr [eax+04h],00000000h call HS_FireRing xor eax,eax pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002E340: mov eax,[esp+04h] mov ecx,[eax+000000ACh] mov eax,[ecx+0000020Ch] retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002E360: mov eax,[esp+04h] mov ecx,[eax+000000ACh] mov eax,[ecx+00000204h] retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002E380: sub esp,00000058h push ebx push ebp mov ebp,[esp+64h] mov ebx,[ebp+00000134h] mov eax,[ebx+000000ACh] mov [ebx+5Ch],ebp mov [esp+30h],eax mov eax,[eax+44h] xor ecx,ecx mov [esp+5Ch],eax test byte ptr [ebp+00000138h],02h push esi push edi mov [esp+5Ch],ecx mov [esp+10h],ecx mov [esp+14h],ecx mov [esp+48h],ecx mov [esp+1Ch],ebx jz L0002E431 cmp [ebp+00000148h],ecx jnz L0002E429 push 00000080h push 00000001h call OsAllocMem mov ecx,[ebx+000000A8h] mov esi,eax lea edi,[esi+38h] push edi push 00000078h push 51000000h push ecx call SUB_L00026250 test eax,eax jz L0002E679 mov edx,[edi] mov [ebp+00000148h],edx mov eax,[esi+40h] mov [ebp+0000014Ch],eax mov [ebp+00000150h],esi mov dword ptr [ebp+00000138h],00000002h mov edi,[ebp+00000148h] mov ecx,0000001Eh xor eax,eax rep stosd L0002E429: mov esi,[ebp+00000148h] jmp L0002E49C L0002E431: cmp [ebp+00000144h],ecx jnz L0002E496 push 00000080h push 00000001h call OsAllocMem mov ecx,[ebx+000000A8h] mov esi,eax lea edi,[esi+38h] push edi push 00000078h push 5A000000h push ecx call SUB_L00026250 test eax,eax jz L0002E679 mov edx,[edi] mov [ebp+0000013Ch],edx mov eax,[esi+40h] mov [ebp+00000140h],eax mov [ebp+00000144h],esi mov dword ptr [ebp+00000138h],00000001h mov edi,[ebp+0000013Ch] mov ecx,0000001Eh xor eax,eax rep stosd L0002E496: mov esi,[ebp+0000013Ch] L0002E49C: test byte ptr [ebp+0Ch],01h jz L0002E589 mov dword ptr [ebp+00h],00000000h mov dword ptr [esi+68h],00000000h test byte ptr [ebp+04h],10h jnz L0002E4C8 mov eax,[ebp+00000154h] test eax,eax jz L0002E585 L0002E4C8: mov edi,[esp+38h] mov ecx,[edi+00000204h] push ecx push ebx call SUB_L0002FE20 test eax,eax jz L0002E4EE L0002E4DD: mov edx,[edi+00000204h] push edx push ebx call SUB_L0002FE20 test eax,eax jnz L0002E4DD L0002E4EE: lea edi,[ebp+00000154h] mov dword ptr [esp+6Ch],00000003h L0002E4FC: cmp dword ptr [edi],00000000h jz L0002E531 mov eax,[ebx+000000A8h] push edi push eax call SUB_L00026030 mov ecx,[ebx+000000A8h] lea eax,[edi+000000CCh] push eax push ecx call SUB_L00026030 mov dword ptr [edi],00000000h mov dword ptr [edi+000000CCh],00000000h L0002E531: mov eax,[esp+6Ch] add edi,00000044h dec eax mov [esp+6Ch],eax jnz L0002E4FC mov eax,[ebp+00000330h] test eax,eax lea edi,[ebp+00000330h] jz L0002E562 mov edx,[ebx+000000A8h] push edi push edx call SUB_L00026030 mov dword ptr [edi],00000000h L0002E562: mov eax,[ebp+000002ECh] test eax,eax lea edi,[ebp+000002ECh] jz L0002E585 mov eax,[ebx+000000A8h] push edi push eax call SUB_L00026030 mov dword ptr [edi],00000000h L0002E585: and dword ptr [ebp+04h],FFFFFFEFh L0002E589: test byte ptr [ebp+0Ch],02h jz L0002F2D5 mov edi,[esp+38h] mov ecx,[edi+00000204h] mov ebx,[esp+1Ch] push ecx push ebx call SUB_L0002FE20 test eax,eax jz L0002E5BD L0002E5AC: mov edx,[edi+00000204h] push edx push ebx call SUB_L0002FE20 test eax,eax jnz L0002E5AC L0002E5BD: xor eax,eax mov ecx,0000001Eh mov edi,esi rep stosd mov edi,00000001h mov [ebp+00h],edi mov [esi+68h],edi and dword ptr [ebp+04h],FFFFFFEFh mov eax,[ebp+28h] mov [esi],eax mov ecx,[ebp+2Ch] mov [esi+04h],ecx mov edx,[ebp+60h] mov [ebp+54h],edx mov eax,[ebp+64h] mov [ebp+58h],eax mov ecx,[ebp+70h] mov [ebp+5Ch],ecx xor edx,edx mov [ebp+00000374h],edx mov [ebp+00000378h],edx mov eax,[ebp+68h] mov ecx,[ebp+60h] cmp eax,ecx jc L0002E61D mov edi,[ebp+6Ch] cmp edi,[ebp+64h] jnc L0002E7A7 mov edi,00000001h L0002E61D: add eax,eax cmp ecx,eax ja L0002E633 mov ecx,[ebp+6Ch] mov eax,[ebp+64h] shl ecx,1 cmp eax,ecx jbe L0002E7A7 L0002E633: cmp dword ptr [ebx+10h],00010303h jz L0002E7A7 or dword ptr [ebp+04h],00000010h cmp [ebp+6Ch],edx jz L0002E7A7 cmp [ebp+68h],edx jz L0002E7A7 mov eax,[ebp+0Ch] test ah,40h jz L0002E68C mov [ebp+00000374h],edi mov eax,[ebp+0Ch] mov ecx,00000800h or eax,ecx mov [ebp+0Ch],eax mov [ebp+00000378h],ecx jmp L0002E691 L0002E679: push esi call OsFreeMem pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000058h retn 0004h ;------------------------------------------------------------------------------ L0002E68C: mov ecx,00000800h L0002E691: cmp dword ptr [ebp+000000B8h],524F4749h jnz L0002E6CD mov eax,[ebp+28h] mov ax,[eax+34h] cmp ax,di jnz L0002E6B6 mov [ebp+00000374h],edi mov eax,[ebp+0Ch] or eax,ecx jmp L0002E6CA L0002E6B6: cmp ax,0002h jnz L0002E6CD mov [ebp+00000374h],edi mov eax,[ebp+0Ch] or eax,00001000h L0002E6CA: mov [ebp+0Ch],eax L0002E6CD: push ebp call SUB_L00030CF0 test eax,eax jnz L0002E795 test byte ptr [ebp+04h],10h jnz L0002E6EF mov eax,[ebp+00000154h] test eax,eax jz L0002E788 L0002E6EF: lea esi,[ebp+00000154h] mov ebx,00000003h L0002E6FA: cmp dword ptr [esi],00000000h jz L0002E733 mov edx,[esp+1Ch] mov eax,[edx+000000A8h] push esi push eax call SUB_L00026030 mov ecx,[esp+1Ch] mov edx,[ecx+000000A8h] lea edi,[esi+000000CCh] push edi push edx call SUB_L00026030 mov dword ptr [esi],00000000h mov dword ptr [edi],00000000h L0002E733: add esi,00000044h dec ebx jnz L0002E6FA mov eax,[ebp+00000330h] test eax,eax lea esi,[ebp+00000330h] jz L0002E760 mov eax,[esp+1Ch] mov ecx,[eax+000000A8h] push esi push ecx call SUB_L00026030 mov dword ptr [esi],00000000h L0002E760: mov eax,[ebp+000002ECh] add ebp,000002ECh test eax,eax jz L0002E788 mov edx,[esp+1Ch] mov eax,[edx+000000A8h] push ebp push eax call SUB_L00026030 mov dword ptr [ebp+00h],00000000h L0002E788: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000058h retn 0004h ;------------------------------------------------------------------------------ L0002E795: mov eax,[ebp+0Ch] test ah,40h jz L0002E7A7 mov dword ptr [ebp+00000378h],00000000h L0002E7A7: mov ecx,[ebp+000000A4h] mov edi,[ebp+000000A0h] mov edx,[ebp+00000098h] mov eax,[ebp+0000009Ch] sub ecx,edi mov [esi+32h],cx mov ecx,[esi+68h] sub eax,edx and ecx,FFFFFFDFh mov [esi+2Ch],dx mov [esi+2Eh],di mov [esi+30h],ax mov [esi+68h],ecx mov dword ptr [esi+28h],00000000h mov ecx,[ebx+04h] mov byte ptr [ecx+000003D4h],09h cmp dword ptr [ebp+000000B8h],524F4749h jnz L0002E852 mov edi,[ebp+0Ch] mov eax,[ebp+28h] and edi,FFFFA7FFh mov [ebp+0Ch],edi mov cx,[eax+34h] cmp cx,0001h jnz L0002E827 mov dword ptr [ebp+00000378h],00000800h mov ecx,[ebp+0Ch] or ecx,00004900h jmp L0002E840 L0002E827: cmp cx,0002h jnz L0002E843 mov dword ptr [ebp+00000378h],00001000h mov ecx,[ebp+0Ch] or ecx,00005100h L0002E840: mov [ebp+0Ch],ecx L0002E843: mov dx,[eax+34h] mov [eax+66h],dx mov eax,[ebp+64h] mov [esp+48h],eax L0002E852: mov ecx,[ebp+0Ch] test ch,40h mov edi,00000004h jz L0002E8C4 mov eax,[ebp+58h] xor edx,edx div [ebp+6Ch] cmp eax,00000002h jnc L0002E8C4 test ch,01h jz L0002E889 mov eax,[esi+68h] or eax,00000060h mov word ptr [esi+20h],E000h mov word ptr [esi+1Ch],0000h mov [esi+28h],edi mov [esi+68h],eax L0002E889: mov ecx,[esi+68h] and ecx,FFFFFEFFh mov [esi+68h],ecx test byte ptr [ebp+0Ch],40h jz L0002E8C4 mov eax,ecx or eax,00000100h mov [esi+68h],eax mov ecx,[ebp+30h] mov [esi+08h],ecx mov edx,[ebp+34h] mov [esi+0Ch],edx mov eax,[ebp+30h] mov [ebp+48h],eax mov ecx,[ebp+34h] mov [ebp+4Ch],ecx mov dword ptr [ebp+50h],00000000h L0002E8C4: mov eax,[ebp+10h] test al,02h jz L0002E90F mov eax,[ebp+000000BCh] sub eax,0000000Fh jz L0002E8F6 dec eax jnz L0002EBD0 mov eax,[esi+68h] or eax,00000C00h mov ebx,00000010h mov [esi+68h],eax mov [esp+6Ch],ebx jmp L0002EBD4 L0002E8F6: mov eax,[esi+68h] or eax,00000800h mov ebx,00000010h mov [esi+68h],eax mov [esp+6Ch],ebx jmp L0002EBD4 L0002E90F: test al,01h jz L0002EBD0 mov eax,[ebp+000000B8h] cmp eax,43414D49h ja L0002EA94 jz L0002EAC4 cmp eax,32595559h ja L0002E9FA jz L0002E9ED cmp eax,30323449h jz L0002EB55 cmp eax,32315659h jnz L0002EBD0 mov edx,[esi+28h] mov ecx,[esi+68h] or edx,edi or ecx,00007000h mov word ptr [esi+20h],3000h mov [esi+28h],edx mov [esi+68h],ecx test byte ptr [ebp+04h],10h mov ebx,00000008h mov [esp+6Ch],ebx jnz L0002E9E0 mov edx,[ebp+00000080h] imul edx,[ebp+70h] mov eax,[ebp+28h] add eax,edx mov [esi+0Ch],eax mov ecx,[ebp+00000080h] shr ecx,02h imul ecx,[ebp+70h] add ecx,eax mov [esi+08h],ecx L0002E9A2: movsx eax,[ebp+70h] cdq sub eax,edx sar eax,1 mov [esi+1Ah],ax mov edx,[ebp+60h] shl edx,03h shr edx,03h shr dx,1 mov [esi+36h],dx mov eax,[ebp+60h] shl eax,03h shr eax,07h mov [esi+3Ah],ax mov cx,[ebp+64h] shr cx,1 mov [esi+3Eh],cx mov eax,[ebp+70h] shr eax,1 mov [esp+20h],eax L0002E9E0: mov dword ptr [esp+10h],00000001h jmp L0002EBD4 L0002E9ED: mov eax,[esi+68h] or eax,00002000h jmp L0002EBBA L0002E9FA: cmp eax,33434D49h jnz L0002EBD0 mov edx,[esi+28h] mov ecx,[esi+68h] mov eax,00003000h or ecx,eax or edx,edi mov [esi+20h],ax mov [esi+28h],edx mov [esi+68h],ecx test byte ptr [ebp+04h],10h mov ebx,00000008h mov [esp+6Ch],ebx jnz L0002E9E0 mov edx,[ebp+00000080h] imul edx,[ebp+70h] mov eax,[ebp+28h] add eax,edx mov [esi+08h],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] shr ecx,1 add ecx,eax mov [esi+0Ch],ecx mov dx,[ebp+70h] mov [esi+1Ah],dx mov eax,[ebp+60h] shl eax,03h shr eax,03h shr ax,1 mov [esi+36h],ax mov ecx,[ebp+60h] shl ecx,03h shr ecx,07h mov [esi+3Ah],cx mov dx,[ebp+64h] shr dx,1 mov [esi+3Eh],dx mov eax,[ebp+70h] mov [esp+20h],eax mov dword ptr [esp+10h],00000001h jmp L0002EBD4 L0002EA94: cmp eax,56555949h ja L0002EBAB jz L0002EB55 cmp eax,524F4749h jz L0002EAC4 cmp eax,55595659h jnz L0002EBD0 mov eax,[esi+68h] or eax,00006000h jmp L0002EBBA L0002EAC4: mov edx,[esi+28h] mov ecx,[esi+68h] mov eax,00003000h or ecx,eax or edx,edi mov [esi+20h],ax mov [esi+28h],edx mov [esi+68h],ecx test byte ptr [ebp+04h],10h mov ebx,00000008h mov [esp+6Ch],ebx jnz L0002E9E0 mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] mov edx,[ebp+28h] lea eax,[ecx+edx] mov [esi+08h],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] shr ecx,1 add ecx,eax mov [esi+0Ch],ecx mov dx,[ebp+70h] mov [esi+1Ah],dx mov eax,[ebp+60h] shl eax,03h shr eax,03h shr ax,1 mov [esi+36h],ax mov ecx,[ebp+60h] shl ecx,03h shr ecx,07h mov [esi+3Ah],cx mov dx,[ebp+64h] shr dx,1 mov [esi+3Eh],dx mov eax,[ebp+70h] mov [esp+20h],eax mov dword ptr [esp+10h],00000001h jmp L0002EBD4 L0002EB55: mov edx,[esi+28h] mov ecx,[esi+68h] mov eax,00003000h or ecx,eax or edx,edi mov [esi+20h],ax mov [esi+28h],edx mov [esi+68h],ecx test byte ptr [ebp+04h],10h mov ebx,00000008h mov [esp+6Ch],ebx jnz L0002E9E0 mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] mov edx,[ebp+28h] lea eax,[ecx+edx] mov [esi+08h],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] shr ecx,02h add ecx,eax mov [esi+0Ch],ecx jmp L0002E9A2 L0002EBAB: cmp eax,59565955h jnz L0002EBD0 mov eax,[esi+68h] or eax,0000A000h L0002EBBA: mov ebx,00000010h mov [esi+68h],eax mov [esp+6Ch],ebx mov dword ptr [esp+14h],00000001h jmp L0002EBD4 L0002EBD0: mov ebx,[esp+6Ch] L0002EBD4: mov eax,[ebp+0Ch] test ah,40h jz L0002EC03 mov eax,[ebp+58h] xor edx,edx div [ebp+6Ch] cmp eax,00000002h jnc L0002EC03 mov ecx,[ebp+64h] mov eax,[esp+10h] shr ecx,1 test eax,eax mov [ebp+64h],ecx jz L0002EC03 mov dx,cx shr dx,1 mov [esi+3Eh],dx L0002EC03: test byte ptr [ebp+04h],10h jz L0002EC16 movsx eax,[esi+1Ah] mov [esp+20h],eax jmp L0002ED17 L0002EC16: mov eax,[ebp+000000B8h] cmp eax,524F4749h jz L0002EC7B cmp eax,43414D49h jz L0002EC7B cmp eax,33434D49h mov ecx,ebx jnz L0002EC4B mov edx,[ebp+000000B0h] mov eax,[ebp+000000A8h] imul edx,[ebp+70h] shr ecx,03h imul eax,ecx jmp L0002EC93 L0002EC4B: mov eax,[ebp+000000B0h] mov edx,[ebp+000000A8h] imul eax,[ebp+70h] shr ecx,03h imul edx,ecx add eax,edx mov [ebp+00000088h],eax mov edx,[ebp+000000B0h] mov edi,[ebp+70h] shr edx,1 shr edi,1 imul edx,edi jmp L0002ECA7 L0002EC7B: mov eax,[ebp+000000B0h] mov edx,[ebp+000000A8h] imul eax,[ebp+70h] mov ecx,ebx shr ecx,03h imul edx,ecx L0002EC93: add eax,edx mov [ebp+00000088h],eax mov edx,[ebp+000000B0h] shr edx,1 imul edx,[ebp+70h] L0002ECA7: mov edi,[ebp+000000A8h] shr edi,1 imul edi,ecx add edx,edi test al,01h mov [ebp+0000008Ch],edx jz L0002ECC5 dec eax mov [ebp+00000088h],eax L0002ECC5: mov eax,[ebp+00000088h] mov edi,[esi] mov edx,[esi+04h] add edi,eax mov eax,[esi+08h] mov [esi],edi mov ecx,[ebp+00000088h] mov edi,[esi+0Ch] add edx,ecx mov [esi+04h],edx mov edx,[ebp+0000008Ch] add eax,edx mov edx,[esi+10h] mov [esi+08h],eax mov eax,[ebp+0000008Ch] add edi,eax mov eax,[esi+14h] mov [esi+0Ch],edi mov ecx,[ebp+0000008Ch] add edx,ecx mov [esi+10h],edx mov edx,[ebp+0000008Ch] add eax,edx mov [esi+14h],eax L0002ED17: mov ax,[ebp+70h] mov [esi+18h],ax mov cx,[ebp+60h] mov eax,[esi] imul cx,bx shr cx,03h mov [esi+34h],cx mov edx,[ebp+60h] imul edx,ebx shr edx,03h and eax,00000007h add edx,eax mov eax,[esp+10h] shr edx,03h test eax,eax mov [esi+38h],dx jz L0002ED58 mov cx,dx shr cx,1 mov [esi+3Ah],cx L0002ED58: mov dx,[ebp+64h] mov [esi+3Ch],dx mov eax,[ebp+6Ch] mov edx,[ebp+64h] mov edi,[ebp+60h] mov ecx,[ebp+68h] imul edi,ebx mov [esp+2Ch],eax imul ecx,ebx xor eax,eax mov ax,dx shr edi,03h shr ecx,03h mov [esp+18h],edx shr eax,1 mov [esp+34h],eax mov eax,[esp+10h] test eax,eax jnz L0002ED99 cmp [esp+14h],eax jz L0002EDCA L0002ED99: or byte ptr [esi+6Ah],80h test eax,eax mov dword ptr [esp+50h],00000800h mov dword ptr [esi+44h],00004000h jz L0002EDCA or dword ptr [esi+68h],20000000h mov eax,[esi+44h] or eax,80000000h mov dword ptr [esp+54h],00000800h mov [esi+44h],eax L0002EDCA: cmp ecx,edi jnz L0002EDD8 cmp [esp+2Ch],edx jz L0002F022 L0002EDD8: xor edx,edx mov eax,edi div ecx xor edx,edx mov ebx,[esp+2Ch] mov [esp+28h],eax mov eax,edi shl eax,0Ch mov [esp+3Ch],eax div ecx xor edx,edx mov [esp+24h],eax mov eax,[esp+18h] div ebx xor edx,edx mov [esp+40h],eax mov eax,[esp+18h] shl eax,0Ch mov [esp+4Ch],eax div ebx mov [esp+44h],eax xor eax,eax cmp ecx,edi mov [esp+30h],eax jbe L0002EE3D or dword ptr [esi+68h],00100000h cmp [esp+10h],eax mov [esi+64h],eax jnz L0002EE36 cmp [esp+14h],eax jz L0002EE3D L0002EE36: or dword ptr [esi+68h],00800000h L0002EE3D: cmp ebx,[esp+18h] jbe L0002EE67 mov ebx,[esi+68h] mov edx,[esp+10h] or ebx,04000000h cmp edx,eax mov [esi+64h],eax mov [esi+68h],ebx jnz L0002EE60 cmp [esp+14h],eax jz L0002EE67 L0002EE60: or dword ptr [esi+68h],20000000h L0002EE67: cmp edi,ecx jbe L0002EEE8 lea ebx,[ecx+ecx] cmp edi,ebx jbe L0002EE99 lea edx,[00000000h+ecx*4] cmp edi,edx ja L0002EE99 xor edx,edx mov eax,edi div ebx xor edx,edx mov dword ptr [esp+30h],L00040000 mov [esp+28h],eax mov eax,[esp+3Ch] div ebx jmp L0002EEBA L0002EE99: shl ecx,02h cmp edi,ecx jbe L0002EEBE xor edx,edx mov eax,edi div ecx xor edx,edx mov dword ptr [esp+30h],L00080000 mov [esp+28h],eax mov eax,[esp+3Ch] div ecx L0002EEBA: mov [esp+24h],eax L0002EEBE: mov ecx,[esi+68h] mov eax,[esp+10h] or ecx,00300000h test eax,eax mov dword ptr [esi+64h],00000001h mov [esi+68h],ecx jnz L0002EEE1 mov eax,[esp+14h] test eax,eax jz L0002EEE8 L0002EEE1: or dword ptr [esi+68h],01800000h L0002EEE8: mov eax,[esp+18h] mov ecx,[esp+2Ch] cmp eax,ecx mov ebx,[esp+40h] jbe L0002EF58 cmp ebx,00000004h jc L0002EF19 add ecx,ecx xor edx,edx div ecx shl word ptr [esi+18h],1 shl word ptr [esi+1Ah],1 xor edx,edx mov ebx,eax mov eax,[esp+4Ch] div ecx mov ecx,eax jmp L0002EF1D L0002EF19: mov ecx,[esp+44h] L0002EF1D: cmp ebx,00000004h jnz L0002EF2C mov ebx,00000003h mov ecx,00000FFFh L0002EF2C: mov edx,[esi+68h] mov eax,[esp+10h] or edx,0C000000h test eax,eax mov dword ptr [esi+64h],00000001h mov [esi+68h],edx jnz L0002EF4F mov eax,[esp+14h] test eax,eax jz L0002EF5C L0002EF4F: or dword ptr [esi+68h],60000000h jmp L0002EF5C L0002EF58: mov ecx,[esp+44h] L0002EF5C: mov edx,[esp+28h] and edx,00000003h mov eax,ecx shl eax,05h or eax,edx mov edx,[esp+24h] shl eax,0Ch and edx,00000FFFh or eax,edx shl eax,03h mov edx,ebx and edx,00000003h or eax,edx or eax,[esp+30h] mov [esi+40h],eax mov eax,[esp+10h] test eax,eax jnz L0002EF9E mov eax,[esp+14h] test eax,eax jz L0002F01E L0002EF9E: mov eax,[esp+24h] test eax,eax jz L0002EFBC mov edx,[esi+68h] and edx,FEFFFFFFh shr eax,1 or edx,00800000h mov [esi+68h],edx jmp L0002EFC0 L0002EFBC: mov eax,[esp+50h] L0002EFC0: mov edx,[esp+28h] test edx,edx jz L0002EFD7 test edx,FFFFFFFEh jz L0002EFD7 and dword ptr [esi+68h],FF7FFFFFh L0002EFD7: test ecx,ecx jz L0002EFF1 mov edx,[esi+68h] and edx,BFFFFFFFh shr ecx,1 or edx,20000000h mov [esi+68h],edx jmp L0002EFF5 L0002EFF1: mov ecx,[esp+54h] L0002EFF5: test ebx,ebx jz L0002F008 shr ebx,1 mov edx,ebx jz L0002F00C or dword ptr [esi+68h],60000000h jmp L0002F00C L0002F008: mov edx,[esp+5Ch] L0002F00C: and eax,00000FFFh shl ecx,11h or eax,ecx shl eax,03h or eax,edx mov [esi+44h],eax L0002F01E: mov ebx,[esp+6Ch] L0002F022: mov ax,[esi+18h] xor ecx,ecx mov cx,ax sar cx,0Fh mov edx,eax and edx,FFFFF000h shl edx,1 and ecx,FFFFE000h xor ecx,edx mov edx,eax sar edx,03h and edx,00001000h or ecx,edx and eax,00000FFFh or ecx,eax mov ax,[esi+1Ah] mov [esi+18h],cx xor ecx,ecx mov cx,ax sar cx,0Fh mov edx,eax and edx,FFFFF000h shl edx,1 and ecx,FFFFE000h xor ecx,edx mov edx,eax sar edx,03h and edx,00001000h and eax,00000FFFh or ecx,edx or ecx,eax mov [esi+1Ah],cx mov eax,[ebp+000000B8h] cmp eax,33434D49h jz L0002F0AC cmp eax,43414D49h jz L0002F0AC cmp edi,000002D0h jbe L0002F0B3 L0002F0AC: mov dword ptr [esi+64h],00000001h L0002F0B3: mov eax,[ebp+14h] test ah,06h mov dword ptr [ebp+00000090h],00000000h mov dword ptr [ebp+00000094h],00000000h jnz L0002F113 mov edx,[esi] xor eax,eax mov al,[esi+34h] add eax,edx test al,07h jz L0002F0E0 inc word ptr [esi+38h] L0002F0E0: mov ecx,[esp+10h] test ecx,ecx jz L0002F2B8 mov edx,[esi+08h] xor eax,eax mov ax,[esi+36h] mov edi,edx and edi,00000007h add edi,eax shr edi,03h add edx,eax test dl,07h mov [esi+3Ah],di jz L0002F2B8 jmp L0002F2B4 L0002F113: test ah,02h jz L0002F194 mov eax,[ebp+0Ch] test ah,40h jz L0002F143 mov eax,[ebp+58h] xor edx,edx div [ebp+6Ch] cmp eax,00000002h jnc L0002F143 mov ecx,[esp+18h] mov eax,[esp+34h] lea edx,[ecx+ecx] lea ecx,[eax+eax] mov [esp+18h],edx mov [esp+34h],ecx L0002F143: mov edx,[esp+18h] dec edx imul edx,[ebp+70h] mov [ebp+00000090h],edx mov ecx,[esi+68h] xor eax,eax mov ax,[esi+18h] not ax or ecx,L00040000 mov [esi+68h],ecx mov ecx,[esp+10h] inc eax test ecx,ecx mov [esi+18h],ax jz L0002F198 mov edx,[esp+34h] dec edx imul edx,[esp+20h] xor eax,eax mov [ebp+00000094h],edx mov ax,[esi+1Ah] not ax inc eax mov [esi+1Ah],ax jmp L0002F198 L0002F194: mov ecx,[esp+10h] L0002F198: mov eax,[ebp+14h] test ah,04h jz L0002F1E0 mov eax,[ebp+00000090h] lea edx,[edi-01h] add eax,edx mov [ebp+00000090h],eax mov eax,[esi+68h] mov edx,[esi+28h] or eax,L00020000 or edx,00000001h test ecx,ecx mov [esi+68h],eax mov [esi+28h],edx mov word ptr [esi+26h],8000h jz L0002F1E0 mov eax,[ebp+00000094h] shr edi,1 dec edi add eax,edi mov [ebp+00000094h],eax L0002F1E0: mov eax,[ebp+00000090h] mov edx,[esi] mov edi,[esi+0Ch] add edx,eax mov eax,[esi+08h] mov [esi],edx mov edx,[ebp+00000094h] add eax,edx mov [esi+08h],eax mov eax,[ebp+00000094h] add edi,eax mov [esi+0Ch],edi mov eax,[ebp+14h] test ah,04h jz L0002F264 mov edx,[ebp+60h] mov eax,[esi] imul edx,ebx or edi,FFFFFFFFh shr edx,03h sub edi,eax and edi,00000007h add edx,edi shr edx,03h mov [esi+38h],dx xor edx,edx mov dl,[esi+34h] sub edx,eax dec edx test dl,07h jz L0002F23D inc word ptr [esi+38h] L0002F23D: test ecx,ecx jz L0002F2B8 mov edx,[esi+08h] xor eax,eax mov ax,[esi+36h] or edi,FFFFFFFFh sub edi,edx and edi,00000007h add edi,eax shr edi,03h sub eax,edx dec eax test al,07h mov [esi+3Ah],di jz L0002F2B8 jmp L0002F2B4 L0002F264: test ah,02h jz L0002F2B8 mov edx,[ebp+60h] mov eax,[esi] imul edx,ebx shr edx,03h mov edi,eax and edi,00000007h add edx,edi shr edx,03h mov [esi+38h],dx xor edx,edx mov dl,[esi+34h] add edx,eax test dl,07h jz L0002F292 inc word ptr [esi+38h] L0002F292: test ecx,ecx jz L0002F2B8 mov edx,[esi+08h] xor eax,eax mov ax,[esi+36h] mov edi,edx and edi,00000007h add edi,eax shr edi,03h add edx,eax test dl,07h mov [esi+3Ah],di jz L0002F2B8 L0002F2B4: inc word ptr [esi+3Ah] L0002F2B8: mov eax,00000002h cmp [esi+38h],ax jnc L0002F2C7 mov [esi+38h],ax L0002F2C7: test ecx,ecx jz L0002F2D5 cmp [esi+3Ah],ax jnc L0002F2D5 mov [esi+3Ah],ax L0002F2D5: mov dword ptr [esi+60h],00000000h mov eax,[ebp+14h] test al,20h jz L0002F33E xor eax,eax mov al,[ebp+000000F0h] xor ecx,ecx xor edx,edx shl eax,10h mov [esi+50h],eax mov ch,[ebp+000000F4h] or ecx,eax mov [esi+50h],ecx xor eax,eax mov al,[ebp+000000F8h] or eax,ecx mov [esi+50h],eax xor eax,eax mov al,[ebp+000000FCh] xor ecx,ecx shl eax,10h mov [esi+54h],eax mov ch,[ebp+00000100h] or ecx,eax mov [esi+54h],ecx mov dl,[ebp+00000104h] or edx,ecx or edx,80000000h mov [esi+54h],edx jmp L0002F5CD L0002F33E: test al,10h jz L0002F5CD mov eax,[ebp+000000BCh] cmp eax,0000000Fh mov ecx,[ebp+000000C0h] mov edx,[ebp+000000C4h] mov [esp+5Ch],ecx mov [esp+54h],edx jnz L0002F442 and ecx,0000FFFFh mov eax,ecx mov edi,ecx and eax,00007C00h shl eax,03h and ecx,0000001Fh and edi,000003E0h or eax,edi shl eax,03h or eax,ecx shl eax,03h mov [esp+5Ch],eax mov ecx,[esp+5Eh] and ecx,000000FFh mov edi,ecx shr edi,05h or edi,ecx mov ecx,[esp+5Dh] and ecx,000000FFh and eax,000000FFh mov [ebp+000000C8h],edi mov edi,ecx shr edi,05h or edi,ecx mov ecx,eax shr ecx,05h or ecx,eax mov [ebp+000000D0h],ecx mov ecx,edx and ecx,0000FFFFh mov eax,ecx mov edx,ecx and eax,00007C00h and edx,000003E0h shl eax,03h or eax,edx and ecx,0000001Fh shl eax,03h or eax,ecx shl eax,03h mov [esp+54h],eax mov ecx,[esp+56h] and ecx,000000FFh mov edx,ecx shr edx,05h or edx,ecx mov ecx,[esp+55h] and ecx,000000FFh mov [ebp+000000D4h],edx mov edx,ecx shr edx,05h or edx,ecx and eax,000000FFh mov ecx,eax shr ecx,05h or ecx,eax mov [ebp+000000CCh],edi mov [ebp+000000D8h],edx mov [ebp+000000DCh],ecx jmp L0002F576 L0002F442: cmp eax,00000010h jnz L0002F521 and ecx,0000FFFFh mov eax,ecx mov edi,ecx and eax,0000F800h shl eax,03h and ecx,0000001Fh and edi,000007E0h or eax,edi shl eax,02h or eax,ecx shl eax,03h mov [esp+5Ch],eax mov ecx,[esp+5Eh] and ecx,000000FFh mov edi,ecx shr edi,05h or edi,ecx mov ecx,[esp+5Dh] and ecx,000000FFh and eax,000000FFh mov [ebp+000000C8h],edi mov edi,ecx shr edi,06h or edi,ecx mov ecx,eax shr ecx,05h or ecx,eax mov [ebp+000000D0h],ecx mov ecx,edx and ecx,0000FFFFh mov eax,ecx mov edx,ecx and eax,0000F800h and edx,000007E0h shl eax,03h or eax,edx and ecx,0000001Fh shl eax,02h or eax,ecx shl eax,03h mov [esp+54h],eax mov ecx,[esp+56h] and ecx,000000FFh mov edx,ecx shr edx,05h or edx,ecx mov ecx,[esp+55h] and ecx,000000FFh mov [ebp+000000D4h],edx mov edx,ecx shr edx,06h or edx,ecx and eax,000000FFh mov ecx,eax shr ecx,05h or ecx,eax mov [ebp+000000CCh],edi mov [ebp+000000D8h],edx mov [ebp+000000DCh],ecx jmp L0002F576 L0002F521: mov eax,[esp+5Eh] and eax,000000FFh mov [ebp+000000C8h],eax mov eax,[esp+5Dh] and eax,000000FFh and ecx,000000FFh mov [ebp+000000CCh],eax mov eax,[esp+55h] mov [ebp+000000D0h],ecx mov ecx,[esp+56h] and ecx,000000FFh and eax,000000FFh and edx,000000FFh mov [ebp+000000D4h],ecx mov [ebp+000000D8h],eax mov [ebp+000000DCh],edx L0002F576: xor eax,eax mov al,[ebp+000000C8h] xor ecx,ecx xor edx,edx shl eax,10h mov [esi+58h],eax mov ch,[ebp+000000CCh] or ecx,eax mov [esi+58h],ecx mov dl,[ebp+000000D0h] xor eax,eax or edx,ecx mov [esi+58h],edx mov al,[ebp+000000D4h] xor ecx,ecx shl eax,10h mov [esi+5Ch],eax mov ch,[ebp+000000D8h] or ecx,eax xor eax,eax mov [esi+5Ch],ecx mov al,[ebp+000000DCh] mov dword ptr [esi+60h],07000000h or eax,ecx mov [esi+5Ch],eax L0002F5CD: mov eax,[ebp+14h] test ah,20h jz L0002F62C mov eax,[esp+10h] test eax,eax jnz L0002F5E5 mov eax,[esp+14h] test eax,eax jz L0002F5FE L0002F5E5: mov eax,[esi+68h] or eax,00010000h mov dword ptr [esi+48h],00004A00h mov dword ptr [esi+4Ch],00000092h mov [esi+68h],eax L0002F5FE: mov ecx,[ebp+0000012Ch] mov edx,[ebp+00000128h] and ecx,000001FFh shl ecx,08h and edx,000000FFh or ecx,edx mov [esi+48h],ecx mov eax,[ebp+00000130h] mov [esi+4Ch],eax jmp L0002F6D9 L0002F62C: mov eax,[esp+10h] test eax,eax mov dword ptr [esi+48h],00004000h mov dword ptr [esi+4Ch],00000080h jnz L0002F64A mov eax,[esp+14h] test eax,eax jz L0002F663 L0002F64A: mov eax,[esi+68h] or eax,00010000h mov dword ptr [esi+48h],00004A00h mov dword ptr [esi+4Ch],00000092h mov [esi+68h],eax L0002F663: mov eax,[ebp+00000134h] mov ecx,[eax+000000ECh] test ecx,ecx jz L0002F6A5 mov ecx,[eax+000000F0h] mov [ebp+00000124h],ecx mov edx,[eax+000000F4h] mov [ebp+00000118h],edx mov ecx,[eax+000000F8h] mov [ebp+0000011Ch],ecx mov edx,[eax+000000FCh] mov [ebp+00000120h],edx jmp L0002F6CA L0002F6A5: mov eax,00002710h mov dword ptr [ebp+00000124h],00000001h mov dword ptr [ebp+00000118h],000002EEh mov [ebp+0000011Ch],eax mov [ebp+00000120h],eax L0002F6CA: mov ecx,[ebp+14h] or ecx,00000047h push ebp mov [ebp+14h],ecx call SUB_L00018480 L0002F6D9: mov eax,[ebp+00000374h] test eax,eax jz L0002F6E7 and dword ptr [esi+68h],FFFFFF9Dh L0002F6E7: mov ebx,[esp+1Ch] mov esi,[ebx+000000A4h] push 00000005h push ebx call HS_MM_GetRingSpace lea edx,[esi+000022A4h] mov dword ptr [edx],08800000h test byte ptr [ebp+00000138h],02h jz L0002F716 mov ecx,[ebp+0000014Ch] jmp L0002F71C L0002F716: mov ecx,[ebp+00000140h] L0002F71C: mov [esi+000022A8h],ecx mov ecx,[esp+38h] inc [ecx+00000204h] mov edi,[esp+64h] add edi,00000208h mov [esi+000022B0h],edi mov dword ptr [esi+000022ACh],10000001h mov ecx,[ecx+00000204h] mov [esi+000022B4h],ecx push 00000005h mov esi,edx mov edi,eax mov ecx,00000005h push ebx rep movsd call HS_FireRing test byte ptr [ebp+04h],10h jz L0002F77D mov edx,[ebp+54h] mov [ebp+60h],edx mov eax,[ebp+58h] mov [ebp+64h],eax mov ecx,[ebp+5Ch] mov [ebp+70h],ecx L0002F77D: cmp dword ptr [ebp+000000B8h],524F4749h jnz L0002F790 mov edx,[esp+48h] mov [ebp+64h],edx L0002F790: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000058h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0002F7A0: push ebx push ebp push esi mov esi,[esp+10h] test byte ptr [esi+00000138h],02h push edi mov edi,[esi+00000134h] jz L0002F7BF mov eax,[esi+00000148h] jmp L0002F7C5 L0002F7BF: mov eax,[esi+0000013Ch] L0002F7C5: mov ecx,[esi+00000098h] mov ebx,[edi+04h] mov edx,[esi+000000A4h] mov ebp,[esi+000000A0h] mov [esp+14h],ecx mov ecx,[esi+0000009Ch] mov byte ptr [ebx+000003D4h],09h mov ebx,[edi+04h] test byte ptr [ebx+000003D5h],80h jz L0002F7F9 add ebp,ebp L0002F7F9: mov ebx,[esp+14h] sub edx,ebp sub ecx,ebx push 00000004h mov [eax+2Ch],bx mov [eax+2Eh],bp mov [eax+30h],cx mov [eax+32h],dx mov ebp,[edi+000000A4h] push edi call SUB_L0002E060 lea ecx,[ebp+000022A4h] mov dword ptr [ecx],08800000h test byte ptr [esi+00000138h],02h jz L0002F83C mov edx,[esi+0000014Ch] jmp L0002F842 L0002F83C: mov edx,[esi+00000140h] L0002F842: mov [ebp+000022A8h],edx mov dword ptr [ebp+000022ACh],00000000h mov dword ptr [ebp+000022B0h],03800000h mov edx,[ecx] mov [eax],edx mov edx,[ecx+04h] mov [eax+04h],edx mov edx,[ecx+08h] mov [eax+08h],edx mov ecx,[ecx+0Ch] push 00000004h push edi mov [eax+0Ch],ecx call SUB_L0002E180 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002F890: push ecx push ebx push ebp mov ebp,[esp+10h] mov eax,[ebp+00000134h] mov ebx,[eax+000000ACh] mov ecx,[ebx+44h] push esi mov [esp+0Ch],ecx mov cl,[ebp+00000138h] push edi xor edi,edi test cl,02h mov [esp+18h],eax jz L0002F8C5 mov esi,[ebp+00000148h] jmp L0002F8CB L0002F8C5: mov esi,[ebp+0000013Ch] L0002F8CB: test esi,esi jz L0002FC0C mov edx,[ebx+00000204h] push edx push eax call SUB_L0002FE20 test eax,eax jz L0002F8F9 L0002F8E4: mov eax,[ebx+00000204h] mov ecx,[esp+18h] push eax push ecx call SUB_L0002FE20 test eax,eax jnz L0002F8E4 L0002F8F9: test byte ptr [ebp+04h],10h jz L0002F953 mov eax,[ebp+6Ch] xor edx,edx cmp eax,edx jz L0002F955 cmp [ebp+68h],edx jz L0002F955 cmp [ebp+00000374h],edx jz L0002F94D mov eax,[ebp+00000378h] cmp eax,edx jnz L0002F944 mov eax,[ebp+0Ch] test ah,08h jz L0002F933 mov dword ptr [ebp+00000378h],00000800h jmp L0002F94D L0002F933: test ah,10h jz L0002F94D mov dword ptr [ebp+00000378h],00001000h jmp L0002F94D L0002F944: test [ebp+0Ch],eax jz L0002FC0C L0002F94D: push ebp call SUB_L00030CF0 L0002F953: xor edx,edx L0002F955: mov eax,[ebp+000000B8h] cmp eax,43414D49h jz L0002FA11 cmp eax,524F4749h jz L0002FA11 cmp eax,32315659h jnz L0002F9B0 test byte ptr [ebp+04h],10h jnz L0002FA59 mov eax,[ebp+28h] mov [esi],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] mov eax,[ebp+28h] add eax,ecx mov [esi+0Ch],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] shr ecx,02h add ecx,eax mov [esi+08h],ecx jmp L0002FA3F L0002F9B0: cmp eax,56555949h jz L0002F9E5 cmp eax,30323449h jz L0002F9E5 cmp eax,33434D49h jnz L0002F9D1 test byte ptr [ebp+04h],10h jnz L0002FA59 jmp L0002FA17 L0002F9D1: mov eax,[ebp+28h] mov [esi],eax mov ecx,[ebp+00000088h] add ecx,eax mov [esi],ecx jmp L0002FA82 L0002F9E5: test byte ptr [ebp+04h],10h jnz L0002FA59 mov eax,[ebp+28h] mov [esi],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] mov eax,[ebp+28h] add eax,ecx mov [esi+08h],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] shr ecx,02h jmp L0002FA3A L0002FA11: test byte ptr [ebp+04h],10h jnz L0002FA59 L0002FA17: mov ecx,[ebp+28h] mov [esi],ecx mov eax,[ebp+00000080h] imul eax,[ebp+70h] mov ecx,[ebp+28h] add eax,ecx mov [esi+08h],eax mov ecx,[ebp+00000080h] imul ecx,[ebp+70h] shr ecx,1 L0002FA3A: add ecx,eax mov [esi+0Ch],ecx L0002FA3F: mov eax,[ebp+00000088h] add [esi],eax mov ecx,[ebp+0000008Ch] add [esi+08h],ecx mov eax,[ebp+0000008Ch] add [esi+0Ch],eax L0002FA59: test byte ptr [ebp+04h],10h mov edi,00000001h jnz L0002FA6C mov eax,[ebp+0Ch] test ah,40h jz L0002FA82 L0002FA6C: mov cx,[esi+3Ch] mov ax,[esi+34h] shr cx,1 shr ax,1 mov [esi+3Eh],cx mov [esi+36h],ax L0002FA82: mov eax,[ebp+14h] test ah,06h jz L0002FACF test ah,02h jz L0002FAA3 test byte ptr [ebp+04h],10h jz L0002FAA3 xor ecx,ecx mov cx,[esi+1Ah] not cx inc ecx mov [esi+1Ah],cx L0002FAA3: mov eax,[ebp+00000090h] mov ecx,[esi] add ecx,eax cmp edi,edx mov [esi],ecx jz L0002FACF mov ecx,[ebp+00000094h] mov eax,[esi+08h] add eax,ecx mov ecx,[esi+0Ch] mov [esi+08h],eax mov eax,[ebp+00000094h] add ecx,eax mov [esi+0Ch],ecx L0002FACF: mov eax,[ebp+0Ch] test ah,08h jz L0002FB03 cmp edi,edx mov word ptr [esi+1Ch],8000h mov [esi+20h],dx jz L0002FAEE mov dword ptr [esi+28h],00000024h jmp L0002FAF5 L0002FAEE: mov dword ptr [esi+28h],00000020h L0002FAF5: mov eax,[ebp+0Ch] test ah,40h jz L0002FB38 or dword ptr [esi+68h],00000062h jmp L0002FB38 L0002FB03: test ah,10h jz L0002FB38 cmp edi,edx jz L0002FB1D mov [esi+1Eh],dx mov [esi+22h],dx mov dword ptr [esi+28h],00000002h jmp L0002FB24 L0002FB1D: mov [esi+22h],dx mov [esi+28h],edx L0002FB24: mov eax,[ebp+0Ch] test ah,40h jz L0002FB38 mov ecx,[esi+68h] and ecx,FFFFFFFDh or ecx,00000060h mov [esi+68h],ecx L0002FB38: mov ecx,[ebp+6Ch] cmp ecx,edx jz L0002FB59 mov eax,[ebp+58h] xor edx,edx div ecx cmp eax,00000002h jc L0002FB57 mov eax,[ebp+0Ch] test ah,40h jz L0002FB57 and dword ptr [esi+68h],FFFFFF9Fh L0002FB57: xor edx,edx L0002FB59: cmp [ebp+00000374h],edx jz L0002FB65 and dword ptr [esi+68h],FFFFFF9Dh L0002FB65: mov eax,[esp+18h] mov esi,[eax+000000A4h] push 00000006h push eax call SUB_L0002E060 lea edx,[esi+000022A4h] mov dword ptr [edx],08800000h test byte ptr [ebp+00000138h],02h jz L0002FB94 mov ecx,[ebp+0000014Ch] jmp L0002FB9A L0002FB94: mov ecx,[ebp+00000140h] L0002FB9A: mov [esi+000022A8h],ecx mov edi,[ebx+00000204h] mov ecx,[esp+10h] add ecx,00000208h inc edi mov [ebx+00000204h],edi mov [esi+000022B0h],ecx mov dword ptr [esi+000022ACh],10000001h mov ecx,[ebx+00000204h] mov [esi+000022B4h],ecx mov dword ptr [esi+000022B8h],03800000h mov esi,edx mov edx,[esp+18h] push 00000006h mov edi,eax mov ecx,00000006h push edx rep movsd call SUB_L0002E180 test byte ptr [ebp+04h],10h jz L0002FC0C mov eax,[ebp+54h] mov ecx,[ebp+58h] mov edx,[ebp+5Ch] mov [ebp+60h],eax mov [ebp+64h],ecx mov [ebp+70h],edx L0002FC0C: pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002FC20: mov eax,[esp+08h] sub esp,00000008h push esi mov esi,[eax+14h] and esi,00000020h push edi jz L0002FC3D mov ecx,[eax+000000ECh] mov [esp+08h],ecx jmp L0002FC41 L0002FC3D: mov ecx,[esp+08h] L0002FC41: mov edx,[esp+14h] lea edi,[edx-08h] cmp edi,00000010h ja CASE_0002FDF4_PROC0004 xor edx,edx mov dl,[edi+CASE_0002FE08] jmp [CASE_PROCTABLE_0002FDF4+edx*4] CASE_0002FDF4_PROC0000: xor edx,edx cmp esi,edx jz CASE_0002FDF4_PROC0004 and ecx,000000FFh pop edi mov [eax+000000F0h],edx mov [eax+000000F4h],edx mov [eax+000000F8h],ecx mov dword ptr [eax+000000FCh],000000FFh mov dword ptr [eax+00000100h],000000FFh mov [eax+00000104h],edx pop esi add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ CASE_0002FDF4_PROC0001: mov edx,ecx and edx,0000FFFFh mov ecx,edx and ecx,00007C00h shl ecx,03h mov edi,edx and edi,000003E0h or ecx,edi shl ecx,03h and edx,0000001Fh or ecx,edx shl ecx,03h test esi,esi mov [esp+08h],ecx jz CASE_0002FDF4_PROC0004 mov edx,[esp+0Ah] and edx,000000FFh mov [eax+000000F0h],edx mov edx,[esp+09h] and edx,000000FFh and ecx,000000FFh mov [eax+000000F8h],ecx mov ecx,00000007h pop edi mov [eax+000000F4h],edx mov [eax+000000FCh],ecx mov [eax+00000100h],ecx mov [eax+00000104h],ecx pop esi add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ CASE_0002FDF4_PROC0002: mov edx,ecx and edx,0000FFFFh mov ecx,edx and ecx,0000F800h shl ecx,03h mov edi,edx and edi,000007E0h or ecx,edi shl ecx,02h and edx,0000001Fh or ecx,edx shl ecx,03h test esi,esi mov [esp+08h],ecx jz CASE_0002FDF4_PROC0004 mov edx,[esp+0Ah] and edx,000000FFh mov [eax+000000F0h],edx mov edx,[esp+09h] and edx,000000FFh and ecx,000000FFh mov [eax+000000F8h],ecx mov ecx,00000007h pop edi mov [eax+000000F4h],edx mov [eax+000000FCh],ecx mov dword ptr [eax+00000100h],00000003h mov [eax+00000104h],ecx pop esi add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ CASE_0002FDF4_PROC0003: xor edx,edx cmp esi,edx jz CASE_0002FDF4_PROC0004 mov esi,[esp+0Ah] and esi,000000FFh mov [eax+000000F0h],esi mov esi,[esp+09h] and esi,000000FFh and ecx,000000FFh mov [eax+000000F4h],esi mov [eax+000000F8h],ecx mov [eax+000000FCh],edx mov [eax+00000100h],edx mov [eax+00000104h],edx CASE_0002FDF4_PROC0004: pop edi pop esi add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0002FDF4: dd CASE_0002FDF4_PROC0000 dd CASE_0002FDF4_PROC0001 dd CASE_0002FDF4_PROC0002 dd CASE_0002FDF4_PROC0003 dd CASE_0002FDF4_PROC0004 CASE_0002FE08: db 00h, 04h, 04h, 04h, 04h, 04h, 04h, 01h, 02h, 04h, 04h, 04h, 04h, 04h, 04h, 04h db 03h Align 8 SUB_L0002FE20: mov edx,[esp+04h] mov eax,[edx+000000ACh] mov ecx,[esp+08h] cmp ecx,[eax+00000208h] jbe L0002FE3E mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ L0002FE3E: jnz L0002FE52 mov eax,[edx+04h] add eax,L00030008 mov eax,[eax] and eax,80000000h retn 0008h ;------------------------------------------------------------------------------ L0002FE52: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0002FE60: mov eax,[esp+04h] mov ecx,[eax+08h] mov ecx,[ecx+000000ACh] mov edx,[ecx+00000104h] push esi push edi mov edi,[ecx+000000F4h] mov [eax+00001C90h],edx mov ecx,[ecx+000000F8h] mov [eax+00001C8Ch],ecx lea ecx,[eax+00001080h] mov esi,00000100h xor edx,edx L0002FE9A: mov [ecx-04h],edx mov [ecx],edx mov [ecx+04h],edx add ecx,0000000Ch dec esi jnz L0002FE9A mov ecx,[eax+00001C90h] mov [eax+00001C7Ch],edi mov [eax+00001C84h],edi mov [eax+00001C88h],edi add ecx,edi pop edi mov [eax+00001C80h],ecx mov [eax+00001C94h],edx mov [eax+00001C98h],edx mov [eax+00001C9Ch],edx or eax,FFFFFFFFh pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0002FEF0: mov eax,[esp+04h] mov ecx,[eax+08h] push ebx mov ebx,[ecx+000000ACh] push ebp mov ebp,[esp+10h] mov ecx,[ebp+08h] add ecx,00000007h and ecx,FFFFFFF8h mov [ebp+08h],ecx cmp ecx,[eax+00001C90h] push esi push edi ja L0003000B mov ecx,[eax+00001C9Ch] lea edx,[ecx+ecx*2] mov ecx,[eax+edx*4+0000107Ch] test ecx,ecx jz L0002FFBB L0002FF35: mov ecx,[eax+00001C9Ch] lea edx,[ecx+ecx*2] mov esi,[eax+edx*4+00001084h] lea edx,[eax+edx*4] lea edi,[esi+04h] cmp [ebx+10h],edi jnc L0002FF5C mov edi,[ebx+50h] cmp [ebx+10h],edi ja L0002FFBB cmp edi,esi jnc L0002FFBB L0002FF5C: mov esi,[edx+0000107Ch] lea ecx,[ecx+ecx*2+00000420h] mov ecx,[eax+ecx*4] add ecx,esi mov [eax+00001C84h],ecx mov dword ptr [edx+0000107Ch],00000000h mov ecx,[eax+00001C9Ch] inc ecx and ecx,000000FFh lea edx,[ecx+ecx*2] mov [eax+00001C9Ch],ecx mov ecx,[eax+00001C7Ch] mov esi,[eax+edx*4+0000107Ch] cmp esi,ecx lea edx,[eax+edx*4+0000107Ch] jnz L0002FFB2 mov [eax+00001C84h],ecx L0002FFB2: cmp dword ptr [edx],00000000h jnz L0002FF35 L0002FFBB: mov ecx,[eax+00001C94h] lea ecx,[ecx+ecx*2] mov edx,[eax+ecx*4+0000107Ch] test edx,edx jnz L0003000B mov esi,[eax+00001C88h] mov edx,[eax+00001C84h] cmp esi,edx jnz L0002FFF3 mov ecx,[eax+00001C9Ch] lea ecx,[ecx+ecx*2] mov edi,[eax+ecx*4+0000107Ch] test edi,edi jnz L0003000B L0002FFF3: mov ecx,[ebp+08h] mov ebx,[eax+00001C80h] lea edi,[esi+ecx] cmp edi,ebx ja L00030015 cmp esi,edx jnc L0003002B cmp edi,edx jc L0003002B L0003000B: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx retn 000Ch ;------------------------------------------------------------------------------ L00030015: mov edi,[eax+00001C7Ch] add ecx,edi cmp ecx,edx jnc L0003000B cmp esi,edx jc L0003000B mov [eax+00001C88h],edi L0003002B: mov edx,[eax+00001C88h] mov [ebp+00h],edx mov esi,[eax+00001C7Ch] mov ecx,[eax+00001C8Ch] mov edx,[eax+00001C88h] sub ecx,esi add ecx,edx mov [ebp+04h],ecx mov ecx,[eax+00001C94h] lea edx,[ecx+ecx*2] mov ecx,[eax+00001C88h] mov [eax+edx*4+0000107Ch],ecx mov ecx,[eax+00001C94h] add ecx,00000160h lea edx,[ecx+ecx*2] mov ecx,[ebp+08h] mov [eax+edx*4],ecx mov ecx,[eax+00001C94h] lea edx,[ecx+ecx*2] mov ecx,[esp+1Ch] mov [eax+edx*4+00001084h],ecx mov edx,[eax+00001C94h] inc edx and edx,000000FFh mov [eax+00001C94h],edx mov ecx,[ebp+08h] mov edx,[eax+00001C88h] pop edi pop esi add edx,ecx pop ebp mov [eax+00001C88h],edx xor eax,eax pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L000300C0: sub esp,00000018h push ebx push ebp mov ebp,[esp+24h] mov ecx,[ebp+00h] mov edx,[ecx+000000ACh] xor eax,eax mov al,[ebp+07h] test al,04h push esi push edi jz L000300E3 and eax,00000003h inc eax jmp L000300E9 L000300E3: mov eax,[ecx+28h] shr eax,03h L000300E9: mov ecx,[ebp+4Ch] movsx ebx,[ebp+50h] movsx esi,[ebp+52h] imul ebx,eax imul esi,ecx add ebx,esi add ebx,[ebp+48h] xor esi,esi mov si,[ebp+24h] xor edi,edi mov di,[ebp+26h] mov [esp+14h],ecx lea ecx,[esp+1Ch] imul esi,eax lea eax,[esi+07h] and eax,FFFFFFF8h mov [esp+2Ch],eax imul eax,edi mov [esp+24h],eax mov eax,[edx+50h] mov edx,[esp+30h] add eax,00000002h push eax push ecx push edx mov [esp+24h],edi mov [esp+1Ch],esi call SUB_L0002FEF0 test eax,eax jz L00030152 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000018h retn 0008h ;------------------------------------------------------------------------------ L00030152: mov eax,[esp+20h] mov [ebp+48h],eax xor eax,eax test edi,edi jbe L000301AC mov ecx,[esp+2Ch] shr ecx,02h shl ecx,02h mov [esp+30h],ecx jmp L00030173 L0003016F: mov esi,[esp+10h] L00030173: mov edi,[esp+1Ch] mov ecx,esi mov edx,ecx shr ecx,02h mov esi,ebx rep movsd mov ecx,edx and ecx,00000003h rep movsb mov ecx,[esp+30h] mov edx,[esp+1Ch] add edx,ecx add ebx,[esp+14h] mov ecx,[esp+18h] inc eax mov [esp+1Ch],edx mov edx,eax and edx,0000FFFFh cmp edx,ecx jc L0003016F L000301AC: xor eax,eax mov [ebp+52h],ax mov [ebp+50h],ax mov eax,[esp+2Ch] pop edi pop esi mov [ebp+4Ch],eax pop ebp xor eax,eax pop ebx add esp,00000018h retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L000301D0: sub esp,0000001Ch push ebx push ebp mov ebp,[esp+28h] mov edx,[ebp+4Ch] movsx ebx,[ebp+52h] mov eax,[ebp+00h] imul ebx,edx mov ecx,[eax+000000ACh] movsx eax,[ebp+50h] mov [esp+0Ch],edx mov edx,eax shr edx,03h add ebx,edx add ebx,[ebp+48h] xor edx,edx mov dx,[ebp+24h] push esi mov [esp+18h],eax and eax,00000007h push edi xor edi,edi mov di,[ebp+26h] lea esi,[edx+eax+07h] mov edx,[esp+34h] shr esi,03h lea eax,[esi+01h] and eax,FFFFFFFEh mov [esp+10h],eax imul eax,edi mov [esp+28h],eax mov eax,[ecx+50h] add eax,00000002h push eax lea ecx,[esp+24h] push ecx push edx mov [esp+24h],edi mov [esp+3Ch],esi call SUB_L0002FEF0 test eax,eax jz L0003025A pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ L0003025A: xor eax,eax test edi,edi jbe L0003029F jmp L00030266 L00030262: mov esi,[esp+30h] L00030266: mov edi,[esp+20h] mov ecx,esi mov edx,ecx shr ecx,02h mov esi,ebx rep movsd mov ecx,edx and ecx,00000003h rep movsb mov ecx,[esp+10h] mov edx,[esp+20h] add edx,ecx add ebx,[esp+14h] mov ecx,[esp+18h] inc eax mov [esp+20h],edx mov edx,eax and edx,0000FFFFh cmp edx,ecx jc L00030262 L0003029F: movsx eax,[esp+1Ch] and eax,80000007h mov word ptr [ebp+52h],0000h jns L000302B6 dec eax or eax,FFFFFFF8h inc eax L000302B6: mov ecx,[esp+28h] mov edx,[esp+24h] pop edi shr ecx,03h pop esi mov [ebp+50h],ax mov [ebp+4Ch],ecx mov [ebp+48h],edx pop ebp xor eax,eax pop ebx add esp,0000001Ch retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000302E0: mov eax,[esp+04h] mov ecx,[eax+08h] mov ecx,[ecx+28h] cmp ecx,00000018h push ebx mov ebx,[eax+20h] push esi mov esi,[eax+10h] push edi mov edi,[eax+14h] mov edx,00000100h jz L00030308 shr ecx,03h shl ecx,06h mov edx,ecx L00030308: mov [eax+00001070h],edi mov [eax+0000106Ch],esi mov [eax+00001074h],ebx mov [eax+00001078h],edx mov dword ptr [eax+00001068h],00000000h lea edi,[eax+68h] mov ecx,00000400h xor eax,eax rep stosd pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00030340: push ebx push esi mov esi,[esp+0Ch] mov edx,[esi+00001068h] mov ecx,[esi+00001074h] mov eax,[esi+08h] push edi mov edi,[esi+00001078h] add edi,edx shr edi,06h or ebx,FFFFFFFFh dec ecx shr ecx,06h and edi,ecx mov edx,[esi+edi*4+68h] push edx push eax call SUB_L000296E0 test eax,eax jnz L000303CB mov edx,[esi+00001068h] mov ecx,[esi+0000106Ch] mov eax,[esp+14h] add ecx,edx mov [eax],ecx mov ecx,[esi+00001068h] mov edx,[esi+00001070h] add edx,ecx mov [eax+04h],edx mov eax,[esp+18h] mov [esi+edi*4+68h],eax mov ebx,[esi+00001068h] mov ecx,[esi+00001078h] mov edx,[esi+00001074h] add ecx,ebx dec edx and ecx,edx pop edi mov [esi+00001068h],ecx pop esi xor eax,eax pop ebx retn 000Ch ;------------------------------------------------------------------------------ L000303CB: pop edi pop esi mov eax,ebx pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000303E0: sub esp,00000008h mov eax,[esp+10h] mov ecx,[eax] mov edx,[esp+0Ch] push ebx push ebp mov ebp,[edx] mov edx,[eax+7Ch] mov al,[eax+00000084h] push esi mov esi,[ecx+28h] mov ecx,esi shr ecx,03h and al,07h shl ecx,06h test al,al push edi mov [esp+20h],al jz L00030692 mov ebx,00000008h cmp esi,ebx jnz L000304B2 mov cl,bl sub cl,al mov eax,[esp+20h] mov [esp+1Ch],cl mov ecx,[esp+1Ch] and eax,000000FFh and ecx,000000FFh lea esi,[ecx+edx] lea edi,[eax+ebp] mov [esp+20h],ecx mov [esp+1Ch],esi mov [esp+10h],edi mov [esp+14h],ebx jmp L00030459 L00030455: mov ecx,[esp+20h] L00030459: mov ebx,ecx shr ecx,02h mov esi,edx rep movsd mov ecx,ebx and ecx,00000003h rep movsb mov esi,[esp+1Ch] mov ecx,eax mov ebx,ecx shr ecx,02h mov edi,ebp rep movsd mov ecx,ebx mov ebx,[esp+1Ch] and ecx,00000003h rep movsb mov edi,[esp+10h] mov ecx,[esp+14h] add ebx,00000008h add edi,00000008h add edx,00000008h add ebp,00000008h dec ecx mov [esp+1Ch],ebx mov [esp+10h],edi mov [esp+14h],ecx jnz L00030455 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ L000304B2: cmp esi,00000010h jnz L00030551 shl al,1 mov cl,10h sub cl,al mov [esp+20h],al mov eax,[esp+20h] mov [esp+1Ch],cl mov ecx,[esp+1Ch] and eax,000000FFh and ecx,000000FFh lea esi,[ecx+edx] lea edi,[eax+ebp] mov [esp+20h],ecx mov [esp+1Ch],esi mov [esp+14h],edi mov [esp+10h],ebx jmp L000304F8 L000304F4: mov ecx,[esp+20h] L000304F8: mov ebx,ecx shr ecx,02h mov esi,edx rep movsd mov ecx,ebx and ecx,00000003h rep movsb mov esi,[esp+1Ch] mov ecx,eax mov ebx,ecx shr ecx,02h mov edi,ebp rep movsd mov ecx,ebx mov ebx,[esp+1Ch] and ecx,00000003h rep movsb mov edi,[esp+14h] mov ecx,[esp+10h] add ebx,00000010h add edi,00000010h add edx,00000010h add ebp,00000010h dec ecx mov [esp+1Ch],ebx mov [esp+14h],edi mov [esp+10h],ecx jnz L000304F4 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ L00030551: cmp esi,00000018h jnz L000305F2 mov cl,03h imul cl mov cl,18h sub cl,al mov [esp+20h],al mov eax,[esp+20h] mov [esp+1Ch],cl mov ecx,[esp+1Ch] and eax,000000FFh and ecx,000000FFh lea esi,[ecx+edx] lea edi,[eax+ebp] mov [esp+20h],ecx mov [esp+1Ch],esi mov [esp+14h],edi mov [esp+10h],ebx jmp L00030599 L00030595: mov ecx,[esp+20h] L00030599: mov ebx,ecx shr ecx,02h mov esi,edx rep movsd mov ecx,ebx and ecx,00000003h rep movsb mov esi,[esp+1Ch] mov ecx,eax mov ebx,ecx shr ecx,02h mov edi,ebp rep movsd mov ecx,ebx mov ebx,[esp+1Ch] and ecx,00000003h rep movsb mov edi,[esp+14h] mov ecx,[esp+10h] add ebx,00000018h add edi,00000018h add edx,00000018h add ebp,00000018h dec ecx mov [esp+1Ch],ebx mov [esp+14h],edi mov [esp+10h],ecx jnz L00030595 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ L000305F2: cmp esi,00000020h jnz L000306A4 shl al,02h mov cl,20h sub cl,al mov [esp+20h],al mov eax,[esp+20h] mov [esp+1Ch],cl mov ecx,[esp+1Ch] and eax,000000FFh and ecx,000000FFh lea esi,[ecx+edx] lea edi,[eax+ebp] mov [esp+20h],ecx mov [esp+1Ch],esi mov [esp+14h],edi mov [esp+10h],ebx jmp L00030639 L00030635: mov ecx,[esp+20h] L00030639: mov ebx,ecx shr ecx,02h mov esi,edx rep movsd mov ecx,ebx and ecx,00000003h rep movsb mov esi,[esp+1Ch] mov ecx,eax mov ebx,ecx shr ecx,02h mov edi,ebp rep movsd mov ecx,ebx mov ebx,[esp+1Ch] and ecx,00000003h rep movsb mov edi,[esp+14h] mov ecx,[esp+10h] add ebx,00000020h add edi,00000020h add edx,00000020h add ebp,00000020h dec ecx mov [esp+1Ch],ebx mov [esp+14h],edi mov [esp+10h],ecx jnz L00030635 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ L00030692: mov esi,edx mov edx,ecx shr ecx,02h mov edi,ebp rep movsd mov ecx,edx and ecx,00000003h rep movsb L000306A4: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ SUB_L000306B0: mov eax,[esp+04h] mov dl,[eax+00000084h] and dl,07h push esi mov esi,[eax+7Ch] jz L0003070A mov al,08h sub al,dl push ebx push ebp mov [esp+10h],al mov ebp,[esp+10h] push edi mov edi,[esp+18h] and ebp,000000FFh mov dword ptr [esp+14h],00000008h L000306E4: mov al,[esi] mov bl,al mov ecx,ebp shl bl,cl mov cl,dl shr al,cl or bl,al mov eax,[esp+14h] mov [edi],bl inc edi inc esi dec eax mov [esp+14h],eax jnz L000306E4 pop edi pop ebp pop ebx xor eax,eax pop esi retn 0008h ;------------------------------------------------------------------------------ L0003070A: mov ecx,[esi] mov eax,[esp+0Ch] mov [eax],ecx mov edx,[esi+04h] mov [eax+04h],edx xor eax,eax pop esi retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L00030720: sub esp,00000058h mov eax,[esp+5Ch] mov ecx,[eax+30h] cmp ecx,00000001h push ebx push ebp push esi push edi mov [esp+2Ch],ecx jbe L00030B86 mov ecx,[eax+2Ch] cmp ecx,00000001h mov [esp+24h],ecx jbe L00030B86 mov ecx,[eax+14h] mov edx,[eax] mov esi,[edx+00000134h] mov edi,[eax+08h] mov ebx,[esi+000000A4h] mov [esp+6Ch],ecx mov ecx,[eax+18h] mov [esp+10h],ecx mov ecx,[eax+20h] mov [esp+18h],ecx mov ecx,[eax+1Ch] mov [esp+14h],ecx mov ecx,[eax+04h] xor ebp,ebp mov [esp+1Ch],ecx mov ecx,[eax+24h] mov eax,[eax+28h] cmp eax,00000800h mov [esp+34h],esi mov dword ptr [ebx+000022A4h],02000001h mov [ebx+000022A8h],ebp mov [ebx+000022ACh],ebp mov [ebx+000022B0h],ebp mov [ebx+000022B4h],ebp mov dword ptr [ebx+000022B8h],02000001h mov dword ptr [ebx+000022BCh],02820100h mov dword ptr [ebx+000022C0h],02000001h mov dword ptr [ebx+000022C4h],0A800000h mov [ebx+000022C8h],ecx ja L000307FC jz L000307F7 cmp eax,00000200h jz L00030813 cmp eax,00000400h jnz L00030803 or ecx,00000001h jmp L00030813 L000307F7: or ecx,00000002h jmp L00030813 L000307FC: cmp eax,00001000h jz L00030810 L00030803: pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000058h retn 0004h ;------------------------------------------------------------------------------ L00030810: or ecx,00000003h L00030813: mov [ebx+000022C8h],ecx mov dword ptr [ebx+000022CCh],7D850000h mov dword ptr [ebx+000022D4h],7D000002h mov dword ptr [ebx+000022D8h],00000400h mov eax,[edx+10h] test al,02h mov dword ptr [esp+20h],00000010h jz L0003088A mov edx,[edx+000000BCh] sub edx,0000000Fh jz L00030871 dec edx jnz L00030941 mov dword ptr [ebx+000022D0h],00000200h mov dword ptr [ebx+000022D8h],02000400h jmp L00030941 L00030871: mov dword ptr [ebx+000022D0h],00000100h mov dword ptr [ebx+000022D8h],02200400h jmp L00030941 L0003088A: test al,01h jz L00030941 mov edx,[edx+000000B8h] cmp edx,43414D49h ja L000308E1 jz L00030911 cmp edx,32595559h ja L000308D7 jz L000308C1 cmp edx,30323449h jz L00030911 cmp edx,32315659h jz L00030911 jmp L00030941 L000308C1: mov dword ptr [ebx+000022D0h],00000500h mov dword ptr [ebx+000022D8h],05200400h jmp L00030941 L000308D7: cmp edx,33434D49h jz L00030911 jmp L00030941 L000308E1: cmp edx,56555949h ja L00030925 jz L00030911 cmp edx,524F4749h jz L00030911 cmp edx,55595659h jnz L00030941 mov dword ptr [ebx+000022D0h],00000600h mov dword ptr [ebx+000022D8h],05400400h jmp L00030941 L00030911: mov dword ptr [esp+20h],00000008h mov dword ptr [ebx+000022D8h],01000400h jmp L00030941 L00030925: cmp edx,59565955h jnz L00030941 mov dword ptr [ebx+000022D0h],00000700h mov dword ptr [ebx+000022D8h],05600400h L00030941: or dword ptr [ebx+000022D0h],00880000h xor eax,eax L0003094D: lea ecx,[eax+03h] mov edx,00000001h shl edx,cl cmp edi,edx jz L00030961 inc eax cmp eax,00000010h jc L0003094D L00030961: cmp eax,00000010h jnz L00030973 pop edi pop esi pop ebp or eax,FFFFFFFFh pop ebx add esp,00000058h retn 0004h ;------------------------------------------------------------------------------ L00030973: mov ecx,[ebx+000022D8h] mov edx,[esp+14h] or ecx,eax cmp edx,00000400h mov [ebx+000022D8h],ecx jbe L000309A6 mov eax,[esp+18h] mov ecx,[esp+1Ch] imul edi,eax sub edx,eax mov [esp+14h],edx add ecx,edi mov [esp+18h],ebp jmp L000309AA L000309A6: mov ecx,[esp+1Ch] L000309AA: mov edi,[esp+10h] cmp edi,00000400h jbe L000309D0 sub edi,[esp+6Ch] mov eax,[esp+20h] imul eax,[esp+6Ch] shr eax,03h mov [esp+10h],edi add ecx,eax mov [esp+6Ch],ebp L000309D0: shl edx,10h dec edx and edx,03FF0000h dec edi and edi,000003FFh or edx,edi mov [ebx+000022DCh],edx mov [ebx+000022E0h],ecx mov dword ptr [ebx+000022E4h],65000106h mov dword ptr [ebx+000022E8h],630AAAAAh mov ecx,[esi+10h] mov eax,00010303h cmp ecx,eax jnz L00030A19 mov dword ptr [ebx+000022E8h],632AAAAAh L00030A19: mov dword ptr [ebx+000022ECh],6403AA0Eh cmp [esi+10h],eax jnz L00030A32 mov dword ptr [ebx+000022ECh],6423AA0Eh L00030A32: push 0000002Ch push esi mov dword ptr [ebx+000022F0h],680008E3h mov dword ptr [ebx+000022F4h],02000001h mov dword ptr [ebx+000022F8h],02810001h mov dword ptr [ebx+000022FCh],7D800003h mov [ebx+00002300h],ebp mov [ebx+00002304h],ebp mov [ebx+00002308h],ebp mov [ebx+0000230Ch],ebp call SUB_L0002E060 lea esi,[ebx+000022A4h] mov edi,eax mov ecx,0000001Bh rep movsd mov ecx,[esp+24h] mov [esp+24h],ecx mov ecx,[esp+2Ch] mov [esp+2Ch],ecx mov ecx,[esp+10h] mov [esp+28h],ebp mov [esp+30h],ebp lea edi,[ebx+000022A8h] fild qword ptr [esp+24h] lea esi,[esp+38h] mov dword ptr [esp+48h],00000000h mov dword ptr [esp+58h],00000000h fstp dword ptr [esp+38h] mov dword ptr [esp+5Ch],00000000h fild qword ptr [esp+2Ch] mov [esp+2Ch],ecx mov ecx,[esp+14h] mov [esp+30h],ebp fst dword ptr [esp+3Ch] lea edx,[ebx+000022A4h] mov dword ptr [ebx+000022DCh],02830000h fild qword ptr [esp+2Ch] mov [esp+2Ch],ecx mov ecx,[esp+6Ch] mov [esp+30h],ebp fstp dword ptr [esp+40h] mov dword ptr [ebx+000022E4h],03800000h mov dword ptr [edx],7F1C000Bh fild qword ptr [esp+2Ch] mov [esp+2Ch],ecx mov [esp+30h],ebp push 0000002Ch fstp dword ptr [esp+48h] mov ecx,[esp+48h] mov [esp+58h],ecx mov ecx,[esp+1Ch] fstp dword ptr [esp+50h] fild qword ptr [esp+30h] mov [esp+30h],ecx mov [esp+34h],ebp mov ecx,0000000Ch fst dword ptr [esp+54h] fstp dword ptr [esp+64h] fild qword ptr [esp+30h] fstp dword ptr [esp+68h] rep movsd mov ecx,02000001h mov [ebx+000022D8h],ecx mov [ebx+000022E0h],ecx mov ebx,[esp+38h] lea edi,[eax+6Ch] mov esi,edx mov [ebx+74h],ebp mov ecx,00000011h push ebx rep movsd call SUB_L0002E180 L00030B86: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000058h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00030BA0: mov ecx,[esp+04h] push ebx push ebp push esi mov esi,[ecx] mov ebx,[esi+00000134h] mov eax,[ebx+000000A4h] mov edx,00000001h test [esi+10h],dl push edi mov [esp+14h],edx jz L00030C2E mov esi,[esi+000000B8h] cmp esi,43414D49h ja L00030BFA jz L00030C16 cmp esi,32595559h ja L00030BF0 jz L00030C25 cmp esi,30323449h jz L00030C16 cmp esi,32315659h jz L00030C16 jmp L00030C2E L00030BF0: cmp esi,33434D49h jz L00030C16 jmp L00030C2E L00030BFA: cmp esi,56555949h ja L00030C1D jz L00030C16 cmp esi,524F4749h jz L00030C16 cmp esi,55595659h jz L00030C25 jmp L00030C2E L00030C16: mov edx,00000001h jmp L00030C2A L00030C1D: cmp esi,59565955h jnz L00030C2E L00030C25: mov edx,00000002h L00030C2A: mov [esp+14h],edx L00030C2E: mov dword ptr [eax+000022A4h],50C00004h mov di,[ecx+28h] mov [eax+000022A8h],di mov byte ptr [eax+000022AAh],CCh dec dl or dl,04h mov [eax+000022ABh],dl mov dx,[ecx+2Ch] lea esi,[eax+000022A4h] mov [eax+000022ACh],dx mov dx,[ecx+30h] mov [eax+000022AEh],dx mov edx,[ecx+20h] mov edi,[ecx+28h] mov ebp,[ecx+14h] imul ebp,[esp+14h] mov [eax+000022B0h],edi mov edi,[ecx+08h] mov [eax+000022B4h],edi mov edi,[ecx+08h] mov [eax+000022B8h],edi imul edi,edx lea edx,[edi+ebp] mov dword ptr [eax+000022B0h],00000000h mov [eax+000022B8h],edx mov edi,[ecx+24h] mov [eax+000022B0h],edi mov ecx,[ecx+04h] push 00000006h add ecx,edx push ebx mov [eax+000022B8h],ecx call SUB_L0002E060 push 00000006h mov edi,eax mov ecx,00000006h push ebx rep movsd call SUB_L0002E180 pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00030CF0: sub esp,00000054h push ebx push ebp push esi mov esi,[esp+64h] mov eax,[esi+00000134h] mov ecx,[esi+5Ch] mov edx,[esi+64h] mov [esp+14h],eax mov eax,[esi+68h] mov [esp+1Ch],eax mov al,[esi+00000138h] push edi xor edi,edi test al,02h mov [esp+10h],ecx mov ecx,[esi+60h] mov [esp+14h],edx mov edx,[esi+6Ch] mov [esp+28h],edi mov ebx,00000010h mov [esp+1Ch],ecx mov [esp+24h],edx jz L00030D49 mov eax,[esi+00000148h] mov [esp+68h],eax jmp L00030D53 L00030D49: mov edx,[esi+0000013Ch] mov [esp+68h],edx L00030D53: mov eax,[esi+10h] test al,02h jz L00030D65 mov ebx,00000010h mov [esp+28h],edi jmp L00030DD7 L00030D65: test al,01h jz L00030DD7 mov eax,[esi+000000B8h] cmp eax,43414D49h mov ebx,00000010h mov [esp+28h],edi ja L00030DA3 jz L00030DBC cmp eax,32595559h ja L00030D9A jz L00030DD2 cmp eax,30323449h jz L00030DBC cmp eax,32315659h jz L00030DBC jmp L00030DD7 L00030D9A: cmp eax,33434D49h jz L00030DBC jmp L00030DD7 L00030DA3: cmp eax,56555949h ja L00030DCB jz L00030DBC cmp eax,524F4749h jz L00030DBC cmp eax,55595659h jz L00030DD2 jmp L00030DD7 L00030DBC: mov dword ptr [esp+28h],00000001h mov ebx,00000008h jmp L00030DD7 L00030DCB: cmp eax,59565955h jnz L00030DD7 L00030DD2: mov ebx,00000010h L00030DD7: mov eax,[esi+14h] test ah,04h jz L00030DF6 mov eax,ebx imul eax,[esi+68h] add eax,0000001Fh and eax,FFFFFFE0h xor edx,edx div ebx mov [esi+68h],eax mov [esp+20h],eax L00030DF6: cmp [esi+00000154h],edi jz L00030ECC mov eax,[esi+00000174h] mov edx,[esp+14h] imul eax,[esi+00000170h] imul edx,ecx cmp edx,eax jbe L00030ECC lea edi,[esi+00000220h] mov dword ptr [esp+2Ch],00000003h L00030E2C: mov eax,[edi-000000CCh] test eax,eax lea ebp,[edi-000000CCh] jz L00030E54 mov eax,[esp+18h] mov ecx,[eax+000000A8h] push ebp push ecx call SUB_L00026030 mov dword ptr [ebp+00h],00000000h L00030E54: cmp dword ptr [edi],00000000h jz L00030E70 mov edx,[esp+18h] mov eax,[edx+000000A8h] push edi push eax call SUB_L00026030 mov dword ptr [edi],00000000h L00030E70: mov eax,[esp+2Ch] add edi,00000044h dec eax mov [esp+2Ch],eax jnz L00030E2C mov eax,[esi+00000330h] test eax,eax lea edi,[esi+00000330h] jz L00030EA5 mov ecx,[esp+18h] mov edx,[ecx+000000A8h] push edi push edx call SUB_L00026030 mov dword ptr [edi],00000000h L00030EA5: mov eax,[esi+000002ECh] test eax,eax lea edi,[esi+000002ECh] jz L00030ECC mov eax,[esp+18h] mov ecx,[eax+000000A8h] push edi push ecx call SUB_L00026030 mov dword ptr [edi],00000000h L00030ECC: mov eax,[esi+00000154h] test eax,eax jnz L0003102E mov edx,[esp+14h] mov ebp,[esp+1Ch] mov edi,[esp+18h] lea eax,[esi+00000154h] push eax mov eax,[edi+000000A8h] push ebx push edx push ebp push 21080010h push eax call SUB_L000267C0 test eax,eax jnz L00030F0F pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00030F0F: mov edx,[esp+14h] mov eax,[edi+000000A8h] lea ecx,[esi+00000220h] push ecx push ebx push edx push ebp push 21080010h push eax call SUB_L000267C0 test eax,eax jnz L00030F3C pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00030F3C: mov eax,[esp+28h] xor ecx,ecx cmp eax,ecx jz L0003101C mov ebp,[esi+60h] mov eax,[esi+64h] mov [esi+00000088h],ecx mov [esi+0000008Ch],ecx mov edx,[edi+000000A8h] lea ecx,[esi+00000198h] push ecx mov ebx,00000008h push ebx push eax push ebp push 21080010h push edx mov [esp+34h],ebp mov [esp+2Ch],eax call SUB_L000267C0 test eax,eax jnz L00030F92 pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00030F92: mov ecx,[esp+14h] mov edx,[edi+000000A8h] lea eax,[esi+00000264h] push eax push 00000008h push ecx push ebp push 21080010h push edx call SUB_L000267C0 test eax,eax jnz L00030FC0 pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00030FC0: mov ecx,[esp+14h] mov edx,[edi+000000A8h] lea eax,[esi+000001DCh] push eax push 00000008h push ecx push ebp push 21080010h push edx call SUB_L000267C0 test eax,eax jnz L00030FEE pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00030FEE: mov ecx,[esp+14h] mov edx,[edi+000000A8h] lea eax,[esi+000002A8h] push eax push 00000008h push ecx push ebp push 21080010h push edx call SUB_L000267C0 test eax,eax jnz L0003101C pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L0003101C: mov eax,[esi+60h] mov [esi+00000170h],eax mov ecx,[esi+64h] mov [esi+00000174h],ecx L0003102E: mov eax,[esi+00000374h] test eax,eax jz L00031094 mov eax,[esp+14h] xor edx,edx div [esp+24h] cmp eax,00000002h jc L00031128 mov ecx,[esi+00000330h] test ecx,ecx lea eax,[esi+00000330h] jnz L00031128 mov edx,[esp+14h] mov ecx,[esp+18h] push eax mov eax,[esp+20h] push ebx shr edx,1 push edx mov edx,[ecx+000000A8h] push eax push 21080010h push edx call SUB_L000267C0 test eax,eax jnz L00031128 pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00031094: mov ecx,[esi+00000330h] test ecx,ecx lea eax,[esi+00000330h] jnz L00031128 mov ecx,[esi+000000B8h] cmp ecx,32315659h jnz L000310E9 mov ecx,[esp+1Ch] mov edx,[esp+18h] push eax mov eax,[esp+18h] push ebx shr eax,1 push eax mov eax,[edx+000000A8h] shr ecx,1 push ecx push 21080010h push eax call SUB_L000267C0 test eax,eax jnz L00031128 pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L000310E9: cmp ecx,30323449h jz L000310F9 cmp ecx,56555949h jnz L00031128 L000310F9: mov ecx,[esp+14h] mov edx,[esp+1Ch] push eax mov eax,[esp+1Ch] push ebx push ecx mov ecx,[eax+000000A8h] push edx push 21080010h push ecx call SUB_L000267C0 test eax,eax jnz L00031128 pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00031128: mov eax,[esp+28h] xor ebp,ebp cmp eax,ebp jnz L000314A0 cmp [esi+00000374h],ebp mov ecx,0000000Dh jz L00031284 mov edx,[esi+000000A8h] xor eax,eax lea edi,[esp+30h] rep stosd mov eax,[esi+000000ACh] mov ecx,[esi+000000B0h] mov [esp+44h],edx mov edx,[esi+000000B4h] mov [esp+4Ch],edx mov edx,[esi+0Ch] test dh,08h mov [esp+48h],eax mov eax,[esi+60h] mov [esp+50h],ecx mov ecx,[esi+64h] mov [esp+30h],esi mov [esp+3Ch],eax mov [esp+40h],ecx jz L00031196 mov edx,[esi+28h] jmp L0003119C L00031196: mov edx,[esi+70h] add edx,[esi+28h] L0003119C: imul eax,ebx mov [esp+34h],edx mov edx,[esi+70h] shl edx,1 shr eax,03h shr ecx,1 mov [esp+38h],edx mov [esp+5Ch],eax mov eax,[esi+00000334h] mov [esp+60h],ecx mov ecx,[esi+0000033Ch] lea edx,[esp+30h] push edx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov ecx,[esi+0000033Ch] mov eax,[esi+00000334h] mov [esp+44h],ebp mov [esp+50h],ebp mov ebp,[esp+14h] mov edx,ebp shr edx,1 mov [esp+38h],ecx mov ecx,[esp+1Ch] mov [esp+34h],eax mov [esp+4Ch],edx xor edx,edx mov eax,ecx div [esp+20h] mov ebx,[esi+68h] mov edi,[esi+6Ch] mov [esp+48h],ecx mov [esp+5Ch],ebx mov [esp+60h],edi cmp eax,00000002h jnc L00031228 mov ebx,ecx mov [esp+5Ch],ebx L00031228: xor edx,edx mov eax,ebp div [esp+24h] cmp eax,00000002h jnc L0003123B mov edi,ebp mov [esp+60h],edi L0003123B: test byte ptr [esi+04h],01h jz L00031257 mov eax,[esi+00000224h] mov ecx,[esi+0000022Ch] mov [esp+54h],eax mov [esp+58h],ecx jmp L0003126B L00031257: mov edx,[esi+00000158h] mov eax,[esi+00000160h] mov [esp+54h],edx mov [esp+58h],eax L0003126B: lea ecx,[esp+30h] push ecx call SUB_L00030720 mov edx,[esp+18h] push edx call SUB_L00029670 jmp L0003141C L00031284: mov edx,[esi+000000B0h] xor eax,eax lea edi,[esp+30h] rep stosd mov eax,[esi+000000A8h] mov ecx,[esi+000000ACh] mov [esp+44h],eax mov eax,[esi+000000B4h] mov [esp+48h],ecx mov ecx,[esi+60h] mov [esp+4Ch],eax mov eax,[esi+28h] mov [esp+3Ch],ecx cmp dword ptr [esi+000000B8h],32595559h mov [esp+50h],edx mov edx,[esi+64h] mov [esp+34h],eax mov eax,[esi+70h] mov [esp+30h],esi mov [esp+40h],edx mov [esp+38h],eax jnz L000313A4 cmp eax,00000280h jc L000313A4 cmp eax,000005A0h ja L000313A4 mov ecx,[esi+000002ECh] cmp ecx,ebp lea eax,[esi+000002ECh] jnz L00031339 mov ebp,[esp+14h] mov edi,[esp+1Ch] mov ecx,[esp+18h] mov edx,[ecx+000000A8h] push eax push ebx push ebp push edi push 21080010h push edx call SUB_L000267C0 test eax,eax jnz L00031341 pop edi pop esi pop ebp pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00031339: mov ebp,[esp+14h] mov edi,[esp+1Ch] L00031341: mov eax,[esi+000000A8h] mov edx,[esi+000002F0h] mov ecx,edi imul ecx,ebx shr ecx,03h and eax,FFFFFFFEh mov [esp+5Ch],ecx mov [esp+44h],eax mov eax,[esi+000002F8h] lea ecx,[esp+30h] push ecx mov [esp+64h],ebp mov [esp+58h],edx mov [esp+5Ch],eax call SUB_L00030BA0 mov eax,[esi+000002F8h] mov edx,[esi+000002F0h] mov [esp+38h],eax xor eax,eax mov [esp+34h],edx mov [esp+44h],eax mov [esp+48h],edi mov [esp+50h],eax mov [esp+4Ch],ebp jmp L000313AC L000313A4: mov ebp,[esp+14h] mov edi,[esp+1Ch] L000313AC: test byte ptr [esi+04h],01h jz L000313C8 mov ecx,[esi+00000224h] mov edx,[esi+0000022Ch] mov [esp+54h],ecx mov [esp+58h],edx jmp L000313DC L000313C8: mov eax,[esi+00000158h] mov ecx,[esi+00000160h] mov [esp+54h],eax mov [esp+58h],ecx L000313DC: xor edx,edx mov eax,edi div [esp+20h] mov ebx,[esi+68h] mov ecx,[esi+6Ch] mov [esp+5Ch],ebx mov [esp+60h],ecx cmp eax,00000002h jnc L000313FD mov ebx,edi mov [esp+5Ch],ebx L000313FD: xor edx,edx mov eax,ebp div [esp+24h] cmp eax,00000002h jnc L00031410 mov ecx,ebp mov [esp+60h],ecx L00031410: lea edx,[esp+30h] push edx mov edi,ecx call SUB_L00030720 L0003141C: test byte ptr [esi+04h],01h jz L00031461 mov eax,[esi+00000224h] mov ecx,[esp+68h] mov [ecx],eax mov ecx,[esi+04h] mov eax,[esi+0000022Ch] mov edx,[esi+00000224h] mov [esi+60h],ebx and ecx,FFFFFFFEh mov [esi+64h],edi pop edi or ecx,00000002h mov [esi+70h],eax mov [esi+28h],edx mov [esi+04h],ecx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00031461: mov edx,[esi+00000158h] mov eax,[esp+68h] mov [eax],edx mov eax,[esi+04h] mov ecx,[esi+00000158h] mov edx,[esi+00000160h] and eax,FFFFFFFDh mov [esi+60h],ebx or eax,00000001h mov [esi+64h],edi pop edi mov [esi+04h],eax mov [esi+28h],ecx mov [esi+70h],edx pop esi pop ebp mov eax,00000001h pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L000314A0: mov eax,[esi+000000B8h] cmp eax,43414D49h ja L000320F7 jz L00032577 cmp eax,30323449h jz L0003210D cmp eax,32315659h jz L00031D31 cmp eax,33434D49h jnz L00032DC1 mov eax,[esi+00000374h] xor ebx,ebx cmp eax,ebx mov ecx,0000000Dh jz L000319AF mov edx,[esi+000000ACh] xor eax,eax lea edi,[esp+30h] rep stosd mov ecx,[esi+000000A8h] mov eax,[esi+000000B0h] mov [esp+44h],ecx mov ecx,[esi+000000B4h] mov [esp+48h],edx mov edx,[esi+0Ch] mov [esp+50h],eax mov eax,[esi+64h] mov [esp+4Ch],ecx mov ecx,[esi+60h] test dh,08h mov edx,[esi+28h] mov [esp+30h],esi mov [esp+3Ch],ecx mov [esp+40h],eax jnz L0003153E add edx,[esp+10h] L0003153E: mov [esp+34h],edx mov edx,[esp+10h] add edx,edx shr eax,1 mov [esp+28h],edx mov [esp+38h],edx mov [esp+5Ch],ecx mov ecx,[esi+0000033Ch] mov [esp+60h],eax mov eax,[esi+00000334h] lea edx,[esp+30h] push edx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov ecx,[esi+0000033Ch] mov eax,[esi+00000334h] mov edx,[esp+1Ch] mov edi,[esi+68h] mov [esp+38h],ecx mov ecx,[esi+60h] mov [esp+34h],eax mov [esp+48h],edx xor edx,edx mov eax,ecx div edi mov ebp,[esp+14h] shr ebp,1 mov [esp+44h],ebx mov [esp+50h],ebx mov [esp+4Ch],ebp mov [esp+5Ch],ecx cmp eax,00000002h jc L000315BF mov [esp+5Ch],edi L000315BF: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi mov [esp+60h],ecx cmp eax,00000002h jc L000315D8 mov [esp+60h],edi L000315D8: test byte ptr [esi+04h],01h jz L000315F4 mov eax,[esi+00000224h] mov ecx,[esi+0000022Ch] mov [esp+54h],eax mov [esp+58h],ecx jmp L00031608 L000315F4: mov edx,[esi+00000158h] mov eax,[esi+00000160h] mov [esp+54h],edx mov [esp+58h],eax L00031608: lea ecx,[esp+30h] push ecx call SUB_L00030720 mov edx,[esp+18h] push edx call SUB_L00029670 test byte ptr [esi+04h],01h jz L00031636 mov eax,[esi+00000224h] mov ecx,[esp+68h] mov [ecx],eax mov edx,[esi+0000022Ch] jmp L00031648 L00031636: mov eax,[esi+00000158h] mov ecx,[esp+68h] mov [ecx],eax mov edx,[esi+00000160h] L00031648: mov ecx,[esi+68h] mov eax,[esi+60h] mov [esi+70h],edx xor edx,edx div ecx cmp eax,00000002h jnc L00031663 mov eax,[esp+5Ch] mov [esi+60h],eax jmp L00031666 L00031663: mov [esi+60h],ecx L00031666: mov ecx,[esi+6Ch] mov eax,[esi+64h] xor edx,edx div ecx cmp eax,00000002h jnc L00031679 mov ecx,[esp+60h] L00031679: mov edx,[esi+000000A8h] mov ebx,[esp+1Ch] mov [esi+64h],ecx xor eax,eax shr edx,1 mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov eax,[esi+000000ACh] mov ecx,[esi+000000B0h] mov [esp+44h],edx mov edx,[esi+000000B4h] shr edx,1 shr eax,1 shr ecx,1 mov [esp+4Ch],edx mov edx,[esi+0Ch] shr ebx,1 mov [esp+48h],eax mov [esp+50h],ecx mov ecx,ebx mov eax,ebp test dh,08h mov edx,[esi+00000080h] mov [esp+30h],esi mov [esp+3Ch],ecx mov [esp+40h],eax jnz L000316DE inc edx L000316DE: imul edx,[esp+10h] add edx,[esi+28h] mov [esp+34h],edx mov edx,[esp+28h] shr eax,1 mov [esp+38h],edx mov [esp+5Ch],ecx mov ecx,[esi+0000033Ch] mov [esp+60h],eax mov eax,[esi+00000334h] lea edx,[esp+30h] push edx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov edx,[esp+3Ch] mov edi,[esi+68h] mov [esp+34h],eax xor eax,eax mov [esp+44h],eax mov [esp+50h],eax mov eax,[esp+40h] shr eax,1 mov [esp+38h],ecx mov ecx,[esi+60h] mov [esp+48h],edx mov [esp+4Ch],eax xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00031763 shr ecx,1 mov [esp+5Ch],ecx jmp L00031769 L00031763: shr edi,1 mov [esp+5Ch],edi L00031769: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00031782 shr ecx,1 mov [esp+60h],ecx jmp L00031788 L00031782: shr edi,1 mov [esp+60h],edi L00031788: test byte ptr [esi+04h],01h jz L000317A4 mov ecx,[esi+00000268h] mov edx,[esi+00000270h] mov [esp+54h],ecx mov [esp+58h],edx jmp L000317B8 L000317A4: mov eax,[esi+0000019Ch] mov ecx,[esi+000001A4h] mov [esp+54h],eax mov [esp+58h],ecx L000317B8: lea edx,[esp+30h] push edx call SUB_L00030720 mov eax,[esp+18h] push eax call SUB_L00029670 test byte ptr [esi+04h],01h jz L000317E8 mov ecx,[esi+00000268h] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+00000270h] jmp L000317FC L000317E8: mov ecx,[esi+0000019Ch] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+000001A4h] L000317FC: mov [eax+1Ah],dx mov edx,[esi+000000B0h] xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov eax,[esi+000000A8h] mov ecx,[esi+000000ACh] shr eax,1 mov [esp+44h],eax mov eax,[esi+000000B4h] shr ecx,1 shr eax,1 mov [esp+48h],ecx mov ecx,[esi+0Ch] shr edx,1 mov [esp+4Ch],eax mov eax,ebp test ch,08h mov ecx,[esi+00000080h] mov [esp+30h],esi mov [esp+50h],edx mov [esp+3Ch],ebx mov [esp+40h],eax jz L0003186D imul ecx,[esp+10h] mov edx,ecx shr edx,1 add edx,ecx add edx,[esi+28h] mov [esp+34h],edx jmp L00031885 L0003186D: mov edx,[esp+10h] mov edi,ecx imul edi,edx shr edi,1 inc ecx imul ecx,edx add edi,ecx add edi,[esi+28h] mov [esp+34h],edi L00031885: mov edx,[esp+3Ch] mov ecx,[esp+28h] shr eax,1 mov [esp+5Ch],edx mov [esp+38h],ecx mov ecx,[esi+0000033Ch] mov [esp+60h],eax mov eax,[esi+00000334h] lea edx,[esp+30h] push edx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov edx,[esp+3Ch] mov edi,[esi+68h] mov [esp+34h],eax xor eax,eax mov [esp+44h],eax mov [esp+50h],eax mov eax,[esp+40h] shr eax,1 mov [esp+38h],ecx mov ecx,[esi+60h] mov [esp+48h],edx mov [esp+4Ch],eax xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00031902 shr ecx,1 mov [esp+5Ch],ecx jmp L00031908 L00031902: shr edi,1 mov [esp+5Ch],edi L00031908: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00031921 shr ecx,1 mov [esp+60h],ecx jmp L00031927 L00031921: shr edi,1 mov [esp+60h],edi L00031927: test byte ptr [esi+04h],01h jz L00031943 mov ecx,[esi+000002ACh] mov edx,[esi+000002B4h] mov [esp+54h],ecx mov [esp+58h],edx jmp L00031957 L00031943: mov eax,[esi+000001E0h] mov ecx,[esi+000001E8h] mov [esp+54h],eax mov [esp+58h],ecx L00031957: lea edx,[esp+30h] push edx call SUB_L00030720 mov eax,[esp+18h] push eax call SUB_L00029670 test byte ptr [esi+04h],01h jz L00031990 mov ecx,[esi+000002ACh] mov eax,[esp+68h] mov [eax+0Ch],ecx mov dx,[esi+000002B4h] mov [eax+1Ah],dx mov ecx,eax jmp L00031CF6 L00031990: mov ecx,[esi+000001E0h] mov eax,[esp+68h] mov [eax+0Ch],ecx mov dx,[esi+000001E8h] mov [eax+1Ah],dx mov ecx,eax jmp L00031CF6 L000319AF: xor eax,eax lea edi,[esp+30h] rep stosd test byte ptr [esi+04h],01h jz L000319D3 mov eax,[esi+00000224h] mov ecx,[esi+0000022Ch] mov [esp+54h],eax mov [esp+58h],ecx jmp L000319E7 L000319D3: mov edx,[esi+00000158h] mov eax,[esi+00000160h] mov [esp+54h],edx mov [esp+58h],eax L000319E7: mov edi,[esi+60h] mov ecx,[esi+68h] xor edx,edx mov eax,edi div ecx mov [esp+30h],esi mov [esp+5Ch],edi cmp eax,00000002h jc L00031A04 mov [esp+5Ch],ecx L00031A04: mov ecx,[esi+64h] mov ebx,[esi+6Ch] xor edx,edx mov eax,ecx div ebx mov [esp+60h],ecx cmp eax,00000002h jc L00031A1D mov [esp+60h],ebx L00031A1D: mov eax,[esi+000000ACh] mov edx,[esi+000000A8h] mov [esp+48h],eax mov eax,[esi+000000B4h] mov [esp+44h],edx mov edx,[esi+000000B0h] mov [esp+4Ch],eax mov [esp+50h],edx mov edx,[esp+10h] mov [esp+40h],ecx mov ecx,[esi+28h] lea eax,[esp+30h] push eax mov [esp+40h],edi mov [esp+38h],ecx mov [esp+3Ch],edx call SUB_L00030720 test byte ptr [esi+04h],01h jz L00031A80 mov ecx,[esi+00000224h] mov edx,[esp+68h] mov [edx],ecx mov eax,[esi+0000022Ch] jmp L00031A92 L00031A80: mov ecx,[esi+00000158h] mov edx,[esp+68h] mov [edx],ecx mov eax,[esi+00000160h] L00031A92: mov ecx,[esi+68h] mov [esi+70h],eax mov eax,[esi+60h] xor edx,edx div ecx cmp eax,00000002h jnc L00031AA8 mov ecx,[esp+5Ch] L00031AA8: mov [esi+60h],ecx mov ecx,[esi+6Ch] mov eax,[esi+64h] xor edx,edx div ecx cmp eax,00000002h jnc L00031AC3 mov edx,[esp+60h] mov [esi+64h],edx jmp L00031AC6 L00031AC3: mov [esi+64h],ecx L00031AC6: xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd test byte ptr [esi+04h],01h jz L00031AEF mov eax,[esi+00000268h] mov ecx,[esi+00000270h] mov [esp+54h],eax mov [esp+58h],ecx jmp L00031B03 L00031AEF: mov edx,[esi+0000019Ch] mov eax,[esi+000001A4h] mov [esp+54h],edx mov [esp+58h],eax L00031B03: mov edx,[esi+000000ACh] mov eax,[esi+000000B0h] mov ecx,[esi+000000A8h] mov edi,[esi+28h] shr edx,1 shr eax,1 mov [esp+48h],edx mov edx,[esi+00000080h] mov [esp+50h],eax mov eax,[esp+10h] imul edx,eax shr ecx,1 mov [esp+44h],ecx mov ecx,[esi+000000B4h] shr ecx,1 add edx,edi mov edi,[esi+68h] mov [esp+4Ch],ecx mov ecx,[esi+60h] mov [esp+34h],edx mov [esp+38h],eax xor edx,edx mov eax,ecx div edi mov ebx,[esp+1Ch] mov ebp,[esp+14h] shr ebx,1 shr ebp,1 mov [esp+30h],esi mov [esp+3Ch],ebx mov [esp+40h],ebp cmp eax,00000002h jnc L00031B7E shr ecx,1 mov [esp+5Ch],ecx jmp L00031B84 L00031B7E: shr edi,1 mov [esp+5Ch],edi L00031B84: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00031B9D shr ecx,1 mov [esp+60h],ecx jmp L00031BA3 L00031B9D: shr edi,1 mov [esp+60h],edi L00031BA3: lea eax,[esp+30h] push eax call SUB_L00030720 test byte ptr [esi+04h],01h jz L00031BC9 mov ecx,[esi+00000268h] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+00000270h] jmp L00031BDD L00031BC9: mov ecx,[esi+0000019Ch] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+000001A4h] L00031BDD: mov [eax+1Ah],dx xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd test byte ptr [esi+04h],01h jz L00031C0A mov eax,[esi+000002ACh] mov ecx,[esi+000002B4h] mov [esp+54h],eax mov [esp+58h],ecx jmp L00031C1E L00031C0A: mov edx,[esi+000001E0h] mov eax,[esi+000001E8h] mov [esp+54h],edx mov [esp+58h],eax L00031C1E: mov ecx,[esi+60h] mov edi,[esi+68h] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00031C37 shr ecx,1 mov [esp+5Ch],ecx jmp L00031C3D L00031C37: shr edi,1 mov [esp+5Ch],edi L00031C3D: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00031C56 shr ecx,1 mov [esp+60h],ecx jmp L00031C5C L00031C56: shr edi,1 mov [esp+60h],edi L00031C5C: mov eax,[esi+000000B0h] mov edx,[esi+000000ACh] mov ecx,[esi+000000A8h] mov edi,[esi+28h] shr edx,1 shr eax,1 mov [esp+48h],edx mov [esp+50h],eax mov eax,[esi+00000080h] mov edx,eax shr edx,1 add edx,eax mov eax,[esp+10h] imul edx,eax shr ecx,1 mov [esp+44h],ecx mov ecx,[esi+000000B4h] mov [esp+38h],eax lea eax,[esp+30h] shr ecx,1 add edx,edi push eax mov [esp+34h],esi mov [esp+40h],ebx mov [esp+44h],ebp mov [esp+50h],ecx mov [esp+38h],edx call SUB_L00030720 test byte ptr [esi+04h],01h jz L00031CDE mov edx,[esi+000002ACh] mov ecx,[esp+68h] mov [ecx+0Ch],edx mov ax,[esi+000002B4h] jmp L00031CF2 L00031CDE: mov edx,[esi+000001E0h] mov ecx,[esp+68h] mov [ecx+0Ch],edx mov ax,[esi+000001E8h] L00031CF2: mov [ecx+1Ah],ax L00031CF6: mov eax,[esp+1Ch] mov edi,[esp+20h] xor edx,edx div edi cmp eax,00000002h jnc L00031D0D mov [ecx+36h],bx jmp L00031D13 L00031D0D: shr edi,1 mov [ecx+36h],di L00031D13: mov eax,[esp+14h] mov edi,[esp+24h] xor edx,edx div edi cmp eax,00000002h jnc L00032DBB mov [ecx+3Eh],bp jmp L00032DC1 L00031D31: mov edx,[esi+000000ACh] mov ebx,[esi+68h] xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov ecx,[esi+000000A8h] mov eax,[esi+000000B0h] mov [esp+44h],ecx mov ecx,[esi+000000B4h] mov [esp+48h],edx mov edx,[esi+28h] mov [esp+50h],eax mov eax,[esp+10h] mov [esp+4Ch],ecx mov ecx,[esi+60h] mov [esp+34h],edx mov [esp+38h],eax xor edx,edx mov eax,ecx div ebx mov edi,[esi+64h] mov [esp+30h],esi mov [esp+3Ch],ecx mov [esp+40h],edi cmp eax,00000002h jc L00031D97 mov ecx,ebx L00031D97: mov ebp,[esi+6Ch] xor edx,edx mov eax,edi div ebp mov [esp+5Ch],ecx cmp eax,00000002h jc L00031DAB mov edi,ebp L00031DAB: test byte ptr [esi+04h],01h mov [esp+60h],edi mov [esp+20h],ecx mov [esp+24h],edi jz L00031DD3 mov ecx,[esi+00000224h] mov edx,[esi+0000022Ch] mov [esp+54h],ecx mov [esp+58h],edx jmp L00031DE7 L00031DD3: mov eax,[esi+00000158h] mov ecx,[esi+00000160h] mov [esp+54h],eax mov [esp+58h],ecx L00031DE7: lea edx,[esp+30h] push edx call SUB_L00030720 mov eax,[esp+18h] push eax call SUB_L00029670 test byte ptr [esi+04h],01h jz L00031E15 mov ecx,[esi+00000224h] mov edx,[esp+68h] mov [edx],ecx mov eax,[esi+0000022Ch] jmp L00031E27 L00031E15: mov ecx,[esi+00000158h] mov edx,[esp+68h] mov [edx],ecx mov eax,[esi+00000160h] L00031E27: mov ecx,[esi+68h] mov [esi+70h],eax mov eax,[esi+60h] xor edx,edx div ecx cmp eax,00000002h jnc L00031E3D mov ecx,[esp+5Ch] L00031E3D: mov [esi+60h],ecx mov ecx,[esi+6Ch] mov eax,[esi+64h] xor edx,edx div ecx cmp eax,00000002h jnc L00031E58 mov edx,[esp+60h] mov [esi+64h],edx jmp L00031E5B L00031E58: mov [esi+64h],ecx L00031E5B: mov edx,[esi+000000B0h] xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov eax,[esi+000000A8h] mov ecx,[esi+000000ACh] shr eax,1 mov [esp+44h],eax mov eax,[esi+000000B4h] mov ebp,[esp+1Ch] mov ebx,[esp+14h] shr eax,1 shr ecx,1 mov [esp+4Ch],eax mov eax,[esp+10h] mov [esp+48h],ecx mov ecx,[esi+00000080h] imul ecx,eax shr edx,1 mov [esp+50h],edx add ecx,[esi+28h] cdq sub eax,edx mov edx,[esi+00000334h] sar eax,1 mov [esp+34h],ecx mov [esp+28h],eax mov [esp+38h],eax mov eax,[esi+0000033Ch] lea ecx,[esp+30h] shr ebp,1 shr ebx,1 push ecx mov [esp+34h],esi mov [esp+60h],ebp mov [esp+64h],ebx mov [esp+40h],ebp mov [esp+44h],ebx mov [esp+58h],edx mov [esp+5Ch],eax call SUB_L00030BA0 mov eax,[esi+0000033Ch] mov edx,[esi+00000334h] mov [esp+38h],eax xor eax,eax mov [esp+44h],eax mov [esp+50h],eax mov eax,[esp+20h] shr eax,1 mov [esp+20h],eax mov [esp+5Ch],eax mov eax,[esp+24h] shr eax,1 mov [esp+24h],eax mov [esp+60h],eax test byte ptr [esi+04h],01h mov [esp+34h],edx mov [esp+48h],ebp mov [esp+4Ch],ebx jz L00031F55 mov ecx,[esi+000002ACh] mov edx,[esi+000002B4h] mov [esp+54h],ecx mov [esp+58h],edx jmp L00031F69 L00031F55: mov eax,[esi+000001E0h] mov ecx,[esi+000001E8h] mov [esp+54h],eax mov [esp+58h],ecx L00031F69: lea edx,[esp+30h] push edx call SUB_L00030720 mov eax,[esp+18h] push eax call SUB_L00029670 test byte ptr [esi+04h],01h jz L00031F99 mov ecx,[esi+000002ACh] mov eax,[esp+68h] mov [eax+0Ch],ecx mov dx,[esi+000002B4h] jmp L00031FAD L00031F99: mov ecx,[esi+000001E0h] mov eax,[esp+68h] mov [eax+0Ch],ecx mov dx,[esi+000001E8h] L00031FAD: mov [eax+1Ah],dx mov edx,[esi+000000B0h] xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov eax,[esi+000000A8h] mov ecx,[esi+000000ACh] mov edi,[esi+28h] shr eax,1 mov [esp+44h],eax mov eax,[esi+000000B4h] shr edx,1 shr eax,1 mov [esp+50h],edx mov [esp+4Ch],eax mov eax,[esi+00000080h] shr ecx,1 mov edx,eax imul eax,[esp+10h] shr edx,1 mov [esp+48h],ecx mov ecx,[esp+28h] imul edx,ecx add edx,eax mov eax,[esi+00000334h] add edx,edi mov [esp+34h],edx mov [esp+38h],ecx mov ecx,[esi+0000033Ch] lea edx,[esp+30h] push edx mov [esp+34h],esi mov [esp+60h],ebp mov [esp+64h],ebx mov [esp+40h],ebp mov [esp+44h],ebx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov edx,[esp+20h] mov [esp+34h],eax xor eax,eax mov [esp+44h],eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+60h],eax test byte ptr [esi+04h],01h mov [esp+38h],ecx mov [esp+48h],ebp mov [esp+4Ch],ebx mov [esp+5Ch],edx jz L00032097 mov ecx,[esi+00000268h] mov edx,[esi+00000270h] mov [esp+54h],ecx mov [esp+58h],edx jmp L000320AB L00032097: mov eax,[esi+0000019Ch] mov ecx,[esi+000001A4h] mov [esp+54h],eax mov [esp+58h],ecx L000320AB: lea edx,[esp+30h] push edx call SUB_L00030720 mov eax,[esp+18h] push eax call SUB_L00029670 test byte ptr [esi+04h],01h jz L000320DE mov edx,[esi+00000268h] mov ecx,[esp+68h] mov [ecx+08h],edx mov ax,[esi+00000270h] jmp L00032534 L000320DE: mov edx,[esi+0000019Ch] mov ecx,[esp+68h] mov [ecx+08h],edx mov ax,[esi+000001A4h] jmp L00032534 L000320F7: cmp eax,524F4749h jz L00032577 cmp eax,56555949h jnz L00032DC1 L0003210D: mov edx,[esi+000000ACh] xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov ecx,[esi+000000A8h] mov eax,[esi+000000B0h] mov [esp+48h],edx mov edx,[esi+28h] mov [esp+44h],ecx mov ecx,[esi+000000B4h] mov [esp+34h],edx mov edx,[esp+10h] mov [esp+50h],eax mov eax,[esi+60h] mov [esp+4Ch],ecx mov ecx,[esi+64h] mov [esp+38h],edx mov [esp+3Ch],eax mov [esp+40h],ecx mov [esp+5Ch],eax mov eax,[esi+00000334h] mov [esp+60h],ecx mov ecx,[esi+0000033Ch] lea edx,[esp+30h] push edx mov [esp+34h],esi mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov edx,[esp+1Ch] mov ebp,[esi+60h] mov [esp+34h],eax xor eax,eax mov [esp+44h],eax mov [esp+50h],eax mov eax,[esp+14h] mov [esp+48h],edx mov [esp+4Ch],eax mov [esp+38h],ecx mov ecx,[esi+68h] xor edx,edx mov eax,ebp div ecx mov edi,[esi+6Ch] mov [esp+5Ch],ecx mov [esp+60h],edi cmp eax,00000002h jnc L000321D7 mov [esp+5Ch],ebp L000321D7: mov ecx,[esi+64h] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L000321EB mov edi,ecx mov [esp+60h],edi L000321EB: test byte ptr [esi+04h],01h mov ecx,[esp+5Ch] mov [esp+20h],ecx mov [esp+24h],edi jz L00032213 mov edx,[esi+00000224h] mov eax,[esi+0000022Ch] mov [esp+54h],edx mov [esp+58h],eax jmp L00032227 L00032213: mov ecx,[esi+00000158h] mov edx,[esi+00000160h] mov [esp+54h],ecx mov [esp+58h],edx L00032227: lea eax,[esp+30h] push eax call SUB_L00030720 mov ecx,[esp+18h] push ecx call SUB_L00029670 test byte ptr [esi+04h],01h jz L00032255 mov edx,[esi+00000224h] mov eax,[esp+68h] mov [eax],edx mov ecx,[esi+0000022Ch] jmp L00032267 L00032255: mov edx,[esi+00000158h] mov eax,[esp+68h] mov [eax],edx mov ecx,[esi+00000160h] L00032267: mov eax,[esi+60h] mov [esi+70h],ecx mov ecx,[esi+68h] xor edx,edx div ecx cmp eax,00000002h jnc L00032282 mov edx,[esp+5Ch] mov [esi+60h],edx jmp L00032285 L00032282: mov [esi+60h],ecx L00032285: mov ecx,[esi+6Ch] mov eax,[esi+64h] xor edx,edx div ecx cmp eax,00000002h jnc L0003229D mov eax,[esp+60h] mov [esi+64h],eax jmp L000322A0 L0003229D: mov [esi+64h],ecx L000322A0: mov edx,[esi+000000ACh] xor eax,eax mov ebp,[esp+1Ch] mov ebx,[esp+14h] shr edx,1 mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov eax,[esi+000000B0h] mov ecx,[esi+000000A8h] shr eax,1 mov [esp+48h],edx mov edx,[esi+00000080h] mov [esp+50h],eax mov eax,[esp+10h] imul edx,eax shr ecx,1 mov [esp+44h],ecx mov ecx,[esi+000000B4h] shr ecx,1 mov [esp+4Ch],ecx add edx,[esi+28h] mov ecx,[esi+0000033Ch] mov [esp+34h],edx cdq sub eax,edx sar eax,1 mov [esp+28h],eax mov [esp+38h],eax mov eax,[esi+00000334h] lea edx,[esp+30h] shr ebp,1 shr ebx,1 push edx mov [esp+34h],esi mov [esp+60h],ebp mov [esp+64h],ebx mov [esp+40h],ebp mov [esp+44h],ebx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov [esp+34h],eax xor eax,eax mov [esp+44h],eax mov [esp+50h],eax mov eax,[esp+20h] shr eax,1 mov [esp+20h],eax mov [esp+5Ch],eax mov eax,[esp+24h] shr eax,1 mov [esp+24h],eax mov [esp+60h],eax test byte ptr [esi+04h],01h mov [esp+38h],ecx mov [esp+48h],ebp mov [esp+4Ch],ebx jz L0003239A mov edx,[esi+00000268h] mov eax,[esi+00000270h] mov [esp+54h],edx mov [esp+58h],eax jmp L000323AE L0003239A: mov ecx,[esi+0000019Ch] mov edx,[esi+000001A4h] mov [esp+54h],ecx mov [esp+58h],edx L000323AE: lea eax,[esp+30h] push eax call SUB_L00030720 mov ecx,[esp+18h] push ecx call SUB_L00029670 test byte ptr [esi+04h],01h jz L000323DE mov edx,[esi+00000268h] mov eax,[esp+68h] mov [eax+08h],edx mov cx,[esi+00000270h] jmp L000323F2 L000323DE: mov edx,[esi+0000019Ch] mov eax,[esp+68h] mov [eax+08h],edx mov cx,[esi+000001A4h] L000323F2: mov [eax+1Ah],cx mov edx,[esi+000000A8h] shr edx,1 xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov eax,[esi+000000ACh] mov ecx,[esi+000000B0h] mov edi,[esi+28h] mov [esp+44h],edx mov edx,[esi+000000B4h] shr edx,1 shr eax,1 mov [esp+4Ch],edx mov [esp+48h],eax mov eax,[esi+00000080h] shr ecx,1 mov edx,eax imul eax,[esp+10h] shr edx,1 mov [esp+50h],ecx mov ecx,[esp+28h] imul edx,ecx add edx,eax mov eax,[esi+00000334h] add edx,edi mov [esp+34h],edx mov [esp+38h],ecx mov ecx,[esi+0000033Ch] lea edx,[esp+30h] push edx mov [esp+34h],esi mov [esp+60h],ebp mov [esp+64h],ebx mov [esp+40h],ebp mov [esp+44h],ebx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov edx,[esp+20h] mov [esp+34h],eax xor eax,eax mov [esp+44h],eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+60h],eax test byte ptr [esi+04h],01h mov [esp+38h],ecx mov [esp+48h],ebp mov [esp+4Ch],ebx mov [esp+5Ch],edx jz L000324DC mov ecx,[esi+000002ACh] mov edx,[esi+000002B4h] mov [esp+54h],ecx mov [esp+58h],edx jmp L000324F0 L000324DC: mov eax,[esi+000001E0h] mov ecx,[esi+000001E8h] mov [esp+54h],eax mov [esp+58h],ecx L000324F0: lea edx,[esp+30h] push edx call SUB_L00030720 mov eax,[esp+18h] push eax call SUB_L00029670 test byte ptr [esi+04h],01h jz L00032520 mov edx,[esi+000002ACh] mov ecx,[esp+68h] mov [ecx+0Ch],edx mov ax,[esi+000002B4h] jmp L00032534 L00032520: mov edx,[esi+000001E0h] mov ecx,[esp+68h] mov [ecx+0Ch],edx mov ax,[esi+000001E8h] L00032534: mov [ecx+1Ah],ax mov edi,[esi+60h] mov ebx,[esi+68h] xor edx,edx mov eax,edi div ebx cmp eax,00000002h jnc L00032551 shr edi,1 mov [ecx+36h],di jmp L00032557 L00032551: shr ebx,1 mov [ecx+36h],bx L00032557: mov edi,[esi+64h] mov ebx,[esi+6Ch] xor edx,edx mov eax,edi div ebx cmp eax,00000002h jc L00032DBB shr ebx,1 mov [ecx+3Eh],bx jmp L00032DC1 L00032577: cmp [esi+00000374h],ebp mov ecx,0000000Dh jz L00032A39 mov edx,[esi+000000ACh] xor eax,eax lea edi,[esp+30h] rep stosd mov ecx,[esi+000000A8h] mov eax,[esi+000000B0h] mov [esp+44h],ecx mov ecx,[esi+000000B4h] mov [esp+48h],edx mov edx,[esi+0Ch] mov [esp+50h],eax mov eax,[esi+64h] mov [esp+4Ch],ecx mov ecx,[esi+60h] test dh,08h mov edx,[esi+28h] mov [esp+30h],esi mov [esp+3Ch],ecx mov [esp+40h],eax jnz L000325D9 add edx,[esp+10h] L000325D9: mov [esp+34h],edx mov edx,[esp+10h] add edx,edx shr eax,1 mov [esp+28h],edx mov [esp+38h],edx mov [esp+5Ch],ecx mov ecx,[esi+0000033Ch] mov [esp+60h],eax mov eax,[esi+00000334h] lea edx,[esp+30h] push edx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov edx,[esp+1Ch] mov edi,[esi+68h] mov [esp+34h],eax xor eax,eax mov [esp+38h],ecx mov ecx,[esi+60h] mov [esp+44h],eax mov [esp+48h],edx mov [esp+50h],eax xor edx,edx mov eax,ecx div edi mov ebp,[esp+14h] shr ebp,1 mov [esp+4Ch],ebp mov [esp+5Ch],ecx cmp eax,00000002h jc L0003265C mov [esp+5Ch],edi L0003265C: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi mov [esp+60h],ecx cmp eax,00000002h jc L00032675 mov [esp+60h],edi L00032675: test byte ptr [esi+04h],01h jz L00032691 mov eax,[esi+00000224h] mov ecx,[esi+0000022Ch] mov [esp+54h],eax mov [esp+58h],ecx jmp L000326A5 L00032691: mov edx,[esi+00000158h] mov eax,[esi+00000160h] mov [esp+54h],edx mov [esp+58h],eax L000326A5: lea ecx,[esp+30h] push ecx call SUB_L00030720 mov edx,[esp+18h] push edx call SUB_L00029670 test byte ptr [esi+04h],01h jz L000326D3 mov eax,[esi+00000224h] mov ecx,[esp+68h] mov [ecx],eax mov edx,[esi+0000022Ch] jmp L000326E5 L000326D3: mov eax,[esi+00000158h] mov ecx,[esp+68h] mov [ecx],eax mov edx,[esi+00000160h] L000326E5: mov ecx,[esi+68h] mov eax,[esi+60h] mov [esi+70h],edx xor edx,edx div ecx cmp eax,00000002h jnc L00032700 mov eax,[esp+5Ch] mov [esi+60h],eax jmp L00032703 L00032700: mov [esi+60h],ecx L00032703: mov ecx,[esi+6Ch] mov eax,[esi+64h] xor edx,edx div ecx cmp eax,00000002h jnc L00032716 mov ecx,[esp+60h] L00032716: mov edx,[esi+000000A8h] mov ebx,[esp+1Ch] shr edx,1 mov [esi+64h],ecx xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov [esp+44h],edx mov edx,[esi+000000ACh] shr edx,1 mov [esp+48h],edx mov edx,[esi+000000B0h] shr edx,1 mov [esp+50h],edx mov edx,[esi+000000B4h] shr edx,1 shr ebx,1 mov [esp+4Ch],edx mov edx,[esi+0Ch] mov ecx,ebx mov eax,ebp test dh,08h mov edx,[esi+00000080h] mov [esp+30h],esi mov [esp+2Ch],ebx mov [esp+3Ch],ecx mov [esp+40h],eax jnz L0003277F inc edx L0003277F: imul edx,[esp+10h] add edx,[esi+28h] mov [esp+34h],edx mov edx,[esp+28h] shr eax,1 mov [esp+38h],edx mov [esp+5Ch],ecx mov ecx,[esi+0000033Ch] mov [esp+60h],eax mov eax,[esi+00000334h] lea edx,[esp+30h] push edx mov [esp+58h],eax mov [esp+5Ch],ecx call SUB_L00030BA0 mov eax,[esi+00000334h] mov ecx,[esi+0000033Ch] mov edx,[esp+1Ch] mov edi,[esi+68h] mov [esp+34h],eax xor eax,eax mov [esp+38h],ecx mov ecx,[esi+60h] mov [esp+44h],eax mov [esp+48h],edx mov [esp+50h],eax xor edx,edx mov eax,ecx div edi mov [esp+4Ch],ebp cmp eax,00000002h jnc L000327FE shr ecx,1 mov [esp+5Ch],ecx jmp L00032804 L000327FE: shr edi,1 mov [esp+5Ch],edi L00032804: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L0003281D shr ecx,1 mov [esp+60h],ecx jmp L00032823 L0003281D: shr edi,1 mov [esp+60h],edi L00032823: test byte ptr [esi+04h],01h jz L0003283F mov eax,[esi+00000268h] mov ecx,[esi+00000270h] mov [esp+54h],eax mov [esp+58h],ecx jmp L00032853 L0003283F: mov edx,[esi+0000019Ch] mov eax,[esi+000001A4h] mov [esp+54h],edx mov [esp+58h],eax L00032853: lea ecx,[esp+30h] push ecx call SUB_L00030720 mov edx,[esp+18h] push edx call SUB_L00029670 test byte ptr [esi+04h],01h jz L00032883 mov ecx,[esi+00000268h] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+00000270h] jmp L00032897 L00032883: mov ecx,[esi+0000019Ch] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+000001A4h] L00032897: mov [eax+1Ah],dx xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd mov ecx,[esi+000000A8h] shr ecx,1 mov [esp+44h],ecx mov ecx,[esi+000000ACh] shr ecx,1 mov [esp+48h],ecx mov ecx,[esi+000000B0h] shr ecx,1 mov [esp+50h],ecx mov ecx,[esi+000000B4h] shr ecx,1 mov [esp+4Ch],ecx mov ecx,[esi+0Ch] mov edx,ebx mov eax,ebp test ch,08h mov ecx,[esi+00000080h] mov [esp+30h],esi mov [esp+3Ch],edx mov [esp+40h],eax jz L00032901 imul ecx,[esp+10h] mov edi,ecx shr edi,1 jmp L00032910 L00032901: mov edi,ecx imul edi,[esp+10h] shr edi,1 inc ecx imul ecx,[esp+10h] L00032910: add edi,ecx add edi,[esi+28h] mov ecx,[esp+28h] shr eax,1 mov [esp+38h],ecx mov [esp+5Ch],edx mov edx,[esi+00000334h] mov [esp+60h],eax mov eax,[esi+0000033Ch] lea ecx,[esp+30h] push ecx mov [esp+38h],edi mov [esp+58h],edx mov [esp+5Ch],eax call SUB_L00030BA0 mov eax,[esi+0000033Ch] mov ecx,[esp+1Ch] mov edx,[esi+00000334h] mov edi,[esi+68h] mov [esp+38h],eax xor eax,eax mov [esp+48h],ecx mov ecx,[esi+60h] mov [esp+34h],edx mov [esp+44h],eax mov [esp+50h],eax xor edx,edx mov eax,ecx div edi mov [esp+4Ch],ebp cmp eax,00000002h jnc L0003298C shr ecx,1 mov [esp+5Ch],ecx jmp L00032992 L0003298C: shr edi,1 mov [esp+5Ch],edi L00032992: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L000329AB shr ecx,1 mov [esp+60h],ecx jmp L000329B1 L000329AB: shr edi,1 mov [esp+60h],edi L000329B1: test byte ptr [esi+04h],01h jz L000329CD mov edx,[esi+000002ACh] mov eax,[esi+000002B4h] mov [esp+54h],edx mov [esp+58h],eax jmp L000329E1 L000329CD: mov ecx,[esi+000001E0h] mov edx,[esi+000001E8h] mov [esp+54h],ecx mov [esp+58h],edx L000329E1: lea eax,[esp+30h] push eax call SUB_L00030720 mov ecx,[esp+18h] push ecx call SUB_L00029670 test byte ptr [esi+04h],01h jz L00032A1A mov eax,[esp+68h] mov edx,[esi+000002ACh] mov [eax+0Ch],edx mov cx,[esi+000002B4h] mov [eax+1Ah],cx mov ecx,eax jmp L00032D82 L00032A1A: mov eax,[esp+68h] mov edx,[esi+000001E0h] mov [eax+0Ch],edx mov cx,[esi+000001E8h] mov [eax+1Ah],cx mov ecx,eax jmp L00032D82 L00032A39: xor eax,eax lea edi,[esp+30h] rep stosd test byte ptr [esi+04h],01h jz L00032A5D mov edx,[esi+00000224h] mov eax,[esi+0000022Ch] mov [esp+54h],edx mov [esp+58h],eax jmp L00032A71 L00032A5D: mov ecx,[esi+00000158h] mov edx,[esi+00000160h] mov [esp+54h],ecx mov [esp+58h],edx L00032A71: mov edi,[esi+60h] mov ecx,[esi+68h] xor edx,edx mov eax,edi div ecx mov [esp+30h],esi mov [esp+5Ch],edi cmp eax,00000002h jc L00032A8E mov [esp+5Ch],ecx L00032A8E: mov ecx,[esi+64h] mov ebx,[esi+6Ch] xor edx,edx mov eax,ecx div ebx mov [esp+60h],ecx cmp eax,00000002h jc L00032AA7 mov [esp+60h],ebx L00032AA7: mov edx,[esi+000000ACh] mov eax,[esi+000000A8h] mov [esp+48h],edx mov edx,[esi+000000B4h] mov [esp+44h],eax mov eax,[esi+000000B0h] mov [esp+4Ch],edx mov [esp+50h],eax mov eax,[esi+28h] mov [esp+40h],ecx mov ecx,[esp+10h] lea edx,[esp+30h] push edx mov [esp+40h],edi mov [esp+38h],eax mov [esp+3Ch],ecx call SUB_L00030720 test byte ptr [esi+04h],01h jz L00032B0A mov eax,[esi+00000224h] mov ecx,[esp+68h] mov [ecx],eax mov edx,[esi+0000022Ch] jmp L00032B1C L00032B0A: mov eax,[esi+00000158h] mov ecx,[esp+68h] mov [ecx],eax mov edx,[esi+00000160h] L00032B1C: mov ecx,[esi+68h] mov eax,[esi+60h] mov [esi+70h],edx xor edx,edx div ecx cmp eax,00000002h jnc L00032B37 mov eax,[esp+5Ch] mov [esi+60h],eax jmp L00032B3A L00032B37: mov [esi+60h],ecx L00032B3A: mov ecx,[esi+6Ch] mov eax,[esi+64h] xor edx,edx div ecx cmp eax,00000002h jnc L00032B4D mov ecx,[esp+60h] L00032B4D: mov [esi+64h],ecx xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd test byte ptr [esi+04h],01h jz L00032B79 mov edx,[esi+00000268h] mov eax,[esi+00000270h] mov [esp+54h],edx mov [esp+58h],eax jmp L00032B8D L00032B79: mov ecx,[esi+0000019Ch] mov edx,[esi+000001A4h] mov [esp+54h],ecx mov [esp+58h],edx L00032B8D: mov ecx,[esi+000000ACh] mov ebx,[esp+10h] mov eax,[esp+1Ch] mov edi,[esi+28h] mov edx,[esi+000000B0h] shr ecx,1 mov [esp+48h],ecx mov ecx,[esi+00000080h] shr eax,1 imul ecx,ebx mov [esp+2Ch],eax mov [esp+3Ch],eax mov eax,[esi+000000A8h] shr eax,1 mov [esp+44h],eax mov eax,[esi+000000B4h] add ecx,edi mov edi,[esi+68h] shr edx,1 shr eax,1 mov [esp+34h],ecx mov ecx,[esi+60h] mov [esp+50h],edx mov [esp+4Ch],eax xor edx,edx mov eax,ecx div edi mov ebp,[esp+14h] shr ebp,1 mov [esp+30h],esi mov [esp+40h],ebp mov [esp+38h],ebx cmp eax,00000002h jnc L00032C0C shr ecx,1 mov [esp+5Ch],ecx jmp L00032C12 L00032C0C: shr edi,1 mov [esp+5Ch],edi L00032C12: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00032C2B shr ecx,1 mov [esp+60h],ecx jmp L00032C31 L00032C2B: shr edi,1 mov [esp+60h],edi L00032C31: lea edx,[esp+30h] push edx call SUB_L00030720 test byte ptr [esi+04h],01h jz L00032C57 mov ecx,[esi+00000268h] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+00000270h] jmp L00032C6B L00032C57: mov ecx,[esi+0000019Ch] mov eax,[esp+68h] mov [eax+08h],ecx mov dx,[esi+000001A4h] L00032C6B: mov [eax+1Ah],dx xor eax,eax mov ecx,0000000Dh lea edi,[esp+30h] rep stosd test byte ptr [esi+04h],01h jz L00032C98 mov eax,[esi+000002ACh] mov ecx,[esi+000002B4h] mov [esp+54h],eax mov [esp+58h],ecx jmp L00032CAC L00032C98: mov edx,[esi+000001E0h] mov eax,[esi+000001E8h] mov [esp+54h],edx mov [esp+58h],eax L00032CAC: mov ecx,[esi+60h] mov edi,[esi+68h] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00032CC5 shr ecx,1 mov [esp+5Ch],ecx jmp L00032CCB L00032CC5: shr edi,1 mov [esp+5Ch],edi L00032CCB: mov ecx,[esi+64h] mov edi,[esi+6Ch] xor edx,edx mov eax,ecx div edi cmp eax,00000002h jnc L00032CE4 shr ecx,1 mov [esp+60h],ecx jmp L00032CEA L00032CE4: shr edi,1 mov [esp+60h],edi L00032CEA: mov ecx,[esp+2Ch] mov eax,[esi+000000ACh] mov edx,[esi+000000A8h] mov [esp+3Ch],ecx mov ecx,[esi+000000B0h] shr ecx,1 shr eax,1 mov [esp+50h],ecx mov [esp+48h],eax mov eax,[esi+00000080h] mov ecx,eax shr ecx,1 shr edx,1 add ecx,eax mov [esp+44h],edx imul ecx,ebx mov edx,[esi+000000B4h] shr edx,1 mov [esp+4Ch],edx add ecx,[esi+28h] lea edx,[esp+30h] push edx mov [esp+34h],esi mov [esp+44h],ebp mov [esp+38h],ecx mov [esp+3Ch],ebx call SUB_L00030720 test byte ptr [esi+04h],01h jz L00032D6A mov eax,[esi+000002ACh] mov ecx,[esp+68h] mov [ecx+0Ch],eax mov dx,[esi+000002B4h] jmp L00032D7E L00032D6A: mov eax,[esi+000001E0h] mov ecx,[esp+68h] mov [ecx+0Ch],eax mov dx,[esi+000001E8h] L00032D7E: mov [ecx+1Ah],dx L00032D82: mov eax,[esp+1Ch] mov edi,[esp+20h] xor edx,edx div edi cmp eax,00000002h jnc L00032D9E mov ax,[esp+2Ch] mov [ecx+36h],ax jmp L00032DA4 L00032D9E: shr edi,1 mov [ecx+36h],di L00032DA4: mov eax,[esp+14h] mov edi,[esp+24h] xor edx,edx div edi cmp eax,00000002h jnc L00032DBB mov [ecx+3Eh],bp jmp L00032DC1 L00032DBB: shr edi,1 mov [ecx+3Eh],di L00032DC1: mov eax,[esi+04h] test al,01h jz L00032DE0 and eax,FFFFFFFEh or eax,00000002h pop edi mov [esi+04h],eax pop esi pop ebp mov eax,00000001h pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ L00032DE0: and eax,FFFFFFFDh or eax,00000001h pop edi mov [esi+04h],eax pop esi pop ebp mov eax,00000001h pop ebx add esp,00000054h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00032E00: push ebp mov ebp,esp sub esp,00000020h push ebx push esi push edi mov edi,[ebp+08h] mov ecx,[edi+00000664h] mov eax,[ecx+000000D0h] test eax,eax jnz L00032E26 push ecx call SUB_L00033074 test eax,eax jz L00032E68 L00032E26: mov [eax+000000E4h],edi mov eax,[ebp+14h] test eax,eax jz L00032E68 mov esi,[ebp+10h] cmp esi,0000000Ch jc L00032E68 mov ecx,[eax+08h] dec ecx jz L00033004 dec ecx jz L00032FC6 dec ecx jz L00032F8C dec ecx jz L00032F55 dec ecx jz L00032F03 dec ecx dec ecx jz L00032EA5 dec ecx jz L00032E70 L00032E68: or eax,FFFFFFFFh jmp L0003303A L00032E70: push 00000010h pop edx cmp [ebp+18h],edx jc L00032E68 cmp esi,00000014h jc L00032E68 mov ecx,[ebp+1Ch] push 00000001h pop ebx mov [ecx+0Ch],ebx mov dword ptr [ecx],0000000Fh mov [ecx+04h],edx push [eax+10h] push [eax+0Ch] push [edi+00000664h] call SUB_L0003388C jmp L00033038 L00032EA5: push 00000070h pop ecx cmp [ebp+18h],ecx jc L00032E68 cmp esi,00000020h jc L00032E68 mov esi,[ebp+1Ch] push 00000001h pop ebx mov [esi+0Ch],ebx mov dword ptr [esi],0000000Dh mov [esi+04h],ecx mov edx,[eax+10h] mov ecx,[eax+0Ch] mov [ebp+08h],edx mov edx,[eax+14h] mov [ebp+1Ch],edx mov edx,[eax+18h] mov eax,[eax+1Ch] mov [ebp+18h],eax lea eax,[esi+6Ch] push eax lea eax,[esi+40h] push eax lea eax,[esi+14h] push eax push [ebp+18h] push edx push [ebp+1Ch] push [ebp+08h] push ecx push [edi+00000664h] call SUB_L0003379C jmp L00032FC1 L00032F03: push 00000034h pop ecx cmp [ebp+18h],ecx jc L00032E68 cmp esi,ecx jc L00032E68 mov esi,[ebp+1Ch] push 00000001h pop ebx mov [esi+04h],ecx lea ecx,[eax+14h] push ecx lea ecx,[ebp-20h] push ecx mov [esi+0Ch],ebx mov dword ptr [esi],0000000Bh push [eax+10h] push [eax+0Ch] push [edi+00000664h] call SUB_L000336E4 mov [esi+10h],eax lea edi,[esi+14h] push 00000008h pop ecx lea esi,[ebp-20h] rep movsd jmp L00033038 L00032F55: push 00000014h pop ecx cmp [ebp+18h],ecx jc L00032E68 cmp esi,00000010h jc L00032E68 mov esi,[ebp+1Ch] push 00000001h pop ebx mov [esi+0Ch],ebx mov dword ptr [esi],00000009h mov [esi+04h],ecx push [eax+0Ch] push [edi+00000664h] call SUB_L00033413 jmp L00032FC1 L00032F8C: push 00000014h pop ecx cmp [ebp+18h],ecx jc L00032E68 cmp esi,00000010h jc L00032E68 mov esi,[ebp+1Ch] push 00000001h pop ebx mov [esi+0Ch],ebx mov dword ptr [esi],00000007h mov [esi+04h],ecx push [eax+0Ch] push [edi+00000664h] call SUB_L000333AB L00032FC1: mov [esi+10h],eax jmp L00033038 L00032FC6: push 00000024h pop ecx cmp [ebp+18h],ecx jc L00032E68 cmp esi,00000010h jc L00032E68 mov esi,[ebp+1Ch] push 00000001h pop ebx mov [esi+04h],ecx lea ecx,[esi+14h] push ecx mov [esi+0Ch],ebx mov dword ptr [esi],00000005h push [eax+0Ch] push [edi+00000664h] call SUB_L0003312B mov [esi+10h],al jmp L00033038 L00033004: mov eax,000000D4h cmp [ebp+18h],eax jc L00032E68 mov esi,[ebp+1Ch] push 00000001h pop ebx mov [esi+04h],eax lea eax,[esi+14h] push eax mov [esi+0Ch],ebx mov dword ptr [esi],00000003h call SUB_L000B0980 and byte ptr [esi+54h],00h and byte ptr [esi+00000094h],00h L00033038: mov eax,ebx L0003303A: pop edi pop esi pop ebx leave retn 0018h ;------------------------------------------------------------------------------ SUB_L00033041: mov eax,[esp+18h] test eax,eax jz L00033053 cmp dword ptr [esp+14h],00000108h jnc L00033058 L00033053: or eax,FFFFFFFFh jmp L00033071 L00033058: mov dword ptr [eax],00000002h mov dword ptr [eax+04h],00000001h add eax,00000008h push eax call SUB_L000B0950 push 00000001h pop eax L00033071: retn 0018h ;------------------------------------------------------------------------------ SUB_L00033074: push ebx push esi push edi mov edi,[esp+10h] mov ebx,[edi+000000ACh] push 000000E8h push 00000001h call OsAllocMem mov esi,eax test esi,esi jz L000330EF lea eax,[ebx+10h] mov [edi+000000D0h],esi mov [esi+000000DCh],eax lea eax,[esi+04h] push eax add ebx,00000050h push edi mov [esi+000000E0h],ebx call SUB_L00033475 lea eax,[esi+28h] push eax push edi call SUB_L000338A3 lea eax,[esi+4Ch] push eax push edi call SUB_L000338DB lea eax,[esi+70h] push eax push edi call SUB_L000338A3 lea eax,[esi+00000094h] push eax push edi call SUB_L00033913 lea eax,[esi+000000B8h] push eax push edi call SUB_L0003394B mov eax,esi L000330EF: pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ SUB_L000330F5: mov eax,[esp+04h] mov eax,[eax+000000D0h] L000330FF: mov eax,[eax] test eax,eax jz L0003310E mov ecx,[eax+04h] cmp ecx,[esp+08h] jnz L000330FF L0003310E: retn 0008h ;------------------------------------------------------------------------------ L00033111: mov eax,[esp+04h] push [eax] mov eax,[eax+0Ch] push [eax+00000664h] call SUB_L0003324A push 00000001h pop eax retn 0004h ;------------------------------------------------------------------------------ SUB_L0003312B: push ebp mov ebp,esp push ecx push ebx push esi push edi mov edi,[ebp+08h] mov ebx,[edi+000000D0h] test ebx,ebx mov eax,[edi+000000ACh] mov [ebp-04h],eax jnz L00033158 push edi call SUB_L00033074 mov ebx,eax test ebx,ebx jz L00033225 L00033158: push [ebp+0Ch] push edi call SUB_L000330F5 test eax,eax jnz L00033241 push edi call SUB_L00033AE7 test eax,eax mov ecx,[ebp+10h] mov [ecx+0Ch],eax jz L00033225 mov eax,[ebx+000000E4h] push [eax+04h] push L00033111 push [ebp+0Ch] call jmp_WIN32K.SYS!EngCreateDriverObj test eax,eax mov [ebp+08h],eax jz L00033225 push 00000034h push 00000001h call OsAllocMem mov esi,eax xor eax,eax cmp esi,eax jz L000331F0 mov ecx,[ebx] mov [esi],ecx mov [ebx],esi mov ebx,[ebp+0Ch] push esi push edi mov [esi+04h],ebx mov [esi+08h],eax mov [esi+0Ch],eax mov [esi+14h],ebx call SUB_L00033982 test eax,eax jz L00033212 mov eax,[ebp-04h] push 00000003h push 00000BC8h push [eax+44h] push esi push edi call SUB_L00033A0E xor ecx,ecx cmp eax,ecx mov [esi+10h],eax jnz L000331FC push ecx push ecx jmp L00033216 L000331F0: push eax push eax push [ebp+08h] call jmp_WIN32K.SYS!EngDeleteDriverObj jmp L00033225 L000331FC: push 00000002h push 04000000h push ecx push esi push edi call SUB_L00033A3A test eax,eax mov [esi+18h],eax jnz L00033229 L00033212: push 00000000h push 00000000h L00033216: push [ebp+08h] call jmp_WIN32K.SYS!EngDeleteDriverObj push ebx push edi call SUB_L0003324A L00033225: xor al,al jmp L00033243 L00033229: mov eax,[ebp+10h] or dword ptr [eax],FFFFFFFFh mov ecx,[esi+10h] add ecx,00000010h mov [eax+04h],ecx mov ecx,[esi+10h] add ecx,00000050h mov [eax+08h],ecx L00033241: mov al,01h L00033243: pop edi pop esi pop ebx leave retn 000Ch ;------------------------------------------------------------------------------ SUB_L0003324A: push ebx push esi push edi push [esp+14h] mov edi,[esp+14h] mov ebx,[edi+000000D0h] push edi call SUB_L000330F5 mov esi,eax test esi,esi jz L000332BE push edi call SUB_L00029670 L0003326D: mov eax,[esi+08h] test eax,eax jz L0003327D push eax push edi call SUB_L00033413 jmp L0003326D L0003327D: mov eax,[esi+0Ch] test eax,eax jz L0003328E push eax push esi push edi call SUB_L0003331E jmp L0003327D L0003328E: mov eax,[esi+10h] test eax,eax jz L0003329D push eax push esi push edi call SUB_L00033A86 L0003329D: mov eax,[esi+18h] test eax,eax jz L000332AC push eax push esi push edi call SUB_L00033A9C L000332AC: push esi push edi call SUB_L000339F1 push esi push ebx call SUB_L000332E2 test eax,eax jnz L000332C2 L000332BE: xor al,al jmp L000332DC L000332C2: cmp dword ptr [ebx],00000000h jnz L000332DA push 00000006h lea esi,[ebx+04h] pop ebx L000332CD: push esi push edi call SUB_L00033B34 add esi,00000024h dec ebx jnz L000332CD L000332DA: mov al,01h L000332DC: pop edi pop esi pop ebx retn 0008h ;------------------------------------------------------------------------------ SUB_L000332E2: mov ecx,[esp+04h] mov eax,[ecx] mov edx,[esp+08h] cmp edx,eax jnz L000332F6 mov eax,[edx] mov [ecx],eax jmp L0003330E L000332F6: test eax,eax jz L00033319 L000332FA: mov ecx,[eax] cmp ecx,edx jz L00033306 mov eax,ecx test eax,eax jnz L000332FA L00033306: test eax,eax jz L00033319 mov ecx,[edx] mov [eax],ecx L0003330E: push edx call OsFreeMem push 00000001h pop eax jmp L0003331B L00033319: xor eax,eax L0003331B: retn 0008h ;------------------------------------------------------------------------------ SUB_L0003331E: push esi mov esi,[esp+10h] mov eax,[esi+08h] test eax,eax push edi mov edi,[esi+0Ch] jle L00033348 push ebx mov ebx,eax L00033331: mov eax,[esp+10h] push edi push [eax+000000A8h] call SUB_L00026030 add edi,00000044h dec ebx jnz L00033331 pop ebx L00033348: push [esi+0Ch] call OsFreeMem mov eax,[esp+10h] push esi add eax,0000000Ch push eax call SUB_L0003336D test eax,eax jz L00033368 push esi call OsFreeMem L00033368: pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ SUB_L0003336D: mov edx,[esp+04h] mov ecx,[edx] test ecx,ecx jnz L0003337B xor eax,eax jmp L000333A8 L0003337B: mov eax,[esp+08h] cmp eax,ecx mov ecx,[eax] jnz L0003338D test ecx,ecx mov [edx],ecx jz L000333A5 jmp L0003339F L0003338D: test ecx,ecx jnz L00033398 mov eax,[eax+04h] and [eax],ecx jmp L000333A5 L00033398: mov edx,[eax+04h] mov [edx],ecx mov ecx,[eax] L0003339F: mov eax,[eax+04h] mov [ecx+04h],eax L000333A5: push 00000001h pop eax L000333A8: retn 0008h ;------------------------------------------------------------------------------ SUB_L000333AB: push ebx push esi push edi push [esp+14h] mov edi,[esp+14h] mov ebx,[edi+000000D0h] push edi call SUB_L000330F5 mov esi,eax test esi,esi jz L0003340F push 00000058h push 00000001h call OsAllocMem test eax,eax jz L0003340F mov ecx,[esi+08h] mov [eax],ecx mov [esi+08h],eax or dword ptr [eax+08h],FFFFFFFFh mov [eax+04h],esi mov ecx,[edi+00000120h] push 00000006h mov [eax+0Ch],ecx lea ecx,[eax+14h] lea edx,[ebx+04h] pop esi L000333F6: mov [ecx-04h],edx and dword ptr [ecx],00000000h and dword ptr [ecx+04h],00000000h add edx,00000024h add ecx,0000000Ch dec esi jnz L000333F6 L00033409: pop edi pop esi pop ebx retn 0008h ;------------------------------------------------------------------------------ L0003340F: xor eax,eax jmp L00033409 SUB_L00033413: push ebp mov ebp,esp push ecx mov eax,[ebp+08h] mov eax,[eax+000000D0h] push ebx push esi push edi mov edi,[ebp+0Ch] mov ecx,[edi+04h] mov [ebp-04h],ecx lea ebx,[eax+04h] lea esi,[edi+18h] mov dword ptr [ebp+0Ch],00000006h L00033439: push [esi-04h] push ebx push [ebp+08h] call SUB_L00033D0D push [esi] push ebx push [ebp+08h] call SUB_L00033D0D add esi,0000000Ch add ebx,00000024h dec [ebp+0Ch] jnz L00033439 mov eax,[ebp-04h] push edi add eax,00000008h push eax call SUB_L000332E2 neg eax pop edi sbb eax,eax pop esi neg eax pop ebx leave retn 0008h ;------------------------------------------------------------------------------ SUB_L00033475: mov eax,[esp+08h] xor ecx,ecx mov dword ptr [eax],02000800h mov dword ptr [eax+04h],00002000h mov [eax+08h],ecx mov dword ptr [eax+0Ch],00000080h mov dword ptr [eax+10h],00000010h mov dword ptr [eax+14h],00000001h mov byte ptr [eax+18h],01h mov [eax+1Ch],ecx mov [eax+20h],ecx retn 0008h ;------------------------------------------------------------------------------ SUB_L000334AD: push ebp mov ebp,esp push ecx push ecx mov eax,[ebp+08h] push ebx mov ebx,[ebp+10h] push esi push edi mov edi,[ebp+0Ch] and dword ptr [ebp+0Ch],00000000h mov [eax+74h],edi mov ecx,[edi+14h] mov esi,[ecx] test esi,esi mov eax,[ebx] mov [ebp-08h],ecx mov [ebp-04h],eax jz L0003353A cmp dword ptr [ebx+04h],00000000h jz L0003353A push 00000004h and eax,00000001h pop edx sub edx,eax add [ebp-04h],edx cmp dword ptr [esi],00000000h jz L00033519 lea eax,[ebx+04h] mov [ebp+10h],eax jmp L000334F7 L000334F4: mov eax,[ebp+10h] L000334F7: cmp dword ptr [eax+04h],00000000h jz L00033519 push [eax] push esi push [eax-04h] push ecx call SUB_L00033586 inc [ebp+0Ch] add dword ptr [ebp+10h],00000004h mov ecx,esi mov esi,[esi] cmp dword ptr [esi],00000000h jnz L000334F4 L00033519: mov edx,[ebp+0Ch] push [ebx+edx*4+04h] lea eax,[edx+01h] push esi push [ebx+edx*4] mov [ebp+0Ch],eax push ecx call SUB_L000335CE mov eax,[ebp+0Ch] mov ecx,esi mov esi,[esi] mov [ebp+0Ch],eax L0003353A: mov eax,[ebp+0Ch] mov ebx,[ebx+eax*4] test bl,01h jz L0003354C mov eax,[ecx+08h] and dword ptr [eax+ebx*4],00000000h L0003354C: and dword ptr [ecx],00000000h test esi,esi jz L0003355F push esi push [edi+10h] push [ebp+08h] call SUB_L00033D0D L0003355F: push [ebp-04h] push [ebp-08h] push [ebp+08h] call SUB_L0003361D push eax push [ebp-08h] mov [edi+08h],eax push [edi+10h] push [ebp+08h] call SUB_L00033D34 pop edi pop esi pop ebx leave retn 000Ch ;------------------------------------------------------------------------------ SUB_L00033586: mov eax,[esp+04h] mov ecx,[esp+08h] test cl,01h mov eax,[eax+08h] lea eax,[eax+ecx*4] jnz L0003359F and dword ptr [eax],00000000h add eax,00000004h L0003359F: mov edx,[esp+0Ch] mov dword ptr [eax],18000001h mov ecx,[edx+0Ch] mov [eax+04h],ecx mov ecx,[esp+10h] mov edx,[edx+0Ch] push esi mov esi,ecx and esi,00000001h sub ecx,esi add ecx,00000003h and ecx,FFFFFFFEh lea ecx,[edx+ecx*4] mov [eax+08h],ecx pop esi retn 0010h ;------------------------------------------------------------------------------ SUB_L000335CE: mov eax,[esp+04h] mov ecx,[esp+08h] test cl,01h mov eax,[eax+08h] lea eax,[eax+ecx*4] jnz L000335E7 and dword ptr [eax],00000000h add eax,00000004h L000335E7: mov edx,[esp+10h] test dl,01h mov ecx,[esp+0Ch] push esi jz L000335FC mov esi,[ecx+08h] and dword ptr [esi+edx*4],00000000h L000335FC: inc edx mov dword ptr [eax],18000001h mov esi,[ecx+0Ch] and edx,FFFFFFFEh mov [eax+04h],esi mov ecx,[ecx+0Ch] dec edx and edx,FFFFFFFEh lea ecx,[ecx+edx*4] mov [eax+08h],ecx pop esi retn 0010h ;------------------------------------------------------------------------------ SUB_L0003361D: push esi push edi mov edi,[esp+0Ch] mov esi,[edi+000000ACh] push 00000008h push edi call HS_MM_GetRingSpace mov ecx,[esp+10h] mov dword ptr [eax],18000001h mov edx,[ecx+0Ch] mov [eax+04h],edx mov edx,[esp+14h] mov ecx,[ecx+0Ch] add eax,00000004h add eax,00000004h dec edx and edx,FFFFFFFEh lea ecx,[ecx+edx*4] mov [eax],ecx add eax,00000004h mov dword ptr [eax],02000001h and dword ptr [eax+04h],00000000h push [esi+54h] add eax,00000004h add eax,00000004h push eax mov eax,[esi+50h] inc eax inc eax push eax push edi call SUB_L0002DD30 add dword ptr [esi+50h],00000002h push 00000008h push edi call HS_FireRing mov eax,[esi+50h] pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ SUB_L0003368E: push ebp mov ebp,esp push esi mov esi,[ebp+0Ch] mov eax,[esi+10h] push edi push 00000008h push eax push [ebp+08h] call SUB_L00033C1C xor edx,edx test eax,eax mov [ebp+0Ch],eax jz L000336CC mov ecx,[ebp+10h] push ebx L000336B1: mov ebx,[eax+0Ch] mov edi,[esi+04h] add ebx,[edi+18h] inc edx mov [ecx],ebx mov eax,[eax] add ecx,00000004h test eax,eax jnz L000336B1 cmp edx,00000008h pop ebx jnc L000336DB L000336CC: mov eax,[ebp+10h] push 00000008h pop ecx lea edi,[eax+edx*4] sub ecx,edx xor eax,eax rep stosd L000336DB: mov eax,[ebp+0Ch] pop edi pop esi pop ebp retn 000Ch ;------------------------------------------------------------------------------ SUB_L000336E4: push ebp mov ebp,esp push esi mov esi,[ebp+0Ch] mov ecx,[esi+0Ch] push edi mov edi,[ebp+08h] mov eax,[edi+00000120h] and ecx,FFFFFFFEh cmp eax,ecx jz L00033703 and dword ptr [ebp+10h],FFFFFFF9h L00033703: cmp dword ptr [edi+00000128h],00000000h jz L00033710 and dword ptr [ebp+10h],FFFFFFF9h L00033710: test byte ptr [ebp+10h],02h mov [esi+0Ch],eax jz L00033731 mov eax,[ebp+18h] cmp dword ptr [eax],00000000h jz L00033731 cmp dword ptr [esi+14h],00000000h jz L00033731 push eax push esi push edi call SUB_L000334AD jmp L0003373D L00033731: push [esi+14h] push [esi+10h] push edi call SUB_L00033D0D L0003373D: test byte ptr [ebp+10h],04h jz L00033750 L00033743: push [esi+08h] push edi call SUB_L00033772 test eax,eax jz L00033743 L00033750: test byte ptr [ebp+10h],01h jz L00033765 push [ebp+14h] push esi push edi call SUB_L0003368E mov [esi+14h],eax jmp L00033769 L00033765: and dword ptr [esi+14h],00000000h L00033769: mov eax,[esi+08h] pop edi pop esi pop ebp retn 0014h ;------------------------------------------------------------------------------ SUB_L00033772: mov eax,[esp+04h] mov ecx,[eax+000000D0h] mov eax,[ecx+000000DCh] mov eax,[eax] mov ecx,[ecx+000000E0h] mov ecx,[ecx] sub eax,[esp+08h] sub ecx,[esp+08h] cmp ecx,eax sbb eax,eax inc eax retn 0008h ;------------------------------------------------------------------------------ SUB_L0003379C: push ebp mov ebp,esp push ebx push esi push edi mov edi,[ebp+1Ch] test edi,edi jle L0003381A cmp edi,0000000Bh jg L0003381A mov eax,edi imul eax,44h push eax push 00000000h call OsAllocMem mov esi,eax test esi,esi jz L0003381A mov ebx,[ebp+08h] push esi push edi push [ebp+18h] push [ebp+14h] push [ebp+10h] push 020C0000h push [ebx+000000A8h] call SUB_L00028500 test eax,eax jz L00033814 mov eax,[ebp+0Ch] mov eax,[eax+04h] push 00000010h add eax,0000000Ch push eax call SUB_L00033863 test eax,eax jnz L00033823 test edi,edi mov [ebp+24h],esi jle L00033814 L000337FF: push [ebp+24h] push [ebx+000000A8h] call SUB_L00026030 add dword ptr [ebp+24h],00000044h dec edi jnz L000337FF L00033814: push esi call OsFreeMem L0003381A: xor eax,eax L0003381C: pop edi pop esi pop ebx pop ebp retn 0024h ;------------------------------------------------------------------------------ L00033823: test edi,edi mov edx,[ebp+28h] mov [eax+0Ch],esi mov [eax+08h],edi mov ecx,[esi+04h] mov [edx],ecx jle L0003381C mov edx,[ebp+24h] lea ecx,[esi+0Ch] mov esi,[ebp+20h] sub esi,edx mov [ebp+24h],edi L00033843: mov ebx,[ecx-08h] mov edi,[ebp+0Ch] mov edi,[edi+04h] add ebx,[edi+18h] mov [esi+edx],ebx mov edi,[ecx] mov [edx],edi add edx,00000004h add ecx,00000044h dec [ebp+24h] jnz L00033843 jmp L0003381C SUB_L00033863: push [esp+08h] push 00000000h call OsAllocMem test eax,eax jz L00033889 mov ecx,[esp+04h] mov edx,[ecx] and dword ptr [eax+04h],00000000h test edx,edx mov [eax],edx jz L00033887 mov edx,[ecx] mov [edx+04h],eax L00033887: mov [ecx],eax L00033889: retn 0008h ;------------------------------------------------------------------------------ SUB_L0003388C: push [esp+0Ch] mov eax,[esp+0Ch] push [eax+04h] push [esp+0Ch] call SUB_L0003331E retn 000Ch ;------------------------------------------------------------------------------ SUB_L000338A3: mov eax,[esp+08h] xor ecx,ecx mov dword ptr [eax],02000800h mov dword ptr [eax+04h],00008000h mov [eax+08h],ecx mov dword ptr [eax+0Ch],00000080h mov dword ptr [eax+10h],00000002h mov dword ptr [eax+14h],00000001h mov byte ptr [eax+18h],01h mov [eax+1Ch],ecx mov [eax+20h],ecx retn 0008h ;------------------------------------------------------------------------------ SUB_L000338DB: mov eax,[esp+08h] xor ecx,ecx mov dword ptr [eax],02000800h mov dword ptr [eax+04h],00004000h mov [eax+08h],ecx mov dword ptr [eax+0Ch],00000080h mov dword ptr [eax+10h],00000002h mov dword ptr [eax+14h],00000001h mov byte ptr [eax+18h],01h mov [eax+1Ch],ecx mov [eax+20h],ecx retn 0008h ;------------------------------------------------------------------------------ SUB_L00033913: mov eax,[esp+08h] xor ecx,ecx mov dword ptr [eax],02000800h mov dword ptr [eax+04h],00001000h mov [eax+08h],ecx mov dword ptr [eax+0Ch],00000100h mov dword ptr [eax+10h],00000010h mov dword ptr [eax+14h],00000001h mov byte ptr [eax+18h],01h mov [eax+1Ch],ecx mov [eax+20h],ecx retn 0008h ;------------------------------------------------------------------------------ SUB_L0003394B: mov eax,[esp+08h] xor ecx,ecx mov dword ptr [eax],02000800h mov dword ptr [eax+04h],00001000h mov [eax+08h],ecx mov dword ptr [eax+0Ch],00000400h mov dword ptr [eax+10h],00000080h mov dword ptr [eax+14h],00000001h mov [eax+18h],cl mov [eax+1Ch],ecx mov [eax+20h],ecx retn 0008h ;------------------------------------------------------------------------------ SUB_L00033982: push ebp mov ebp,esp sub esp,00000018h push esi mov esi,[ebp+0Ch] lea eax,[ebp+0Ch] push eax push 00000018h lea eax,[ebp-18h] push eax mov eax,[ebp+08h] push 00000000h push 00000000h push 00232800h push [eax+000000E8h] call OsDeviceIoControl cmp dword ptr [ebp+0Ch],00000018h jnz L000339E6 mov ecx,[ebp-14h] mov eax,[ebp-18h] mov [esi+28h],ecx mov ecx,[ebp-10h] mov [esi+2Ch],ecx mov ecx,[ebp-0Ch] mov [esi+30h],ecx mov ecx,[ebp-08h] mov [esi+20h],ecx lea ecx,[ebp+08h] push ecx mov [esi+24h],eax call eax test eax,eax jnz L000339E1 mov eax,[ebp+08h] mov [esi+1Ch],eax L000339E1: push 00000001h pop eax jmp L000339EC L000339E6: and dword ptr [esi+28h],00000000h xor eax,eax L000339EC: pop esi leave retn 0008h ;------------------------------------------------------------------------------ SUB_L000339F1: mov eax,[esp+08h] mov ecx,[eax+28h] test ecx,ecx jz L00033A08 push [eax+1Ch] call ecx neg eax sbb eax,eax inc eax jmp L00033A0B L00033A08: push 00000001h pop eax L00033A0B: retn 0008h ;------------------------------------------------------------------------------ SUB_L00033A0E: push ebp mov ebp,esp mov eax,[ebp+0Ch] push [eax+20h] lea ecx,[ebp+0Ch] push ecx push [eax+1Ch] push [ebp+18h] push [ebp+14h] push [ebp+10h] push [eax+14h] call [eax+2Ch] neg eax sbb eax,eax not eax and eax,[ebp+0Ch] pop ebp retn 0014h ;------------------------------------------------------------------------------ SUB_L00033A3A: push ebp mov ebp,esp sub esp,00000018h mov eax,[ebp+10h] mov [ebp-0Ch],eax mov eax,[ebp+14h] mov [ebp-08h],eax lea eax,[ebp+10h] push eax push 0000000Ch lea eax,[ebp-18h] push eax push 0000000Ch lea eax,[ebp-0Ch] push eax mov eax,[ebp+08h] push 002320C8h push [eax+000000E8h] mov dword ptr [ebp-04h],00000001h call OsDeviceIoControl mov eax,[ebp-14h] neg eax sbb eax,eax not eax and eax,[ebp-18h] leave retn 0014h ;------------------------------------------------------------------------------ SUB_L00033A86: push [esp+0Ch] mov eax,[esp+0Ch] push [eax+14h] call [eax+30h] neg eax sbb eax,eax inc eax retn 000Ch ;------------------------------------------------------------------------------ SUB_L00033A9C: push ebp mov ebp,esp sub esp,0000000Ch mov eax,[ebp+0Ch] mov eax,[eax+04h] mov [ebp-04h],eax mov eax,[ebp+10h] mov [ebp-0Ch],eax lea eax,[ebp+10h] push eax push 00000004h lea eax,[ebp+0Ch] push eax push 0000000Ch lea eax,[ebp-0Ch] push eax mov eax,[ebp+08h] push 002320CCh push [eax+000000E8h] mov dword ptr [ebp-08h],00000001h call OsDeviceIoControl xor eax,eax cmp [ebp+0Ch],eax setz al leave retn 000Ch ;------------------------------------------------------------------------------ SUB_L00033AE7: mov eax,[esp+04h] mov eax,[eax+10h] mov ecx,eax and ecx,FFFF0000h cmp ecx,00010000h jz L00033B02 xor eax,eax jmp L00033B31 L00033B02: and eax,FFFFFF00h cmp eax,00010100h jz L00033B2E cmp eax,00010200h jz L00033B2A xor ecx,ecx cmp eax,00010300h setz cl dec ecx and ecx,FFFFFFFDh add ecx,00000003h mov eax,ecx jmp L00033B31 L00033B2A: push 00000002h jmp L00033B30 L00033B2E: push 00000001h L00033B30: pop eax L00033B31: retn 0004h ;------------------------------------------------------------------------------ SUB_L00033B34: push esi push edi mov edi,[esp+10h] mov eax,[edi+1Ch] test eax,eax jz L00033B53 L00033B41: mov esi,[eax] push eax push [esp+10h] call SUB_L00033B84 test esi,esi mov eax,esi jnz L00033B41 L00033B53: mov eax,[edi+20h] test eax,eax jz L00033B73 mov esi,[eax] and dword ptr [eax],00000000h L00033B5F: test esi,esi mov eax,esi jz L00033B73 mov esi,[esi] push eax push [esp+10h] call SUB_L00033B84 jmp L00033B5F L00033B73: and dword ptr [edi+1Ch],00000000h and dword ptr [edi+20h],00000000h and dword ptr [edi+08h],00000000h pop edi pop esi retn 0008h ;------------------------------------------------------------------------------ SUB_L00033B84: push esi mov esi,[esp+0Ch] lea eax,[esi+08h] push eax mov eax,[esp+0Ch] push [eax+000000A8h] call SUB_L00026030 push esi call OsFreeMem pop esi retn 0008h ;------------------------------------------------------------------------------ SUB_L00033BA6: push ebp mov ebp,esp push ecx push ebx mov ebx,[ebp+0Ch] mov eax,[ebx+20h] test eax,eax push esi jz L00033C16 mov esi,[eax] test esi,esi jz L00033C16 mov eax,[esi+04h] push eax push [ebp+08h] mov [ebp+0Ch],eax call SUB_L00033772 test eax,eax jz L00033C16 cmp [esi],esi push edi mov edi,esi jz L00033BFC L00033BD6: mov eax,[edi] mov eax,[eax+04h] cmp eax,[ebp+0Ch] mov [ebp-04h],eax jz L00033BF6 push eax push [ebp+08h] call SUB_L00033772 test eax,eax jz L00033BFC mov eax,[ebp-04h] mov [ebp+0Ch],eax L00033BF6: mov edi,[edi] cmp [edi],esi jnz L00033BD6 L00033BFC: mov eax,[edi] cmp eax,esi jnz L00033C08 and dword ptr [ebx+20h],00000000h jmp L00033C0D L00033C08: mov ecx,[ebx+20h] mov [ecx],eax L00033C0D: mov eax,[ebx+1Ch] mov [edi],eax mov [ebx+1Ch],esi pop edi L00033C16: pop esi pop ebx leave retn 0008h ;------------------------------------------------------------------------------ SUB_L00033C1C: push ebp mov ebp,esp push ebx push edi mov edi,[ebp+0Ch] push edi push [ebp+08h] call SUB_L00033BA6 mov ebx,[edi+1Ch] test ebx,ebx jnz L00033C44 push edi push [ebp+08h] call SUB_L00033C8B test eax,eax jz L00033C85 mov ebx,[edi+1Ch] L00033C44: push esi push 00000001h pop eax cmp [ebp+10h],eax mov esi,ebx mov [ebp+0Ch],eax jbe L00033C7A L00033C52: cmp dword ptr [esi],00000000h jnz L00033C6D and dword ptr [edi+1Ch],00000000h push edi push [ebp+08h] call SUB_L00033C8B test eax,eax jz L00033C7A mov eax,[edi+1Ch] mov [esi],eax L00033C6D: inc [ebp+0Ch] mov eax,[ebp+0Ch] cmp eax,[ebp+10h] mov esi,[esi] jc L00033C52 L00033C7A: mov eax,[esi] mov [edi+1Ch],eax and dword ptr [esi],00000000h mov eax,ebx pop esi L00033C85: pop edi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ SUB_L00033C8B: push ebx push esi mov esi,[esp+10h] mov eax,[esi+10h] push edi mov edi,[esi+0Ch] sub edi,[esi+08h] cmp edi,eax jbe L00033CA1 mov edi,eax L00033CA1: xor ebx,ebx test edi,edi jbe L00033CC5 L00033CA7: push esi push [esp+14h] call SUB_L00033CCD test eax,eax jz L00033CC5 mov ecx,[esi+1Ch] mov [eax],ecx inc [esi+08h] inc ebx cmp ebx,edi mov [esi+1Ch],eax jc L00033CA7 L00033CC5: pop edi pop esi mov eax,ebx pop ebx retn 0008h ;------------------------------------------------------------------------------ SUB_L00033CCD: push esi push 0000004Ch push 00000001h call OsAllocMem mov esi,eax test esi,esi jz L00033D03 lea eax,[esi+08h] push eax mov eax,[esp+10h] push [eax+04h] push [eax] mov eax,[esp+14h] push [eax+000000A8h] call SUB_L00026250 test eax,eax jnz L00033D07 push esi call OsFreeMem L00033D03: xor eax,eax jmp L00033D09 L00033D07: mov eax,esi L00033D09: pop esi retn 0008h ;------------------------------------------------------------------------------ SUB_L00033D0D: mov ecx,[esp+0Ch] test ecx,ecx jz L00033D31 mov edx,[ecx] mov eax,ecx L00033D19: test edx,edx jz L00033D23 mov eax,edx mov edx,[eax] jmp L00033D19 L00033D23: mov edx,[esp+08h] push esi mov esi,[edx+1Ch] mov [eax],esi mov [edx+1Ch],ecx pop esi L00033D31: retn 000Ch ;------------------------------------------------------------------------------ SUB_L00033D34: push esi mov esi,[esp+10h] test esi,esi jz L00033D70 cmp dword ptr [esi],00000000h mov ecx,[esp+14h] mov eax,esi jz L00033D52 L00033D48: mov [eax+04h],ecx mov eax,[eax] cmp dword ptr [eax],00000000h jnz L00033D48 L00033D52: mov edx,[esp+0Ch] mov [eax+04h],ecx mov ecx,[edx+20h] test ecx,ecx jnz L00033D64 mov [eax],esi jmp L00033D6D L00033D64: mov ecx,[ecx] mov [eax],ecx mov ecx,[edx+20h] mov [ecx],esi L00033D6D: mov [edx+20h],eax L00033D70: pop esi retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00033D80: mov eax,[esp+08h] mov ecx,[esp+04h] mov eax,[ecx+eax*4+000000BCh] retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00033DA0: mov eax,[esp+08h] mov ecx,[esp+04h] mov eax,[ecx+eax*4+000000E8h] retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00033DC0: sub esp,0000000Ch push esi push edi mov edi,[esp+18h] fld dword ptr [edi+000048CCh] mov eax,[edi+000048C0h] fcomp dword ptr [L000B23F0] mov [esp+08h],eax fnstsw ax test ah,40h jnz L00033DF6 fld dword ptr [L000B2380] fdiv dword ptr [edi+000048CCh] fstp dword ptr [esp+18h] L00033DF6: mov eax,[edi+0000483Ch] cmp eax,00000001h jnz L00033E5C xor esi,esi L00033E03: mov [esp+0Ch],esi mov dword ptr [esp+10h],00000000h fild qword ptr [esp+0Ch] fmul dword ptr [esp+18h] fmul dword ptr [esp+08h] fchs fldl2e fmulp ST(1),ST fld ST(0) frndint fxch ST(1) fsub ST,ST(1) f2xm1 fld1 faddp ST(1),ST fscale fstp ST(1) fmul qword ptr [L000B2370] fadd qword ptr [L000B23E8] call SUB_L000AF4EC mov [edi+esi+000048D0h],al inc esi cmp esi,00000100h jc L00033E03 pop edi pop esi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L00033E5C: cmp eax,00000002h jnz L00033EBA xor esi,esi L00033E63: mov [esp+0Ch],esi mov dword ptr [esp+10h],00000000h fild qword ptr [esp+0Ch] fmul dword ptr [esp+18h] fmul dword ptr [esp+08h] fld ST(0) fmul ST,ST(1) fchs fldl2e fmulp ST(1),ST fld ST(0) frndint fxch ST(1) fsub ST,ST(1) f2xm1 fld1 faddp ST(1),ST fscale fstp ST(1) fmul qword ptr [L000B2370] fadd qword ptr [L000B23E8] call SUB_L000AF4EC fstp ST(0) mov [edi+esi+000048D0h],al inc esi cmp esi,00000100h jc L00033E63 L00033EBA: pop edi pop esi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 L00033ED0: mov eax,[esp+04h] mov ecx,[eax] mov eax,[L000B6BF0+ecx*4] retn 0004h ;------------------------------------------------------------------------------ L00033EE0: retn 0004h ;------------------------------------------------------------------------------ Align 16 L00033EF0: mov eax,[esp+04h] test eax,eax jz L00033F07 mov ecx,[eax+0000009Ch] test ecx,ecx jnz L00033F07 xor eax,eax retn 0004h ;------------------------------------------------------------------------------ L00033F07: mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 4 L00033F10: mov eax,[esp+04h] test eax,eax jz L00033F32 mov ecx,[eax+0000009Ch] test ecx,ecx jnz L00033F32 mov ecx,[eax+00000088h] test ch,08h jnz L00033F32 xor eax,eax retn 0004h ;------------------------------------------------------------------------------ L00033F32: mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00033F40: push ebp mov ebp,esp push FFFFFFFFh push L000B23F8 push L000AF82C mov eax,fs:[00000000h] push eax mov fs:[00000000h],esp sub esp,00000010h push ebx push esi push edi mov [ebp-18h],esp pushad mov eax,00000001h cpuid mov [ebp-20h],edx popad mov eax,[ebp-20h] shr eax,19h and eax,00000001h jz L00033F9B mov dword ptr [ebp-04h],00000000h xorps xmm0,xmm0 ; SSE jmp L00033F94 L00033F89: mov eax,00000001h retn ;------------------------------------------------------------------------------ L00033F8F: mov esp,[ebp-18h] xor eax,eax L00033F94: mov dword ptr [ebp-04h],FFFFFFFFh L00033F9B: mov ecx,[ebp-10h] mov fs:[00000000h],ecx pop edi pop esi pop ebx mov esp,ebp pop ebp retn ;------------------------------------------------------------------------------ Align 8 L00033FB0: push esi mov esi,[esp+08h] mov eax,[esi+04h] push eax call SUB_L000ACFE0 mov dword ptr [esi+08h],00000000h mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L00033FD0: mov eax,[esp+04h] cmp dword ptr [eax],00000001h jz L00033FDE xor eax,eax retn 0004h ;------------------------------------------------------------------------------ L00033FDE: mov dword ptr [eax+10h],00000000h mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00033FF0: push ecx push ebx push ebp push esi push edi push 00000004h lea eax,[esp+14h] push eax xor ebp,ebp push SSZ000B2404_Tlhal_Disable mov dword ptr [L000B7080],00000800h mov [esp+1Ch],ebp call SUB_L000AE460 call SUB_L00033F40 mov edi,[esp+18h] xor ebx,ebx xor edx,edx xor ecx,ecx xor esi,esi mov [L000B70A0],eax mov [L000B70A4],ebx mov [L000B7084],edx mov [L000B6F24],ecx mov [L000B7064],esi mov [L000B709C],ebp mov eax,[edi+10h] and eax,FFFFFF00h cmp eax,00010100h jz L00034107 cmp eax,00010200h jz L00034095 cmp eax,00010300h mov eax,00000001h jnz L000340A5 mov ecx,eax mov [L000B6F24],ecx cmp dword ptr [edi+10h],00010303h jnz L000340A5 mov esi,eax mov [L000B7064],esi mov dword ptr [L000B707C],00000003h jmp L000340AA L00034095: mov edx,00000001h mov [L000B7084],edx L000340A0: mov eax,00000001h L000340A5: mov [L000B707C],eax L000340AA: cmp edx,ebp mov [L000B6F38],ebp mov [L000B7068],ebp mov [L000B7098],ebp mov [L000B6F58],ebp mov [L000B70B0],ebp mov [L000B6F2C],ebp mov [L000B6F78],ebp mov [L000B6F74],ebp mov [L000B6F5C],ebp mov [L000B70A8],ebp mov [L000B7078],ebp mov [L000B6F88],ebp jz L00034114 mov [L000B6F38],eax mov [L000B7068],eax mov [L000B7098],eax jmp L00034159 L00034107: mov ebx,00000001h mov [L000B70A4],ebx jmp L000340A0 L00034114: cmp ecx,ebp jz L00034155 cmp esi,ebp mov [L000B6F38],eax mov [L000B7098],eax mov [L000B6F58],eax mov [L000B6F88],eax jz L00034163 mov [L000B6F2C],eax mov [L000B6F74],eax mov [L000B6F5C],eax mov [L000B70B0],eax mov [L000B70A8],eax mov [L000B7078],eax mov [L000B6F78],eax jmp L00034163 L00034155: cmp ebx,ebp jz L00034163 L00034159: mov [L000B6F58],eax mov [L000B6F30],eax L00034163: mov ebx,[esp+1Ch] push ebx push edi call SUB_L00034530 test eax,eax jnz L0003417A pop edi pop esi pop ebp pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ L0003417A: xor eax,eax mov ecx,00000030h mov edi,L000B6FA0 rep stosd cmp [L000B709C],ebp mov ecx,0000002Bh mov esi,L000B2B58 mov edi,L000B6FA4 mov dword ptr [L000B6FA0],000000C0h rep movsd jz L000341B5 push L000B6FA4 call SUB_L00017780 L000341B5: cmp [L000B6F24],ebp mov [L000B7050],ebp mov [L000B7054],ebp jz L000341F0 cmp [L000B6F74],ebp jz L000341DF mov ecx,[L000B35F8] mov [L000B7058],ecx jmp L000341FD L000341DF: mov edx,[L000B35F8] add edx,FFFFFFFEh mov [L000B7058],edx jmp L000341FD L000341F0: mov eax,[L000B35F8] add eax,FFFFFFF9h mov [L000B7058],eax L000341FD: mov dword ptr [L000B705C],L000B3010 mov esi,[ebx+000000D4h] mov edx,[ebx+00000190h] mov ecx,[ebx+54h] or ecx,10100001h or esi,00421000h or edx,00000008h mov [ebx+000000D4h],esi mov [ebx+00000190h],edx mov [ebx+54h],ecx mov dword ptr [ebx+00000194h],L000B6FA0 mov dword ptr [ebx+00000198h],L000B3600 mov ecx,[L000B7080] push ecx call SUB_L00034AF0 pop edi pop esi pop ebp mov dword ptr [L000B6F20],L000ADAD0 mov dword ptr [L000B706C],L000AD980 mov dword ptr [L000B70B8],L000AD830 mov dword ptr [L000B70BC],L000AD820 mov dword ptr [L000B70C0],L000AD670 mov dword ptr [L000B70AC],L00034360 mov dword ptr [L000B6F34],L000343C0 mov dword ptr [L000B6F50],L000344A0 mov dword ptr [L000B6F68],L000344C0 mov dword ptr [L000B6F6C],L000344F0 mov dword ptr [L000B6F3C],L000343A0 mov dword ptr [L000B6F64],L000AD4E0 mov dword ptr [L000B7074],L000AD650 mov dword ptr [L000B7060],L000AD3C0 mov dword ptr [L000B6F70],L000AD3E0 mov dword ptr [L000B6F48],L00033ED0 mov dword ptr [L000B6F80],L00033EE0 mov dword ptr [L000B6F44],L000AD440 mov dword ptr [L000B6F54],L000AD420 mov dword ptr [L000B6F4C],L00033EF0 mov dword ptr [L000B7094],L00033F10 mov dword ptr [L000B7090],L000AE1D0 mov dword ptr [L000B6F8C],L000ADFD0 mov dword ptr [L000B6F28],L000AE3E0 mov eax,00000001h pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ Align 16 L00034360: mov eax,[esp+08h] lea ecx,[00000000h+eax*8] sub ecx,eax lea edx,[eax+ecx*4] mov ecx,[esp+04h] mov eax,[ecx+edx*4+000005DCh] test eax,eax jz L00034398 mov ecx,[ecx+000005A4h] mov edx,[ecx] mov eax,[edx+eax*4] test eax,eax jz L0003439A mov ecx,[eax+0000009Ch] test ecx,ecx jnz L0003439A L00034398: xor eax,eax L0003439A: retn 0008h ;------------------------------------------------------------------------------ Align 4 L000343A0: mov eax,[esp+04h] test eax,eax jnz L000343AB retn 0008h ;------------------------------------------------------------------------------ L000343AB: mov ecx,[esp+08h] mov edx,[ecx+000005A4h] mov ecx,[edx] mov eax,[ecx+eax*4] retn 0008h ;------------------------------------------------------------------------------ Align 4 L000343C0: mov eax,[L000B6F24] push ebx push ebp push esi mov esi,[esp+10h] xor ebp,ebp cmp eax,ebp push edi mov ebx,00000001h jz L000343E9 mov eax,[esp+18h] push eax push esi call SUB_L00036940 mov [esi+00000A38h],ebp L000343E9: xor edi,edi L000343EB: push edi push esi call [L000B70AC] cmp eax,ebp jz L0003441B test byte ptr [eax+18h],10h jnz L0003441B test [esi+000005CCh],ebx jz L0003441B cmp [eax+0Ch],ebp jnz L0003441B mov eax,[eax+0000009Ch] cmp eax,ebp jz L0003441B mov ecx,[esp+18h] mov [eax+08h],ecx L0003441B: shl ebx,1 inc edi cmp edi,00000008h jc L000343EB mov eax,[esi+000005C8h] cmp eax,ebp jz L0003444E L0003442D: mov ecx,eax lea edx,[eax+08h] mov eax,[edx] mov [ecx+0Ch],ebp mov ecx,[ecx+0000009Ch] cmp ecx,ebp mov [edx],ebp jz L0003444A mov edx,[esp+18h] mov [ecx+08h],edx L0003444A: cmp eax,ebp jnz L0003442D L0003444E: test dword ptr [esi+000005CCh],C0000000h mov [esi+000005C8h],ebp jz L00034492 mov eax,[esi+00000174h] mov eax,[eax+0000009Ch] cmp eax,ebp jz L00034477 mov ecx,[esp+18h] mov [eax+08h],ecx L00034477: mov eax,[esi+00000178h] cmp eax,ebp jz L00034492 mov eax,[eax+0000009Ch] cmp eax,ebp jz L00034492 mov edx,[esp+18h] mov [eax+08h],edx L00034492: pop edi mov [esi+000005CCh],ebp pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 4 L000344A0: mov ecx,[esp+04h] mov edx,[ecx+00000178h] xor eax,eax test edx,edx setnz al retn 0004h ;------------------------------------------------------------------------------ Align 16 L000344C0: mov eax,[esp+04h] mov ecx,[eax+0000009Ch] test ecx,ecx jz L000344DE mov ecx,[eax+18h] test ch,02h jz L000344DE mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ L000344DE: xor eax,eax retn 0004h ;------------------------------------------------------------------------------ Align 16 L000344F0: mov eax,[esp+04h] test eax,eax jz L00034527 mov edx,[esp+0Ch] mov ecx,[edx+000005A4h] test ecx,ecx jz L00034527 mov ecx,[ecx] test ecx,ecx jz L00034527 cmp eax,[ecx] jc L00034527 mov eax,[esp+08h] lea ecx,[00000000h+eax*8] sub ecx,eax lea eax,[eax+ecx*4] mov eax,[edx+eax*4+000005DCh] L00034527: retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00034530: mov eax,[esp+08h] push ebx push ebp push esi mov ebp,00000008h push edi mov edi,[esp+14h] mov dword ptr [eax+00000088h],00000400h mov [eax+44h],ebp mov [eax+40h],ebp mov [eax+48h],ebp mov esi,[edi+000000ACh] xor ebx,ebx cmp esi,ebx jnz L00034569 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0008h ;------------------------------------------------------------------------------ L00034569: cmp [edi+78h],ebx jnz L000345A4 push 00000020h push 00000001h call OsAllocMem cmp eax,ebx jnz L00034584 pop edi pop esi pop ebp xor eax,eax pop ebx retn 0008h ;------------------------------------------------------------------------------ L00034584: mov ecx,[esi+44h] add ecx,00000018h mov [eax+14h],ecx mov [eax+10h],ebx mov [eax],ebx mov [eax+04h],ebx mov [eax+08h],ebx mov [eax+18h],ebx mov [eax+1Ch],ebx mov [edi+78h],eax mov [esi+18h],ebx L000345A4: cmp [L000B6F38],ebx jz L000345F3 mov edi,[L000B2BA8] mov esi,[L000B2BE0] mov edx,[L000B2C58] mov ecx,[L000B2C90] mov eax,L00020030 or edi,eax or esi,eax or edx,eax or ecx,eax mov [L000B2BA8],edi mov [L000B2BE0],esi mov [L000B2C58],edx mov [L000B2C90],ecx mov dword ptr [L000B3924],000000C0h L000345F3: cmp [L000B6F24],ebx jz L00034638 mov edi,[L000B2B8C] mov esi,[L000B2BC4] mov edx,[L000B2C3C] mov ecx,[L000B2C74] mov eax,00100100h or edi,eax or esi,eax or edx,eax or ecx,eax mov [L000B2B8C],edi mov [L000B2BC4],esi mov [L000B2C3C],edx mov [L000B2C74],ecx L00034638: cmp [L000B6F2C],ebx mov eax,00000100h jz L00034661 mov edx,[L000B2BF4] mov ecx,[L000B2CA4] or edx,eax or ecx,eax mov [L000B2BF4],edx mov [L000B2CA4],ecx L00034661: cmp [L000B7078],ebx jz L00034673 mov dword ptr [L000B2DD4],000000FFh L00034673: cmp [L000B70A8],ebx jz L00034697 mov edx,[L000B2BF8] mov ecx,[L000B2CA8] or edx,eax or ecx,eax mov [L000B2BF8],edx mov [L000B2CA8],ecx L00034697: cmp [L000B6F5C],ebx jz L00034734 mov edx,[L000B2BCC] mov ecx,[L000B2C7C] mov edi,[L000B2BD0] mov esi,[L000B2C80] mov eax,000004C0h or edx,eax or ecx,eax mov [L000B2BCC],edx mov edx,[L000B2B94] mov [L000B2C7C],ecx mov ecx,[L000B2C48] or edi,eax or esi,eax or edx,eax or ecx,eax mov [L000B2BD0],edi mov [L000B2C80],esi mov [L000B2B94],edx mov [L000B2C48],ecx mov dword ptr [L000B3894],000001C0h mov dword ptr [L000B3898],00000200h mov dword ptr [L000B38A4],000002C0h mov dword ptr [L000B38CC],00000007h mov [L000B38D0],ebp mov dword ptr [L000B38DC],0000000Bh L00034734: cmp [L000B6F58],ebx jz L00034787 mov ebx,[L000B2BA0] mov edi,[L000B2C50] mov esi,[L000B2BD8] mov edx,[L000B2C88] mov ecx,[L000B2CF0] mov eax,00000280h or ebx,eax or edi,eax or esi,eax or edx,eax or ecx,eax mov [L000B2BA0],ebx mov [L000B2C50],edi mov [L000B2BD8],esi mov [L000B2C88],edx mov [L000B2CF0],ecx L00034787: mov edx,[L000B2BA4] mov ecx,[L000B2C8C] pop edi mov eax,00004000h pop esi or edx,eax or ecx,eax pop ebp mov [L000B2BA4],edx mov [L000B2C8C],ecx mov eax,00000001h pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000347C0: sub esp,0000001Ch push ebx mov ebx,[esp+24h] push ebp push esi push edi lea ebp,[ebx+0Ch] mov dword ptr [ebx+28h],88760028h mov ecx,00000004h mov edi,L000B26E8 mov esi,ebp xor eax,eax mov dword ptr [L000B7080],00000800h repe cmpsd jnz L00034845 mov edx,[ebx+1Ch] cmp edx,0000001Ch jc L000347FE mov edx,0000001Ch L000347FE: xor eax,eax mov ecx,00000007h lea edi,[esp+10h] rep stosd mov edi,[ebx+20h] mov ecx,edx shr ecx,02h mov [esp+10h],edx mov dword ptr [ebx+24h],0000001Ch mov dword ptr [esp+14h],00000001h mov dword ptr [esp+18h],SUB_L000ABC10 lea esi,[esp+10h] rep movsd mov ecx,edx and ecx,00000003h xor edx,edx rep movsb mov [ebx+28h],edx jmp L0003498A L00034845: mov ecx,00000004h mov edi,L000B26A8 mov esi,ebp xor eax,eax repe cmpsd jnz L000348A2 mov ecx,[L000B707C] shl ecx,05h lea eax,[ecx+04h] mov ecx,[ebx+1Ch] cmp ecx,eax mov [ebx+24h],eax jnc L0003486F mov eax,ecx L0003486F: mov ecx,[L000B707C] mov edx,[ebx+20h] mov [edx],ecx mov edi,[ebx+20h] lea ecx,[eax-04h] mov edx,ecx shr ecx,02h add edi,00000004h mov esi,L000B2E08 rep movsd mov ecx,edx and ecx,00000003h rep movsb mov dword ptr [ebx+28h],00000000h jmp L00034988 L000348A2: mov ecx,00000004h mov edi,L000B26F8 mov esi,ebp xor eax,eax repe cmpsd jnz L000348FC mov ecx,[ebx+1Ch] cmp ecx,00000074h jc L000348C1 mov ecx,00000074h L000348C1: mov edi,[ebx+20h] mov edx,ecx shr ecx,02h mov dword ptr [ebx+24h],00000074h mov esi,L000B2D90 rep movsd mov ecx,edx and ecx,00000003h rep movsb mov eax,[L000B709C] test eax,eax jz L000348F0 mov eax,[ebx+20h] push eax call SUB_L00017780 L000348F0: mov dword ptr [ebx+28h],00000000h jmp L00034988 L000348FC: mov ecx,00000004h mov edi,L000B2698 mov esi,ebp xor edx,edx repe cmpsd jnz L0003491B mov eax,[ebx+20h] mov [L000B6F1C],eax mov [ebx+28h],edx jmp L00034988 L0003491B: mov ecx,00000004h mov edi,L000B26D8 mov esi,ebp xor edx,edx repe cmpsd jnz L00034988 xor eax,eax mov ecx,00000006h lea edi,[esp+10h] rep stosd mov ecx,[ebx+1Ch] cmp ecx,00000018h jc L00034947 mov ecx,00000018h L00034947: mov edi,[ebx+20h] mov [esp+10h],ecx mov edx,ecx xor eax,eax shr ecx,02h mov dword ptr [ebx+24h],00000018h mov dword ptr [esp+14h],0000000Ch mov [esp+18h],eax mov dword ptr [esp+20h],L0003ABC0 mov dword ptr [esp+24h],L00038EF0 lea esi,[esp+10h] rep movsd mov ecx,edx and ecx,00000003h rep movsb mov [ebx+28h],eax L00034988: xor edx,edx L0003498A: mov ecx,00000004h mov edi,L000B2748 mov esi,ebp xor eax,eax repe cmpsd jnz L000349F7 mov ecx,00000006h lea edi,[esp+10h] rep stosd mov edi,[esp+14h] mov eax,[ebx+1Ch] mov ecx,00000018h or edi,0000000Eh cmp eax,ecx mov [esp+10h],ecx mov [esp+14h],edi mov dword ptr [esp+20h],L00033FD0 mov dword ptr [esp+1Ch],L000ABC20 mov dword ptr [esp+24h],L00033FB0 mov [ebx+24h],ecx jbe L000349DF mov eax,ecx L000349DF: mov edi,[ebx+20h] mov ecx,eax shr ecx,02h lea esi,[esp+10h] rep movsd mov ecx,eax and ecx,00000003h rep movsb mov [ebx+28h],edx L000349F7: mov ecx,00000004h mov edi,L000B2678 mov esi,ebp xor eax,eax repe cmpsd jnz L00034A54 mov edi,[ebx+20h] cmp dword ptr [edi+04h],FFFFFFFFh jnz L00034AC5 mov eax,[edi+08h] dec eax cmp eax,00000003h ja L00034AC5 jmp [CASE_PROCTABLE_00034ADC+eax*4] CASE_00034ADC_PROC0000: mov eax,[edi+0Ch] cmp eax,000000D4h jbe L00034A39 mov eax,000000D4h L00034A39: mov ecx,eax mov ebp,ecx shr ecx,02h mov esi,L000B2CB8 rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov [ebx+24h],eax CASE_00034ADC_PROC0003: mov [ebx+28h],edx L00034A54: mov ecx,[ebx+28h] pop edi pop esi xor eax,eax cmp ecx,edx pop ebp setz al pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ CASE_00034ADC_PROC0001: cmp [L000B6F24],edx jz L00034A82 mov ecx,[L000B3008] mov [edi+10h],ecx mov dword ptr [ebx+24h],00000018h jmp CASE_00034ADC_PROC0003 L00034A82: mov eax,[L000B3008] add eax,FFFFFFFBh mov [edi+10h],eax mov dword ptr [ebx+24h],00000018h jmp CASE_00034ADC_PROC0003 CASE_00034ADC_PROC0002: mov ecx,[L000B3008] mov esi,[edi+10h] add ecx,FFFFFFFBh cmp esi,ecx jnc L00034AC2 shl esi,05h add esi,L000B2E68 add edi,00000014h mov ecx,00000008h rep movsd mov dword ptr [ebx+24h],00000034h jmp CASE_00034ADC_PROC0003 L00034AC2: mov [ebx+24h],edx L00034AC5: pop edi pop esi pop ebp mov dword ptr [ebx+28h],88760028h mov eax,00000001h pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00034ADC: dd CASE_00034ADC_PROC0000 dd CASE_00034ADC_PROC0001 dd CASE_00034ADC_PROC0002 dd CASE_00034ADC_PROC0003 Align 8 SUB_L00034AF0: cmp dword ptr [esp+04h],00000700h jc L00034B57 mov dword ptr [L000B70C4],L00034CC0 mov dword ptr [L000B6F60],L00034CD0 mov dword ptr [L000B6F84],L00034CE0 mov dword ptr [L000B70B4],L00034CF0 mov dword ptr [L000B6F40],L00034D00 mov dword ptr [L000B708C],L00034D10 mov dword ptr [L000B7088],L00034D20 mov dword ptr [L000B6F7C],L00034D30 mov dword ptr [L000B7070],L00034D40 retn 0004h ;------------------------------------------------------------------------------ L00034B57: mov dword ptr [L000B70C4],L00034BC0 mov dword ptr [L000B6F60],L00034BE0 mov dword ptr [L000B6F84],L00034C00 mov dword ptr [L000B70B4],L00034C20 mov dword ptr [L000B6F40],L00034C40 mov dword ptr [L000B708C],L00034C60 mov dword ptr [L000B7088],L00034C70 mov dword ptr [L000B6F7C],L00034C80 mov dword ptr [L000B7070],L00034CA0 retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034BC0: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov edx,[ecx] mov eax,[edx+0Ch] retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034BE0: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov edx,[ecx] mov eax,[edx+1Ch] retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034C00: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov edx,[ecx] mov eax,[edx+18h] retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034C20: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov edx,[ecx] mov eax,[edx+08h] retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034C40: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov edx,[ecx] mov eax,[edx+30h] retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034C60: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov eax,[ecx+08h] retn 0004h ;------------------------------------------------------------------------------ L00034C70: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov eax,[ecx+04h] retn 0004h ;------------------------------------------------------------------------------ L00034C80: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov edx,[ecx+20h] mov eax,[edx+18h] retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034CA0: mov eax,[esp+04h] mov ecx,[eax+000000A0h] mov edx,[ecx+20h] mov eax,[edx] retn 0004h ;------------------------------------------------------------------------------ Align 16 L00034CC0: mov eax,[esp+04h] mov eax,[eax+000000E8h] retn 0004h ;------------------------------------------------------------------------------ Align 4 L00034CD0: mov ecx,[esp+04h] xor eax,eax mov ax,[ecx+000000A8h] retn 0004h ;------------------------------------------------------------------------------ L00034CE0: mov ecx,[esp+04h] xor eax,eax mov ax,[ecx+000000AAh] retn 0004h ;------------------------------------------------------------------------------ L00034CF0: mov eax,[esp+04h] mov eax,[eax+000000BCh] retn 0004h ;------------------------------------------------------------------------------ Align 4 L00034D00: mov eax,[esp+04h] mov eax,[eax+00000090h] retn 0004h ;------------------------------------------------------------------------------ Align 4 L00034D10: mov eax,[esp+04h] mov eax,[eax+00000088h] retn 0004h ;------------------------------------------------------------------------------ Align 4 L00034D20: mov eax,[esp+04h] mov eax,[eax+0000008Ch] retn 0004h ;------------------------------------------------------------------------------ Align 4 L00034D30: mov eax,[esp+04h] mov eax,[eax+00000098h] retn 0004h ;------------------------------------------------------------------------------ Align 4 L00034D40: mov eax,[esp+04h] mov eax,[eax+00000084h] retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00034D50: sub esp,0000000Ch push edi mov edi,[esp+14h] push edi call SUB_L0003AC80 cmp eax,00000001h jnz L00034D6A pop edi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L00034D6A: mov eax,[edi] push ebx push ebp push esi push eax call GetDriverData mov ebp,[edi+04h] mov ecx,[ebp+00h] mov esi,[ecx+20h] test esi,esi mov ebx,eax mov eax,[ebx+58h] mov [esp+10h],eax jnz L00034DA8 lea esi,[eax+3Ch] test esi,esi jnz L00034DA8 pop esi pop ebp pop ebx mov dword ptr [edi+20h],887601B3h mov eax,00000001h pop edi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L00034DA8: inc [esi+2Ch] mov edx,[ebp+00h] mov eax,[edx+08h] push edi mov [edi+1Ch],eax mov dword ptr [edi+20h],00000000h call [L000B706C] cmp eax,00000001h jz L0003509D mov esi,[esi+50h] test esi,00200000h jz L00034F16 test byte ptr [edi+28h],01h jnz L00034E15 mov ecx,[ebp+00h] mov eax,[ecx+20h] test eax,eax jnz L00034DF1 mov edx,[esp+10h] lea eax,[edx+3Ch] L00034DF1: mov eax,[eax+08h] push eax push ebx call SUB_L00029710 test eax,eax jz L00034E15 pop esi pop ebp pop ebx mov dword ptr [edi+20h],8876021Ch mov eax,00000001h pop edi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L00034E15: mov eax,[ebp+00h] mov ecx,[eax+18h] imul ecx,[eax+0Ch] push ecx push 00000000h call SUB_L000172E0 mov edx,[ebp+00h] mov [edx+08h],eax mov eax,[ebp+00h] mov ecx,[eax+08h] test ecx,ecx jnz L00034E4D pop esi pop ebp pop ebx mov dword ptr [edi+20h],8007000Eh mov eax,00000001h pop edi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L00034E4D: test byte ptr [edi+28h],20h jnz L00035017 push ebx call SUB_L00029670 mov eax,[ebp+04h] test ah,20h jz L00034E7A mov eax,[ebp+00h] test byte ptr [eax+28h],04h jz L00034E75 mov edi,00000010h jmp L00034E81 L00034E75: mov edi,[eax+30h] jmp L00034E81 L00034E7A: mov ecx,[esp+10h] mov edi,[ecx+10h] L00034E81: test dword ptr [ebp+08h],20000000h mov eax,[ebp+00h] mov ecx,[eax+20h] jz L00034EA7 test ecx,ecx jnz L00034EA0 mov edx,[esp+10h] add edx,0000003Ch mov edx,[edx+38h] jmp L00034EB9 L00034EA0: mov edx,ecx mov edx,[edx+38h] jmp L00034EB9 L00034EA7: test ecx,ecx jnz L00034EB4 mov edx,[esp+10h] add edx,0000003Ch jmp L00034EB6 L00034EB4: mov edx,ecx L00034EB6: mov edx,[edx+3Ch] L00034EB9: mov esi,[eax+1Ch] imul esi,edi mov [esp+14h],edx mov edx,[eax+08h] shr esi,03h cmp esi,00000002h mov [esp+18h],edx ja L00034ED7 mov esi,00000002h L00034ED7: test ecx,ecx jnz L00034EE2 mov eax,[esp+10h] lea ecx,[eax+3Ch] L00034EE2: mov ebx,[ecx+44h] mov ecx,[esp+10h] mov edi,[ebp+00h] push ecx push ebp call SUB_L0001ADD0 mov edx,[edi+18h] mov ecx,[esp+14h] push eax mov eax,[edi+0Ch] push ebx push edx mov edx,[esp+24h] push eax push esi push ecx push edx call SUB_L0001B330 mov edi,[esp+20h] jmp L00035017 L00034F16: test esi,L00080000 mov al,[edi+28h] jz L00034F8C test al,10h jnz L0003509D mov eax,[ebp+00h] mov eax,[eax+20h] test eax,eax jnz L00034F3A mov ecx,[esp+10h] lea eax,[ecx+3Ch] L00034F3A: mov eax,[eax+08h] push eax push ebx call SUB_L00029710 test eax,eax jz L00035017 test byte ptr [edi+28h],01h jnz L00034F68 pop esi pop ebp pop ebx mov dword ptr [edi+20h],8876021Ch mov eax,00000001h pop edi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L00034F68: mov edx,[ebp+00h] mov eax,[edx+20h] test eax,eax jnz L00034F79 mov eax,[esp+10h] add eax,0000003Ch L00034F79: mov eax,[eax+08h] push eax push ebx call SUB_L00029710 test eax,eax jnz L00034F68 jmp L00035017 L00034F8C: test al,10h jnz L0003509D mov ecx,[ebp+00h] mov eax,[ecx+20h] test eax,eax jnz L00034FA5 mov edx,[esp+10h] lea eax,[edx+3Ch] L00034FA5: mov eax,[eax+08h] push eax push ebx call SUB_L00029710 test eax,eax jz L00035017 test byte ptr [edi+28h],10h jnz L0003509D mov eax,[ebp+00h] mov eax,[eax+20h] test eax,eax jnz L00034FCE mov ecx,[esp+10h] lea eax,[ecx+3Ch] L00034FCE: mov eax,[eax+08h] push eax push ebx call SUB_L00029710 test eax,eax jz L00035017 test byte ptr [edi+28h],01h jnz L00034FF8 pop esi pop ebp pop ebx mov dword ptr [edi+20h],8876021Ch mov eax,00000001h pop edi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ L00034FF8: mov edx,[ebp+00h] mov eax,[edx+20h] test eax,eax jnz L00035009 mov eax,[esp+10h] add eax,0000003Ch L00035009: mov eax,[eax+08h] push eax push ebx call SUB_L00029710 test eax,eax jnz L00034FF8 L00035017: mov eax,[edi+08h] test eax,eax jz L0003509D mov eax,[ebp+04h] test ah,20h jz L0003503B mov eax,[ebp+00h] test byte ptr [eax+28h],04h jz L00035036 mov eax,00000010h jmp L00035042 L00035036: mov eax,[eax+30h] jmp L00035042 L0003503B: mov ecx,[esp+10h] mov eax,[ecx+10h] L00035042: dec eax cmp eax,0000001Fh ja CASE_000350AC_PROC0007 xor edx,edx mov dl,[eax+CASE_000350CC] jmp [CASE_PROCTABLE_000350AC+edx*4] CASE_000350AC_PROC0000: mov eax,[edi+0Ch] shr eax,03h jmp L0003508E CASE_000350AC_PROC0001: mov eax,[edi+0Ch] shr eax,02h jmp L0003508E CASE_000350AC_PROC0002: mov eax,[edi+0Ch] shr eax,1 jmp L0003508E CASE_000350AC_PROC0003: mov eax,[edi+0Ch] jmp L0003508E CASE_000350AC_PROC0004: mov eax,[edi+0Ch] shl eax,1 jmp L0003508E CASE_000350AC_PROC0005: mov eax,[edi+0Ch] lea eax,[eax+eax*2] jmp L0003508E CASE_000350AC_PROC0006: mov eax,[edi+0Ch] shl eax,02h jmp L0003508E CASE_000350AC_PROC0007: mov eax,[esp+20h] L0003508E: mov ecx,[ebp+00h] mov edx,[ecx+0Ch] imul edx,[edi+10h] add edx,eax add [edi+1Ch],edx L0003509D: pop esi pop ebp pop ebx mov eax,00000001h pop edi add esp,0000000Ch retn 0004h ;------------------------------------------------------------------------------ CASE_PROCTABLE_000350AC: dd CASE_000350AC_PROC0000 dd CASE_000350AC_PROC0001 dd CASE_000350AC_PROC0002 dd CASE_000350AC_PROC0003 dd CASE_000350AC_PROC0004 dd CASE_000350AC_PROC0005 dd CASE_000350AC_PROC0006 dd CASE_000350AC_PROC0007 CASE_000350CC: db 00h, 01h, 07h, 02h, 07h, 07h, 07h, 03h, 07h, 07h, 07h, 07h, 07h, 07h, 07h, 04h db 07h, 07h, 07h, 07h, 07h, 07h, 07h, 05h, 07h, 07h, 07h, 07h, 07h, 07h, 07h, 06h Align 8 SUB_L000350F0: mov eax,[esp+08h] push ebx push ebp push esi mov esi,[esp+1Ch] mov dword ptr [esi+18h],00000200h mov ecx,[eax+44h] mov [esi+14h],ecx mov ecx,[esp+18h] mov eax,[ecx] add eax,00000003h cdq and edx,00000003h add eax,edx sar eax,02h mov [esi+1Ch],ax mov eax,[ecx+04h] add eax,0000000Fh cdq and edx,0000000Fh add eax,edx sar eax,04h mov [esi+1Eh],ax mov eax,[ecx] add eax,00000003h cdq and edx,00000003h add eax,edx push edi mov edi,eax mov eax,[ecx+08h] cdq and edx,00000003h add eax,edx sar eax,02h sar edi,02h sub eax,edi mov [esi+24h],ax mov eax,[ecx+04h] mov ebx,[esp+14h] add eax,0000000Fh cdq and edx,0000000Fh add eax,edx mov edi,eax mov eax,[ecx+0Ch] cdq and edx,0000000Fh add eax,edx sar edi,04h sar eax,04h sub eax,edi xor ebp,ebp mov [esi+26h],ax mov word ptr [esi+04h],0001h mov byte ptr [esi+07h],04h mov [esi+00000088h],ebp mov byte ptr [esi+06h],F0h mov edi,[ebx+00000148h] push 00000001h push edi call [edi+14h] push eax push ebx mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call [L000B6F34] push esi mov dword ptr [esi+000000A8h],00000002h call SUB_L0002AF80 cmp eax,FFFFFFFFh jz L000351D2 mov edx,[ebx+00000178h] mov ecx,[edx+0000009Ch] mov [ecx+08h],eax L000351D2: pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 8 SUB_L000351E0: mov eax,[esp+04h] push esi mov esi,[eax+04h] mov eax,[eax] push eax call GetDriverData mov ecx,[esi] mov ecx,[ecx+20h] test ecx,ecx mov edx,[eax+58h] jnz L000351FF lea ecx,[edx+3Ch] L000351FF: mov esi,[ecx+34h] test esi,esi jz L00035219 mov edx,[eax+000000A8h] push esi push edx call SUB_L00026030 push esi call OsFreeMem L00035219: pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00035220: sub esp,0000001Ch push ebx mov ebx,[esp+24h] mov eax,[ebx+08h] mov ecx,[ebx+04h] push ebp xor ebp,ebp cmp eax,ebp push esi push edi mov [esp+20h],ecx jz L00035259 mov eax,[ebx+0Ch] mov edx,[ebx+14h] mov [esp+14h],eax mov eax,[ebx+10h] mov [esp+30h],edx mov edx,[ebx+18h] mov [esp+18h],eax mov [esp+10h],edx jmp L00035271 L00035259: mov eax,[ecx] mov edx,[eax+1Ch] mov eax,[eax+18h] mov [esp+14h],ebp mov [esp+30h],edx mov [esp+18h],ebp mov [esp+10h],eax L00035271: mov eax,[ecx+0Ch] lea ecx,[eax+eax*2] mov edx,[L000B6298+ecx*4] push edx call SUB_L000ACF80 mov esi,eax mov eax,[ebx] push eax call GetDriverData mov edi,[esi+00000148h] mov edx,[edi+0Ch] mov [esp+1Ch],eax mov eax,[edi+08h] lea ecx,[eax+6Ch] cmp ecx,edx jc L000352D6 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000352D6 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+6Ch] cmp ecx,edx jc L000352D6 push edi call [edi+10h] mov eax,[edi+08h] L000352D6: lea edx,[eax+6Ch] mov [edi+08h],edx mov dword ptr [eax],02000001h mov dword ptr [eax+04h],62000009h add eax,00000004h mov dword ptr [eax+04h],65000002h add eax,00000004h mov dword ptr [eax+04h],7D870001h mov ecx,[esp+30h] add eax,00000004h mov dword ptr [eax+04h],00000006h add eax,00000004h mov [eax+04h],ebp add eax,00000004h mov dword ptr [eax+04h],6400000Bh mov edx,[esp+10h] add eax,00000004h mov dword ptr [eax+04h],63000030h add eax,00000004h mov dword ptr [eax+04h],74002200h add eax,00000004h mov dword ptr [eax+04h],7F1C0008h add eax,00000004h mov [esp+24h],ecx mov ecx,[esp+14h] add eax,00000004h mov [esp+28h],ebp fild qword ptr [esp+24h] mov [esp+24h],edx add eax,00000004h mov [esp+28h],ebp fadd dword ptr [L000B2414] add eax,00000004h add eax,00000004h add eax,00000004h fstp dword ptr [eax-10h] add eax,00000004h fild qword ptr [esp+24h] mov [esp+24h],ecx mov ecx,[esp+18h] mov [esp+28h],ebp fadd dword ptr [L000B2414] add eax,00000004h add eax,00000004h add eax,00000004h fst dword ptr [eax-1Ch] mov [eax-18h],ebp fild qword ptr [esp+24h] mov [esp+24h],ecx mov [esp+28h],ebp add eax,00000004h fsub dword ptr [L000B2414] add eax,00000004h add eax,00000004h add eax,00000004h fst dword ptr [esp+30h] add eax,00000004h fstp dword ptr [eax-28h] mov edx,[esp+30h] add eax,00000004h fstp dword ptr [eax-28h] mov [eax-24h],ebp fild qword ptr [esp+24h] mov [eax-20h],edx fsub dword ptr [L000B2414] fstp dword ptr [eax-1Ch] mov [eax-18h],ebp mov edx,[esi+00000114h] mov [eax-14h],edx mov ecx,[esi+78h] or ecx,0000000Ah mov [eax-10h],ecx mov edx,[esi+74h] or edx,00000020h mov [eax-0Ch],edx mov ecx,[esi+00000088h] or ecx,00002000h mov [eax-08h],ecx mov dword ptr [eax-04h],7D870001h mov dword ptr [eax],00000004h add eax,00000004h mov [eax],ebp mov edx,[esi+70h] or edx,00000008h mov [eax+04h],edx mov esi,[esi+00000148h] push 00000001h push esi call [esi+14h] mov eax,[esp+1Ch] push eax mov [esi+0Ch],ebp mov [esi+08h],ebp mov [esi+04h],ebp call SUB_L00029670 mov ecx,[esp+20h] mov edx,[ecx] mov eax,[edx+08h] pop edi pop esi mov [ebx+20h],ebp mov [ebx+1Ch],eax pop ebp mov eax,00000001h pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00035470: sub esp,00000008h mov ecx,[esp+0Ch] push ebx mov ebx,[esp+24h] push ebp push esi mov esi,[ecx+00000148h] mov eax,[esi+08h] push edi mov edx,ebx and edx,00000001h mov edi,edx neg edi sbb edi,edi and edi,00000006h lea ebp,[eax+edi*4+58h] cmp ebp,[esi+0Ch] mov [esp+30h],edx jc L000354DD push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000354D5 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4+58h] cmp ecx,edx jc L000354D5 push esi call [esi+10h] mov eax,[esi+08h] L000354D5: mov edx,[esp+30h] mov ecx,[esp+1Ch] L000354DD: lea edi,[eax+edi*4+58h] mov [esi+08h],edi mov dword ptr [eax],62000009h add eax,00000004h mov dword ptr [eax],76030000h mov edi,ebx add eax,00000004h and edi,00000002h mov esi,00000000h jz L0003550B test bl,04h mov [esp+1Ch],esi jz L00035513 L0003550B: mov dword ptr [esp+1Ch],00008000h L00035513: mov ebp,[esp+38h] and ebp,000000FFh or ebp,[esp+1Ch] add eax,00000004h or ebp,69802100h mov [eax-04h],ebp mov dword ptr [eax],65000002h add eax,00000004h cmp edx,esi jz L00035551 mov dword ptr [eax],7D870001h add eax,00000004h mov dword ptr [eax],00000018h add eax,00000004h mov [eax],esi add eax,00000004h L00035551: test bl,04h jz L0003555E cmp edi,esi jnz L0003555E xor edi,edi jmp L00035563 L0003555E: mov edi,00000001h L00035563: not bl add eax,00000004h add eax,00000004h add eax,00000004h mov [esp+14h],esi add eax,00000004h add eax,00000004h and ebx,000000FFh and ebx,00000008h shl ebx,11h or ebx,edi mov edi,[esp+2Ch] mov [esp+10h],edi fild qword ptr [esp+10h] mov edi,[esp+24h] mov [esp+10h],edi mov edi,[esp+34h] fadd dword ptr [L000B2414] or ebx,6420000Ah mov [eax-14h],ebx mov dword ptr [eax-10h],6320A022h mov dword ptr [eax-0Ch],7F1C0008h fstp dword ptr [eax-08h] mov [esp+14h],esi fild qword ptr [esp+10h] add eax,00000004h mov [esp+14h],esi add eax,00000004h fadd dword ptr [L000B2414] add eax,00000004h add eax,00000004h add eax,00000004h fst dword ptr [eax-18h] mov [eax-14h],edi mov edi,[esp+28h] mov [esp+10h],edi fild qword ptr [esp+10h] mov edi,[esp+34h] mov [esp+14h],esi add eax,00000004h fsub dword ptr [L000B2414] add eax,00000004h add eax,00000004h add eax,00000004h fst dword ptr [esp+1Ch] add eax,00000004h fstp dword ptr [eax-24h] add eax,00000004h fstp dword ptr [eax-24h] mov [eax-20h],edi mov edi,[esp+1Ch] mov [eax-1Ch],edi mov edi,[esp+20h] mov [esp+10h],edi fild qword ptr [esp+10h] mov edi,[esp+34h] fsub dword ptr [L000B2414] fstp dword ptr [eax-18h] mov [eax-14h],edi mov edi,[ecx+00000090h] or edi,00802100h mov [eax-10h],edi mov edi,[ecx+00000114h] mov [eax-0Ch],edi mov edi,[ecx+78h] or edi,0000000Ah mov [eax-08h],edi mov edi,[ecx+74h] or edi,0020A022h cmp edx,esi mov [eax-04h],edi jz L00035689 mov dword ptr [eax],7D870001h add eax,00000004h mov dword ptr [eax],00000010h add eax,00000004h mov [eax],esi add eax,00000004h L00035689: mov edx,[ecx+00000094h] or edx,L00030000 pop edi mov [eax],edx mov ecx,[ecx+70h] pop esi or ecx,00000008h pop ebp mov [eax+04h],ecx pop ebx add esp,00000008h retn 0020h ;------------------------------------------------------------------------------ Align 8 SUB_L000356B0: sub esp,00000010h push esi mov esi,[esp+18h] push esi call SUB_L0003AEA0 cmp eax,00000001h jnz L000356CA pop esi add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ L000356CA: mov eax,[esi] push ebx push ebp push edi push eax call GetDriverData mov edi,[esi+04h] mov ecx,[edi] mov ebp,eax mov edx,[ebp+58h] mov eax,[ecx+20h] test eax,eax mov [esp+10h],edx lea ebx,[edx+3Ch] jz L000356EF mov ebx,eax L000356EF: mov eax,[edi+04h] test ah,20h jz L00035710 test byte ptr [ecx+28h],04h jz L00035707 mov dword ptr [esp+14h],00000010h jmp L00035717 L00035707: mov edx,[ecx+30h] mov [esp+14h],edx jmp L00035717 L00035710: mov eax,[edx+10h] mov [esp+14h],eax L00035717: cmp dword ptr [ecx+1Ch],00000001h jnz L00035742 cmp dword ptr [esp+14h],00000008h jnz L00035742 mov eax,[ecx+08h] test eax,eax jz L00035742 xor edx,edx cmp [ecx+18h],edx jbe L00035742 L00035732: mov cl,[eax] mov [eax+01h],cl mov ecx,[edi] add eax,[ecx+0Ch] inc edx cmp edx,[ecx+18h] jc L00035732 L00035742: push esi call [L000B70B8] cmp eax,00000001h jz L00035820 test dword ptr [ebx+50h],00200000h jz L00035819 L0003575F: mov edx,[edi] mov eax,[edx+20h] test eax,eax jnz L0003576F mov eax,[esp+10h] add eax,0000003Ch L0003576F: mov eax,[eax+08h] push eax push ebp call SUB_L00029710 test eax,eax jnz L0003575F mov ecx,[edi] mov eax,[edi+08h] mov edx,[ecx+08h] test eax,20000000h mov eax,[ecx+20h] mov [esp+1Ch],edx jz L000357AA test eax,eax jnz L000357A3 mov edx,[esp+10h] add edx,0000003Ch mov edx,[edx+38h] jmp L000357BC L000357A3: mov edx,eax mov edx,[edx+38h] jmp L000357BC L000357AA: test eax,eax jnz L000357B7 mov edx,[esp+10h] add edx,0000003Ch jmp L000357B9 L000357B7: mov edx,eax L000357B9: mov edx,[edx+3Ch] L000357BC: mov esi,[ecx+1Ch] imul esi,[esp+14h] shr esi,03h cmp esi,00000002h mov [esp+18h],edx ja L000357D5 mov esi,00000002h L000357D5: test eax,eax jnz L000357E0 mov eax,[esp+10h] add eax,0000003Ch L000357E0: mov ecx,[esp+10h] mov ebp,[eax+44h] mov ebx,[edi] push ecx push edi call SUB_L0001ADD0 mov edx,[ebx+18h] push eax mov eax,[ebx+0Ch] mov ebx,[esp+20h] push ebp push edx push eax push esi mov esi,[esp+2Ch] push esi push ebx call SUB_L0001AE30 push ebx call SUB_L00017340 mov ecx,[edi] mov [ecx+08h],esi mov esi,[esp+24h] L00035819: mov dword ptr [esi+08h],00000000h L00035820: pop edi pop ebp pop ebx mov eax,00000001h pop esi add esp,00000010h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00035830: push ebx push ebp mov ebp,[esp+0Ch] mov eax,[ebp+00h] push esi push edi push eax call GetDriverData mov ebx,[ebp+04h] mov esi,[eax+58h] mov eax,[ebx+68h] mov ecx,eax and ecx,00002000h mov edi,00001000h jz L00035877 test [ebx+04h],edi jz L00035877 test byte ptr [ebx+4Ch],01h jz L00035877 L00035864: pop edi pop esi mov dword ptr [ebp+0Ch],80004001h pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00035877: test edi,eax jz L00035A10 mov ecx,[ebx+0Ch] push ecx call SUB_L00035AF0 test eax,eax jz L00035864 mov edx,[ebp+04h] mov eax,[edx+08h] push eax call SUB_L00035AF0 test eax,eax jz L00035864 test [ebx+04h],edi jnz L000358AE add esi,00000004h lea edi,[ebx+48h] mov ecx,00000008h rep movsd L000358AE: mov dword ptr [ebp+0Ch],88760091h mov edx,[L000B7058] xor esi,esi test edx,edx jbe L00035ADC mov ecx,[ebx+4Ch] mov edi,ecx and edi,00000040h mov eax,L000B3070 jmp L000358D8 L000358D4: mov ebp,[esp+14h] L000358D8: test edi,edi jz L00035913 test byte ptr [eax-14h],40h jz L00035913 mov ebp,[ebx+54h] cmp ebp,[eax-0Ch] jnz L0003598F mov ebp,[ebx+60h] cmp ebp,[eax] jnz L0003598F mov ebp,[ebx+5Ch] cmp ebp,[eax-04h] jnz L0003598F mov ebp,[ebx+58h] cmp ebp,[eax-08h] jz L000359A7 jmp L0003598F L00035913: test cl,20h jz L00035922 test byte ptr [eax-14h],20h jnz L000359CF L00035922: test ch,02h jz L00035953 test dword ptr [eax-14h],00000200h jz L00035953 mov ebp,[ebx+54h] cmp ebp,[eax-0Ch] jnz L00035953 mov ebp,[ebx+58h] cmp ebp,[eax-08h] jnz L00035953 mov ebp,[ebx+5Ch] cmp ebp,[eax-04h] jnz L00035953 mov ebp,[ebx+60h] cmp ebp,[eax] jz L000359E2 L00035953: test ecx,L00020000 jz L0003597C test dword ptr [eax-14h],L00020000 jz L0003597C mov ebp,[ebx+54h] cmp ebp,[eax-0Ch] jnz L0003597C mov ebp,[ebx+58h] cmp ebp,[eax-08h] jnz L0003597C mov ebp,[ebx+64h] cmp ebp,[eax+04h] jz L000359F9 L0003597C: test cl,04h jz L0003598F test byte ptr [eax-14h],04h jz L0003598F mov ebp,[ebx+50h] cmp ebp,[eax-10h] jz L000359B8 L0003598F: inc esi add eax,0000006Ch cmp esi,edx jc L000358D4 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000359A7: test cl,01h jz L000359B8 mov ecx,[ebx+64h] cmp ecx,[eax+04h] jnz L00035ADC L000359B8: mov edx,[esp+14h] pop edi pop esi pop ebp mov dword ptr [edx+0Ch],00000000h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000359CF: pop edi pop esi mov dword ptr [ebp+0Ch],00000000h pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000359E2: mov eax,[esp+14h] pop edi pop esi pop ebp mov dword ptr [eax+0Ch],00000000h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000359F9: mov ecx,[esp+14h] pop edi pop esi pop ebp mov dword ptr [ecx+0Ch],00000000h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00035A10: mov edx,eax and edx,00004000h jz L00035A74 test eax,L00020000 jz L00035A74 test byte ptr [ebx+04h],40h jz L00035A2C mov ebx,[ebx+18h] jmp L00035A2F L00035A2C: mov ebx,[ebx+54h] L00035A2F: mov ecx,[L000B707C] xor edx,edx xor eax,eax cmp ecx,edx jbe L00035ADC mov ecx,L000B2E14 L00035A46: cmp ebx,[ecx] jnz L00035A5A cmp [L000B70A8],edx jnz L00035A57 cmp ebx,00000010h jnz L00035A5A L00035A57: mov [ebp+0Ch],edx L00035A5A: mov esi,[L000B707C] inc eax add ecx,00000020h cmp eax,esi jc L00035A46 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00035A74: xor ebp,ebp cmp edx,ebp jz L00035ADC cmp ecx,ebp jz L00035ADC test [ebx+04h],edi lea eax,[ebx+48h] jnz L00035A89 lea eax,[esi+04h] L00035A89: mov ecx,[eax+04h] test cl,40h jz L00035AD5 mov eax,[eax+0Ch] cmp eax,00000010h jz L00035AC2 cmp [L000B6F2C],ebp jz L00035AAB cmp eax,00000020h jnz L00035AAB test cl,01h jnz L00035AC2 L00035AAB: mov eax,[esp+14h] pop edi pop esi pop ebp mov dword ptr [eax+0Ch],88760091h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00035AC2: mov ecx,[esp+14h] pop edi pop esi mov [ecx+0Ch],ebp pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L00035AD5: mov edx,[esp+14h] mov [edx+0Ch],ebp L00035ADC: pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00035AF0: mov ecx,[esp+04h] lea eax,[ecx-01h] and eax,ecx neg eax sbb eax,eax inc eax retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L00035B10: sub esp,00000314h push ebx push ebp push esi mov esi,[esp+00000324h] mov eax,[esi] push edi push eax call GetDriverData mov edi,[eax+58h] push eax mov [esp+24h],eax mov [esp+14h],edi call SUB_L00036460 mov edx,[esi+04h] mov eax,[edx+04h] test ah,10h mov [esp+30h],edx lea ecx,[edx+48h] jnz L00035B4F lea ecx,[edi+04h] L00035B4F: mov eax,[esi+08h] mov edi,[eax] test dword ptr [edi+08h],00400000h mov edx,[edx+6Ch] mov eax,[edi] mov [esp+24h],ecx mov [esp+34h],edx jz L00035E11 test dword ptr [edi+04h],00002000h jz L00035B7A lea ecx,[eax+24h] L00035B7A: mov ebx,[eax+1Ch] mov ebp,[eax+18h] test byte ptr [ecx+04h],04h mov edi,[ecx+0Ch] jz L00035BC2 mov ecx,[ecx+08h] cmp ecx,33545844h ja L00035CBB jz L00035CE1 cmp ecx,31545844h jz L00035CA2 cmp ecx,32545844h jz L00035CE1 cmp ecx,32595559h jz L00035CD7 L00035BC2: cmp edi,00000008h jnc L00035BD4 imul edi,ebx shr edi,03h mov ebx,edi mov edi,00000008h L00035BD4: mov eax,[L000B6F24] test eax,eax mov esi,2A280000h jz L00035BF1 cmp edi,00000020h mov esi,2A680000h jnz L00035BF1 mov esi,2A280000h L00035BF1: mov ecx,[esp+00000328h] mov eax,[ecx+0Ch] and dl,04h neg dl mov [esp+28h],eax sbb edx,edx and edx,FF980000h dec edx and esi,edx lea edx,[esp+38h] push edx push eax mov eax,[esp+28h] mov ecx,[eax+000000A8h] push edi push ebp push ebx push esi push ecx call SUB_L00028500 test eax,eax jnz L00035C59 mov eax,[esp+28h] mov ecx,[esp+20h] lea edx,[esp+38h] push edx mov edx,[ecx+000000A8h] push eax push edi push ebp push ebx and esi,FF97FFFFh push esi push edx call SUB_L00028500 test eax,eax jz L00035DB9 L00035C59: mov eax,[esp+00000328h] mov ecx,[eax+0Ch] xor ebp,ebp test ecx,ecx jbe L00036448 lea ecx,[esp+38h] mov [esp+18h],ecx L00035C75: mov edx,[esp+00000328h] mov eax,[edx+08h] test dword ptr [esp+50h],02000000h mov eax,[eax+ebp*4] mov ebx,[eax] jz L00035CFC mov ecx,[eax+08h] and ecx,EFFFFFFFh or ecx,20000000h mov [eax+08h],ecx jmp L00035D0E L00035CA2: add ebx,00000003h shr ebx,02h add ebp,00000003h shl ebx,02h shr ebp,02h mov edi,00000010h jmp L00035BD4 L00035CBB: cmp ecx,34545844h jz L00035CE1 cmp ecx,35545844h jz L00035CE1 cmp ecx,59565955h jnz L00035BC2 L00035CD7: mov edi,00000010h jmp L00035BD4 L00035CE1: add ebx,00000003h add ebp,00000003h shr ebx,02h shr ebp,02h shl ebx,02h shl ebp,1 mov edi,00000010h jmp L00035BD4 L00035CFC: mov edx,[eax+08h] and edx,DFFFFFFFh or edx,10000000h mov [eax+08h],edx L00035D0E: mov edx,[ebx+20h] test edx,edx jnz L00035D1C mov ecx,[esp+10h] lea edx,[ecx+3Ch] L00035D1C: mov esi,[esp+18h] lea edi,[edx+38h] mov ecx,00000011h rep movsd test dword ptr [eax+08h],20000000h mov ecx,[eax] mov ecx,[ecx+20h] jz L00035D4A xor esi,esi cmp ecx,esi jnz L00035D45 mov ecx,[esp+10h] add ecx,0000003Ch L00035D45: mov ecx,[ecx+38h] jmp L00035D5A L00035D4A: test ecx,ecx jnz L00035D55 mov ecx,[esp+10h] add ecx,0000003Ch L00035D55: mov ecx,[ecx+3Ch] xor esi,esi L00035D5A: mov [ebx+08h],ecx mov eax,[eax] mov eax,[eax+20h] cmp eax,esi jnz L00035D6D mov ecx,[esp+10h] lea eax,[ecx+3Ch] L00035D6D: mov eax,[eax+44h] mov ecx,[esp+28h] mov [ebx+0Ch],eax mov eax,00000001h cmp ecx,eax mov [edx+7Ch],esi mov [edx+1Ch],eax mov [edx+20h],eax ja L00035D8F mov [edx+1Ch],esi mov [edx+20h],esi L00035D8F: add dword ptr [esp+18h],00000044h mov ecx,[esp+00000328h] mov eax,[ecx+0Ch] inc ebp cmp ebp,eax jc L00035C75 pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000314h retn 0004h ;------------------------------------------------------------------------------ L00035DB9: mov ebx,[esp+00000328h] mov eax,[ebx+0Ch] xor ebp,ebp xor esi,esi cmp eax,ebp jbe L00035DF8 L00035DCB: mov edx,[ebx+08h] mov edi,[edx+esi*4] mov eax,[edi] mov eax,[eax+20h] cmp eax,ebp jnz L00035DE5 mov ecx,[esp+10h] lea eax,[ecx+3Ch] cmp eax,ebp jz L00035DEB L00035DE5: push eax call OsFreeMem L00035DEB: mov edx,[edi] mov [edx+20h],ebp mov eax,[ebx+0Ch] inc esi cmp esi,eax jc L00035DCB L00035DF8: pop edi pop esi pop ebp mov dword ptr [ebx+10h],8876017Ch mov eax,00000001h pop ebx add esp,00000314h retn 0004h ;------------------------------------------------------------------------------ L00035E11: mov eax,[esi+0Ch] test eax,eax mov dword ptr [esp+2Ch],00000000h jbe L00036448 L00035E24: mov eax,[esp+00000328h] mov ecx,[eax+08h] mov edx,[esp+2Ch] mov ebp,[ecx+edx*4] mov eax,[ebp+00h] mov ebx,[ebp+08h] mov [esp+1Ch],eax cmp dword ptr [L000B7080],00000700h mov [esp+28h],ebp jc L00035F10 test bh,02h jnz L00035F10 test bl,10h jz L00035F10 test bl,08h jz L00035F10 mov eax,[ebp+28h] test eax,eax jz L00035F10 mov ecx,[eax+04h] test ecx,ecx jz L00035F10 mov eax,[ecx+24h] test eax,eax jz L00035F10 mov eax,[eax+04h] cmp ebp,eax jz L00035F10 mov edx,[ebp+24h] test edx,edx jz L00035EBB test eax,eax mov [edx+04h],eax mov edx,[ecx+24h] mov [edx+04h],ebp jz L00035F10 mov eax,[eax+28h] test eax,eax jz L00035F10 cmp ecx,[eax+04h] jnz L00035F10 mov [eax+04h],ebp jmp L00035F10 L00035EBB: mov edi,[esp+10h] mov edx,L000B6290 L00035EC4: mov eax,[edx+08h] test eax,eax jz L00035F05 mov eax,[edx] mov ecx,[eax] mov esi,00000001h cmp ecx,esi jbe L00035F05 L00035ED8: mov ecx,[edx] mov eax,[ecx+esi*4] test eax,eax jz L00035EFC cmp [eax+000000A0h],ebp jnz L00035EFC mov ecx,[ebp+00h] mov ecx,[ecx+20h] test ecx,ecx jnz L00035EF6 lea ecx,[edi+3Ch] L00035EF6: mov [eax+0000009Ch],ecx L00035EFC: mov eax,[edx] mov ecx,[eax] inc esi cmp esi,ecx jc L00035ED8 L00035F05: add edx,0000000Ch cmp edx,L000B6BF0 jc L00035EC4 L00035F10: mov ecx,[esp+1Ch] mov eax,[ecx+08h] test eax,eax jnz L0003637C mov eax,[ebp+04h] test ah,20h jz L00035F30 mov edx,ecx add edx,00000024h mov [esp+24h],edx L00035F30: test ebx,L00020000 jz L000360C4 mov eax,[esp+24h] mov ecx,[eax+04h] test ch,04h jz L00035F51 mov edx,eax mov eax,[edx+0Ch] mov ebx,ecx jmp L00035F70 L00035F51: mov eax,[esp+30h] mov ecx,[eax+04h] test cl,40h jz L00035F66 mov edx,eax mov eax,[edx+18h] mov ebx,ecx jmp L00035F70 L00035F66: mov eax,00000010h mov ebx,00000400h L00035F70: mov edx,[esp+1Ch] mov esi,[edx+1Ch] mov edi,[edx+18h] mov edx,[L000B6F24] test edx,edx mov ecx,29084000h jz L00035F9D cmp eax,00000010h mov ecx,29484000h jbe L00035F9D mov eax,00000020h mov ecx,29084000h L00035F9D: mov edx,[ebp+00h] mov edx,[edx+20h] test edx,edx jnz L00035FAE mov edx,[esp+10h] add edx,0000003Ch L00035FAE: mov [esp+14h],edx add edx,00000038h push edx push eax mov eax,[esp+28h] push edi push esi push ecx mov ecx,[eax+000000A8h] push ecx call SUB_L000267C0 test eax,eax jz L000363D8 mov eax,[ebp+08h] mov edx,[ebp+04h] and eax,DFFFFFFFh or eax,10000000h or edx,ebx test eax,20000000h mov [ebp+08h],eax mov [ebp+04h],edx jz L00036007 mov edx,[ebp+00h] mov eax,[edx+20h] test eax,eax jnz L00036002 mov eax,[esp+10h] add eax,0000003Ch L00036002: mov eax,[eax+38h] jmp L0003601B L00036007: mov ecx,[ebp+00h] mov eax,[ecx+20h] test eax,eax jnz L00036018 mov edx,[esp+10h] lea eax,[edx+3Ch] L00036018: mov eax,[eax+3Ch] L0003601B: mov edi,[esp+1Ch] mov [edi+08h],eax mov eax,[ebp+00h] mov eax,[eax+20h] test eax,eax jnz L00036033 mov ecx,[esp+10h] lea eax,[ecx+3Ch] L00036033: mov edx,[eax+44h] mov [edi+0Ch],edx mov eax,[L000B70B0] test eax,eax jz L0003637C push 00000054h push 00000001h call OsAllocMem mov esi,eax test esi,esi jz L000363A9 mov eax,[esp+14h] mov [eax+34h],esi xor eax,eax mov ax,[edi+18h] mov ecx,[esp+20h] push esi add eax,0000000Fh cdq and edx,0000000Fh add eax,edx mov edx,[ecx+000000A8h] sar eax,04h and eax,0000FFFFh shl eax,09h add eax,00003FFFh push eax push 09000000h push edx call SUB_L00026250 test eax,eax jz L000363B8 mov eax,[esi+04h] mov ecx,[esi] add eax,00003FFFh and eax,FFFFC000h add ecx,00003FFFh and ecx,FFFFC000h mov [esi+44h],eax mov [esi+48h],ecx jmp L0003637C L000360C4: test bh,10h jz L000362A9 test bh,20h jnz L000362B2 mov eax,[esp+24h] mov ecx,[esp+1Ch] mov ebx,[ecx+1Ch] test byte ptr [eax+04h],04h mov ecx,[ecx+18h] mov edi,[eax+0Ch] mov [esp+18h],ecx jz L00036122 mov eax,[eax+08h] cmp eax,33545844h ja L00036194 jz L000361B7 cmp eax,31545844h jz L0003617A cmp eax,32545844h jz L000361B7 cmp eax,32595559h jz L000361AD L00036122: cmp edi,00000008h jnc L00036132 imul ebx,edi shr ebx,03h mov edi,00000008h L00036132: mov eax,[L000B6F24] test eax,eax mov esi,2A280000h jz L0003614F cmp edi,00000020h mov esi,2A680000h jnz L0003614F mov esi,2A280000h L0003614F: mov edx,[esp+34h] mov eax,[ebp+00h] mov eax,[eax+20h] and dl,04h neg dl sbb edx,edx and edx,FF980000h dec edx and esi,edx test eax,eax jnz L000361D6 mov ecx,[esp+10h] add ecx,0000003Ch mov [esp+14h],ecx jmp L000361DA L0003617A: add ebx,00000003h shr ebx,02h add ecx,00000003h shl ebx,02h shr ecx,02h mov [esp+18h],ecx mov edi,00000010h jmp L00036132 L00036194: cmp eax,34545844h jz L000361B7 cmp eax,35545844h jz L000361B7 cmp eax,59565955h jnz L00036122 L000361AD: mov edi,00000010h jmp L00036132 L000361B7: add ebx,00000003h add ecx,00000003h shr ebx,02h shr ecx,02h shl ebx,02h shl ecx,1 mov [esp+18h],ecx mov edi,00000010h jmp L00036132 L000361D6: mov [esp+14h],eax L000361DA: mov edx,[esp+14h] mov eax,[esp+18h] mov ecx,[esp+20h] lea ebp,[edx+38h] mov edx,[ecx+000000A8h] push ebp push edi push eax push ebx push esi push edx call SUB_L00027590 test eax,eax jnz L00036225 mov eax,[esp+18h] mov ecx,[esp+20h] mov edx,[ecx+000000A8h] push ebp push edi push eax push ebx and esi,FF97FFFFh push esi push edx call SUB_L00027590 test eax,eax jz L00036410 L00036225: mov eax,[esp+14h] test dword ptr [eax+50h],02000000h mov ecx,[esp+28h] jz L0003624A mov edx,[ecx+08h] and edx,EFFFFFFFh or edx,20000000h mov [ecx+08h],edx jmp L0003625A L0003624A: mov eax,[ecx+08h] and eax,DFFFFFFFh or eax,10000000h mov [ecx+08h],eax L0003625A: mov eax,[ecx+08h] mov edx,[ecx] test eax,20000000h mov eax,[edx+20h] jz L00036279 test eax,eax jnz L00036274 mov eax,[esp+10h] add eax,0000003Ch L00036274: mov edx,[eax+38h] jmp L00036287 L00036279: test eax,eax jnz L00036284 mov eax,[esp+10h] add eax,0000003Ch L00036284: mov edx,[eax+3Ch] L00036287: mov eax,[esp+1Ch] mov [eax+08h],edx mov ecx,[ecx] mov ecx,[ecx+20h] test ecx,ecx jnz L0003629E mov edx,[esp+10h] lea ecx,[edx+3Ch] L0003629E: mov ecx,[ecx+44h] mov [eax+0Ch],ecx jmp L0003637C L000362A9: test bh,20h jz L0003637C L000362B2: mov eax,[esp+24h] test byte ptr [eax+04h],40h jz L000362C1 mov ecx,[eax+0Ch] jmp L000362C6 L000362C1: mov ecx,00000010h L000362C6: mov esi,[esp+1Ch] mov edx,[esi+1Ch] mov edi,[esi+18h] mov esi,[L000B6F24] test esi,esi mov eax,29080000h jz L000362EE cmp ecx,00000020h mov eax,29480000h jnz L000362EE mov eax,29080000h L000362EE: mov esi,[ebp+00h] mov esi,[esi+20h] test esi,esi jnz L000362FF mov esi,[esp+10h] add esi,0000003Ch L000362FF: lea ebx,[esi+38h] push ebx push ecx push edi push edx mov edx,[esp+30h] push eax mov eax,[edx+000000A8h] push eax call SUB_L000267C0 test eax,eax jz L00036426 mov ecx,[ebp+08h] or ecx,10000000h mov eax,ecx test eax,20000000h mov [ebp+08h],ecx jz L0003634A mov ecx,[ebp+00h] mov eax,[ecx+20h] test eax,eax jnz L00036345 mov edx,[esp+10h] lea eax,[edx+3Ch] L00036345: mov eax,[eax+38h] jmp L0003635E L0003634A: mov eax,[ebp+00h] mov eax,[eax+20h] test eax,eax jnz L0003635B mov ecx,[esp+10h] lea eax,[ecx+3Ch] L0003635B: mov eax,[eax+3Ch] L0003635E: mov ecx,[esp+1Ch] mov [ecx+08h],eax mov edx,[ebp+00h] mov eax,[edx+20h] test eax,eax jnz L00036376 mov eax,[esp+10h] add eax,0000003Ch L00036376: mov edx,[eax+44h] mov [ecx+0Ch],edx L0003637C: mov eax,[esp+2Ch] mov ecx,[esp+00000328h] mov edx,[ecx+0Ch] inc eax cmp eax,edx mov [esp+2Ch],eax jc L00035E24 pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000314h retn 0004h ;------------------------------------------------------------------------------ L000363A9: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000314h retn 0004h ;------------------------------------------------------------------------------ L000363B8: mov edx,[esp+00000328h] pop edi pop esi pop ebp mov dword ptr [edx+10h],8876017Ch mov eax,00000001h pop ebx add esp,00000314h retn 0004h ;------------------------------------------------------------------------------ L000363D8: mov eax,[esp+14h] test eax,eax jz L000363E6 push eax call OsFreeMem L000363E6: mov eax,[ebp+00h] L000363E9: mov ecx,[esp+00000328h] pop edi pop esi mov dword ptr [eax+20h],00000000h pop ebp mov dword ptr [ecx+10h],8876017Ch mov eax,00000001h pop ebx add esp,00000314h retn 0004h ;------------------------------------------------------------------------------ L00036410: mov eax,[esp+14h] test eax,eax jz L0003641E push eax call OsFreeMem L0003641E: mov edx,[esp+28h] mov eax,[edx] jmp L000363E9 L00036426: test esi,esi jz L00036430 push esi call OsFreeMem L00036430: mov edx,[ebp+00h] mov eax,[esp+00000328h] mov dword ptr [edx+20h],00000000h mov dword ptr [eax+10h],8876017Ch L00036448: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000314h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L00036460: push ebx push ebp push esi push edi mov edi,[esp+14h] mov ebx,[edi+78h] test ebx,ebx jz L000364C0 mov esi,[ebx+18h] test esi,esi mov eax,[edi+000000ACh] mov ebp,[eax+50h] jz L000364C0 cmp ebp,[esi+08h] jc L000364C0 L00036484: mov edx,[edi+000000A8h] lea ecx,[esi+38h] push ecx push edx call SUB_L00026030 push esi call OsFreeMem xor eax,eax mov esi,[eax] test esi,esi jz L000364A7 cmp ebp,[esi+08h] jnc L00036484 L000364A7: test esi,esi mov [ebx+18h],esi jz L000364BB mov eax,[ebx+1Ch] pop edi pop esi pop ebp mov [ebx+1Ch],eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L000364BB: xor eax,eax mov [ebx+1Ch],eax L000364C0: pop edi pop esi pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000364D0: push esi mov esi,[esp+10h] test esi,esi jle L0003651A mov eax,[esp+0Ch] mov ecx,[esp+08h] push ebx L000364E2: xor edx,edx mov dl,[eax+03h] xor ebx,ebx mov bl,[eax] add ecx,00000004h add eax,00000004h and edx,FFFFFFF0h shl edx,04h and ebx,FFFFFFF0h or edx,ebx xor ebx,ebx mov bl,[eax-03h] shl edx,04h and ebx,FFFFFFF0h or edx,ebx xor ebx,ebx mov bl,[eax-02h] shr ebx,04h or edx,ebx dec esi mov [ecx-04h],edx jnz L000364E2 pop ebx L0003651A: pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00036520: push esi mov esi,[esp+10h] test esi,esi jle L00036560 mov eax,[esp+0Ch] mov ecx,[esp+08h] push ebx L00036532: xor edx,edx mov dl,[eax] xor ebx,ebx mov bl,[eax+01h] add ecx,00000004h add eax,00000004h and edx,FFFFFFF8h shl edx,05h and ebx,FFFFFFFCh or edx,ebx xor ebx,ebx mov bl,[eax-02h] shl edx,03h shr ebx,03h or edx,ebx dec esi mov [ecx-04h],edx jnz L00036532 pop ebx L00036560: pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00036570: mov eax,[esp+04h] push eax call SUB_L000B0AD0 retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00036580: sub esp,00000008h push ebx push ebp push esi mov esi,[esp+18h] mov edx,[esi+00000A34h] imul edx,[esi+000005D4h] mov eax,[esi+00000148h] mov [esp+10h],eax mov eax,[esi+00000A38h] test eax,eax push edi mov [esp+1Ch],edx jz L000365E8 mov ecx,[esi+00000A00h] and ecx,0000000Eh cmp cl,04h jnz L000365E8 mov ecx,[eax+50h] cmp ecx,[esi+00000A04h] jnz L000365E8 mov ecx,[eax+54h] cmp ecx,[esi+00000A10h] jnz L000365E8 mov ecx,[eax+58h] cmp ecx,[esi+00000A14h] jnz L000365E8 cmp edx,[eax+48h] jbe L00036895 L000365E8: xor ebx,ebx mov ecx,00000001h mov dword ptr [esp+10h],FFFFFFFFh xor edi,edi lea ebp,[esi+00002A80h] L000365FF: mov eax,[ebp+08h] sub eax,00000000h jz L000367BC dec eax jz L00036640 dec eax jnz L00036653 mov edx,[ebp+00h] mov eax,[esi+00000144h] push edx push eax call SUB_L00029710 test eax,eax jz L00036799 mov eax,[ebp+00h] cmp eax,[esp+10h] jnc L00036638 mov [esp+10h],eax mov ebx,edi L00036638: mov edx,[esp+1Ch] xor ecx,ecx jmp L00036653 L00036640: test ecx,ecx jz L00036653 mov eax,[ebp+00h] cmp eax,[esp+10h] jnc L00036653 mov [esp+10h],eax mov ebx,edi L00036653: inc edi add ebp,00000078h cmp edi,00000040h jl L000365FF test ecx,ecx jz L0003667E mov edi,[esi+00000148h] push 00000001h push edi call [edi+14h] xor ecx,ecx push eax push esi mov [edi+0Ch],ecx mov [edi+08h],ecx mov [edi+04h],ecx call SUB_L00036940 L0003667E: mov edx,[esi+00000144h] lea eax,[ebx+ebx*2] lea eax,[eax+eax*4] mov ecx,[esi+eax*8+00002A80h] lea edi,[esi+eax*8+00002A3Ch] push ecx push edx call SUB_L00029710 test eax,eax jz L000366B7 L000366A3: mov eax,[edi+44h] mov ecx,[esi+00000144h] push eax push ecx call SUB_L00029710 test eax,eax jnz L000366A3 L000366B7: mov edx,[esp+1Ch] cmp edx,[edi+48h] jbe L000367CA L000366C4: mov eax,[esi+00000144h] mov ecx,[eax+000000A8h] push edi push ecx call SUB_L00026030 mov edx,[esp+1Ch] xor eax,eax mov [edi+4Ch],eax mov [edi+48h],eax L000366E3: mov ecx,[esi+00000144h] lea ebx,[ebx+ebx*2] lea eax,[ebx+ebx*4] lea edi,[esi+eax*8+00002A3Ch] push edi lea ebp,[edx+20h] mov edx,[ecx+000000A8h] push ebp push 22000000h push edx call SUB_L00026250 test eax,eax jnz L000367C3 mov [esp+10h],eax lea ebx,[esi+00002A88h] L0003671E: cmp dword ptr [ebx],00000002h jnz L00036737 mov eax,[ebx-08h] mov ecx,[esi+00000144h] push eax push ecx call SUB_L00029710 test eax,eax jz L0003673C L00036737: cmp dword ptr [ebx],00000003h jnz L0003677C L0003673C: mov eax,[esi+00000144h] mov ecx,[eax+000000A8h] lea edx,[ebx-4Ch] push edx push ecx call SUB_L00026030 mov dword ptr [ebx],00000000h push edi mov dword ptr [ebx-04h],00000000h mov edx,[esi+00000144h] mov eax,[edx+000000A8h] push ebp push 22000000h push eax call SUB_L00026250 test eax,eax jnz L000367C3 L0003677C: mov eax,[esp+10h] inc eax add ebx,00000078h cmp eax,00000040h mov [esp+10h],eax jl L0003671E pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L00036799: mov edx,[esp+1Ch] lea eax,[edi+edi*2] lea ecx,[eax+eax*4] mov eax,[esi+ecx*8+00002A84h] cmp edx,eax mov ebx,edi lea edi,[esi+ecx*8+00002A3Ch] jbe L000367CA jmp L000366C4 L000367BC: mov ebx,edi jmp L000366E3 L000367C3: mov ecx,[esp+1Ch] mov [edi+48h],ecx L000367CA: mov ebx,[esp+14h] mov [esi+00000A38h],edi mov edi,[edi+04h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] add edi,0000001Fh lea edx,[eax+08h] and edi,FFFFFFE0h cmp edx,ecx jc L0003681B push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003681B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+08h] cmp ecx,edx jc L0003681B push ebx call [ebx+10h] mov eax,[ebx+08h] L0003681B: lea edx,[eax+08h] mov [ebx+08h],edx mov dword ptr [eax],0B800000h and edi,03FFFFFFh mov [eax+04h],edi mov eax,[esi+00000A38h] mov dword ptr [eax+44h],FFFFFFFFh mov ecx,[esi+00000A38h] mov dword ptr [ecx+4Ch],00000001h xor eax,eax mov ecx,00000800h lea edi,[esi+00000A3Ch] rep stosd mov edx,[esi+00000A38h] mov eax,[esi+00000A04h] mov [edx+50h],eax mov ecx,[esi+00000A38h] mov edx,[esi+000005D4h] mov [ecx+74h],edx mov eax,[esi+00000A38h] mov ecx,[esi+00000A10h] mov [eax+54h],ecx mov edx,[esi+00000A38h] mov eax,[esi+00000A14h] mov [edx+58h],eax L00036895: mov ecx,[esi+00000A38h] mov eax,[ecx] pop edi pop esi add eax,0000001Fh pop ebp and eax,FFFFFFE0h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L000368B0: push ebx push esi push edi mov edi,[esp+10h] lea esi,[edi+00002A88h] mov ebx,00000040h L000368C2: mov eax,[esi] cmp eax,00000003h jz L000368CE cmp eax,00000001h jnz L000368EA L000368CE: mov ecx,[edi+00000144h] mov edx,[ecx+000000A8h] lea eax,[esi-4Ch] push eax push edx call SUB_L00026030 mov dword ptr [esi],00000000h L000368EA: cmp dword ptr [esi],00000002h jnz L00036933 mov eax,[esi-08h] mov ecx,[edi+00000144h] push eax push ecx call SUB_L00029710 test eax,eax jz L00036917 L00036903: mov edx,[esi-08h] mov eax,[edi+00000144h] push edx push eax call SUB_L00029710 test eax,eax jnz L00036903 L00036917: mov edx,[edi+00000144h] mov eax,[edx+000000A8h] lea ecx,[esi-4Ch] push ecx push eax call SUB_L00026030 mov dword ptr [esi],00000000h L00036933: add esi,00000078h dec ebx jnz L000368C2 pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00036940: mov eax,[esp+04h] mov edx,[esp+08h] add eax,00002A88h mov ecx,00000040h L00036952: cmp dword ptr [eax],00000001h jnz L00036960 mov dword ptr [eax],00000002h mov [eax-08h],edx L00036960: add eax,00000078h dec ecx jnz L00036952 retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00036970: mov eax,[esp+04h] add eax,00002A84h mov ecx,00000040h xor edx,edx L00036980: mov [eax+04h],edx mov [eax],edx add eax,00000078h dec ecx jnz L00036980 retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L00036990: mov eax,[esp+08h] sub esp,00000044h push ebx mov ebx,[esp+4Ch] push ebp push esi mov esi,[ebx+00000148h] push edi lea edi,[eax-01h] cmp edi,000000A5h ja CASE_00037608_PROC0002 xor ecx,ecx mov cl,[edi+CASE_000376D4] jmp [CASE_PROCTABLE_00037608+ecx*4] CASE_00037608_PROC0013: mov eax,[esp+60h] cmp eax,00000009h jnc CASE_00037608_PROC0002 cmp eax,00000008h ja CASE_00037608_PROC0002 mov edx,[L000B37A0+eax*4] push edx push esi push ebx call SUB_L00037E40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0012: mov eax,[esp+60h] and eax,0000FFFFh cmp eax,000000FFh jbe L00036A28 mov ecx,eax shl ecx,08h sub ecx,eax add ecx,00008000h shr ecx,10h push ecx push esi push ebx call SUB_L00037EC0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036A28: push eax push esi push ebx call SUB_L00037EC0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC000A: mov edx,[esp+60h] push edx push esi push ebx call SUB_L00037BB0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0022: mov eax,[esp+60h] push eax push 00000015h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0015: mov ecx,[esp+60h] push ecx push esi push ebx call SUB_L00037C30 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC001D: push 00000000h push ebx call [L000B70AC] mov edi,eax test edi,edi jz L00036B13 cmp dword ptr [ebx+00000224h],00000001h jnz L00036B13 push edi call [L000B6F68] cmp eax,00000001h jnz L00036B13 test byte ptr [edi+18h],02h push 00000000h push esi push ebx jz L00036ADD call SUB_L000379A0 push 00000001h push esi push ebx call SUB_L000378D0 mov edx,[edi+000000ACh] push edx push esi push ebx call SUB_L00037F40 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036ADD: call SUB_L000378D0 push 00000001h push esi push ebx call SUB_L000379A0 mov eax,[edi+000000ACh] push eax push esi push ebx call SUB_L00037FE0 mov ecx,[edi+000000B0h] push ecx push esi push ebx call SUB_L00038080 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036B13: push 00000000h push esi push ebx call SUB_L000378D0 push 00000000h push esi push ebx call SUB_L000379A0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0010: mov eax,[esp+60h] cmp eax,00000004h jnc CASE_00037608_PROC0002 push eax push esi push ebx call SUB_L00038120 CASE_00037608_PROC0006: mov eax,[ebx+000005D8h] pop edi pop esi or eax,08000000h mov [ebx+000005D8h],eax pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC000E: mov eax,[esp+60h] cmp eax,0000000Eh jnc CASE_00037608_PROC0002 mov edx,[L000B38B0+eax*4] push edx push esi push ebx call SUB_L00038190 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0014: mov eax,[esp+60h] push eax push esi push ebx call SUB_L00037D30 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0018: mov ecx,[esp+60h] push ecx push esi push ebx call SUB_L00038280 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0016: mov edx,[esp+60h] push edx push esi push ebx call SUB_L00037B30 or dword ptr [ebx+000005D8h],84000000h mov eax,[L000B6F30] test eax,eax jz L00036C05 mov eax,[ebx+0000483Ch] test eax,eax jz L00036C05 mov eax,[ebx+000001F0h] test eax,eax jz L00036C05 pop edi pop esi mov eax,00000001h mov [ebx+000048ACh],eax pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036C05: pop edi pop esi xor eax,eax pop ebp mov [ebx+000048ACh],eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0019: mov eax,[L000B6F24] test eax,eax jnz L00036C2D mov eax,[L000B6F30] test eax,eax jz CASE_00037608_PROC0002 L00036C2D: mov eax,[esp+60h] mov [ebx+0000483Ch],eax mov ecx,[L000B6F30] test ecx,ecx jz L00036C67 test eax,eax jz L00036C56 mov eax,[ebx+000001F0h] test eax,eax jz L00036C56 mov eax,00000001h jmp L00036C58 L00036C56: xor eax,eax L00036C58: mov [ebx+000048ACh],eax or dword ptr [ebx+000048B0h],00000001h jmp L00036C6E L00036C67: or dword ptr [ebx+00004850h],00000001h L00036C6E: mov eax,[ebx+000005D8h] pop edi pop esi or eax,04000000h mov [ebx+000005D8h],eax pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC001A: mov eax,[L000B6F24] test eax,eax jnz L00036CA1 mov eax,[L000B6F30] test eax,eax jz CASE_00037608_PROC0002 L00036CA1: mov eax,[esp+60h] mov [ebx+00004840h],eax mov ecx,[L000B6F30] test ecx,ecx jz L00036CC8 push eax push ebx call SUB_L000389B0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036CC8: mov ecx,[ebx+000005D8h] mov eax,[ebx+00004850h] pop edi pop esi or ecx,04000000h or eax,00000002h mov [ebx+00004850h],eax pop ebp mov [ebx+000005D8h],ecx xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC001B: mov eax,[L000B6F24] test eax,eax jnz L00036D0B mov eax,[L000B6F30] test eax,eax jz CASE_00037608_PROC0002 L00036D0B: mov eax,[esp+60h] mov [ebx+00004844h],eax mov ecx,[L000B6F30] test ecx,ecx jz L00036CC8 push eax push ebx call SUB_L000389F0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC001C: mov eax,[L000B6F24] test eax,eax jnz L00036D48 mov eax,[L000B6F30] test eax,eax jz CASE_00037608_PROC0002 L00036D48: mov eax,[esp+60h] mov [esp+60h],eax mov [ebx+00004848h],eax mov eax,[L000B6F30] test eax,eax jz L00036D8A mov ecx,[ebx+000048B0h] mov eax,[esp+60h] or ecx,00000001h push ebx mov [ebx+000048C0h],eax mov [ebx+000048B0h],ecx call SUB_L00033DC0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036D8A: mov ecx,[ebx+000005D8h] mov eax,[ebx+00004850h] pop edi pop esi or ecx,04000000h or eax,00000004h mov [ebx+00004850h],eax pop ebp mov [ebx+000005D8h],ecx xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0020: mov ecx,[esp+60h] push ecx push 00000013h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0008: cmp dword ptr [esp+60h],00000001h jnz L00036DEE push 00000001h push esi push ebx call SUB_L00038370 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036DEE: push 00000000h push esi push ebx call SUB_L00038370 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC002C: cmp dword ptr [esp+60h],00000001h mov edi,[ebx+00000144h] mov [esp+10h],edi jnz CASE_00037608_PROC0002 mov ebp,[ebx+00000174h] mov esi,[ebx+00000178h] push ebp mov [esp+60h],esi call [L000B70B4] cmp [ebx+0000013Ch],eax jnz L00036E58 mov eax,[ebx+00000178h] test eax,eax jz CASE_00037608_PROC0002 push esi call [L000B70B4] cmp [ebx+00000140h],eax jz CASE_00037608_PROC0002 L00036E58: mov edx,[ebp+0000009Ch] mov eax,[ebx+0000014Ch] push edx push eax call SUB_L000388C0 test eax,eax jz L00036E83 mov eax,[ebx+00000148h] push 00000001h push eax call SUB_L000377E0 mov dword ptr [eax],01800004h L00036E83: push ebp call [L000B7088] test ah,20h jz L00036EC3 mov ecx,[ebp+1Ch] push ecx lea edx,[esp+38h] push edx call SUB_L00038900 mov esi,eax lea eax,[esp+14h] mov ecx,00000008h lea edi,[esp+14h] push ebp rep movsd mov [esp+64h],eax call [L000B6F40] mov esi,[esp+5Ch] mov [esp+58h],eax jmp L00036ED2 L00036EC3: mov ecx,[edi+28h] mov dword ptr [esp+60h],00000000h mov [esp+58h],ecx L00036ED2: mov eax,[L000B6288] test eax,eax jz L00036EEB mov eax,[esp+10h] mov edx,[eax+40h] mov edi,[eax+3Ch] mov [esp+5Ch],edx jmp L00036F01 L00036EEB: push ebp call [L000B70B4] mov edi,eax mov eax,[ebp+0000009Ch] mov ecx,[eax+3Ch] mov [esp+5Ch],ecx L00036F01: test esi,esi jz L00036F0E push esi call [L000B6F40] jmp L00036F13 L00036F0E: mov eax,00000010h L00036F13: mov edx,[esp+60h] push eax push edx push ebp call [L000B70C4] push eax push ebp call [L000B6F84] push eax push ebp call [L000B6F60] mov ecx,[esp+6Ch] mov edx,[ebx+00000148h] push eax mov eax,[esp+6Ch] push eax push ecx push edi push edx push ebx call SUB_L0003B0A0 test esi,esi mov [ebx+0000013Ch],edi jz L00036FDD mov eax,[esi+0000009Ch] mov edi,[eax+3Ch] push esi call [L000B70C4] mov ecx,[ebx+00000148h] push eax push edi push ecx push ebx call SUB_L0003B390 mov eax,[L000B70B0] test eax,eax jz L00036F9C mov edx,[esi+0000009Ch] mov eax,[edx+34h] mov ecx,[eax+44h] mov edx,[ebx+00000148h] shr ecx,02h push ecx push edx push ebx call SUB_L00038590 L00036F9C: mov eax,[ebx+0000019Ch] mov ecx,[ebx+00000148h] push eax push ecx push ebx call SUB_L00037CB0 push esi mov [ebx+00000178h],esi call [L000B70B4] mov edx,[ebx+00000148h] push 00000002h push edx mov [ebx+00000140h],eax call SUB_L000377C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L00036FDD: mov edx,[ebx+00000148h] push 00000000h push edx push ebx call SUB_L00037CB0 mov eax,[L000B7078] test eax,eax jz L00037013 mov eax,[ebx+00000148h] push 00000000h push eax push ebx call SUB_L00038620 mov ecx,[ebx+00000148h] push 00000000h push ecx push ebx call SUB_L000386B0 L00037013: mov edx,[ebx+00000148h] push 00000002h push edx call SUB_L000377C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC000D: mov eax,[esp+60h] cmp eax,0000000Eh jnc CASE_00037608_PROC0002 mov eax,[L000B3878+eax*4] push eax push esi push ebx call SUB_L00038410 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0007: mov eax,[esp+60h] dec eax jz L0003707F dec eax push esi push ebx jz L00037075 call SUB_L00038300 mov dword ptr [ebx+000001A4h],00000002h jmp CASE_00037608_PROC0006 L00037075: call SUB_L00038300 jmp CASE_00037608_PROC0006 L0003707F: push esi push ebx call SUB_L00038210 jmp CASE_00037608_PROC0006 CASE_00037608_PROC0017: mov ecx,[esp+60h] push ecx push esi push ebx call SUB_L00037A30 mov eax,[ebx+000005D8h] pop edi pop esi or eax,80000000h mov [ebx+000005D8h],eax pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0001: mov eax,[esp+60h] push eax push 0000000Ch push 00000000h push ebx mov [ebx+00000234h],eax mov [ebx+00000230h],eax call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC001E: mov edx,[esp+60h] push edx push 0000000Dh push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC001F: mov eax,[esp+60h] push eax push 0000000Eh push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC002B: mov ecx,[esp+60h] push ecx push esi push ebx call SUB_L00037840 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0000: mov edx,[esp+60h] push edx push 00000000h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC000B: mov eax,[esp+60h] dec eax jz L0003716A dec eax jnz CASE_00037608_PROC0002 push 00000002h push 00000010h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L0003716A: push 00000001h push 00000010h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC000F: mov eax,[esp+60h] dec eax cmp eax,00000007h ja CASE_00037608_PROC0002 jmp [CASE_PROCTABLE_0003777C+eax*4] CASE_0003777C_PROC0007: push 00000007h L00037199: push 00000001h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h push 00000002h push 00000000h push ebx call SUB_L0003B4C0 push 00000000h push 00000003h push 00000000h push ebx call SUB_L0003B4C0 push 00000003h push 00000004h push 00000000h push ebx call SUB_L0003B4C0 push 00000000h push 00000006h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_0003777C_PROC0000: push 00000002h push 00000001h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h push 00000002h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h push 00000004h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h push 00000005h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_0003777C_PROC0002: push 0000000Dh jmp L00037199 CASE_0003777C_PROC0001: push 00000004h push 00000001h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h push 00000002h push 00000000h push ebx call SUB_L0003B4C0 push 00000000h push 00000003h push 00000000h push ebx call SUB_L0003B4C0 push 7FFFFFFFh jmp L00037273 CASE_0003777C_PROC0003: push 00000004h push 00000001h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h push 00000002h push 00000000h push ebx call SUB_L0003B4C0 push 00000000h push 00000003h push 00000000h push ebx call SUB_L0003B4C0 push 00000004h L00037273: push 00000004h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h push 00000005h push 00000000h push ebx call SUB_L0003B4C0 push 00000000h push 00000006h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC000C: mov ecx,[esp+60h] lea eax,[ecx-01h] cmp eax,00000005h ja CASE_00037608_PROC0002 jmp [CASE_PROCTABLE_0003779C+eax*4] CASE_0003779C_PROC0000: push 00000001h L000372BA: push 00000011h push 00000000h push ebx call SUB_L0003B4C0 push 00000001h L000372C6: push 00000012h push 00000000h push ebx call SUB_L0003B4C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_0003779C_PROC0001: push 00000002h jmp L000372BA CASE_0003779C_PROC0002: push 00000001h push 00000011h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h jmp L000372C6 CASE_0003779C_PROC0003: push 00000002h push 00000011h push 00000000h push ebx call SUB_L0003B4C0 push 00000002h jmp L000372C6 CASE_0003779C_PROC0004: push 00000001h push 00000011h push 00000000h push ebx call SUB_L0003B4C0 push 00000003h jmp L000372C6 CASE_0003779C_PROC0005: push 00000002h push 00000011h push 00000000h push ebx call SUB_L0003B4C0 push 00000003h jmp L000372C6 CASE_00037608_PROC0003: mov edi,[esp+60h] mov eax,[ebx+00000380h] xor edx,edx test edi,edi setnz dl and eax,FFFFFFFEh pop edi pop esi pop ebp or edx,eax or dword ptr [ebx+000005D8h],00000001h mov [ebx+00000380h],edx xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0004: mov ecx,[esp+60h] mov edx,[ebx+00000380h] mov eax,[ebx+000005D8h] neg ecx sbb ecx,ecx pop edi and ecx,00000002h and edx,FFFFFFFDh pop esi or ecx,edx or eax,00000001h mov [ebx+000005D8h],eax pop ebp mov [ebx+00000380h],ecx xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC002D: lea ecx,[eax+eax*2-00000180h] mov eax,00000001h shl eax,cl mov ecx,[ebx+000005D8h] pop edi pop esi or ecx,eax pop ebp mov [ebx+000005D8h],ecx xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0021: mov eax,[esp+60h] neg eax shl eax,03h cmp eax,FFFFFF80h jl L000373DF cmp eax,0000007Fh jle L000373DA mov eax,0000007Fh push eax push esi push ebx call SUB_L00038490 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ L000373DA: cmp eax,FFFFFF80h jge L000373E4 L000373DF: mov eax,FFFFFF80h L000373E4: push eax push esi push ebx call SUB_L00038490 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0005: push ebx call [L000B6F50] cmp eax,00000001h jnz CASE_00037608_PROC0002 mov edi,[esp+60h] push edi push esi push ebx call SUB_L00037CB0 test edi,edi jz L00037421 mov ecx,[ebx+000001B8h] push ecx jmp L00037423 L00037421: push 00000000h L00037423: push esi push ebx call SUB_L00037DC0 mov eax,[ebx+00000188h] test eax,eax jz CASE_00037608_PROC0002 jmp CASE_00037608_PROC0006 CASE_00037608_PROC0011: mov eax,[esp+60h] cmp eax,00000009h jnc CASE_00037608_PROC0002 mov edx,[L000B37C4+eax*4] push edx push esi push ebx call SUB_L00038510 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0009: mov ecx,[esp+60h] push ecx push eax push esi push ebx call SUB_L00038A30 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0023: mov eax,[L000B7078] test eax,eax jz CASE_00037608_PROC0002 mov edx,[esp+60h] push edx push esi push ebx call SUB_L00038AF0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0024: mov ecx,[L000B7078] test ecx,ecx jz CASE_00037608_PROC0002 mov ecx,[esp+60h] push ecx push eax push esi push ebx call SUB_L00038CF0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0025: mov ecx,[L000B7078] test ecx,ecx jz CASE_00037608_PROC0002 mov edx,[esp+60h] push edx push eax push esi push ebx call SUB_L00038D70 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0026: mov ecx,[L000B7078] test ecx,ecx jz CASE_00037608_PROC0002 mov ecx,[esp+60h] push ecx push eax push esi push ebx call SUB_L00038DF0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0027: mov ecx,[L000B7078] test ecx,ecx jz CASE_00037608_PROC0002 mov edx,[esp+60h] push edx push eax push esi push ebx call SUB_L00038E70 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0028: mov eax,[L000B7078] test eax,eax jz CASE_00037608_PROC0002 mov eax,[esp+60h] push eax push esi push ebx call SUB_L00038740 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0029: mov eax,[L000B7078] test eax,eax jz CASE_00037608_PROC0002 mov ecx,[esp+60h] push ecx push esi push ebx call SUB_L000387C0 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC002A: mov eax,[L000B7078] test eax,eax jz CASE_00037608_PROC0002 mov edx,[esp+60h] push edx push esi push ebx call SUB_L00038840 pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC002E: mov eax,[esp+60h] mov ecx,eax mov [esp+60h],eax mov [ebx+00004890h],ecx jmp CASE_00037608_PROC0006 CASE_00037608_PROC0030: mov edx,[esp+60h] mov [ebx+0000488Ch],edx jmp CASE_00037608_PROC0006 CASE_00037608_PROC002F: mov eax,[esp+60h] pop edi pop esi mov ecx,eax pop ebp mov [esp+54h],eax mov [ebx+000048A4h],ecx xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ CASE_00037608_PROC0031: mov edx,[esp+60h] mov eax,edx mov [esp+60h],edx mov [ebx+000048A8h],eax CASE_00037608_PROC0002: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000044h retn 000Ch ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_00037608: dd CASE_00037608_PROC0000 dd CASE_00037608_PROC0001 dd CASE_00037608_PROC0002 dd CASE_00037608_PROC0003 dd CASE_00037608_PROC0004 dd CASE_00037608_PROC0005 dd CASE_00037608_PROC0006 dd CASE_00037608_PROC0007 dd CASE_00037608_PROC0008 dd CASE_00037608_PROC0009 dd CASE_00037608_PROC000A dd CASE_00037608_PROC000B dd CASE_00037608_PROC000C dd CASE_00037608_PROC000D dd CASE_00037608_PROC000E dd CASE_00037608_PROC000F dd CASE_00037608_PROC0010 dd CASE_00037608_PROC0011 dd CASE_00037608_PROC0012 dd CASE_00037608_PROC0013 dd CASE_00037608_PROC0014 dd CASE_00037608_PROC0015 dd CASE_00037608_PROC0016 dd CASE_00037608_PROC0017 dd CASE_00037608_PROC0018 dd CASE_00037608_PROC0019 dd CASE_00037608_PROC001A dd CASE_00037608_PROC001B dd CASE_00037608_PROC001C dd CASE_00037608_PROC001D dd CASE_00037608_PROC001E dd CASE_00037608_PROC001F dd CASE_00037608_PROC0020 dd CASE_00037608_PROC0021 dd CASE_00037608_PROC0022 dd CASE_00037608_PROC0023 dd CASE_00037608_PROC0024 dd CASE_00037608_PROC0025 dd CASE_00037608_PROC0026 dd CASE_00037608_PROC0027 dd CASE_00037608_PROC0028 dd CASE_00037608_PROC0029 dd CASE_00037608_PROC002A dd CASE_00037608_PROC002B dd CASE_00037608_PROC002C dd CASE_00037608_PROC002D dd CASE_00037608_PROC002E dd CASE_00037608_PROC002F dd CASE_00037608_PROC0030 dd CASE_00037608_PROC0031 dd CASE_00037608_PROC0002 CASE_000376D4: db 00h, 32h, 01h, 02h, 03h, 04h, 05h, 06h, 07h, 32h, 08h, 32h, 32h, 09h, 0Ah, 32h db 0Bh, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 11h, 12h, 13h, 14h, 15h, 16h, 17h, 32h, 32h, 32h db 32h, 18h, 19h, 1Ah, 1Bh, 1Ch, 32h, 32h, 1Dh, 32h, 32h, 1Eh, 1Fh, 20h, 21h, 32h db 22h, 32h, 32h, 23h, 24h, 25h, 26h, 27h, 28h, 29h, 2Ah, 2Bh, 32h, 2Ch, 32h, 32h db 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h db 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h db 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h db 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 2Dh db 2Dh, 2Dh, 2Dh, 2Dh, 2Dh, 2Dh, 2Dh, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h db 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 32h, 2Eh, 2Fh, 30h, 02h, 02h, 02h, 02h db 32h, 32h, 32h, 32h, 32h, 31h Align 4 CASE_PROCTABLE_0003777C: dd CASE_0003777C_PROC0000 dd CASE_0003777C_PROC0001 dd CASE_0003777C_PROC0002 dd CASE_0003777C_PROC0003 dd CASE_00037608_PROC0002 dd CASE_00037608_PROC0002 dd CASE_0003777C_PROC0000 dd CASE_0003777C_PROC0007 CASE_PROCTABLE_0003779C: dd CASE_0003779C_PROC0000 dd CASE_0003779C_PROC0001 dd CASE_0003779C_PROC0002 dd CASE_0003779C_PROC0003 dd CASE_0003779C_PROC0004 dd CASE_0003779C_PROC0005 Align 16 SUB_L000377C0: mov eax,[esp+08h] push esi mov esi,[esp+08h] push eax push esi call [esi+14h] xor ecx,ecx mov [esi+0Ch],ecx mov [esi+08h],ecx mov [esi+04h],ecx pop esi retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L000377E0: push esi mov esi,[esp+08h] mov eax,[esi+08h] mov edx,[esi+0Ch] push edi mov edi,[esp+10h] lea ecx,[eax+edi*4] cmp ecx,edx jc L0003782C push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L0003782C mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0003782C push esi call [esi+10h] mov eax,[esi+08h] L0003782C: lea edx,[eax+edi*4] pop edi mov [esi+08h],edx pop esi retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00037840: push ebp mov ebp,esp push ecx mov ecx,[ebp+10h] mov eax,[ebp+08h] mov [eax+0000009Ch],ecx add eax,00000098h push esi mov esi,[ebp+0Ch] mov ecx,[esi+0Ch] mov [ebp+10h],eax mov eax,[esi+08h] lea edx,[eax+08h] cmp edx,ecx push edi mov dword ptr [ebp-04h],00000002h jc L000378A2 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000378A2 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+08h] cmp ecx,edx jc L000378A2 push esi call [esi+10h] mov eax,[esi+08h] L000378A2: lea edx,[eax+08h] mov [esi+08h],edx mov [ebp+08h],eax cld push ecx mov ecx,[ebp-04h] mov esi,[ebp+10h] mov edi,[ebp+08h] rep movsd pop ecx pop edi pop esi mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000378D0: cmp dword ptr [esp+0Ch],00000001h push esi push edi jnz L000378E9 mov eax,[esp+0Ch] lea edi,[eax+74h] mov eax,[edi] or eax,00004000h jmp L000378F8 L000378E9: mov ecx,[esp+0Ch] mov eax,[ecx+74h] lea edi,[ecx+74h] and eax,FFFFBFFFh L000378F8: mov esi,[esp+10h] mov [edi],eax mov eax,[esi+08h] test al,04h jz L0003794C mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037940 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00037940 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037940 push esi call [esi+10h] mov eax,[esi+08h] L00037940: lea edx,[eax+04h] mov [esi+08h],edx mov dword ptr [eax],00000000h L0003794C: mov eax,[esi+08h] mov edx,[esi+0Ch] mov edi,[edi] lea ecx,[eax+04h] cmp ecx,edx jc L0003798C push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0003798C mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003798C push esi call [esi+10h] mov eax,[esi+08h] L0003798C: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L000379A0: cmp dword ptr [esp+0Ch],00000001h jnz L000379B9 mov eax,[esp+04h] mov ecx,[eax+74h] add eax,00000074h or ecx,00001000h jmp L000379C8 L000379B9: mov ecx,[esp+04h] lea eax,[ecx+74h] mov ecx,[eax] and ecx,FFFFEFFFh L000379C8: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037A14 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037A14 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037A14 push esi call [esi+10h] mov eax,[esi+08h] L00037A14: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00037A30: cmp dword ptr [esp+0Ch],00000001h push ebx push esi push edi mov edi,[esp+10h] mov ecx,[edi+74h] jnz L00037A60 or ecx,00000100h mov [edi+74h],ecx mov eax,[L000B7068] test eax,eax jz L00037A83 mov eax,[edi+00000084h] or eax,00004000h jmp L00037A7D L00037A60: and ecx,FFFFFEFFh mov [edi+74h],ecx mov eax,[L000B7068] test eax,eax jz L00037A83 mov eax,[edi+00000084h] and eax,FFFFBFFFh L00037A7D: mov [edi+00000084h],eax L00037A83: mov esi,[esp+14h] mov eax,[esi+08h] mov edx,[esi+0Ch] mov ebx,[edi+74h] lea ecx,[eax+04h] cmp ecx,edx jc L00037ACC push ebp push esi call [esi+10h] mov ecx,[esi+18h] mov ebp,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebp,edx pop ebp jz L00037ACC mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037ACC push esi call [esi+10h] mov eax,[esi+08h] L00037ACC: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],ebx mov eax,[L000B7068] test eax,eax jz L00037B29 mov eax,[esi+08h] mov edx,[esi+0Ch] mov edi,[edi+00000084h] lea ecx,[eax+04h] cmp ecx,edx jc L00037B21 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00037B21 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037B21 push esi call [esi+10h] mov eax,[esi+08h] L00037B21: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi L00037B29: pop edi pop esi pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00037B30: cmp dword ptr [esp+0Ch],00000001h jnz L00037B46 mov eax,[esp+04h] mov ecx,[eax+74h] add eax,00000074h or ecx,00000040h jmp L00037B52 L00037B46: mov ecx,[esp+04h] lea eax,[ecx+74h] mov ecx,[eax] and ecx,FFFFFFBFh L00037B52: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037B9E push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037B9E mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037B9E push esi call [esi+10h] mov eax,[esi+08h] L00037B9E: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00037BB0: mov eax,[esp+0Ch] test eax,eax jz L00037BC7 mov eax,[esp+04h] mov ecx,[eax+74h] add eax,00000074h or ecx,00000010h jmp L00037BD3 L00037BC7: mov ecx,[esp+04h] lea eax,[ecx+74h] mov ecx,[eax] and ecx,FFFFFFEFh L00037BD3: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037C1F push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037C1F mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037C1F push esi call [esi+10h] mov eax,[esi+08h] L00037C1F: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00037C30: mov eax,[esp+0Ch] test eax,eax jz L00037C47 mov eax,[esp+04h] mov ecx,[eax+74h] add eax,00000074h or ecx,00000004h jmp L00037C53 L00037C47: mov ecx,[esp+04h] lea eax,[ecx+74h] mov ecx,[eax] and ecx,FFFFFFFBh L00037C53: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037C9F push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037C9F mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037C9F push esi call [esi+10h] mov eax,[esi+08h] L00037C9F: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00037CB0: cmp dword ptr [esp+0Ch],00000001h jnz L00037CC6 mov eax,[esp+04h] mov ecx,[eax+74h] add eax,00000074h or ecx,00000001h jmp L00037CD2 L00037CC6: mov ecx,[esp+04h] lea eax,[ecx+74h] mov ecx,[eax] and ecx,FFFFFFFEh L00037CD2: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037D1E push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037D1E mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037D1E push esi call [esi+10h] mov eax,[esi+08h] L00037D1E: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00037D30: cmp dword ptr [esp+0Ch],00000001h jnz L00037D49 mov eax,[esp+04h] mov ecx,[eax+78h] add eax,00000078h or ecx,00005500h jmp L00037D58 L00037D49: mov ecx,[esp+04h] lea eax,[ecx+78h] mov ecx,[eax] and ecx,FFFFBFFFh L00037D58: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037DA4 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037DA4 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037DA4 push esi call [esi+10h] mov eax,[esi+08h] L00037DA4: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00037DC0: cmp dword ptr [esp+0Ch],00000001h jnz L00037DD6 mov eax,[esp+04h] mov ecx,[eax+78h] add eax,00000078h or ecx,00000001h jmp L00037DE2 L00037DD6: mov ecx,[esp+04h] lea eax,[ecx+78h] mov ecx,[eax] and ecx,FFFFFFFEh L00037DE2: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00037E2E push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037E2E mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037E2E push esi call [esi+10h] mov eax,[esi+08h] L00037E2E: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L00037E40: mov eax,[esp+04h] mov ecx,[eax+00000088h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and ecx,FFFFF1FFh or ecx,edi mov [eax+00000088h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,74002000h cmp edx,ecx jc L00037EAA push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037EAA mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037EAA push esi call [esi+10h] mov eax,[esi+08h] L00037EAA: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00037EC0: mov eax,[esp+04h] mov ecx,[eax+00000088h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and edi,000000FFh and ecx,FFFFFF00h or ecx,edi mov [eax+00000088h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,74000100h cmp edx,ecx jc L00037F30 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00037F30 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00037F30 push esi call [esi+10h] mov eax,[esi+08h] L00037F30: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00037F40: push ebp mov ebp,esp push ecx mov eax,[ebp+08h] mov ecx,[eax+000000B0h] mov edx,[ebp+10h] and ecx,00FFFFFFh shl edx,18h or ecx,edx mov [eax+000000B0h],ecx add eax,000000A8h push esi mov esi,[ebp+0Ch] mov edx,[esi+0Ch] mov [ebp+10h],eax mov eax,[esi+08h] lea ecx,[eax+0Ch] cmp ecx,edx push edi mov dword ptr [ebp-04h],00000003h jc L00037FB3 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00037FB3 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L00037FB3 push esi call [esi+10h] mov eax,[esi+08h] L00037FB3: lea edx,[eax+0Ch] mov [esi+08h],edx mov [ebp+08h],eax cld push ecx mov ecx,[ebp-04h] mov esi,[ebp+10h] mov edi,[ebp+08h] rep movsd pop ecx pop edi pop esi mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00037FE0: push ebp mov ebp,esp push ecx mov eax,[ebp+08h] mov ecx,[ebp+10h] push esi mov esi,[ebp+0Ch] push edi mov edi,[eax+000000B0h] xor ecx,edi and ecx,00FFFFFFh mov edx,edi xor edx,ecx mov [eax+000000B0h],edx mov ecx,[esi+0Ch] add eax,000000A8h mov [ebp+10h],eax mov eax,[esi+08h] lea edx,[eax+0Ch] cmp edx,ecx mov dword ptr [ebp-04h],00000003h jc L00038054 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038054 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L00038054 push esi call [esi+10h] mov eax,[esi+08h] L00038054: lea edx,[eax+0Ch] mov [esi+08h],edx mov [ebp+08h],eax cld push ecx mov ecx,[ebp-04h] mov esi,[ebp+10h] mov edi,[ebp+08h] rep movsd pop ecx pop edi pop esi mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00038080: push ebp mov ebp,esp push ecx mov eax,[ebp+08h] mov ecx,[ebp+10h] push esi mov esi,[ebp+0Ch] push edi mov edi,[eax+000000ACh] xor ecx,edi and ecx,00FFFFFFh mov edx,edi xor edx,ecx mov [eax+000000ACh],edx mov ecx,[esi+0Ch] add eax,000000A8h mov [ebp+10h],eax mov eax,[esi+08h] lea edx,[eax+0Ch] cmp edx,ecx mov dword ptr [ebp-04h],00000003h jc L000380F4 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000380F4 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L000380F4 push esi call [esi+10h] mov eax,[esi+08h] L000380F4: lea edx,[eax+0Ch] mov [esi+08h],edx mov [ebp+08h],eax cld push ecx mov ecx,[ebp-04h] mov esi,[ebp+10h] mov edi,[ebp+08h] rep movsd pop ecx pop edi pop esi mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00038120: mov eax,[esp+04h] mov ecx,[eax+70h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and ecx,FFFFFFF8h or ecx,edi mov [eax+70h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,62000008h cmp edx,ecx jc L00038181 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038181 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038181 push esi call [esi+10h] mov eax,[esi+08h] L00038181: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00038190: mov eax,[esp+04h] mov ecx,[eax+00000084h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and ecx,FFFFFFE0h or ecx,edi mov [eax+00000084h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,68000020h cmp edx,ecx jc L000381F7 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L000381F7 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000381F7 push esi call [esi+10h] mov eax,[esi+08h] L000381F7: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00038210: mov eax,[esp+04h] push esi mov esi,[eax+70h] or esi,00000450h mov [eax+70h],esi push edi mov edi,esi mov esi,[esp+10h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003826A push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L0003826A mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003826A push esi call [esi+10h] mov eax,[esi+08h] L0003826A: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00038280: mov eax,[esp+04h] mov ecx,[eax+0000008Ch] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and edi,00FCFCFCh and ecx,FF000000h or ecx,edi mov [eax+0000008Ch],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,75000000h cmp edx,ecx jc L000382F0 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L000382F0 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000382F0 push esi call [esi+10h] mov eax,[esi+08h] L000382F0: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00038300: mov eax,[esp+04h] push esi mov esi,[eax+70h] and esi,FFFFFBAFh mov [eax+70h],esi push edi mov edi,esi mov esi,[esp+10h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003835A push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L0003835A mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003835A push esi call [esi+10h] mov eax,[esi+08h] L0003835A: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L00038370: mov eax,[esp+0Ch] test eax,eax push esi push edi jz L000383A5 mov eax,[esp+0Ch] mov esi,[eax+00000084h] add eax,00000084h or esi,00001000h mov [eax],esi mov edx,[L000B7068] test edx,edx mov ecx,esi jz L000383B9 and ecx,FFFFBFFFh jmp L000383B7 L000383A5: mov ecx,[esp+0Ch] lea eax,[ecx+00000084h] mov ecx,[eax] and ecx,FFFFEFFFh L000383B7: mov [eax],ecx L000383B9: mov esi,[esp+10h] mov edi,[eax] mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00038401 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038401 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038401 push esi call [esi+10h] mov eax,[esi+08h] L00038401: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00038410: mov eax,[esp+04h] mov ecx,[eax+00000084h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and ecx,FFFFF82Fh or ecx,edi mov [eax+00000084h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,68000800h cmp edx,ecx jc L0003847A push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L0003847A mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003847A push esi call [esi+10h] mov eax,[esi+08h] L0003847A: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00038490: mov eax,[esp+04h] mov ecx,[eax+00000088h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and edi,000000FFh shl edi,0Eh and ecx,FFC03FFFh or ecx,edi mov [eax+00000088h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,74400000h cmp edx,ecx jc L00038503 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038503 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038503 push esi call [esi+10h] mov eax,[esi+08h] L00038503: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ SUB_L00038510: mov eax,[esp+04h] mov ecx,[eax+70h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and ecx,FFF8FFFFh or ecx,edi mov [eax+70h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] or edi,62100000h cmp edx,ecx jc L00038574 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038574 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038574 push esi call [esi+10h] mov eax,[esi+08h] L00038574: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00038590: push ebp mov ebp,esp push ecx mov eax,[ebp+08h] mov ecx,[eax+000000D4h] mov edx,[ebp+10h] and ecx,FF000FFFh or ecx,edx mov [eax+000000D4h],ecx add eax,000000D0h push esi mov esi,[ebp+0Ch] mov ecx,[esi+0Ch] mov [ebp+10h],eax mov eax,[esi+08h] lea edx,[eax+0Ch] cmp edx,ecx push edi mov dword ptr [ebp-04h],00000003h jc L00038600 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038600 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L00038600 push esi call [esi+10h] mov eax,[esi+08h] L00038600: lea edx,[eax+0Ch] mov [esi+08h],edx mov [ebp+08h],eax cld push ecx mov ecx,[ebp-04h] mov esi,[ebp+10h] mov edi,[ebp+08h] rep movsd pop ecx pop edi pop esi mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L00038620: cmp dword ptr [esp+0Ch],00000001h jnz L00038639 mov eax,[esp+04h] mov ecx,[eax+74h] add eax,00000074h or ecx,00100000h jmp L00038648 L00038639: mov ecx,[esp+04h] lea eax,[ecx+74h] mov ecx,[eax] and ecx,FFEFFFFFh L00038648: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00038694 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038694 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038694 push esi call [esi+10h] mov eax,[esi+08h] L00038694: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000386B0: cmp dword ptr [esp+0Ch],00000001h jnz L000386C9 mov eax,[esp+04h] mov ecx,[eax+78h] add eax,00000078h or ecx,00100000h jmp L000386D8 L000386C9: mov ecx,[esp+04h] lea eax,[ecx+78h] mov ecx,[eax] and ecx,FFEFFFFFh L000386D8: push esi mov esi,[esp+0Ch] mov [eax],ecx mov eax,[esi+08h] push edi mov edi,ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00038724 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038724 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038724 push esi call [esi+10h] mov eax,[esi+08h] L00038724: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00038740: mov eax,[esp+04h] mov ecx,[eax+00000090h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and edi,000000FFh and ecx,FFFFFF00h or edi,ecx or edi,69000100h mov [eax+00000090h],edi mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L000387B0 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L000387B0 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000387B0 push esi call [esi+10h] mov eax,[esi+08h] L000387B0: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L000387C0: mov eax,[esp+04h] mov ecx,[eax+00000094h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and edi,000000FFh or edi,00760200h and ecx,FFFF00FFh shl edi,08h or edi,ecx mov [eax+00000094h],edi mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L00038833 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038833 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038833 push esi call [esi+10h] mov eax,[esi+08h] L00038833: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ SUB_L00038840: mov eax,[esp+04h] mov ecx,[eax+00000094h] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] and edi,000000FFh and ecx,FFFFFF00h or edi,ecx or edi,76010000h mov [eax+00000094h],edi mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L000388B0 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L000388B0 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000388B0 push esi call [esi+10h] mov eax,[esi+08h] L000388B0: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L000388C0: mov edx,[esp+08h] mov eax,[esp+04h] mov ecx,[edx+3Ch] cmp [eax+000006A0h],ecx jz L000388DB cmp [eax+000006A4h],ecx jnz L000388F5 L000388DB: mov ecx,[edx+0Ch] mov eax,[eax+000002A4h] push ecx push eax call GHAL_UpdateFlipStatus test eax,eax jz L000388F5 or eax,FFFFFFFFh retn 0008h ;------------------------------------------------------------------------------ L000388F5: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L00038900: sub esp,00000020h mov eax,[esp+28h] sub eax,00000002h mov dword ptr [esp+04h],00000040h jz L00038968 dec eax jz L0003895E dec eax jz L00038934 mov dword ptr [esp+1Ch],00000000h mov dword ptr [esp+10h],0000F800h mov dword ptr [esp+14h],000007E0h jmp L00038988 L00038934: mov dword ptr [esp+04h],00000041h mov dword ptr [esp+1Ch],0000F000h mov dword ptr [esp+10h],00000F00h mov dword ptr [esp+14h],000000F0h mov dword ptr [esp+18h],0000000Fh jmp L00038990 L0003895E: mov dword ptr [esp+1Ch],00000000h jmp L00038978 L00038968: mov dword ptr [esp+04h],00000041h mov dword ptr [esp+1Ch],00008000h L00038978: mov dword ptr [esp+10h],00007C00h mov dword ptr [esp+14h],000003E0h L00038988: mov dword ptr [esp+18h],0000001Fh L00038990: mov eax,[esp+24h] push esi push edi mov ecx,00000008h lea esi,[esp+08h] mov edi,eax rep movsd pop edi pop esi add esp,00000020h retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L000389B0: mov ecx,[esp+04h] fld dword ptr [esp+08h] fstp dword ptr [ecx+000048B4h] fld dword ptr [ecx+000048B8h] fsub dword ptr [esp+08h] fcom dword ptr [L000B23F0] fst dword ptr [ecx+000048BCh] fnstsw ax test ah,40h jnz L000389E9 fld dword ptr [L000B2418] fdiv ST,ST(1) fstp dword ptr [ecx+000048BCh] L000389E9: fstp ST(0) retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L000389F0: mov ecx,[esp+04h] fld dword ptr [esp+08h] fstp dword ptr [ecx+000048B8h] fld dword ptr [esp+08h] fsub dword ptr [ecx+000048B4h] fcom dword ptr [L000B23F0] fst dword ptr [ecx+000048BCh] fnstsw ax test ah,40h jnz L00038A29 fld dword ptr [L000B2418] fdiv ST,ST(1) fstp dword ptr [ecx+000048BCh] L00038A29: fstp ST(0) retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L00038A30: mov eax,[esp+04h] mov ecx,[eax+0000019Ch] test ecx,ecx push esi push edi jz L00038A96 mov edx,[esp+18h] mov ecx,00000001h cmp edx,ecx jnz L00038A52 or [eax+78h],ecx jmp L00038A56 L00038A52: and dword ptr [eax+78h],FFFFFFFEh L00038A56: mov esi,[esp+10h] mov edi,[eax+78h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038AE3 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038AE3 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038AE3 jmp L00038ADC L00038A96: mov esi,[eax+78h] and esi,FFFFFFFEh mov [eax+78h],esi mov edi,esi mov esi,[esp+10h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038AE3 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038AE3 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038AE3 L00038ADC: push esi call [esi+10h] mov eax,[esi+08h] L00038AE3: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0010h ;------------------------------------------------------------------------------ SUB_L00038AF0: push ebx push ebp push esi push edi mov edi,[esp+14h] mov eax,[edi+00000158h] xor edx,edx test eax,eax jz L00038B09 mov edx,[eax+04h] jmp L00038B16 L00038B09: mov ecx,[edi+00000178h] test ecx,ecx jz L00038B16 mov edx,[ecx+18h] L00038B16: test eax,eax mov eax,[L000B7080] jz L00038B26 cmp eax,00000700h jc L00038B3F L00038B26: mov ecx,[edi+00000178h] test ecx,ecx jz L00038C71 cmp eax,00000700h jc L00038C71 L00038B3F: mov eax,[edi+10h] and eax,00000018h cmp al,10h jnz L00038C71 test dh,04h jz L00038C71 mov ebp,[esp+1Ch] cmp ebp,00000001h mov eax,[edi+74h] jnz L00038B69 or eax,00100000h jmp L00038B6E L00038B69: and eax,FFEFFFFFh L00038B6E: mov esi,[esp+18h] mov [edi+74h],eax mov edx,[esi+0Ch] mov ebx,eax mov eax,[esi+08h] lea ecx,[eax+04h] cmp ecx,edx jc L00038BB5 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038BB5 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038BB5 push esi call [esi+10h] mov eax,[esi+08h] L00038BB5: test ebp,ebp lea edx,[eax+04h] mov [esi+08h],edx mov [eax],ebx jz L00038C26 cmp dword ptr [edi+00000250h],00000001h mov eax,[edi+78h] jnz L00038BD4 or eax,00100000h jmp L00038BD9 L00038BD4: and eax,FFEFFFFFh L00038BD9: mov [edi+78h],eax mov edx,[esi+0Ch] mov edi,eax mov eax,[esi+08h] lea ecx,[eax+04h] cmp ecx,edx jc L00038CD6 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038CD6 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038CD6 jmp L00038CCF L00038C26: mov ebx,[edi+78h] and ebx,FFEFFFFFh mov [edi+78h],ebx mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx mov edi,ebx jc L00038CD6 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038CD6 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038CD6 jmp L00038CCF L00038C71: mov edx,[edi+74h] mov esi,[esp+18h] mov ebp,FFEFFFFFh and edx,ebp push 00000001h push esi mov [edi+74h],edx mov ebx,edx call SUB_L000377E0 mov [eax],ebx mov ebx,[edi+78h] and ebx,ebp mov [edi+78h],ebx mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx mov edi,ebx jc L00038CD6 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00038CD6 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038CD6 L00038CCF: push esi call [esi+10h] mov eax,[esi+08h] L00038CD6: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi pop ebp pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L00038CF0: mov ecx,[esp+04h] mov eax,[esp+10h] mov eax,[L000B380C+eax*4] push esi mov esi,[esp+0Ch] push edi mov edi,[ecx+00000090h] or eax,69800000h and edi,FF8FFFFFh or edi,eax mov [ecx+00000090h],edi mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038D60 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038D60 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038D60 push esi call [esi+10h] mov eax,[esi+08h] L00038D60: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L00038D70: mov ecx,[esp+04h] mov eax,[esp+10h] mov eax,[L000B3854+eax*4] push esi mov esi,[esp+0Ch] push edi mov edi,[ecx+00000090h] or eax,69800000h and edi,FFF1FFFFh or edi,eax mov [ecx+00000090h],edi mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038DE0 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038DE0 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038DE0 push esi call [esi+10h] mov eax,[esi+08h] L00038DE0: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L00038DF0: mov ecx,[esp+04h] mov eax,[esp+10h] mov eax,[L000B3830+eax*4] push esi mov esi,[esp+0Ch] push edi mov edi,[ecx+00000090h] or eax,69800000h and edi,FFFE3FFFh or edi,eax mov [ecx+00000090h],edi mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038E60 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038E60 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038E60 push esi call [esi+10h] mov eax,[esi+08h] L00038E60: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L00038E70: mov ecx,[esp+04h] mov eax,[esp+10h] mov eax,[L000B37E8+eax*4] push esi mov esi,[esp+0Ch] push edi mov edi,[ecx+00000090h] or eax,69002000h and edi,FFFFF1FFh or edi,eax mov [ecx+00000090h],edi mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038EE0 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L00038EE0 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L00038EE0 push esi call [esi+10h] mov eax,[esi+08h] L00038EE0: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0010h ;------------------------------------------------------------------------------ Align 4 L00038EF0: sub esp,00000020h push ebx mov ebx,[esp+28h] push ebp push esi push edi push ebx call [L000B6F48] mov esi,eax mov eax,[ebx+0Ch] mov ecx,[eax] mov edi,[ecx+08h] test edi,edi mov [esp+34h],edi jnz L00038F20 mov dword ptr [ebx+30h],80070057h jmp L0003A304 L00038F20: mov ebp,[ebx+10h] mov al,[ebx+04h] add ebp,edi test al,01h jz L00038F4C mov ecx,[ebx+18h] test ecx,ecx jz L00038F40 mov eax,[ebx+1Ch] add eax,ecx mov [esp+14h],eax L00038F3C: test eax,eax jnz L00038F7D L00038F40: mov dword ptr [ebx+30h],80070057h jmp L0003A304 L00038F4C: mov edx,[ebx+18h] mov edx,[edx] mov ecx,[edx+08h] test ecx,ecx jz L00038F5F mov eax,[ebx+1Ch] add eax,ecx jmp L00038F61 L00038F5F: xor eax,eax L00038F61: mov ecx,[ebx+20h] imul ecx,[ebx+30h] cmp [edx+0Ch],ecx mov [esp+14h],eax jnc L00038F3C mov dword ptr [ebx+30h],80070057h jmp L0003A304 L00038F7D: cmp dword ptr [esi+00000138h],00000004h mov dword ptr [esi+000005B0h],00000000h jnc L00038FB7 mov edx,[ebx+20h] mov eax,[esi+00000A00h] mov [esi+00000A34h],edx cmp eax,[ebx+08h] jz L00038FB7 or dword ptr [esi+000005D8h],80000000h mov ecx,[ebx+08h] mov [esi+00000A00h],ecx L00038FB7: push esi call [L000B6F80] mov eax,[ebx+10h] mov edx,[ebx+14h] add eax,edi add eax,edx cmp ebp,eax mov [esp+24h],eax jnc L0003A2FD L00038FD4: xor eax,eax mov al,[ebp+00h] xor ecx,ecx lea edi,[ebp+04h] dec eax cmp eax,0000003Bh ja CASE_0003A358_PROC0027 xor edx,edx mov dl,[eax+CASE_0003A3F8] jmp [CASE_PROCTABLE_0003A358+edx*4] CASE_0003A358_PROC0003: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] add eax,[ebx+10h] xor ecx,ecx mov cx,[ebp+02h] lea edx,[edi+ecx*8-01h] mov [esp+10h],ecx mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L00039021 cmp eax,edi jbe L0003A33B L00039021: mov eax,[esp+10h] test eax,eax mov [esp+10h],eax jbe L00039161 L00039031: mov eax,[edi] mov ecx,[edi+04h] add edi,00000008h cmp eax,00000100h mov [esp+2Ch],ecx ja L00039137 test byte ptr [ebx+04h],02h jz L000390BF mov edx,[esi+000005B4h] test edx,edx jnz L00039060 mov edx,[ebx+2Ch] mov [edx+eax*4],ecx jmp L00039096 L00039060: mov edx,[esi+000005B8h] test edx,edx jz L00039096 mov [edx+eax*4+0Ch],ecx mov edx,[esi+000005B8h] mov ecx,eax shr ecx,05h lea ecx,[edx+ecx*4+0000072Ch] mov [esp+18h],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,[esp+18h] or [ecx],edx L00039096: lea ecx,[eax-01h] mov [esp+1Ch],ecx and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,[esp+1Ch] sar ecx,05h test [esi+ecx*4+00000580h],edx jnz L00039157 mov ecx,[esp+2Ch] L000390BF: mov edx,[esi+000005B4h] test edx,edx jnz L000390FD cmp eax,00000009h jnz L000390E5 test ecx,ecx jz L000390D7 cmp ecx,00000002h jbe L000390F4 L000390D7: mov ecx,00000002h mov [esi+eax*4+00000180h],ecx jmp L00039137 L000390E5: cmp eax,00000016h jnz L000390F4 cmp ecx,00000003h jbe L000390F4 mov ecx,00000001h L000390F4: mov [esi+eax*4+00000180h],ecx jmp L00039137 L000390FD: mov edx,[esi+000005B8h] test edx,edx jz L00039137 mov [edx+eax*4+0Ch],ecx mov edx,[esi+000005B8h] mov ecx,eax shr ecx,05h lea ecx,[edx+ecx*4+0000072Ch] mov [esp+18h],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,[esp+18h] or [ecx],edx mov ecx,[esp+2Ch] L00039137: mov edx,[esi+000005B4h] test edx,edx jnz L0003914C push ecx push eax push esi call SUB_L00036990 mov [ebx+30h],eax L0003914C: mov eax,[ebx+30h] test eax,eax jl L0003A304 L00039157: dec [esp+10h] jnz L00039031 L00039161: xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*8+04h] jmp L0003A2F3 CASE_0003A358_PROC000F: mov ecx,[ebx+0Ch] mov edx,[ecx] mov ecx,[edx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[edi+eax*8-01h] cmp edx,ecx jc L0003919A cmp [esp+1Ch],edi jbe L0003A33B L0003919A: test eax,eax mov dword ptr [esp+10h],00000000h jbe L0003926F L000391AA: mov eax,[esi+000005B4h] test eax,eax jnz L00039203 mov cx,[edi+02h] test cx,cx jz L000391EA cmp cx,0012h jz L000391EA xor eax,eax mov ax,[edi] lea edx,[00000000h+eax*8] sub edx,eax lea eax,[eax+edx*4] mov edx,ecx and edx,0000FFFFh add eax,edx mov eax,[esi+eax*4+000005DCh] cmp eax,[edi+04h] jz L00039255 L000391EA: mov edx,[edi+04h] xor eax,eax mov ax,[edi] push edx and ecx,0000FFFFh push ecx push eax push esi call SUB_L0003B4C0 jmp L00039255 L00039203: mov ecx,[esi+000005B8h] test ecx,ecx jz L00039255 xor eax,eax mov ax,[edi] lea eax,[eax+eax*4] lea edx,[eax+eax*4] xor eax,eax mov ax,[edi+02h] add edx,eax mov eax,[edi+04h] mov [ecx+edx*4+0000040Ch],eax xor ecx,ecx mov cx,[edi+02h] xor eax,eax mov ax,[edi] mov edx,ecx shr edx,05h add edx,eax mov eax,[esi+000005B8h] lea eax,[eax+edx*4+00000750h] and ecx,0000001Fh mov edx,00000001h shl edx,cl or [eax],edx L00039255: mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] add edi,00000008h inc eax mov [esp+10h],eax cmp eax,ecx jc L000391AA L0003926F: xor edx,edx mov dx,[ebp+02h] lea ebp,[ebp+edx*8+04h] jmp L0003A2F3 CASE_0003A358_PROC001B: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ebx+10h] mov ecx,[ecx+08h] add ecx,eax xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea eax,[edi+edx*4-01h] mov edx,ecx add edx,[ebx+14h] cmp eax,edx jc L000392A9 cmp ecx,edi jbe L0003A33B L000392A9: mov eax,[edi+04h] test eax,eax jz L00039302 cmp dword ptr [edi],00000000h jnz L00039302 push esi push eax call SUB_L000AD0C0 test eax,eax jz L00039302 mov ecx,[eax+000000BCh] mov [esi+00004860h],ecx mov edx,[edi+08h] mov [esi+00004858h],edx mov edi,[edi+08h] xor ecx,ecx cmp edi,ecx jbe L000392F6 mov eax,[eax+000000E8h] xor edx,edx div edi add ebp,00000010h mov [esi+00000A34h],eax jmp L0003A2F3 L000392F6: mov [esi+00000A34h],ecx mov [esi+0000486Ch],ecx L00039302: add ebp,00000010h jmp L0003A2F3 CASE_0003A358_PROC001C: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebx+10h] xor edx,edx mov dx,[ebp+02h] add eax,ecx lea ecx,[edi+edx*8-01h] mov edx,eax add edx,[ebx+14h] cmp ecx,edx jc L00039332 cmp eax,edi jbe L0003A33B L00039332: mov eax,[ebx+1Ch] add eax,[ebx+18h] mov [esi+00004860h],eax mov ecx,[edi+04h] mov [esi+00004858h],ecx mov edi,[edi+04h] xor eax,eax cmp edi,eax jbe L00039370 imul edi,[ebx+20h] mov [esi+0000486Ch],edi mov edx,[ebx+20h] mov [esi+00000A34h],edx mov ax,[ebp+02h] lea ebp,[ebp+eax*8+04h] jmp L0003A2F3 L00039370: mov [esi+0000486Ch],eax mov [esi+00000A34h],eax xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*8+04h] jmp L0003A2F3 CASE_0003A358_PROC001D: mov ecx,[ebx+0Ch] mov edx,[ecx] mov eax,[edx+08h] add eax,[ebx+10h] xor ecx,ecx mov cx,[ebp+02h] lea edx,[edi+ecx*8-01h] mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L000393B1 cmp eax,edi jbe L0003A33B L000393B1: mov eax,[edi] test eax,eax jz L000393D7 push esi push eax call SUB_L000AD0C0 test eax,eax jz L000393D7 mov edx,[eax+000000BCh] mov [esi+00004864h],edx mov eax,[edi+04h] mov [esi+00004868h],eax L000393D7: add ebp,0000000Ch jmp L0003A2F3 CASE_0003A358_PROC0025: mov ecx,[ebx+0Ch] mov edx,[ecx] mov ecx,[edx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[eax+eax*2] lea edx,[edi+edx*4-01h] cmp edx,ecx jc L0003940C cmp [esp+1Ch],edi jbe L0003A33B L0003940C: test eax,eax mov dword ptr [esp+10h],00000000h jbe L0003944B L00039418: mov eax,[edi+08h] mov ecx,[edi+04h] mov edx,[edi] push eax push ecx push esi push edx call [L000B7090] test eax,eax mov [ebx+30h],eax jl L0003A304 mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] add edi,0000000Ch inc eax mov [esp+10h],eax cmp eax,ecx jc L00039418 L0003944B: xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea ebp,[ebp+edx*4+04h] jmp L0003A2F3 CASE_0003A358_PROC0026: mov eax,[ebx+0Ch] mov ecx,[eax] mov ecx,[ecx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[eax+eax*2] lea edx,[edi+edx*8-01h] cmp edx,ecx jc L0003948A cmp [esp+1Ch],edi jbe L0003A33B L0003948A: test eax,eax mov dword ptr [esp+10h],00000000h jbe L000394EB L00039496: mov ecx,[esi+00004860h] mov eax,[edi+04h] mov edx,[esi+00004864h] add eax,ecx mov ecx,[edi+10h] add ecx,edx mov edx,[edi+14h] push edx push eax mov eax,[edi] push ecx push esi push eax call [L000B6F8C] test eax,eax mov [ebx+30h],eax jl L0003A304 mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] add edi,00000018h inc eax mov [esp+10h],eax cmp eax,ecx jc L00039496 L000394EB: xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea ebp,[ebp+edx*8+04h] jmp L0003A2F3 CASE_0003A358_PROC0024: mov eax,[ebx+0Ch] mov ecx,[eax] mov ecx,[ecx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[eax+eax*2] lea edx,[edi+edx*4-01h] cmp edx,ecx jc L0003952A cmp [esp+1Ch],edi jbe L0003A33B L0003952A: test eax,eax mov dword ptr [esp+10h],00000000h jbe L000395AB L00039536: mov eax,[esi+000005D8h] test eax,eax jz L00039558 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039558: cmp dword ptr [esi+000001A0h],00000002h mov dword ptr [esi+000005CCh],FFFFFFFFh jnz L00039582 mov ecx,[edi+08h] mov edx,[esi+00004860h] push ecx add edx,[edi] push edx push edi push esi call [esi+000009C4h] jmp L00039595 L00039582: mov eax,[edi+08h] mov ecx,[edi] push eax push ecx push esi push 00000006h call [L000B7090] mov [ebx+30h],eax L00039595: mov eax,[esp+10h] xor edx,edx mov dx,[ebp+02h] add edi,0000000Ch inc eax mov [esp+10h],eax cmp eax,edx jc L00039536 L000395AB: xor eax,eax mov ax,[ebp+02h] lea eax,[eax+eax*2] lea ebp,[ebp+eax*4+04h] jmp L0003A2F3 CASE_0003A358_PROC001A: mov ecx,[ebx+0Ch] mov edx,[ecx] mov eax,[edx+08h] add eax,[ebx+10h] xor ecx,ecx mov cx,[ebp+02h] lea edx,[edi+ecx*4-01h] mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L000395E3 cmp eax,edi jbe L0003A33B L000395E3: mov eax,[edi] test eax,eax jz L000395FD test al,01h jnz L000395FD mov [esi+00000A00h],eax or dword ptr [esi+000005D8h],80000000h L000395FD: add ebp,00000008h jmp L0003A2F3 CASE_0003A358_PROC001E: mov edx,[ebx+0Ch] mov eax,[edx] mov ecx,[eax+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[eax+eax*2] lea edx,[edi+edx*4-01h] cmp edx,ecx jc L00039632 cmp [esp+1Ch],edi jbe L0003A33B L00039632: test eax,eax mov dword ptr [esp+10h],00000000h jbe L00039678 L0003963E: mov ecx,[edi+04h] imul ecx,[esi+00004858h] mov eax,[edi+08h] mov edx,[edi] push eax push ecx push esi push edx call [L000B7090] test eax,eax mov [ebx+30h],eax jl L0003A304 mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] add edi,0000000Ch inc eax mov [esp+10h],eax cmp eax,ecx jc L0003963E L00039678: xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea ebp,[ebp+edx*4+04h] jmp L0003A2F3 CASE_0003A358_PROC001F: mov eax,[ebx+0Ch] mov ecx,[eax] mov ecx,[ecx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[eax+eax*2] lea edx,[edi+edx*8-01h] cmp edx,ecx jc L000396B7 cmp [esp+1Ch],edi jbe L0003A33B L000396B7: test eax,eax mov dword ptr [esp+10h],00000000h jbe L00039726 L000396C3: mov eax,[edi+04h] imul eax,[esi+00004858h] mov ecx,[esi+00004860h] mov edx,[esi+00004864h] add eax,ecx mov ecx,[edi+10h] imul ecx,[esi+00004868h] add ecx,edx mov edx,[edi+14h] push edx push eax mov eax,[edi] push ecx push esi push eax call [L000B6F8C] test eax,eax mov [ebx+30h],eax jl L0003A304 mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] add edi,00000018h inc eax mov [esp+10h],eax cmp eax,ecx jc L000396C3 L00039726: xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea ebp,[ebp+edx*8+04h] jmp L0003A2F3 CASE_0003A358_PROC0022: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov edx,[ebx+10h] mov ecx,[ebx+14h] add eax,edx mov edx,eax add edx,ecx lea ecx,[edi+03h] cmp ecx,edx jc L0003975B cmp eax,edi jbe L0003A33B L0003975B: add ebp,00000008h jmp L0003A2F3 CASE_0003A358_PROC0023: mov edx,[ebx+0Ch] mov eax,[edx] mov eax,[eax+08h] mov [esp+1Ch],ecx add eax,[ebx+10h] xor ecx,ecx mov cx,[ebp+02h] mov edx,eax add edx,[ebx+14h] mov [esp+10h],ecx lea ecx,[edi+ecx*8-01h] cmp ecx,edx jc L00039791 cmp eax,edi jbe L0003A33B L00039791: mov eax,[esp+10h] test eax,eax jbe L000397D0 mov ecx,[esp+1Ch] mov [esp+18h],eax L000397A1: mov edx,[edi+04h] lea eax,[edi+04h] mov eax,[eax] shl eax,04h add ecx,eax mov eax,[esp+18h] shl edx,04h dec eax lea edi,[edi+edx+08h] mov [esp+18h],eax jnz L000397A1 mov eax,[esp+10h] lea ecx,[ecx+eax*8] lea ebp,[ecx+ebp+04h] jmp L0003A2F3 L000397D0: mov ecx,[esp+1Ch] lea ecx,[ecx+eax*8] lea ebp,[ecx+ebp+04h] jmp L0003A2F3 CASE_0003A358_PROC0021: mov edx,[ebx+0Ch] mov eax,[edx] mov ecx,[ebx+10h] mov eax,[eax+08h] add eax,ecx xor ecx,ecx mov cx,[ebp+02h] mov edx,eax add edx,[ebx+14h] mov [esp+10h],ecx lea ecx,[edi+ecx*4-01h] cmp ecx,edx jc L0003980C cmp eax,edi jbe L0003A33B L0003980C: mov eax,[esp+10h] lea ebp,[ebp+eax*4+04h] jmp L0003A2F3 CASE_0003A358_PROC0000: mov ecx,[ebx+0Ch] mov edx,[ecx] mov eax,[edx+08h] add eax,[ebx+10h] xor ecx,ecx mov cx,[ebp+02h] lea edx,[edi+ecx*4-01h] mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L0003983F cmp eax,edi jbe L0003A33B L0003983F: mov eax,[esi+000005D8h] test eax,eax jz L00039861 mov edx,[esi+00000148h] push edx push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039861: mov ecx,[esp+14h] xor eax,eax mov dword ptr [esi+000005CCh],FFFFFFFFh mov ax,[ebp+02h] push eax push ecx push edi push esi call [esi+000009C0h] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor edx,edx mov dx,[ebp+02h] lea ebp,[ebp+edx*4+04h] jmp L0003A2F3 CASE_0003A358_PROC0005: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov edx,[ebx+10h] mov ecx,[ebx+14h] add eax,edx mov edx,eax add edx,ecx lea ecx,[edi+01h] cmp ecx,edx jc L000398BF cmp eax,edi jbe L0003A33B L000398BF: mov ax,[edi] mov ecx,[ebx+20h] xor edx,edx mov dx,[ebp+02h] shl dx,1 lea edx,[edx+eax-01h] and eax,0000FFFFh cmp eax,ecx jge L0003A33B and edx,0000FFFFh cmp edx,ecx jge L0003A33B mov eax,[esi+000005D8h] test eax,eax jz L0003990F mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L0003990F: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009B8h] add ebp,00000006h jmp L0003A2F3 CASE_0003A358_PROC0001: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebx+10h] xor edx,edx mov dx,[ebp+02h] add eax,ecx lea ecx,[edi+edx*4-01h] mov edx,eax add edx,[ebx+14h] cmp ecx,edx jc L0003995D cmp eax,edi jbe L0003A33B L0003995D: mov eax,[esi+000005D8h] test eax,eax jz L0003997F mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L0003997F: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009DCh] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*4+04h] jmp L0003A2F3 CASE_0003A358_PROC0011: mov ecx,[ebx+0Ch] mov edx,[ecx] mov eax,[edx+08h] add eax,[ebx+10h] xor ecx,ecx mov cx,[ebp+02h] lea edx,[edi+ecx*4-01h] mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L000399E0 cmp eax,edi jbe L0003A33B L000399E0: mov eax,[esi+000005D8h] test eax,eax jz L00039A02 mov edx,[esi+00000148h] push edx push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039A02: mov ecx,[esp+14h] xor eax,eax mov dword ptr [esi+000005CCh],FFFFFFFFh mov ax,[ebp+02h] push eax push ecx push edi push esi call [esi+000009E0h] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor edx,edx mov dx,[ebp+02h] lea ebp,[ebp+edx*4+06h] jmp L0003A2F3 CASE_0003A358_PROC0006: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov edx,[ebx+10h] mov ecx,[ebx+14h] add eax,edx mov edx,eax add edx,ecx lea ecx,[edi+01h] cmp ecx,edx jc L00039A60 cmp eax,edi jbe L0003A33B L00039A60: mov ecx,[ebx+20h] xor eax,eax mov ax,[edi] and eax,0000FFFFh cmp eax,ecx jge L0003A33B xor edx,edx mov dx,[ebp+02h] add eax,edx test eax,eax jl L0003A33B cmp eax,ecx jge L0003A33B mov eax,[esi+000005D8h] test eax,eax jz L00039AAF mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039AAF: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009BCh] add ebp,00000006h jmp L0003A2F3 CASE_0003A358_PROC0007: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebx+10h] xor edx,edx mov dx,[ebp+02h] add eax,ecx lea ecx,[edi+edx*2+03h] mov edx,eax add edx,[ebx+14h] cmp ecx,edx jc L00039AFD cmp eax,edi jbe L0003A33B L00039AFD: mov eax,[esi+000005D8h] test eax,eax jz L00039B1F mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039B1F: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009E4h] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*2+08h] jmp L0003A2F3 CASE_0003A358_PROC0008: mov ecx,[ebx+0Ch] mov edx,[ecx] mov eax,[edx+08h] mov ecx,[ebx+10h] mov edx,[ebx+14h] add eax,ecx mov ecx,eax add ecx,edx lea edx,[edi+01h] cmp edx,ecx jc L00039B7D cmp eax,edi jbe L0003A33B L00039B7D: mov edx,[ebx+20h] xor ecx,ecx mov cx,[edi] and ecx,0000FFFFh cmp ecx,edx jge L0003A33B xor eax,eax mov ax,[ebp+02h] lea ecx,[ecx+eax*2] lea eax,[eax+ecx-01h] test eax,eax jl L0003A33B cmp eax,edx jge L0003A33B mov eax,[esi+000005D8h] test eax,eax jz L00039BD2 mov edx,[esi+00000148h] push edx push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039BD2: mov ecx,[esp+14h] xor eax,eax mov dword ptr [esi+000005CCh],FFFFFFFFh mov ax,[ebp+02h] push eax push ecx push edi push esi call [esi+000009B4h] add ebp,00000006h jmp L0003A2F3 CASE_0003A358_PROC0002: mov edx,[ebx+0Ch] mov eax,[edx] mov ecx,[ebx+10h] mov eax,[eax+08h] add eax,ecx xor ecx,ecx mov cx,[ebp+02h] lea edx,[edi+ecx*8-01h] mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L00039C20 cmp eax,edi jbe L0003A33B L00039C20: mov eax,[esi+000005D8h] test eax,eax jz L00039C42 mov edx,[esi+00000148h] push edx push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039C42: mov ecx,[esp+14h] xor eax,eax mov dword ptr [esi+000005CCh],FFFFFFFFh mov ax,[ebp+02h] push eax push ecx push edi push esi call [esi+000009D4h] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor edx,edx mov dx,[ebp+02h] lea ebp,[ebp+edx*8+04h] jmp L0003A2F3 CASE_0003A358_PROC0010: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ebx+10h] mov ecx,[ecx+08h] add ecx,eax xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea eax,[edi+edx*2+01h] mov edx,ecx add edx,[ebx+14h] cmp eax,edx jc L00039CA8 cmp ecx,edi jbe L0003A33B L00039CA8: mov eax,[esi+000005D8h] test eax,eax jz L00039CCA mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039CCA: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009D8h] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor eax,eax mov ax,[ebp+02h] inc eax lea eax,[eax+eax*2] lea ebp,[ebp+eax*2+00h] jmp L0003A2F3 CASE_0003A358_PROC0009: mov ecx,[ebx+0Ch] mov edx,[ecx] mov eax,[edx+08h] mov ecx,[ebx+10h] mov edx,[ebx+14h] add eax,ecx mov ecx,eax add ecx,edx lea edx,[edi+01h] cmp edx,ecx jc L00039D2C cmp eax,edi jbe L0003A33B L00039D2C: mov cx,[ebp+02h] test cx,cx jbe L00039D64 mov edx,[ebx+20h] xor eax,eax mov ax,[edi] and eax,0000FFFFh cmp eax,edx jge L0003A33B and ecx,0000FFFFh lea eax,[ecx+eax+01h] test eax,eax jl L0003A33B cmp eax,edx jge L0003A33B L00039D64: mov eax,[esi+000005D8h] test eax,eax jz L00039D86 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039D86: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009B0h] add ebp,00000006h jmp L0003A2F3 CASE_0003A358_PROC000A: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebx+10h] xor edx,edx mov dx,[ebp+02h] add eax,ecx lea ecx,[edi+edx*2+05h] mov edx,eax add edx,[ebx+14h] cmp ecx,edx jc L00039DD4 cmp eax,edi jbe L0003A33B L00039DD4: mov eax,[esi+000005D8h] test eax,eax jz L00039DF6 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039DF6: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009D0h] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*2+0Ah] jmp L0003A2F3 CASE_0003A358_PROC000B: mov ecx,[ebx+0Ch] mov edx,[ecx] mov eax,[edx+08h] mov ecx,[ebx+10h] mov edx,[ebx+14h] add eax,ecx mov ecx,eax add ecx,edx lea edx,[edi+01h] cmp edx,ecx jc L00039E54 cmp eax,edi jbe L0003A33B L00039E54: mov ecx,[ebx+20h] xor eax,eax mov ax,[edi] and eax,0000FFFFh cmp eax,ecx jge L0003A33B xor edx,edx mov dx,[ebp+02h] lea eax,[edx+eax+01h] test eax,eax jl L0003A33B cmp eax,ecx jge L0003A33B mov eax,[esi+000005D8h] test eax,eax jz L00039EA5 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039EA5: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009ACh] add ebp,00000006h jmp L0003A2F3 CASE_0003A358_PROC000C: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebx+10h] xor edx,edx mov dx,[ebp+02h] add eax,ecx lea ecx,[edi+edx*2+05h] mov edx,eax add edx,[ebx+14h] cmp ecx,edx jc L00039EF3 cmp eax,edi jbe L0003A33B L00039EF3: mov eax,[esi+000005D8h] test eax,eax jz L00039F15 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039F15: mov edx,[esp+14h] xor ecx,ecx mov dword ptr [esi+000005CCh],FFFFFFFFh mov cx,[ebp+02h] push ecx push edx push edi push esi call [esi+000009CCh] mov eax,[esi+000005B0h] test eax,eax jnz L0003A33B xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*2+0Ah] jmp L0003A2F3 CASE_0003A358_PROC000E: cmp [esi+000005D8h],ecx jz L00039F70 mov ecx,[esi+00000148h] push ecx push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039F70: mov eax,[esp+14h] xor edx,edx mov dword ptr [esi+000005CCh],FFFFFFFFh mov dx,[ebp+02h] push edx push eax push edi push esi call [esi+000009C8h] xor ecx,ecx mov cx,[ebp+02h] inc ecx imul ecx,[esi+000005D0h] lea ebp,[ecx+ebp+07h] and ebp,FFFFFFFCh jmp L0003A2F3 CASE_0003A358_PROC000D: cmp [esi+000005D8h],ecx jz L00039FC8 mov edx,[esi+00000148h] push edx push esi call SUB_L0003B7F0 test eax,eax mov [ebx+30h],eax jl L0003A304 L00039FC8: mov ecx,[esp+14h] xor eax,eax mov dword ptr [esi+000005CCh],FFFFFFFFh mov ax,[ebp+02h] push eax push ecx push edi push esi call [esi+000009C4h] xor edx,edx mov dx,[ebp+02h] add edx,00000002h imul edx,[esi+000005D0h] lea ebp,[edx+ebp+0Bh] and ebp,FFFFFFFCh jmp L0003A2F3 CASE_0003A358_PROC0012: push edi push esi call SUB_L0003DB00 mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] add eax,[ebx+10h] xor ecx,ecx mov cx,[ebp+02h] shl ecx,04h lea edx,[ecx+edi-01h] mov [esp+1Ch],ecx mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L0003A036 cmp eax,edi jbe L0003A33B L0003A036: mov edx,[esp+1Ch] lea ebp,[edx+ebp+04h] jmp L0003A2F3 CASE_0003A358_PROC0013: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebx+10h] xor edx,edx mov dx,[ebp+02h] add eax,ecx lea ecx,[edi+edx*8-01h] mov edx,eax add edx,[ebx+14h] cmp ecx,edx jc L0003A06B cmp eax,edi jbe L0003A33B L0003A06B: push edi push esi call SUB_L0003DA40 xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*8+04h] jmp L0003A2F3 CASE_0003A358_PROC0016: mov ecx,[ebx+0Ch] mov edx,[ecx] mov ecx,[edx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[eax+eax*8] lea edx,[edi+edx*4-01h] cmp edx,ecx jc L0003A0AE cmp [esp+1Ch],edi jbe L0003A33B L0003A0AE: test eax,eax mov dword ptr [esp+10h],00000000h jbe L0003A0D7 L0003A0BA: push edi push esi call SUB_L0003A800 mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] add edi,00000024h inc eax mov [esp+10h],eax cmp eax,ecx jc L0003A0BA L0003A0D7: xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*8] lea ebp,[ebp+edx*4+04h] jmp L0003A2F3 CASE_0003A358_PROC0014: mov eax,[ebx+0Ch] mov ecx,[eax] mov ecx,[ecx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] lea edx,[eax+eax*2] lea edx,[edi+edx*4-01h] cmp edx,ecx jc L0003A116 cmp [esp+1Ch],edi jbe L0003A33B L0003A116: test eax,eax mov dword ptr [esp+10h],00000000h jbe L0003A14C add edi,00000008h L0003A125: mov eax,[edi-04h] mov ecx,[edi-08h] mov edx,[edi] push eax push ecx push edx push esi call SUB_L0003A6A0 mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] inc eax add edi,0000000Ch mov [esp+10h],eax cmp eax,ecx jc L0003A125 L0003A14C: xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea ebp,[ebp+edx*4+04h] jmp L0003A2F3 CASE_0003A358_PROC0015: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] add eax,[ebx+10h] xor ecx,ecx mov cx,[edi+06h] and ecx,0000FFFFh lea edx,[edi+ecx*4+07h] mov ecx,eax add ecx,[ebx+14h] cmp edx,ecx jc L0003A18A cmp eax,edi jbe L0003A33B L0003A18A: mov ecx,[edi] xor eax,eax mov ax,[edi+06h] lea edx,[edi+08h] push edx push eax xor eax,eax mov ax,[edi+04h] push eax push ecx push esi call SUB_L0003A630 xor edx,edx mov dx,[edi+06h] lea ebp,[ebp+edx*4+0Ch] jmp L0003A2F3 CASE_0003A358_PROC0018: mov eax,[ebx+0Ch] mov ecx,[eax] mov eax,[ecx+08h] mov ecx,[ebx+10h] xor edx,edx mov dx,[ebp+02h] add eax,ecx lea ecx,[edi+edx*8] mov edx,eax add edx,[ebx+14h] mov [esp+1Ch],ecx dec ecx cmp ecx,edx jc L0003A1E0 cmp eax,edi jbe L0003A33B L0003A1E0: mov eax,[esp+1Ch] mov ecx,[eax-04h] mov edx,[eax-08h] push ecx push edx push esi call SUB_L000ADBE0 xor eax,eax mov ax,[ebp+02h] lea ebp,[ebp+eax*8+04h] jmp L0003A2F3 CASE_0003A358_PROC0019: mov ecx,[ebx+0Ch] mov edx,[ecx] mov ecx,[edx+08h] add ecx,[ebx+10h] xor eax,eax mov ax,[ebp+02h] mov [esp+1Ch],ecx add ecx,[ebx+14h] mov edx,eax shl edx,04h lea edx,[edx+edi+0Fh] cmp edx,ecx jc L0003A230 cmp [esp+1Ch],edi jbe L0003A33B L0003A230: mov ecx,[edi+0Ch] mov edx,[edi+08h] push eax lea eax,[edi+10h] push eax mov eax,[edi+04h] push ecx mov ecx,[edi] push edx push eax push ecx push esi call SUB_L0003A450 xor edx,edx mov dx,[ebp+02h] shl edx,04h lea ebp,[edx+ebp+14h] jmp L0003A2F3 CASE_0003A358_PROC0017: cmp [ebp+02h],cx mov [esp+10h],ecx jbe L0003A2C0 add edi,00000004h L0003A269: mov eax,[edi-04h] cmp eax,00000004h ja L0003A2AA jmp [CASE_PROCTABLE_0003A434+eax*4] CASE_0003A434_PROC0000: mov eax,[edi] push eax push esi call SUB_L000AC360 jmp L0003A2AA CASE_0003A434_PROC0001: push esi call SUB_L000AC3A0 jmp L0003A2AA CASE_0003A434_PROC0002: mov ecx,[edi] push ecx push esi call SUB_L000AC3F0 jmp L0003A2AA CASE_0003A434_PROC0003: mov edx,[edi] push edx push esi call SUB_L000AC420 jmp L0003A2AA CASE_0003A434_PROC0004: mov eax,[edi] push eax push esi call SUB_L000AC6A0 L0003A2AA: mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+02h] inc eax add edi,0000000Ch mov [esp+10h],eax cmp eax,ecx jc L0003A269 L0003A2C0: xor eax,eax mov ax,[ebp+02h] lea edx,[eax+eax*2] lea ebp,[ebp+edx*4+04h] jmp L0003A2F3 CASE_0003A358_PROC0004: mov ebp,[ebx+10h] mov ecx,[esp+34h] mov eax,[ebx+14h] add ebp,ecx add ebp,eax jmp L0003A2F3 CASE_0003A358_PROC0027: lea eax,[esp+20h] push eax push ebp call [L000B6F1C] test eax,eax jnz L0003A34B mov ebp,[esp+20h] L0003A2F3: cmp ebp,[esp+24h] jc L00038FD4 L0003A2FD: mov dword ptr [ebx+30h],00000000h L0003A304: mov edi,[esi+00000148h] push 00000002h push edi call [edi+14h] xor ecx,ecx push eax push esi mov [edi+0Ch],ecx mov [edi+08h],ecx mov [edi+04h],ecx call [L000B6F34] pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000020h retn 0004h ;------------------------------------------------------------------------------ CASE_0003A358_PROC0020: mov dword ptr [ebx+30h],8876086Dh jmp L0003A304 L0003A33B: sub ebp,[esp+34h] mov [ebx+34h],ebp mov dword ptr [ebx+30h],88760BB8h jmp L0003A304 L0003A34B: sub ebp,[esp+34h] mov [ebx+34h],ebp mov [ebx+30h],eax jmp L0003A304 Align 4 CASE_PROCTABLE_0003A358: dd CASE_0003A358_PROC0000 dd CASE_0003A358_PROC0001 dd CASE_0003A358_PROC0002 dd CASE_0003A358_PROC0003 dd CASE_0003A358_PROC0004 dd CASE_0003A358_PROC0005 dd CASE_0003A358_PROC0006 dd CASE_0003A358_PROC0007 dd CASE_0003A358_PROC0008 dd CASE_0003A358_PROC0009 dd CASE_0003A358_PROC000A dd CASE_0003A358_PROC000B dd CASE_0003A358_PROC000C dd CASE_0003A358_PROC000D dd CASE_0003A358_PROC000E dd CASE_0003A358_PROC000F dd CASE_0003A358_PROC0010 dd CASE_0003A358_PROC0011 dd CASE_0003A358_PROC0012 dd CASE_0003A358_PROC0013 dd CASE_0003A358_PROC0014 dd CASE_0003A358_PROC0015 dd CASE_0003A358_PROC0016 dd CASE_0003A358_PROC0017 dd CASE_0003A358_PROC0018 dd CASE_0003A358_PROC0019 dd CASE_0003A358_PROC001A dd CASE_0003A358_PROC001B dd CASE_0003A358_PROC001C dd CASE_0003A358_PROC001D dd CASE_0003A358_PROC001E dd CASE_0003A358_PROC001F dd CASE_0003A358_PROC0020 dd CASE_0003A358_PROC0021 dd CASE_0003A358_PROC0022 dd CASE_0003A358_PROC0023 dd CASE_0003A358_PROC0024 dd CASE_0003A358_PROC0025 dd CASE_0003A358_PROC0026 dd CASE_0003A358_PROC0027 CASE_0003A3F8: db 00h, 01h, 02h, 27h, 27h, 27h, 27h, 03h, 27h, 27h, 04h, 27h, 27h, 27h, 05h, 06h db 07h, 08h, 09h, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 11h, 12h, 13h, 14h, 15h, 27h db 27h, 27h, 27h, 27h, 27h, 16h, 17h, 27h, 18h, 19h, 27h, 27h, 27h, 27h, 1Ah, 27h db 1Bh, 1Ch, 1Dh, 1Eh, 1Fh, 20h, 21h, 22h, 23h, 24h, 25h, 26h CASE_PROCTABLE_0003A434: dd CASE_0003A434_PROC0000 dd CASE_0003A434_PROC0001 dd CASE_0003A434_PROC0002 dd CASE_0003A434_PROC0003 dd CASE_0003A434_PROC0004 Align 16 SUB_L0003A450: sub esp,000000B4h push ebx push ebp push esi mov esi,[esp+000000C4h] push edi mov edi,[esi+00000148h] push 00000001h push edi call [edi+14h] mov ebx,eax xor ebp,ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call [L000B6F34] cmp ebx,ebp jz L0003A493 mov eax,[esi+00000144h] push ebx push eax call SUB_L00029710 L0003A493: mov ecx,[esi+00000144h] push ecx call SUB_L00029670 mov edx,[esi+00000144h] mov eax,[esi+00000174h] mov [esp+18h],edx mov ecx,[eax+0000009Ch] mov eax,[esi+0000014Ch] mov edx,[ecx+3Ch] cmp [eax+000006A0h],edx jz L0003A4CE cmp [eax+000006A4h],edx jnz L0003A529 L0003A4CE: mov ecx,[ecx+0Ch] mov eax,[eax+000002A4h] push ecx push eax call GHAL_UpdateFlipStatus test eax,eax jz L0003A529 lea ecx,[esp+18h] push ecx call SUB_L0002E310 test eax,eax jz L0003A529 L0003A4F0: mov edx,[esi+00000174h] mov ecx,[edx+0000009Ch] mov eax,[esi+0000014Ch] mov edx,[ecx+3Ch] cmp [eax+000006A0h],edx jz L0003A515 cmp [eax+000006A4h],edx jnz L0003A529 L0003A515: mov ecx,[ecx+0Ch] mov eax,[eax+000002A4h] push ecx push eax call GHAL_UpdateFlipStatus test eax,eax jnz L0003A4F0 L0003A529: mov eax,[esi+00000178h] cmp eax,ebp jz L0003A5AD mov ecx,[eax+0000009Ch] mov eax,[esi+0000014Ch] mov edx,[ecx+3Ch] cmp [eax+000006A0h],edx jz L0003A552 cmp [eax+000006A4h],edx jnz L0003A5AD L0003A552: mov ecx,[ecx+0Ch] mov eax,[eax+000002A4h] push ecx push eax call GHAL_UpdateFlipStatus test eax,eax jz L0003A5AD lea eax,[esp+18h] push eax call SUB_L0002E310 test eax,eax jz L0003A5AD L0003A574: mov ecx,[esi+00000178h] mov ecx,[ecx+0000009Ch] mov eax,[esi+0000014Ch] mov edx,[ecx+3Ch] cmp [eax+000006A0h],edx jz L0003A599 cmp [eax+000006A4h],edx jnz L0003A5AD L0003A599: mov ecx,[ecx+0Ch] mov eax,[eax+000002A4h] push ecx push eax call GHAL_UpdateFlipStatus test eax,eax jnz L0003A574 L0003A5AD: mov eax,[esp+000000E0h] mov edx,eax dec eax test edx,edx jbe L0003A61D mov ebx,[esp+000000CCh] mov edi,[esp+000000DCh] mov ebp,ebx mov ecx,ebx and ecx,00000006h and ebp,00000001h inc eax mov [esp+14h],ecx mov [esp+10h],eax L0003A5DC: test ebp,ebp jz L0003A5EF mov eax,[esp+000000D0h] push eax push edi push esi call SUB_L0003E1E0 L0003A5EF: mov eax,[esp+14h] test eax,eax jz L0003A60F mov ecx,[esp+000000D8h] mov edx,[esp+000000D4h] push ecx push edx push ebx push edi push esi call SUB_L0003DC70 L0003A60F: mov eax,[esp+10h] add edi,00000010h dec eax mov [esp+10h],eax jnz L0003A5DC L0003A61D: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,000000B4h retn 001Ch ;------------------------------------------------------------------------------ Align 4 SUB_L0003A630: mov eax,[esp+08h] push ebx mov ebx,[esp+08h] push ebx push eax call SUB_L000AD0F0 test eax,eax jz L0003A694 mov ecx,[esp+14h] mov edx,[esp+10h] mov [eax+06h],cx mov [eax+04h],dx and ecx,0000FFFFh push esi mov esi,[esp+1Ch] shl ecx,02h push edi and edx,0000FFFFh lea edi,[eax+edx*4+08h] mov edx,ecx shr ecx,02h rep movsd mov ecx,edx and ecx,00000003h rep movsb mov eax,[ebx+000005D8h] pop edi or eax,10000000h mov [ebx+000005D8h],eax pop esi xor eax,eax pop ebx retn 0014h ;------------------------------------------------------------------------------ L0003A694: mov eax,80070057h pop ebx retn 0014h ;------------------------------------------------------------------------------ Align 4 SUB_L0003A6A0: mov eax,[esp+08h] push ebx mov ebx,[esp+08h] push ebp push esi push edi push ebx push eax call SUB_L000AD0C0 mov edi,eax test edi,edi mov [esp+14h],edi jnz L0003A6C9 pop edi pop esi pop ebp mov eax,80070057h pop ebx retn 0010h ;------------------------------------------------------------------------------ L0003A6C9: mov esi,[esp+1Ch] mov [edi+000000A4h],esi mov ecx,[ebx+000005A4h] mov eax,[ecx+04h] test eax,eax jz L0003A6E8 cmp esi,[eax] jc L0003A788 L0003A6E8: lea ebp,[esi+00000400h] shr ebp,0Ah shl ebp,0Ah lea edx,[00000000h+ebp*4] push edx push 00000001h call OsAllocMem mov edx,eax test edx,edx mov [esp+18h],edx jnz L0003A719 pop edi pop esi pop ebp mov eax,8007000Eh pop ebx retn 0010h ;------------------------------------------------------------------------------ L0003A719: mov ecx,ebp mov esi,ecx shr ecx,02h xor eax,eax mov edi,edx rep stosd mov ecx,esi and ecx,00000003h rep stosb mov eax,[ebx+000005A4h] mov esi,[eax+04h] test esi,esi jz L0003A76C mov ecx,[esi] shl ecx,02h mov edi,edx mov edx,ecx shr ecx,02h rep movsd mov ecx,edx and ecx,00000003h rep movsb mov eax,[ebx+000005A4h] mov ecx,[eax+04h] push ecx call OsFreeMem mov esi,[esp+1Ch] mov edi,[esp+14h] mov edx,[esp+18h] jmp L0003A774 L0003A76C: mov edi,[esp+14h] mov esi,[esp+1Ch] L0003A774: mov eax,[ebx+000005A4h] mov [eax+04h],edx mov ecx,[ebx+000005A4h] mov edx,[ecx+04h] mov [edx],ebp L0003A788: mov eax,[ebx+000005A4h] mov ecx,[eax+04h] mov eax,[ecx+esi*4] test eax,eax jnz L0003A7CC push 00000408h push 00000001h call OsAllocMem mov edx,[ebx+000005A4h] mov ecx,[edx+04h] mov [ecx+esi*4],eax mov edx,[ebx+000005A4h] mov eax,[edx+04h] mov eax,[eax+esi*4] test eax,eax jnz L0003A7CC pop edi pop esi pop ebp mov eax,8007000Eh pop ebx retn 0010h ;------------------------------------------------------------------------------ L0003A7CC: mov ecx,[esp+20h] mov [eax],ecx mov eax,[edi+60h] test eax,eax jnz L0003A7F4 mov eax,[edi+64h] test eax,eax jz L0003A7F4 cmp dword ptr [edi+1Ch],00000007h jnz L0003A7F4 mov edx,[ebx+00000148h] push edx push edi call [L000B7074] L0003A7F4: pop edi pop esi pop ebp xor eax,eax pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L0003A800: sub esp,00000034h push ebx push ebp push esi push edi mov edi,[esp+48h] mov esi,[edi+00000148h] mov eax,[edi+0000014Ch] push 00000001h xor ebx,ebx push esi mov [esp+30h],eax mov [esp+1Ch],ebx call [esi+14h] push eax push edi mov [esi+0Ch],ebx mov [esi+08h],ebx mov [esi+04h],ebx call [L000B6F34] mov ebx,[esp+4Ch] mov ecx,[ebx] push edi push ecx call SUB_L000AD0C0 mov edx,[ebx+04h] push edi mov esi,eax push edx mov [esp+18h],esi call SUB_L000AD0C0 mov ebp,eax test ebp,ebp mov [esp+24h],ebp jz L0003ABA1 test esi,esi jz L0003ABA1 mov eax,[edi+00000144h] push eax call SUB_L00029670 mov eax,[ebx+08h] mov edx,[ebx+18h] mov edi,[ebx+10h] mov ecx,[ebx+0Ch] lea esi,[ebx+10h] sub edx,edi add edx,eax mov [esp+34h],eax mov eax,[ebx+1Ch] mov [esp+3Ch],edx sub eax,[ebx+14h] add eax,ecx push ebp mov [esp+3Ch],ecx mov [esp+44h],eax call [L000B708C] test eax,00400000h jz L0003AB4B mov edi,[esp+10h] push edi mov dword ptr [esp+1Ch],00000000h call [L000B7070] push edi mov [esp+24h],eax call [L000B6F84] push edi mov [esp+20h],eax call [L000B6F60] push ebp mov [esp+50h],eax call [L000B7070] push ebp mov [esp+34h],eax call [L000B6F84] push ebp mov edi,eax call [L000B6F60] L0003A8FC: cmp edi,[esp+1Ch] jnz L0003A90C cmp eax,[esp+4Ch] jz L0003A9BE L0003A90C: shr edi,1 mov [esp+2Ch],edi jz L0003ABA1 shr eax,1 mov [esp+48h],eax jz L0003A9BE mov edx,[esi] mov ecx,[esi+04h] mov edi,[esi+0Ch] sar edx,1 mov eax,edx mov [esi],edx mov edx,[esi+08h] sar ecx,1 inc edx sar edx,1 inc edi mov ebx,edx sub ebx,eax sar edi,1 cmp ebx,00000001h mov [esi+04h],ecx jnc L0003A94C lea edx,[eax+01h] L0003A94C: mov [esi+08h],edx mov edx,edi sub edx,ecx cmp edx,00000001h jnc L0003A95B lea edi,[ecx+01h] L0003A95B: mov eax,[esp+34h] mov ecx,[esp+3Ch] mov edx,[esp+40h] mov [esi+0Ch],edi mov edi,[esp+38h] sar eax,1 sar edi,1 inc ecx sar ecx,1 inc edx mov ebx,ecx sub ebx,eax sar edx,1 cmp ebx,00000001h mov [esp+34h],eax mov [esp+38h],edi jnc L0003A990 inc eax mov [esp+3Ch],eax jmp L0003A994 L0003A990: mov [esp+3Ch],ecx L0003A994: mov eax,edx sub eax,edi cmp eax,00000001h jnc L0003A9A4 inc edi mov [esp+40h],edi jmp L0003A9A8 L0003A9A4: mov [esp+40h],edx L0003A9A8: mov eax,[esp+18h] mov edi,[esp+2Ch] inc eax mov [esp+18h],eax mov eax,[esp+48h] jmp L0003A8FC L0003A9BE: test edi,edi jz L0003ABA1 test eax,eax jz L0003ABA1 mov eax,[esp+20h] xor edi,edi test eax,eax mov [esp+48h],edi jbe L0003ABA9 mov eax,[esp+30h] sub eax,[esp+18h] mov [esp+30h],eax jmp L0003A9FA L0003A9EE: mov ebp,[esp+24h] mov eax,[esp+30h] mov edi,[esp+48h] L0003A9FA: cmp edi,eax ja L0003ABA9 mov ecx,[esp+18h] add edi,ecx push edi push ebp call SUB_L00033DA0 push edi push ebp mov ebx,eax call SUB_L00033D80 mov edx,[esp+48h] mov edi,eax mov eax,[esp+10h] push edx push eax call SUB_L00033DA0 mov ecx,[esp+48h] mov edx,[esp+10h] push ecx push edx mov ebp,eax call SUB_L00033D80 test edi,edi jz L0003ABA1 test eax,eax jz L0003ABA1 mov ecx,[esp+28h] push ecx mov ecx,[esp+28h] lea edx,[esp+38h] push edx push esi push ebp push ebx push eax mov eax,[esp+28h] push edi push eax push ecx call SUB_L0003E410 mov eax,[esp+1Ch] mov ebx,00000001h cmp eax,ebx jnz L0003AA8E cmp [esp+4Ch],ebx jnz L0003AAA0 mov edx,[esp+20h] mov eax,[esp+48h] dec edx cmp eax,edx jnz L0003ABA9 jmp L0003AAA4 L0003AA8E: mov ecx,[esp+1Ch] mov eax,[esp+4Ch] shr ecx,1 cmp eax,ebx mov [esp+1Ch],ecx jz L0003AAA4 L0003AAA0: shr dword ptr [esp+4Ch],1 L0003AAA4: mov eax,[esi+04h] mov ecx,[esi] sar eax,1 sar ecx,1 mov [esi+04h],eax mov edi,eax mov eax,[esi+08h] inc eax mov edx,ecx mov [esi],ecx mov ecx,[esi+0Ch] sar eax,1 inc ecx mov ebp,eax sub ebp,edx sar ecx,1 cmp ebp,ebx jnc L0003AACD lea eax,[edx+01h] L0003AACD: mov [esi+08h],eax mov eax,ecx sub eax,edi cmp eax,ebx jnc L0003AADB lea ecx,[edi+01h] L0003AADB: mov edx,[esp+34h] mov edi,[esp+38h] mov [esi+0Ch],ecx mov ecx,[esp+3Ch] lea eax,[ecx+01h] mov ecx,[esp+40h] sar eax,1 sar edx,1 sar edi,1 inc ecx mov ebp,eax sub ebp,edx sar ecx,1 cmp ebp,ebx mov [esp+34h],edx mov [esp+38h],edi jnc L0003AB11 inc edx mov [esp+3Ch],edx jmp L0003AB15 L0003AB11: mov [esp+3Ch],eax L0003AB15: mov edx,ecx sub edx,edi cmp edx,ebx jnc L0003AB24 inc edi mov [esp+40h],edi jmp L0003AB28 L0003AB24: mov [esp+40h],ecx L0003AB28: mov eax,[esp+48h] mov ecx,[esp+20h] inc eax cmp eax,ecx mov [esp+48h],eax jc L0003A9EE mov eax,[esp+14h] pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0008h ;------------------------------------------------------------------------------ L0003AB4B: push ebp call [L000B70B4] mov ebx,[esp+10h] push ebx mov edi,eax call [L000B70B4] test edi,edi mov [esp+48h],eax jz L0003ABA1 test eax,eax jz L0003ABA1 mov eax,[esp+28h] push eax lea ecx,[esp+38h] push ecx push esi push ebx call [L000B70C4] push eax push ebp call [L000B70C4] mov edx,[esp+58h] push eax push edx push edi push ebx push ebp call SUB_L0003E410 mov eax,[esp+14h] pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0008h ;------------------------------------------------------------------------------ L0003ABA1: mov dword ptr [esp+14h],80070057h L0003ABA9: mov eax,[esp+14h] pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0008h ;------------------------------------------------------------------------------ Align 16 L0003ABC0: push ebx mov ebx,[esp+08h] push esi push edi push ebx call [L000B70BC] mov esi,eax mov eax,[esi+000005DCh] push esi push eax call [L000B6F3C] mov ecx,[esi+00000650h] push esi push ecx mov edi,eax call [L000B6F3C] test edi,edi mov ecx,00000800h jz L0003ABFF test [edi+00000088h],ecx jnz L0003AC0B L0003ABFF: test eax,eax jz L0003AC1D test [eax+00000088h],ecx jz L0003AC1D L0003AC0B: pop edi pop esi mov dword ptr [ebx+10h],88760818h mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L0003AC1D: mov edx,[esi+00000148h] push edx push esi call SUB_L0003BF60 mov [ebx+10h],eax mov edi,[esi+00000148h] push 00000002h push edi call [edi+14h] mov dword ptr [edi+0Ch],00000000h mov dword ptr [edi+08h],00000000h mov dword ptr [edi+04h],00000000h mov edi,[ebx+10h] xor ecx,ecx test edi,edi setge cl push eax push esi mov [ebx+0Ch],ecx and dword ptr [esi+000005D8h],BFFFFFFFh call [L000B6F34] pop edi pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0003AC80: mov eax,[L000B6F24] sub esp,00000018h test eax,eax push ebx push ebp push esi push edi jz L0003AE91 mov edi,[esp+2Ch] mov eax,[edi] push eax call GetDriverData mov esi,[edi+04h] mov ecx,[esi+04h] test ch,20h mov edx,[eax+58h] mov [esp+10h],edx mov [esp+1Ch],esi jz L0003ACC1 mov ebp,[esi] add ebp,00000024h mov [esp+14h],ebp jmp L0003ACCA L0003ACC1: lea ecx,[edx+04h] mov [esp+14h],ecx mov ebp,ecx L0003ACCA: test byte ptr [ebp+04h],04h jz L0003AE91 mov ecx,[ebp+08h] cmp ecx,31545844h jz L0003AD03 cmp ecx,32545844h jz L0003AD03 cmp ecx,33545844h jz L0003AD03 cmp ecx,34545844h jz L0003AD03 cmp ecx,35545844h jnz L0003AE91 L0003AD03: mov ecx,[esi] mov ecx,[ecx+20h] test ecx,ecx jnz L0003AD0F lea ecx,[edx+3Ch] L0003AD0F: inc [ecx+2Ch] mov ecx,[esi] mov ecx,[ecx+08h] mov [edi+1Ch],ecx test byte ptr [edi+28h],01h mov dword ptr [edi+20h],00000000h jnz L0003AD57 mov ecx,[esi] mov ecx,[ecx+20h] test ecx,ecx jnz L0003AD33 lea ecx,[edx+3Ch] L0003AD33: mov ecx,[ecx+08h] push ecx push eax call SUB_L00029710 test eax,eax jz L0003AD57 mov dword ptr [edi+20h],8876021Ch pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ L0003AD57: mov eax,[esi] mov ebx,[eax+1Ch] cmp dword ptr [ebp+08h],31545844h mov eax,[eax+18h] mov [esp+24h],ebx mov [esp+20h],eax jnz L0003AD7B add ebx,00000003h shr ebx,02h shl ebx,03h jmp L0003AD84 L0003AD7B: add ebx,00000003h shr ebx,02h shl ebx,04h L0003AD84: lea ebp,[eax+03h] shr ebp,02h mov edi,ebp imul edi,ebx push edi push 00000000h mov [esp+20h],edi call SUB_L000172E0 mov edx,[esi] mov [edx+08h],eax mov ecx,[esi] mov eax,[ecx+08h] test eax,eax jnz L0003ADC3 mov eax,[esp+2Ch] pop edi pop esi pop ebp mov dword ptr [eax+20h],8007000Eh mov eax,00000001h pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ L0003ADC3: test dword ptr [esi+08h],20000000h mov ecx,[ecx+20h] jz L0003ADE6 test ecx,ecx jnz L0003ADDF mov edx,[esp+10h] add edx,0000003Ch mov edx,[edx+38h] jmp L0003ADF8 L0003ADDF: mov edx,ecx mov edx,[edx+38h] jmp L0003ADF8 L0003ADE6: test ecx,ecx jnz L0003ADF3 mov edx,[esp+10h] add edx,0000003Ch jmp L0003ADF5 L0003ADF3: mov edx,ecx L0003ADF5: mov edx,[edx+3Ch] L0003ADF8: test ecx,ecx jnz L0003AE03 mov ecx,[esp+10h] add ecx,0000003Ch L0003AE03: mov ecx,[ecx+44h] mov [esp+10h],ecx mov ecx,[esp+14h] cmp dword ptr [ecx+08h],31545844h jnz L0003AE50 test ebp,ebp jbe L0003AE6A mov [esp+14h],ebp L0003AE1F: mov ecx,ebx mov ebp,ecx shr ecx,02h mov esi,edx mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+10h] mov ecx,[esp+14h] add eax,ebx add edx,esi dec ecx mov [esp+14h],ecx jnz L0003AE1F mov edi,[esp+18h] mov esi,[esp+1Ch] jmp L0003AE6A L0003AE50: mov ecx,[esp+10h] push ecx push edx mov edx,[esp+28h] push ebx push eax mov eax,[esp+34h] push edx push eax call SUB_L000B0B80 add esp,00000018h L0003AE6A: mov ecx,[esi] mov eax,[esp+2Ch] mov [ecx+0Ch],edi mov edx,[esi] mov ecx,[edx+08h] pop edi pop esi pop ebp mov [eax+1Ch],ecx mov dword ptr [eax+20h],00000000h mov eax,00000001h pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ L0003AE91: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000018h retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0003AEA0: mov eax,[L000B6F24] sub esp,0000001Ch test eax,eax push ebx push ebp push esi push edi jz L0003B06F mov esi,[esp+30h] mov eax,[esi] push eax call GetDriverData mov edi,[esi+04h] mov ebx,eax mov eax,[edi+04h] test ah,20h mov ebp,[ebx+58h] mov [esp+18h],ebp mov [esp+1Ch],edi jz L0003AEE3 mov eax,[edi] add eax,00000024h mov [esp+14h],eax jmp L0003AEEC L0003AEE3: lea ecx,[ebp+04h] mov [esp+14h],ecx mov eax,ecx L0003AEEC: test byte ptr [eax+04h],04h jz L0003B06F mov eax,[eax+08h] cmp eax,31545844h jz L0003AF20 cmp eax,32545844h jz L0003AF20 cmp eax,33545844h jz L0003AF20 cmp eax,34545844h jz L0003AF20 cmp eax,35545844h jnz L0003B06F L0003AF20: mov edx,[edi] mov eax,[edx+20h] test eax,eax jnz L0003AF2C lea eax,[ebp+3Ch] L0003AF2C: mov eax,[eax+08h] push eax push ebx call SUB_L00029710 test eax,eax jnz L0003AF20 mov eax,[edi] mov ecx,[eax+18h] mov ebp,[eax+1Ch] mov ebx,[eax+08h] mov [esp+20h],ecx test dword ptr [edi+08h],20000000h mov [esp+28h],ebp mov [esp+24h],ebx jz L0003AF71 mov eax,[eax+20h] test eax,eax jnz L0003AF68 mov edx,[esp+18h] lea eax,[edx+3Ch] L0003AF68: mov esi,[eax+38h] mov [esp+10h],esi jmp L0003AF85 L0003AF71: mov eax,[esp+18h] push eax push edi call SUB_L0003B080 mov ecx,[eax+3Ch] mov [esp+10h],ecx mov esi,ecx L0003AF85: mov edx,[esp+14h] mov edx,[edx+08h] cmp edx,31545844h lea eax,[ebp+03h] jnz L0003AF9F shr eax,02h shl eax,03h jmp L0003AFA5 L0003AF9F: shr eax,02h shl eax,04h L0003AFA5: mov ecx,[edi] mov ecx,[ecx+20h] test ecx,ecx jnz L0003AFB5 mov ecx,[esp+18h] add ecx,0000003Ch L0003AFB5: cmp edx,31545844h mov ebp,[ecx+44h] mov [esp+14h],ebp jnz L0003B02F mov ecx,[esp+20h] add ecx,00000003h shr ecx,02h mov edx,esi jz L0003B005 mov [esp+18h],ecx L0003AFD6: mov ecx,eax mov ebp,ecx shr ecx,02h mov esi,ebx mov edi,edx rep movsd mov ecx,ebp mov ebp,[esp+14h] and ecx,00000003h rep movsb mov ecx,[esp+18h] add edx,ebp add ebx,eax dec ecx mov [esp+18h],ecx jnz L0003AFD6 mov ebx,[esp+24h] mov esi,[esp+10h] L0003B005: cmp dword ptr [esp+20h],00000004h mov edi,[esp+1Ch] jnz L0003B045 lea edi,[esi+ebp] mov ecx,eax mov edx,ecx shr ecx,02h mov esi,ebx rep movsd mov ecx,edx and ecx,00000003h rep movsb mov esi,[esp+10h] mov edi,[esp+1Ch] jmp L0003B045 L0003B02F: mov ecx,[esp+28h] push eax mov eax,[esp+24h] push ebx push ebp push esi push eax push ecx call SUB_L000B0AE0 add esp,00000018h L0003B045: push ebx call SUB_L00017340 mov edx,[edi] mov ecx,[esp+30h] mov [edx+08h],esi mov eax,[edi] pop edi mov [eax+0Ch],ebp pop esi pop ebp mov dword ptr [ecx+08h],00000000h mov eax,00000001h pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ L0003B06F: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,0000001Ch retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L0003B080: mov eax,[esp+04h] mov ecx,[eax] mov eax,[ecx+20h] test eax,eax jnz L0003B094 mov edx,[esp+08h] lea eax,[edx+3Ch] L0003B094: retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0003B0A0: push ebp mov ebp,esp push ecx push ebx mov ebx,[ebp+14h] push esi mov esi,[ebp+08h] mov edx,[esi+08h] lea ecx,[esi+04h] mov eax,edx xor eax,ebx and eax,03FFF000h xor eax,edx mov edx,[ebp+24h] cmp edx,00000800h push edi mov [ebp-04h],ecx mov [ecx+04h],eax ja L0003B0FA jz L0003B0F2 cmp edx,00000200h jz L0003B0ED cmp edx,00000400h jnz L0003B382 and eax,FFFFFFF9h or eax,00000001h jmp L0003B12A L0003B0ED: and eax,FFFFFFF8h jmp L0003B12A L0003B0F2: and eax,FFFFFFFAh or eax,00000002h jmp L0003B12A L0003B0FA: cmp edx,00001000h jz L0003B124 cmp edx,00002000h jnz L0003B382 mov edx,[L000B6F78] test edx,edx jz L0003B382 and eax,FFFFFFFCh or eax,00000004h jmp L0003B12A L0003B124: and eax,FFFFFFFBh or eax,00000003h L0003B12A: mov [ecx+04h],eax mov eax,[L000B70A8] test eax,eax lea edi,[esi+0Ch] mov [ebp+14h],edi jz L0003B150 cmp dword ptr [ebp+2Ch],00000020h jnz L0003B150 mov eax,[edi+04h] and eax,FFFFFFF7h or eax,00000010h mov [edi+04h],eax jmp L0003B197 L0003B150: and dword ptr [edi+04h],FFFFFFE7h mov eax,[L000B7078] test eax,eax jz L0003B197 mov edi,[esi+74h] mov eax,[esi+00000148h] mov ebx,FFEFFFFFh push 00000001h and edi,ebx push eax mov [esi+74h],edi call SUB_L000377E0 mov [eax],edi mov edi,[esi+78h] mov eax,[esi+00000148h] and edi,ebx push 00000001h mov [esi+78h],edi push eax mov esi,edi call SUB_L000377E0 mov edi,[ebp+14h] mov [eax],esi L0003B197: mov eax,[L000B6F2C] test eax,eax mov eax,[ebp+18h] jz L0003B1BF cmp eax,00000020h jnz L0003B1BF mov ecx,[edi+04h] and ecx,FFFFF3FFh or ecx,00000300h mov [edi+04h],ecx jmp L0003B2BB L0003B1BF: cmp eax,00000010h jnz L0003B2A0 mov eax,[edi+04h] and eax,FFFFF2FFh or eax,00000200h mov [edi+04h],eax mov ecx,[L000B6F2C] test ecx,ecx jz L0003B2BB mov ecx,[ebp+28h] test ecx,ecx jz L0003B2BB mov edx,[ecx+04h] mov esi,edx and esi,00000040h mov ebx,00007C00h jz L0003B231 test dl,01h jnz L0003B231 cmp dword ptr [ecx+1Ch],00000000h jnz L0003B231 cmp [ecx+10h],ebx jnz L0003B231 cmp dword ptr [ecx+14h],000003E0h jnz L0003B231 cmp dword ptr [ecx+18h],0000001Fh jnz L0003B231 and eax,FFFFF1FFh or eax,00000100h mov [edi+04h],eax jmp L0003B2BB L0003B231: test esi,esi jz L0003B2BB test dl,01h jz L0003B267 test byte ptr [ecx+1Dh],80h jz L0003B267 cmp [ecx+10h],ebx jnz L0003B267 cmp dword ptr [ecx+14h],000003E0h jnz L0003B267 cmp dword ptr [ecx+18h],0000001Fh jnz L0003B267 and eax,FFFFF9FFh or eax,00000900h mov [edi+04h],eax jmp L0003B2BB L0003B267: test esi,esi jz L0003B2BB test dl,01h jz L0003B2BB cmp dword ptr [ecx+1Ch],0000F000h jnz L0003B2BB cmp dword ptr [ecx+10h],00000F00h jnz L0003B2BB cmp dword ptr [ecx+14h],000000F0h jnz L0003B2BB cmp dword ptr [ecx+18h],0000000Fh jnz L0003B2BB and eax,FFFFF8FFh or eax,00000800h mov [edi+04h],eax jmp L0003B2BB L0003B2A0: cmp eax,0000000Fh jnz L0003B382 mov edx,[edi+04h] and edx,FFFFF1FFh or edx,00000100h mov [edi+04h],edx L0003B2BB: mov ebx,[ebp+0Ch] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+08h] cmp ecx,edx mov dword ptr [ebp+2Ch],00000002h jc L0003B303 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003B303 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+08h] cmp ecx,edx jc L0003B303 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003B303: lea edx,[eax+08h] mov [ebx+08h],edx mov [ebp+24h],eax cld push ecx mov ecx,[ebp+2Ch] mov esi,[ebp-04h] mov edi,[ebp+24h] rep movsd pop ecx mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+08h] cmp ecx,edx mov dword ptr [ebp+2Ch],00000002h jc L0003B35F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003B35F mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+08h] cmp ecx,edx jc L0003B35F push ebx call [ebx+10h] mov eax,[ebx+08h] L0003B35F: lea edx,[eax+08h] mov [ebx+08h],edx mov [ebp+24h],eax cld push ecx mov ecx,[ebp+2Ch] mov esi,[ebp+14h] mov edi,[ebp+24h] rep movsd pop ecx mov eax,[ebp+10h] mov ecx,[ebp+08h] mov [ecx+0000013Ch],eax L0003B382: pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0028h ;------------------------------------------------------------------------------ Align 8 SUB_L0003B390: push ebp mov ebp,esp push ecx mov eax,[ebp+08h] mov edx,[eax+2Ch] lea ecx,[eax+28h] push esi push edi mov edi,[ebp+10h] mov eax,edx xor eax,edi and eax,03FFF000h xor eax,edx mov edx,[ebp+14h] cmp edx,00000800h mov [ebp-04h],ecx mov [ecx+04h],eax ja L0003B3E9 jz L0003B3E1 cmp edx,00000200h jz L0003B3DC cmp edx,00000400h jnz L0003B473 and eax,FFFFFFF9h or eax,00000001h jmp L0003B411 L0003B3DC: and eax,FFFFFFF8h jmp L0003B411 L0003B3E1: and eax,FFFFFFFAh or eax,00000002h jmp L0003B411 L0003B3E9: cmp edx,00001000h jz L0003B40B cmp edx,00002000h jnz L0003B473 mov edx,[L000B6F78] test edx,edx jz L0003B473 and eax,FFFFFFFCh or eax,00000004h jmp L0003B411 L0003B40B: and eax,FFFFFFFBh or eax,00000003h L0003B411: mov esi,[ebp+0Ch] mov [ecx+04h],eax mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+08h] cmp ecx,edx mov dword ptr [ebp+10h],00000002h jc L0003B45C push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0003B45C mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+08h] cmp ecx,edx jc L0003B45C push esi call [esi+10h] mov eax,[esi+08h] L0003B45C: lea edx,[eax+08h] mov [esi+08h],edx mov [ebp+08h],eax cld push ecx mov ecx,[ebp+10h] mov esi,[ebp-04h] mov edi,[ebp+08h] rep movsd pop ecx L0003B473: pop edi pop esi mov esp,ebp pop ebp retn 0010h ;------------------------------------------------------------------------------ Align 8 SUB_L0003B480: mov eax,[esp+04h] mov eax,[eax+08h] and eax,00000800h neg eax sbb eax,eax and eax,88760028h retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L0003B4A0: mov eax,[esp+04h] test eax,eax jz L0003B4B8 mov ecx,[eax+08h] test ch,08h jz L0003B4B8 mov eax,88760028h retn 0004h ;------------------------------------------------------------------------------ L0003B4B8: xor eax,eax retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L0003B4C0: push ebx push esi mov esi,[esp+0Ch] push edi mov edi,[esp+14h] cmp edi,00000002h jnc L0003B4FD mov eax,[esp+18h] cmp eax,00000015h ja L0003B4FD mov ebx,[esp+1Ch] xor ecx,ecx mov cl,[eax+CASE_0003B7D4] jmp [CASE_PROCTABLE_0003B7A4+ecx*4] CASE_0003B7A4_PROC0001: mov eax,[esi+000005D8h] or eax,40000000h L0003B4F7: mov [esi+000005D8h],eax L0003B4FD: mov ebx,[esp+1Ch] CASE_0003B7A4_PROC000B: mov eax,[esp+18h] lea edx,[00000000h+edi*8] sub edx,edi add eax,edi lea ecx,[eax+edx*4] mov [esi+ecx*4+000005DCh],ebx L0003B51A: pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ CASE_0003B7A4_PROC000A: mov eax,[esi+000005D8h] lea ecx,[edi+edi*2] mov edx,00000002h shl edx,cl or eax,edx jmp L0003B4F7 CASE_0003B7A4_PROC0007: cmp dword ptr [esi+00000138h],00000004h jc L0003B558 mov eax,[esi+00004870h] test eax,eax jnz L0003B558 mov eax,[esp+1Ch] push eax push 00000012h call [L000B6F28] mov ebx,eax jmp L0003B55C L0003B558: mov ebx,[esp+1Ch] L0003B55C: cmp ebx,00000005h L0003B55F: jnc L0003B51A lea ecx,[edi+edi*2] mov edx,00000002h L0003B569: mov eax,[esi+000005D8h] shl edx,cl or eax,edx mov [esi+000005D8h],eax jmp CASE_0003B7A4_PROC000B CASE_0003B7A4_PROC0005: cmp dword ptr [esi+00000138h],00000004h jc L0003B5A2 mov eax,[esi+00004870h] test eax,eax jnz L0003B5A2 mov eax,[esp+1Ch] push eax push 00000010h call [L000B6F28] mov ebx,eax cmp ebx,00000008h jmp L0003B55F L0003B5A2: mov ebx,[esp+1Ch] cmp ebx,00000008h jmp L0003B55F CASE_0003B7A4_PROC0006: cmp dword ptr [esi+00000138h],00000004h jc L0003B5D2 mov eax,[esi+00004870h] test eax,eax jnz L0003B5D2 mov eax,[esp+1Ch] push eax push 00000011h call [L000B6F28] mov ebx,eax cmp ebx,00000004h jmp L0003B55F L0003B5D2: mov ebx,[esp+1Ch] cmp ebx,00000004h jmp L0003B55F CASE_0003B7A4_PROC0003: cmp ebx,00000004h jnc L0003B51A lea eax,[00000000h+edi*8] sub eax,edi lea ecx,[edi+eax*4] lea eax,[esi+ecx*4] mov [eax+00000610h],ebx mov [eax+00000614h],ebx CASE_0003B7A4_PROC0004: cmp ebx,00000004h jnc L0003B51A lea ecx,[edi+edi*2] mov edx,00000001h jmp L0003B569 CASE_0003B7A4_PROC0002: mov eax,[esi+000005D8h] or eax,20000000h jmp L0003B4F7 CASE_0003B7A4_PROC0008: lea ecx,[edi+edi*2] mov eax,00000004h shl eax,cl or [esi+000005D8h],eax jmp L0003B4FD CASE_0003B7A4_PROC0009: mov eax,[esi+000005D8h] lea ecx,[edi+edi*2] mov edx,00000004h shl edx,cl or eax,edx jmp L0003B4F7 CASE_0003B7A4_PROC0000: mov eax,[esp+1Ch] push esi push edi push eax call [L000B6F6C] lea ecx,[00000000h+edi*8] sub ecx,edi lea edx,[edi+ecx*4] mov ecx,[esi+edx*4+000005DCh] mov ebx,eax cmp ecx,ebx lea eax,[esi+edx*4+000005DCh] mov [esp+1Ch],eax jz CASE_0003B7A4_PROC000B push ebp push edi push esi call [L000B70AC] mov ebp,eax push ebp call [L000B6F4C] test eax,eax jz L0003B6B3 test ebp,ebp jz L0003B6B3 test byte ptr [ebp+18h],02h jz L0003B6AC dec [esi+00000984h] L0003B6AC: and dword ptr [ebp+18h],FFFFFEFFh L0003B6B3: push esi push ebx call [L000B6F3C] mov ebp,eax push ebp call [L000B7094] test eax,eax jnz L0003B6CC xor ebx,ebx jmp L0003B713 L0003B6CC: test ebp,ebp jz L0003B713 test byte ptr [ebp+18h],02h jz L0003B6DC inc [esi+00000984h] L0003B6DC: mov eax,[L000B6F88] test eax,eax jz L0003B70C test byte ptr [esi+74h],40h jz L0003B70C mov ecx,[esi+000005D8h] mov eax,[esi+00004850h] or ecx,04000000h or eax,00000010h mov [esi+000005D8h],ecx mov [esi+00004850h],eax L0003B70C: or dword ptr [ebp+18h],00000101h L0003B713: push edi mov ecx,edi mov ebp,00000001h push esi shl ebp,cl call [L000B70AC] test eax,eax jz L0003B75F test byte ptr [eax+18h],10h jnz L0003B75F mov ecx,[esi+000005CCh] test ebp,ecx jz L0003B75F mov edx,[eax+0Ch] test edx,edx jnz L0003B75F not ebp and ebp,ecx mov ecx,[esi+000005C8h] mov [esi+000005CCh],ebp mov [eax+08h],ecx mov [esi+000005C8h],eax mov dword ptr [eax+0Ch],00000001h L0003B75F: mov ebp,[esi+000005D8h] lea ecx,[edi+edi*2] mov edx,00000003h shl edx,cl mov ecx,[esp+20h] or edx,10000000h or ebp,edx mov [esi+000005D8h],ebp cmp dword ptr [ecx],00000000h mov eax,ebp pop ebp jz L0003B791 test ebx,ebx jnz CASE_0003B7A4_PROC000B L0003B791: or eax,40000000h mov [esi+000005D8h],eax jmp CASE_0003B7A4_PROC000B Align 4 CASE_PROCTABLE_0003B7A4: dd CASE_0003B7A4_PROC0000 dd CASE_0003B7A4_PROC0001 dd CASE_0003B7A4_PROC0002 dd CASE_0003B7A4_PROC0003 dd CASE_0003B7A4_PROC0004 dd CASE_0003B7A4_PROC0005 dd CASE_0003B7A4_PROC0006 dd CASE_0003B7A4_PROC0007 dd CASE_0003B7A4_PROC0008 dd CASE_0003B7A4_PROC0009 dd CASE_0003B7A4_PROC000A dd CASE_0003B7A4_PROC000B CASE_0003B7D4: db 00h, 01h, 01h, 01h, 01h, 01h, 01h, 0Bh, 0Bh, 0Bh, 0Bh, 02h, 03h, 04h, 04h, 0Bh db 05h, 06h, 07h, 08h, 09h, 0Ah Align 8 SUB_L0003B7F0: push ebp mov ebp,esp sub esp,00000038h push ebx push esi mov esi,[ebp+08h] push edi mov edi,[esi+000005D8h] test edi,08000000h mov [ebp-04h],edi jz L0003BA0E mov eax,[esi+000001D8h] mov ecx,[esi+000001A0h] mov edx,[esi+000001A4h] dec eax dec ecx dec edx cmp eax,00000003h mov [ebp-0Ch],ecx jc L0003B830 xor eax,eax L0003B830: cmp ecx,00000003h jc L0003B83C mov dword ptr [ebp-0Ch],00000002h L0003B83C: cmp edx,00000002h jc L0003B846 mov edx,00000001h L0003B846: mov ecx,[L000B4630] mov [esi+000009C0h],ecx lea ecx,[edx+edx*2] shl ecx,02h mov ebx,[ecx+L000B4580] mov [esi+000009B8h],ebx mov ebx,[ecx+L000B4500] mov [esi+000009BCh],ebx mov ebx,[ebp-0Ch] lea eax,[edx+eax*2] lea ebx,[ebx+eax*2] add eax,ebx lea eax,[eax+eax*2] shl eax,02h mov ebx,[eax+L000B4078] mov [esi+000009B4h],ebx mov ebx,[eax+L000B3DA0] mov [esi+000009B0h],ebx mov ebx,[eax+L000B39F0] mov [esi+000009ACh],ebx mov ebx,[ecx+L000B45C8] mov [esi+000009C8h],ebx mov ebx,[eax+L000B3AC8] mov [esi+000009C4h],ebx mov ebx,[ecx+L000B4598] mov [esi+000009DCh],ebx mov ebx,[ecx+L000B45B0] mov [esi+000009E0h],ebx mov ecx,[ecx+L000B4518] mov [esi+000009E4h],ecx mov ecx,[L000B6F24] test ecx,ecx jz L0003B94D mov ecx,[eax+L000B4150] mov [esi+000009D4h],ecx mov ecx,[eax+L000B4228] mov [esi+000009D8h],ecx mov ecx,[eax+L000B3E78] mov [esi+000009D0h],ecx mov ecx,[eax+L000B3BA0] mov [esi+000009CCh],ecx mov ecx,[eax+L000B4300] mov [esi+000009F0h],ecx mov ecx,[eax+L000B43D8] mov [esi+000009F4h],ecx mov ecx,[eax+L000B3F50] mov [esi+000009ECh],ecx mov eax,[eax+L000B3C78] mov [esi+000009E8h],eax jmp L0003B97D L0003B94D: mov ecx,[eax+L000B4300] mov [esi+000009D4h],ecx mov ecx,[eax+L000B43D8] mov [esi+000009D8h],ecx mov ecx,[eax+L000B3F50] mov [esi+000009D0h],ecx mov eax,[eax+L000B3C78] mov [esi+000009CCh],eax L0003B97D: mov eax,[esi+0000488Ch] test eax,eax jnz L0003B99C cmp dword ptr [esi+00004890h],3F800000h jnz L0003B99C test byte ptr [esi+00000A00h],20h jz L0003BA0E L0003B99C: cmp dword ptr [esi+00000138h],00000004h jc L0003BA0E mov ecx,[ebp-0Ch] inc ecx cmp ecx,00000001h mov dword ptr [esi+000009C0h],L000AF3B0 jnz L0003B9FE mov dword ptr [esi+000009B0h],L000AEB30 mov dword ptr [esi+000009B4h],L000AEA60 mov dword ptr [esi+000009ACh],L000AEC30 mov dword ptr [esi+000009D0h],L000AF010 mov dword ptr [esi+000009D4h],L000AEEA0 mov dword ptr [esi+000009D8h],L000AED30 mov dword ptr [esi+000009CCh],L000AF1F0 L0003B9FE: lea edx,[edx+edx*8] mov eax,[L000B3DB8+edx*4] mov [esi+00004880h],eax L0003BA0E: test edi,30000000h jz L0003BA30 mov ebx,[ebp+0Ch] push ebx push esi or edi,C0000000h call SUB_L0003C9D0 test eax,eax jl L0003BEC8 jmp L0003BA33 L0003BA30: mov ebx,[ebp+0Ch] L0003BA33: test edi,40000000h jz L0003BA50 push ebx push esi call SUB_L0003BF60 mov ecx,[esi+000005D8h] and ecx,04000000h or edi,ecx L0003BA50: test edi,80000000h jz L0003BA67 push ebx push esi call SUB_L0003D170 test eax,eax jl L0003BEC8 L0003BA67: mov eax,[L000B6F24] test eax,eax jz L0003BA9A test edi,04000000h jz L0003BB9A test byte ptr [esi+74h],40h jz L0003BB9A push ebx push esi call SUB_L0003D640 test eax,eax jl L0003BEC8 jmp L0003BB9A L0003BA9A: mov eax,[L000B6F30] test eax,eax jz L0003BB9A test byte ptr [esi+000048B0h],01h jz L0003BB9A fld dword ptr [esi+000048CCh] mov edx,[esi+000048C0h] fcomp dword ptr [L000B23F0] mov [ebp-14h],edx fnstsw ax test ah,40h jnz L0003BADF fld dword ptr [L000B2380] fdiv dword ptr [esi+000048CCh] fstp dword ptr [ebp-18h] L0003BADF: mov eax,[esi+0000483Ch] cmp eax,00000001h jnz L0003BB3A xor ebx,ebx L0003BAEC: mov [ebp-38h],ebx mov dword ptr [ebp-34h],00000000h fild qword ptr [ebp-38h] fmul dword ptr [ebp-18h] fmul dword ptr [ebp-14h] fchs fldl2e fmulp ST(1),ST fld ST(0) frndint fxch ST(1) fsub ST,ST(1) f2xm1 fld1 faddp ST(1),ST fscale fstp ST(1) fmul qword ptr [L000B2370] fadd qword ptr [L000B23E8] call SUB_L000AF4EC mov [esi+ebx+000048D0h],al inc ebx cmp ebx,00000100h jc L0003BAEC jmp L0003BB93 L0003BB3A: cmp eax,00000002h jnz L0003BB93 xor ebx,ebx L0003BB41: mov [ebp-38h],ebx mov dword ptr [ebp-34h],00000000h fild qword ptr [ebp-38h] fmul dword ptr [ebp-18h] fmul dword ptr [ebp-14h] fld ST(0) fmul ST,ST(1) fchs fldl2e fmulp ST(1),ST fld ST(0) frndint fxch ST(1) fsub ST,ST(1) f2xm1 fld1 faddp ST(1),ST fscale fstp ST(1) fmul qword ptr [L000B2370] fadd qword ptr [L000B23E8] call SUB_L000AF4EC fstp ST(0) mov [esi+ebx+000048D0h],al inc ebx cmp ebx,00000100h jc L0003BB41 L0003BB93: and dword ptr [esi+000048B0h],FFFFFFFEh L0003BB9A: and edi,10000000h neg edi sbb edi,edi and edi,00000006h mov [ebp-24h],edi lea edi,[esi+00000620h] mov dword ptr [ebp-10h],00000000h mov dword ptr [ebp-14h],00000028h mov [ebp-18h],edi L0003BBC1: mov eax,[ebp-10h] push eax push esi call [L000B70AC] test eax,eax jz L0003BBE1 mov ecx,[ebp-14h] mov ebx,[ecx+eax] mov eax,[eax+30h] mov [ebp-0Ch],ebx mov [ebp-08h],eax jmp L0003BBEC L0003BBE1: or eax,FFFFFFFFh mov [ebp-0Ch],eax mov [ebp-08h],eax mov ebx,eax L0003BBEC: mov ecx,[ebp-04h] or ecx,[ebp-24h] test cl,02h mov [ebp-04h],ecx jz L0003BD80 cmp ebx,FFFFFFFFh jz L0003BD80 mov edx,[edi+04h] mov ecx,[edi-04h] mov eax,[edi] mov [ebp-34h],edx cmp dword ptr [edi+10h],00000001h mov [ebp-20h],ecx mov [ebp-1Ch],eax jbe L0003BCAB cmp eax,00000003h jnz L0003BCAB cmp ecx,00000005h jnz L0003BCAB mov edx,[esi+ebx*4+3Ch] mov edi,[ebp+0Ch] lea ebx,[esi+ebx*4+3Ch] or edx,00000400h push 00000001h push edi mov [ebx],edx mov esi,edx call SUB_L000377E0 mov [eax],esi mov edx,[ebx] push 00000001h or edx,00000001h push edi mov [ebx],edx mov dword ptr [ebp-30h],00000001h mov [ebp-2Ch],ebx call SUB_L000377E0 mov [ebp-28h],eax cld push ecx mov ecx,[ebp-30h] mov esi,[ebp-2Ch] mov edi,[ebp-28h] rep movsd pop ecx mov esi,[ebx] mov eax,[ebp+0Ch] push 00000001h or esi,00000008h push eax mov [ebx],esi mov dword ptr [ebp-28h],00000001h mov [ebp-2Ch],ebx call SUB_L000377E0 mov [ebp-30h],eax cld push ecx mov ecx,[ebp-28h] mov esi,[ebp-2Ch] mov edi,[ebp-30h] rep movsd pop ecx jmp L0003BD38 L0003BCAB: mov eax,[esi+ebx*4+3Ch] mov edi,[ebp+0Ch] lea ebx,[esi+ebx*4+3Ch] and eax,FFFFFBFFh push 00000001h push edi mov [ebx],eax mov esi,eax call SUB_L000377E0 mov ecx,[ebp-1Ch] mov [eax],esi mov edx,[ebx] mov eax,[L000B38E8+ecx*4] and edx,FFFFFFFEh push 00000001h or edx,eax push edi mov [ebx],edx mov dword ptr [ebp-28h],00000001h mov [ebp-2Ch],ebx call SUB_L000377E0 mov [ebp-30h],eax cld push ecx mov ecx,[ebp-28h] mov esi,[ebp-2Ch] mov edi,[ebp-30h] rep movsd pop ecx mov ecx,[ebx] mov eax,[ebp-20h] mov eax,[L000B38F8+eax*4] mov edx,[ebp+0Ch] and ecx,FFFFFFF7h push 00000001h or ecx,eax push edx mov [ebx],ecx mov dword ptr [ebp-28h],00000001h mov [ebp-2Ch],ebx call SUB_L000377E0 mov [ebp-30h],eax cld push ecx mov ecx,[ebp-28h] mov esi,[ebp-2Ch] mov edi,[ebp-30h] rep movsd pop ecx L0003BD38: mov ecx,[ebx] mov eax,[ebp-34h] mov eax,[L000B3918+eax*4] mov edx,[ebp+0Ch] and ecx,FFFFFF3Fh push 00000001h or ecx,eax push edx mov [ebx],ecx mov dword ptr [ebp-2Ch],00000001h mov [ebp-30h],ebx call SUB_L000377E0 mov [ebp-34h],eax cld push ecx mov ecx,[ebp-2Ch] mov esi,[ebp-30h] mov edi,[ebp-34h] rep movsd pop ecx mov esi,[ebp+08h] mov edi,[ebp-18h] mov ebx,[ebp-0Ch] mov eax,[ebp-08h] L0003BD80: test byte ptr [ebp-04h],01h jz L0003BE0B cmp eax,FFFFFFFFh jz L0003BE0B mov edx,[edi-18h] mov ecx,[edi-0Ch] mov ebx,[esi+edx*4+00000380h] mov edx,[edi-10h] mov edi,[esi+eax*4+34h] mov [ebp-34h],ecx mov ecx,ebx and ecx,00000001h mov [ebp-30h],ecx mov ecx,00000000h setnz cl and edi,FFFFFFFCh push 00000001h lea edx,[ecx+edx*2] mov ecx,[L000B3760+edx*4] or edi,ecx mov [esi+eax*4+34h],edi mov eax,[ebp+0Ch] push eax call SUB_L000377E0 mov ecx,[ebp-34h] mov [eax],edi mov eax,[ebp-08h] mov edi,[esi+eax*4+34h] shr ebx,1 and ebx,00000001h lea edx,[ebx+ecx*2] mov ecx,[SWC000B3780__+edx*4] and edi,FFFFFFCFh or edi,ecx mov [esi+eax*4+34h],edi mov eax,[ebp+0Ch] push 00000001h push eax call SUB_L000377E0 mov ebx,[ebp-0Ch] mov [eax],edi mov edi,[ebp-18h] L0003BE0B: test byte ptr [ebp-04h],04h jz L0003BE98 cmp ebx,FFFFFFFFh jz L0003BE98 mov ecx,[edi+04h] fld dword ptr [edi+08h] mov eax,00000003h cmp ecx,eax jnz L0003BE31 fadd dword ptr [L000B2430] jmp L0003BE37 L0003BE31: fadd dword ptr [L000B242C] L0003BE37: cmp dword ptr [edi+10h],00000001h jbe L0003BE52 cmp [ebp-1Ch],eax jz L0003BE48 cmp dword ptr [ebp-20h],00000005h jnz L0003BE52 L0003BE48: fstp ST(0) fld dword ptr [L000B2428] jmp L0003BE7E L0003BE52: fcom dword ptr [L000B2424] fnstsw ax test ah,01h jz L0003BE69 fstp ST(0) fld dword ptr [L000B2424] jmp L0003BE7E L0003BE69: fcom dword ptr [L000B2420] fnstsw ax test ah,41h jnz L0003BE7E fstp ST(0) fld dword ptr [L000B2420] L0003BE7E: fmul dword ptr [L000B241C] call SUB_L000AF4EC mov ecx,[ebp+0Ch] and eax,0000007Fh push eax push ebx push ecx push esi call SUB_L0003BEE0 L0003BE98: mov ecx,[ebp-04h] mov eax,[ebp-10h] shr ecx,03h inc eax mov [ebp-10h],eax mov eax,[ebp-14h] add eax,00000004h add edi,00000074h cmp eax,00000030h mov [ebp-04h],ecx mov [ebp-14h],eax mov [ebp-18h],edi jc L0003BBC1 xor eax,eax mov [esi+000005D8h],eax L0003BEC8: pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0003BEE0: mov ecx,[esp+04h] mov eax,[esp+0Ch] mov edx,[ecx+eax*4+4Ch] push esi mov esi,[esp+0Ch] push edi mov edi,[esp+18h] and edx,FFFFFF80h or edx,edi mov [ecx+eax*4+4Ch],edx mov edx,[esi+0Ch] shl eax,10h or eax,7C200080h or edi,eax mov eax,[esi+08h] lea ecx,[eax+04h] cmp ecx,edx jc L0003BF4B push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L0003BF4B mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003BF4B push esi call [esi+10h] mov eax,[esi+08h] L0003BF4B: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L0003BF60: push ebp mov ebp,esp sub esp,00000030h mov ecx,[ebp+08h] mov edx,[ecx+000009A8h] push ebx mov ebx,[ebp+0Ch] xor eax,eax push esi push edi xor edi,edi mov [ebp-04h],eax mov [ebp-08h],eax mov [ecx+0000097Ch],eax mov [ecx+00000980h],eax mov [ebp-30h],edx mov [ebp-18h],edi L0003BF91: cmp [ebp-04h],eax jl L0003C601 lea eax,[00000000h+edi*8] sub eax,edi lea edx,[edi+eax*4] mov eax,[ecx+edx*4+000005E0h] lea esi,[ecx+edx*4] mov [ebp-10h],eax lea eax,[edi+0Dh] lea edx,[00000000h+eax*8] sub edx,eax lea eax,[eax+edx*4] mov ecx,[ecx+eax*4] mov eax,[esi+000005ECh] mov edx,[esi+000005E8h] mov [ebp-14h],eax cmp dword ptr [ebp-10h],00000001h mov [ebp-1Ch],ecx mov ecx,[esi+000005F0h] mov [ebp-24h],edx mov edx,[esi+000005F4h] mov [ebp-28h],ecx mov [ebp-20h],edx jz L0003C601 mov eax,[ebp+08h] push edi push eax call [L000B70AC] mov ecx,[ebp+08h] mov [ebp+0Ch],eax lea eax,[edi+01h] push eax push ecx mov [ebp-2Ch],eax call [L000B70AC] cmp dword ptr [esi+00000654h],00000001h mov [ebp-0Ch],eax jnz L0003C02B mov dword ptr [ebp-0Ch],00000000h mov eax,[ebp-0Ch] L0003C02B: mov edx,[ebp+08h] mov ecx,[edx+00000984h] cmp ecx,00000001h mov esi,[ebp+0Ch] jbe L0003C05F test esi,esi jz L0003C063 test eax,eax jz L0003C05F cmp ecx,00000002h jnz L0003C6C2 mov ecx,[esi+000000A4h] cmp ecx,[eax+000000A4h] jnz L0003C6C2 L0003C05F: test esi,esi jnz L0003C071 L0003C063: mov eax,[ebp-1Ch] cmp eax,00000002h jz L0003C601 jmp L0003C074 L0003C071: mov eax,[ebp-1Ch] L0003C074: xor ecx,ecx test al,02h jz L0003C08C cmp dword ptr [ebp-10h],00000003h jz L0003C08C mov dword ptr [edx+000009A8h],00000001h jmp L0003C096 L0003C08C: mov dword ptr [edx+000009A8h],00000000h L0003C096: mov edx,[ebp-10h] add edx,FFFFFFFEh cmp edx,0000000Fh ja CASE_0003C904_PROC0007 jmp [CASE_PROCTABLE_0003C904+edx*4] CASE_0003C904_PROC0000: mov ecx,00000001h jmp L0003C155 CASE_0003C904_PROC0001: mov ecx,00000002h jmp L0003C155 CASE_0003C904_PROC0002: mov ecx,00000003h jmp L0003C155 CASE_0003C904_PROC0003: mov ecx,00000004h jmp L0003C155 CASE_0003C904_PROC0004: mov ecx,00000005h jmp L0003C155 CASE_0003C904_PROC0005: mov ecx,00000006h jmp L0003C155 CASE_0003C904_PROC0006: mov ecx,00000007h jmp L0003C155 CASE_0003C904_PROC0008: mov ecx,00000014h jmp L0003C155 CASE_0003C904_PROC000A: mov edx,[ebp+08h] mov ecx,00000008h mov dword ptr [edx+0000097Ch],00000001h jmp L0003C155 CASE_0003C904_PROC000B: test esi,esi jz L0003C125 mov ecx,[ebp+08h] mov dword ptr [ecx+0000097Ch],00000001h mov edx,[esi+edi*4+28h] xor ecx,ecx test edx,edx setnz cl add ecx,00000010h jmp L0003C155 L0003C125: mov dword ptr [ebp-04h],8876081Ah jmp L0003C155 CASE_0003C904_PROC000C: mov ecx,0000000Ah jmp L0003C155 CASE_0003C904_PROC000F: mov ecx,[ebp-0Ch] test ecx,ecx jz CASE_0003C904_PROC0000 mov ecx,00000003h mov dword ptr [ebp-24h],00000002h jmp L0003C155 CASE_0003C904_PROC0007: mov dword ptr [ebp-04h],88760819h L0003C155: mov esi,[ebp-24h] mov edx,eax and edx,00000030h and esi,00000030h shl edx,06h or edx,esi mov esi,[ebp-24h] shl edx,02h or ecx,edx and eax,FFFFFFCFh and esi,FFFFFFCFh test edi,edi jnz L0003C186 cmp eax,00000001h jnz L0003C181 mov [ebp-1Ch],edi mov eax,edi L0003C181: cmp esi,00000001h jz L0003C18C L0003C186: cmp dword ptr [ebp-10h],00000002h jnz L0003C18E L0003C18C: xor esi,esi L0003C18E: mov edx,eax and edx,0000000Fh cmp edx,00000004h ja L0003C1F8 jmp [CASE_PROCTABLE_0003C944+edx*4] CASE_0003C944_PROC0000: mov eax,[ebp+08h] or ecx,0000C000h mov dword ptr [eax+0000097Ch],00000001h jmp L0003C1FF CASE_0003C944_PROC0001: or ecx,SUB_L00014000 jmp L0003C1FF CASE_0003C944_PROC0002: mov eax,[ebp+0Ch] test eax,eax jz L0003C1F8 mov edx,[eax+edi*4+28h] neg edx sbb edx,edx and edx,00004000h add edx,L00018000 or ecx,edx jmp L0003C1FF CASE_0003C944_PROC0003: or ecx,00004000h jmp L0003C1FF CASE_0003C944_PROC0004: mov eax,[ebp+08h] or ecx,00010000h mov dword ptr [eax+00000980h],00000001h jmp L0003C1FF L0003C1F8: mov dword ptr [ebp-04h],8876081Ah L0003C1FF: mov edx,esi and edx,0000000Fh cmp edx,00000004h ja L0003C5FA jmp [CASE_PROCTABLE_0003C958+edx*4] CASE_0003C958_PROC0000: mov edx,[ebp+08h] or ecx,00000300h mov dword ptr [edx+0000097Ch],00000001h jmp L0003C296 CASE_0003C958_PROC0001: or ecx,00000500h jmp L0003C296 CASE_0003C958_PROC0002: cmp dword ptr [ebp-10h],00000011h jnz L0003C258 mov eax,[ebp-0Ch] test eax,eax jz L0003C5FA mov eax,[eax+edi*4+28h] neg eax sbb eax,eax and eax,00000100h add eax,00000600h or ecx,eax jmp L0003C296 L0003C258: mov eax,[ebp+0Ch] test eax,eax jz L0003C5FA mov edx,[eax+edi*4+28h] neg edx sbb edx,edx and edx,00000100h add edx,00000600h or ecx,edx jmp L0003C296 CASE_0003C958_PROC0003: or ecx,00000100h jmp L0003C296 CASE_0003C958_PROC0004: mov eax,[ebp+08h] or ecx,00000400h mov dword ptr [eax+00000980h],00000001h L0003C296: mov eax,[ebp-04h] test eax,eax jl L0003C601 mov edx,[ebp-08h] mov eax,[ebp+08h] mov esi,[eax+edx*4+58h] lea eax,[eax+edx*4+58h] and esi,FFFA0820h shl edx,14h or esi,edx or esi,ecx or esi,L000A0820 mov [eax],esi mov edx,[ebx+0Ch] mov [ebp-1Ch],eax mov eax,[ebx+08h] lea ecx,[eax+04h] cmp ecx,edx mov dword ptr [ebp-10h],00000001h jc L0003C30C push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003C30C mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003C30C push ebx call [ebx+10h] mov eax,[ebx+08h] L0003C30C: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp-24h],eax cld push ecx mov ecx,[ebp-10h] mov esi,[ebp-1Ch] mov edi,[ebp-24h] rep movsd pop ecx mov esi,[ebp+08h] mov ecx,[esi+000009A8h] xor eax,eax cmp ecx,eax mov ecx,[ebp-28h] jnz L0003C356 cmp ecx,00000002h mov edx,[ebp-14h] jnz L0003C34E cmp edx,00000003h jz L0003C34E mov dword ptr [esi+000009A8h],00000001h jmp L0003C359 L0003C34E: mov [esi+000009A8h],eax jmp L0003C359 L0003C356: mov edx,[ebp-14h] L0003C359: cmp edx,7FFFFFFFh ja CASE_0003C96C_PROC0008 jz L0003C434 dec edx cmp edx,00000010h ja CASE_0003C96C_PROC0008 jmp [CASE_PROCTABLE_0003C96C+edx*4] CASE_0003C96C_PROC0000: mov eax,[ebp-18h] xor ecx,ecx test eax,eax setnz cl CASE_0003C96C_PROC0001: mov eax,00000001h jmp L0003C454 CASE_0003C96C_PROC0002: mov eax,00000002h jmp L0003C454 CASE_0003C96C_PROC0003: mov eax,00000003h jmp L0003C454 CASE_0003C96C_PROC0004: mov eax,00000004h jmp L0003C454 CASE_0003C96C_PROC0005: mov eax,00000005h jmp L0003C454 CASE_0003C96C_PROC0006: mov eax,00000006h jmp L0003C454 CASE_0003C96C_PROC0007: mov eax,00000007h jmp L0003C454 CASE_0003C96C_PROC0009: xor ecx,ecx mov eax,00000001h mov [ebp-20h],ecx jmp L0003C454 CASE_0003C96C_PROC000B: mov eax,00000008h mov dword ptr [esi+0000097Ch],00000001h jmp L0003C454 CASE_0003C96C_PROC000C: mov edi,[ebp+0Ch] test edi,edi jz L0003C40B mov edx,[ebp-18h] xor eax,eax mov dword ptr [esi+0000097Ch],00000001h cmp [edi+edx*4+28h],eax setnz al add eax,00000010h jmp L0003C454 L0003C40B: mov dword ptr [ebp-04h],8876081Ch jmp L0003C454 CASE_0003C96C_PROC000D: mov eax,0000000Ah jmp L0003C454 CASE_0003C96C_PROC0010: mov eax,[ebp-0Ch] test eax,eax jz CASE_0003C96C_PROC0001 mov eax,00000003h mov dword ptr [ebp-20h],00000002h jmp L0003C454 L0003C434: mov edi,[ebp+0Ch] cmp edi,eax jz CASE_0003C96C_PROC0001 mov eax,[edi+18h] and al,80h neg al sbb eax,eax add eax,00000002h jmp L0003C454 CASE_0003C96C_PROC0008: mov dword ptr [ebp-04h],8876081Bh L0003C454: mov edi,[ebp-20h] mov edx,ecx and edx,00000010h shl edx,07h and edi,00000010h or edx,edi mov edi,[ebp-18h] shl edx,02h or eax,edx mov edx,[ebp-20h] and ecx,FFFFFFEFh and edx,FFFFFFEFh test edi,edi jnz L0003C485 cmp ecx,00000001h jnz L0003C480 xor ecx,ecx L0003C480: cmp edx,00000001h jz L0003C48B L0003C485: cmp dword ptr [ebp-14h],00000002h jnz L0003C48D L0003C48B: xor edx,edx L0003C48D: and ecx,0000000Fh cmp ecx,00000003h ja L0003C4E1 jmp [CASE_PROCTABLE_0003C9B0+ecx*4] CASE_0003C9B0_PROC0000: or eax,L00018000 mov dword ptr [esi+0000097Ch],00000001h jmp L0003C4E8 CASE_0003C9B0_PROC0001: or eax,L00028000 jmp L0003C4E8 CASE_0003C9B0_PROC0002: mov ecx,[ebp+0Ch] test ecx,ecx jz L0003C4D3 mov ecx,[ecx+edi*4+28h] neg ecx sbb ecx,ecx and ecx,00008000h add ecx,L00030000 or eax,ecx jmp L0003C4E8 L0003C4D3: or eax,L00018000 jmp L0003C4E8 CASE_0003C9B0_PROC0003: or eax,00008000h jmp L0003C4E8 L0003C4E1: mov dword ptr [ebp-04h],8876081Ch L0003C4E8: mov ecx,edx and ecx,0000000Fh cmp ecx,00000003h ja L0003C55C jmp [CASE_PROCTABLE_0003C9C0+ecx*4] CASE_0003C9C0_PROC0000: or eax,00000300h mov dword ptr [esi+0000097Ch],00000001h jmp L0003C563 CASE_0003C9C0_PROC0001: or eax,00000500h jmp L0003C563 CASE_0003C9C0_PROC0002: cmp dword ptr [ebp-14h],00000011h jnz L0003C536 mov ecx,[ebp-0Ch] test ecx,ecx jz L0003C55C mov edx,[ecx+edi*4+28h] neg edx sbb edx,edx and edx,00000100h add edx,00000600h or eax,edx jmp L0003C563 L0003C536: mov ecx,[ebp+0Ch] test ecx,ecx jz L0003C55C mov ecx,[ecx+edi*4+28h] neg ecx sbb ecx,ecx and ecx,00000100h add ecx,00000600h or eax,ecx jmp L0003C563 CASE_0003C9C0_PROC0003: or eax,00000100h jmp L0003C563 L0003C55C: mov dword ptr [ebp-04h],8876081Ch L0003C563: mov edx,[ebp-08h] lea ecx,[esi+edx*4+64h] mov edx,[ecx] and edx,FFF41020h or edx,eax or edx,L00041020 mov [ecx],edx mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov [ebp-28h],ecx lea ecx,[eax+04h] cmp ecx,edx mov dword ptr [ebp-24h],00000001h jc L0003C5C4 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003C5C4 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003C5C4 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003C5C4: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-24h] mov esi,[ebp-28h] mov edi,[ebp+0Ch] rep movsd pop ecx mov edx,[ebp-08h] mov eax,[ebp-2Ch] inc edx cmp eax,00000002h mov [ebp-08h],edx mov [ebp-18h],eax jnc L0003C601 mov edi,[ebp-18h] mov ecx,[ebp+08h] xor eax,eax jmp L0003BF91 L0003C5FA: mov dword ptr [ebp-04h],8876081Ah L0003C601: mov ecx,[ebp-08h] test ecx,ecx jz L0003C6D0 mov eax,[ebp-04h] test eax,eax jl L0003C6D0 cmp ecx,00000003h jnc L0003C8BC mov eax,[ebp+08h] lea ecx,[eax+ecx*4+58h] mov dword ptr [ebp-24h],00000001h mov [ebp+0Ch],ecx L0003C631: mov eax,[ebp+0Ch] mov edx,[eax] mov ecx,[ebp-08h] and edx,FFF2CB20h shl ecx,14h or edx,ecx or edx,L0002CB20 mov [eax],edx mov ecx,[ebx+0Ch] mov [ebp-28h],eax mov eax,[ebx+08h] lea edx,[eax+04h] cmp edx,ecx jc L0003C68D push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003C68D mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003C68D push ebx call [ebx+10h] mov eax,[ebx+08h] L0003C68D: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp-2Ch],eax cld push ecx mov ecx,[ebp-24h] mov esi,[ebp-28h] mov edi,[ebp-2Ch] rep movsd pop ecx mov eax,[ebp-08h] mov edx,[ebp+0Ch] inc eax add edx,00000004h cmp eax,00000003h mov [ebp-08h],eax mov [ebp+0Ch],edx jc L0003C631 jmp L0003C8B9 L0003C6C2: mov eax,88760826h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ L0003C6D0: mov eax,[ebp+08h] mov ecx,00000001h mov [eax+0000097Ch],ecx mov dword ptr [eax+000009A8h],00000000h mov edx,[eax+58h] add eax,00000058h and edx,FFF2CB21h or edx,L0002CB21 mov [eax],edx mov edx,[ebx+0Ch] mov [ebp-2Ch],eax mov eax,[ebx+08h] mov [ebp-28h],ecx lea ecx,[eax+04h] cmp ecx,edx jc L0003C740 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003C740 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003C740 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003C740: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-28h] mov esi,[ebp-2Ch] mov edi,[ebp+0Ch] rep movsd pop ecx mov eax,[ebp+08h] mov ecx,[eax+64h] add eax,00000064h and ecx,FFF59321h or ecx,L00059321 mov [eax],ecx mov ecx,[ebx+0Ch] mov [ebp-2Ch],eax mov eax,[ebx+08h] lea edx,[eax+04h] cmp edx,ecx mov dword ptr [ebp-28h],00000001h jc L0003C7B6 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003C7B6 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003C7B6 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003C7B6: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-28h] mov esi,[ebp-2Ch] mov edi,[ebp+0Ch] rep movsd pop ecx mov eax,[ebp+08h] mov ecx,[eax+5Ch] add eax,0000005Ch and ecx,FFF2CB20h or ecx,0012CB20h mov [eax],ecx mov ecx,[ebx+0Ch] mov [ebp-2Ch],eax mov eax,[ebx+08h] lea edx,[eax+04h] cmp edx,ecx mov dword ptr [ebp-28h],00000001h jc L0003C82C push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003C82C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003C82C push ebx call [ebx+10h] mov eax,[ebx+08h] L0003C82C: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-28h] mov esi,[ebp-2Ch] mov edi,[ebp+0Ch] rep movsd pop ecx mov eax,[ebp+08h] mov ecx,[eax+60h] add eax,00000060h and ecx,FFF2CB20h or ecx,0022CB20h mov [eax],ecx mov ecx,[ebx+0Ch] mov [ebp-2Ch],eax mov eax,[ebx+08h] lea edx,[eax+04h] cmp edx,ecx mov dword ptr [ebp-28h],00000001h jc L0003C8A2 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003C8A2 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003C8A2 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003C8A2: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-28h] mov esi,[ebp-2Ch] mov edi,[ebp+0Ch] rep movsd pop ecx L0003C8B9: mov eax,[ebp-04h] L0003C8BC: mov ecx,[L000B6F24] test ecx,ecx jz L0003C8FB mov ecx,[ebp-30h] test ecx,ecx jz L0003C8FB mov ecx,[ebp+08h] mov edx,[ecx+000009A8h] test edx,edx jnz L0003C8FB mov esi,[ecx+000005D8h] mov edx,[ecx+00004850h] or esi,04000000h or edx,00000010h mov [ecx+000005D8h],esi mov [ecx+00004850h],edx L0003C8FB: pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ CASE_PROCTABLE_0003C904: dd CASE_0003C904_PROC0000 dd CASE_0003C904_PROC0001 dd CASE_0003C904_PROC0002 dd CASE_0003C904_PROC0003 dd CASE_0003C904_PROC0004 dd CASE_0003C904_PROC0005 dd CASE_0003C904_PROC0006 dd CASE_0003C904_PROC0007 dd CASE_0003C904_PROC0008 dd CASE_0003C904_PROC0007 dd CASE_0003C904_PROC000A dd CASE_0003C904_PROC000B dd CASE_0003C904_PROC000C dd CASE_0003C904_PROC0007 dd CASE_0003C904_PROC0007 dd CASE_0003C904_PROC000F CASE_PROCTABLE_0003C944: dd CASE_0003C944_PROC0000 dd CASE_0003C944_PROC0001 dd CASE_0003C944_PROC0002 dd CASE_0003C944_PROC0003 dd CASE_0003C944_PROC0004 CASE_PROCTABLE_0003C958: dd CASE_0003C958_PROC0000 dd CASE_0003C958_PROC0001 dd CASE_0003C958_PROC0002 dd CASE_0003C958_PROC0003 dd CASE_0003C958_PROC0004 CASE_PROCTABLE_0003C96C: dd CASE_0003C96C_PROC0000 dd CASE_0003C96C_PROC0001 dd CASE_0003C96C_PROC0002 dd CASE_0003C96C_PROC0003 dd CASE_0003C96C_PROC0004 dd CASE_0003C96C_PROC0005 dd CASE_0003C96C_PROC0006 dd CASE_0003C96C_PROC0007 dd CASE_0003C96C_PROC0008 dd CASE_0003C96C_PROC0009 dd CASE_0003C96C_PROC0008 dd CASE_0003C96C_PROC000B dd CASE_0003C96C_PROC000C dd CASE_0003C96C_PROC000D dd CASE_0003C96C_PROC0008 dd CASE_0003C96C_PROC0008 dd CASE_0003C96C_PROC0010 CASE_PROCTABLE_0003C9B0: dd CASE_0003C9B0_PROC0000 dd CASE_0003C9B0_PROC0001 dd CASE_0003C9B0_PROC0002 dd CASE_0003C9B0_PROC0003 CASE_PROCTABLE_0003C9C0: dd CASE_0003C9C0_PROC0000 dd CASE_0003C9C0_PROC0001 dd CASE_0003C9C0_PROC0002 dd CASE_0003C9C0_PROC0003 SUB_L0003C9D0: push ebp mov ebp,esp sub esp,00000068h push ebx xor ebx,ebx push esi mov esi,[ebp+08h] push edi or edi,FFFFFFFFh mov [ebp-2Ch],ebx mov [ebp-34h],ebx mov [esi+000009FCh],ebx mov [ebp-18h],ebx mov [ebp-30h],ebx mov [ebp-28h],ebx mov [ebp-68h],edi mov [ebp-64h],edi mov [ebp-60h],edi mov [ebp-5Ch],edi mov [ebp-58h],edi mov [ebp-54h],edi mov [ebp-50h],edi mov [ebp-4Ch],edi mov [ebp-48h],ebx mov [ebp-44h],ebx L0003CA14: push ebx push esi call [L000B70AC] test eax,eax jz L0003CA2A add eax,00000028h mov ecx,edi mov [eax],ecx mov [eax+04h],ecx L0003CA2A: inc ebx cmp ebx,00000002h jc L0003CA14 mov ebx,[ebp+0Ch] xor eax,eax mov [ebp-10h],eax mov [ebp-0Ch],eax lea edx,[esi+0000062Ch] lea eax,[esi+00000380h] mov dword ptr [ebp-14h],00000028h mov [ebp-04h],edx mov [ebp-24h],eax L0003CA54: mov ecx,[ebp-10h] push ecx push esi call [L000B70AC] mov edi,eax test edi,edi mov [ebp+0Ch],edi jz L0003D04A mov eax,[edi+18h] test al,0Ch jz L0003D04A mov edx,[ebp-18h] mov ecx,00000002h cmp edx,ecx jnc L0003D0A6 test cl,al jz L0003CAA8 mov eax,[edi+60h] test eax,eax jz L0003CAA8 mov eax,[edi+000000A4h] test eax,eax jz L0003D0AC push ebx push edi call [L000B6F64] L0003CAA8: test byte ptr [edi+18h],01h jz L0003CABE push edi push esi call [L000B70C0] test eax,eax jl L0003D15A L0003CABE: cmp dword ptr [esi+00000224h],00000001h jnz L0003CAD8 push edi call [L000B6F68] cmp eax,00000001h jnz L0003CAD8 mov [ebp-2Ch],eax jmp L0003CAE2 L0003CAD8: cmp dword ptr [ebp-2Ch],00000001h jnz L0003CCB4 L0003CAE2: test byte ptr [edi+18h],02h mov ecx,[esi+74h] jz L0003CB89 and ecx,FFFFEFFFh push 00000001h mov edx,ecx push ebx mov [esi+74h],ecx mov [ebp-08h],edx call SUB_L000377E0 mov ecx,[ebp-08h] mov [eax],ecx or dword ptr [esi+74h],00004000h test byte ptr [ebx+08h],04h jz L0003CB25 push 00000001h push ebx call SUB_L000377E0 mov dword ptr [eax],00000000h L0003CB25: mov edx,[esi+74h] push 00000001h push ebx mov [ebp-20h],edx call SUB_L000377E0 mov ecx,[ebp-20h] mov [eax],ecx mov edx,[esi+000000B0h] mov edi,[edi+000000ACh] and edx,00FFFFFFh shl edi,18h or edx,edi mov [esi+000000B0h],edx push 00000003h add esi,000000A8h push ebx mov dword ptr [ebp-08h],00000003h mov [ebp-1Ch],esi call SUB_L000377E0 mov [ebp-20h],eax cld push ecx mov ecx,[ebp-08h] mov esi,[ebp-1Ch] mov edi,[ebp-20h] rep movsd pop ecx mov esi,[ebp+08h] mov edi,[ebp+0Ch] jmp L0003CD3E L0003CB89: and ecx,FFFFBFFFh mov [esi+74h],ecx test byte ptr [ebx+08h],04h jz L0003CBA6 push 00000001h push ebx call SUB_L000377E0 mov dword ptr [eax],00000000h L0003CBA6: mov eax,[esi+74h] push 00000001h push ebx mov [ebp-20h],eax call SUB_L000377E0 mov ecx,[ebp-20h] mov [eax],ecx mov eax,[esi+74h] or eax,00001000h push 00000001h mov edx,eax push ebx mov [esi+74h],eax mov [ebp-20h],edx call SUB_L000377E0 mov ecx,[ebp-20h] mov [eax],ecx mov edx,[esi+000000B0h] mov edi,[edi+000000ACh] mov eax,[esi+000000B0h] xor edx,edi and edx,00FFFFFFh xor eax,edx mov [esi+000000B0h],eax push 00000003h add esi,000000A8h push ebx mov dword ptr [ebp-08h],00000003h mov [ebp-1Ch],esi call SUB_L000377E0 mov [ebp-20h],eax cld push ecx mov ecx,[ebp-08h] mov esi,[ebp-1Ch] mov edi,[ebp-20h] rep movsd pop ecx mov ecx,[ebp+08h] mov edx,[ecx+000000ACh] mov eax,[ebp+0Ch] mov eax,[eax+000000B0h] xor eax,edx and eax,00FFFFFFh mov esi,edx xor esi,eax mov [ecx+000000ACh],esi mov eax,[ebx+08h] mov edx,[ebx+0Ch] add ecx,000000A8h mov [ebp-1Ch],ecx lea ecx,[eax+0Ch] cmp ecx,edx mov dword ptr [ebp-08h],00000003h jc L0003CC92 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003CC92 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L0003CC92 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003CC92: lea edx,[eax+0Ch] mov [ebx+08h],edx mov [ebp-20h],eax cld push ecx mov ecx,[ebp-08h] mov esi,[ebp-1Ch] mov edi,[ebp-20h] rep movsd pop ecx mov esi,[ebp+08h] mov edi,[ebp+0Ch] jmp L0003CD3E L0003CCB4: and dword ptr [esi+74h],FFFFBFFFh test byte ptr [ebx+08h],04h jz L0003CCCF push 00000001h push ebx call SUB_L000377E0 mov dword ptr [eax],00000000h L0003CCCF: mov eax,[esi+74h] push 00000001h push ebx mov [ebp-20h],eax call SUB_L000377E0 mov ecx,[ebp-20h] mov [eax],ecx mov eax,[esi+74h] and eax,FFFFEFFFh mov edx,eax mov [esi+74h],eax mov eax,[ebx+08h] mov [ebp-08h],edx mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003CD33 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003CD30 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003CD30 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003CD30: mov edi,[ebp+0Ch] L0003CD33: mov ecx,[ebp-08h] lea edx,[eax+04h] mov [ebx+08h],edx mov [eax],ecx L0003CD3E: mov eax,[ebp-14h] mov edi,[eax+edi] cmp edi,FFFFFFFFh mov ecx,[ebp-04h] mov edx,[ecx-24h] jz L0003CD54 mov [ebp-08h],edi jmp L0003CD5E L0003CD54: mov eax,[ebp-30h] mov [ebp-08h],eax inc eax mov [ebp-30h],eax L0003CD5E: mov eax,[ebp+edx*4-68h] cmp eax,FFFFFFFFh mov [ebp-20h],eax jz L0003CDA5 mov eax,[ebp+eax*4-48h] mov ecx,[ecx-1Ch] lea edi,[00000000h+eax*8] sub edi,eax lea edi,[eax+edi*4] cmp ecx,[esi+edi*4+00000610h] lea edi,[esi+edi*4] jnz L0003CDA5 mov ecx,[ebp-04h] mov ecx,[ecx-18h] cmp ecx,[edi+00000614h] jnz L0003CDA5 mov ecx,[ebp-24h] mov ecx,[ecx] cmp ecx,[esi+eax*4+00000380h] jz L0003CDE2 L0003CDA5: mov ecx,[ebp-18h] mov edi,[ebp-34h] mov eax,ecx inc ecx mov [ebp-18h],ecx mov ecx,[ebp-10h] mov [ebp+eax*4-48h],ecx lea ecx,[00000000h+edx*8] shr ecx,02h mov [ebp+edx*4-68h],eax lea edx,[ecx+02h] sub ecx,edi mov [esi+eax*4+00000988h],ecx shl ecx,02h mov [ebp-20h],eax mov [esi+eax*4+00000A10h],ecx mov [ebp-34h],edx L0003CDE2: mov edi,[ebp-0Ch] lea eax,[esi+30h] lea edx,[edi+03h] mov ecx,edx mov esi,00000001h shl esi,cl mov ecx,edi push 00000001h push ebx mov edi,esi mov esi,00000041h shl esi,cl mov dword ptr [ebp-3Ch],00000001h mov [ebp-38h],eax or edi,esi mov esi,[eax] not edi and edi,esi mov esi,[ebp-08h] or esi,00000040h shl esi,cl mov ecx,edx or edi,esi mov esi,[ebp-20h] shl esi,cl or edi,esi mov [eax],edi call SUB_L000377E0 mov [ebp-1Ch],eax cld push ecx mov ecx,[ebp-3Ch] mov esi,[ebp-38h] mov edi,[ebp-1Ch] rep movsd pop ecx mov edx,[ebp-04h] mov eax,[edx] mov edx,[ebp-08h] mov ecx,[ebp+08h] lea ecx,[ecx+edx*4+44h] mov edx,[ecx] shl eax,05h and edx,FFFFE01Fh shl eax,04h or edx,eax mov [ecx],edx mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov [ebp-1Ch],ecx mov [ebp-38h],ecx lea ecx,[eax+04h] cmp ecx,edx mov dword ptr [ebp-40h],00000001h jc L0003CEAB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003CEAB mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003CEAB push ebx call [ebx+10h] mov eax,[ebx+08h] L0003CEAB: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp-3Ch],eax cld push ecx mov ecx,[ebp-40h] mov esi,[ebp-38h] mov edi,[ebp-3Ch] rep movsd pop ecx mov eax,[ebp+0Ch] mov eax,[eax+00000084h] test eax,eax jbe L0003CF08 mov ecx,[ebp-04h] mov ecx,[ecx] dec eax cmp ecx,eax jbe L0003CF08 mov eax,[ebp-1Ch] mov edx,[eax] and edx,FFFFFFF0h push 00000001h or edx,ecx push ebx mov [eax],edx mov dword ptr [ebp-38h],00000001h mov [ebp-3Ch],eax call SUB_L000377E0 mov [ebp-40h],eax cld push ecx mov ecx,[ebp-38h] mov esi,[ebp-3Ch] mov edi,[ebp-40h] rep movsd pop ecx L0003CF08: mov eax,[ebp+0Ch] mov eax,[eax+00000084h] test eax,eax jbe L0003CF85 lea ecx,[eax-01h] mov eax,[ebp-1Ch] mov edx,[eax] and edx,FFFFFFF0h or edx,ecx mov [eax],edx mov edx,[ebx+0Ch] mov [ebp-3Ch],eax mov eax,[ebx+08h] lea ecx,[eax+04h] cmp ecx,edx mov dword ptr [ebp-38h],00000001h jc L0003CF6C push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003CF6C mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003CF6C push ebx call [ebx+10h] mov eax,[ebx+08h] L0003CF6C: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp-40h],eax cld push ecx mov ecx,[ebp-38h] mov esi,[ebp-3Ch] mov edi,[ebp-40h] rep movsd pop ecx jmp L0003CFEA L0003CF85: mov eax,[ebp-1Ch] and dword ptr [eax],FFFFFFF0h mov edx,[ebx+0Ch] mov [ebp-3Ch],eax mov eax,[ebx+08h] lea ecx,[eax+04h] cmp ecx,edx mov dword ptr [ebp-38h],00000001h jc L0003CFD3 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003CFD3 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003CFD3 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003CFD3: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp-40h],eax cld push ecx mov ecx,[ebp-38h] mov esi,[ebp-3Ch] mov edi,[ebp-40h] rep movsd pop ecx L0003CFEA: mov eax,[ebp+0Ch] mov ecx,[eax+3Ch] mov edx,[ebp-08h] and ecx,EFFFFFFFh shl edx,1Ch or ecx,edx mov [eax+3Ch],ecx mov ecx,[eax+34h] push ecx add eax,00000038h push ebx mov [ebp-38h],ecx mov [ebp-3Ch],eax call SUB_L000377E0 mov [ebp-40h],eax cld push ecx mov ecx,[ebp-38h] mov esi,[ebp-3Ch] mov edi,[ebp-40h] rep movsd pop ecx mov eax,[ebp+0Ch] mov ecx,[ebp-08h] mov edx,[ebp-14h] mov esi,[ebp+08h] mov [edx+eax],ecx mov ecx,[ebp-20h] mov [eax+30h],ecx mov ecx,[ebp-28h] mov eax,[ebp-0Ch] inc ecx add eax,00000008h mov [ebp-28h],ecx mov [ebp-0Ch],eax L0003D04A: mov eax,[ebp-24h] mov ecx,[ebp-10h] mov edx,[ebp-04h] add eax,00000004h mov [ebp-24h],eax mov eax,[ebp-14h] add eax,00000004h inc ecx add edx,00000074h cmp eax,00000030h mov [ebp-10h],ecx mov [ebp-14h],eax mov [ebp-04h],edx jc L0003CA54 mov eax,[ebp-28h] cmp eax,00000002h mov edx,[ebp-18h] mov [esi+000009FCh],edx jnc L0003D158 add esi,00000030h lea edx,[00000000h+eax*8] mov dword ptr [ebp-38h],00000001h mov [ebp+0Ch],esi mov [ebp-3Ch],esi mov [ebp+08h],edx jmp L0003D0BD L0003D0A6: mov [esi+000009FCh],ecx L0003D0AC: mov eax,80070057h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ L0003D0BA: mov edx,[ebp+08h] L0003D0BD: lea eax,[edx+03h] mov ecx,eax mov edi,00000001h shl edi,cl mov ecx,edx mov esi,00000041h shl esi,cl or edi,esi mov esi,[ebp+0Ch] mov ecx,[esi] not edi and edi,ecx mov ecx,eax mov eax,edi xor edi,edi shl edi,cl mov ecx,edx or eax,edi xor edi,edi shl edi,cl or eax,edi mov [esi],eax mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003D12F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003D12F mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003D12F push ebx call [ebx+10h] mov eax,[ebx+08h] L0003D12F: lea edx,[eax+04h] mov [ebx+08h],edx mov [ebp-40h],eax cld push ecx mov ecx,[ebp-38h] mov esi,[ebp-3Ch] mov edi,[ebp-40h] rep movsd pop ecx mov eax,[ebp+08h] add eax,00000008h cmp eax,00000010h mov [ebp+08h],eax jc L0003D0BA L0003D158: xor eax,eax L0003D15A: pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0003D170: sub esp,00000008h push ebx push ebp push esi mov esi,[esp+18h] mov eax,[esi+00000980h] mov ebx,[esi+000001F0h] mov ecx,[esi+000001F4h] mov edx,[esi+00000A00h] or eax,ebx or eax,ecx test dl,11h mov [esp+10h],eax jnz L0003D628 test dl,06h jz L0003D628 xor ecx,ecx mov ebx,edx shr ebx,08h and ebx,0000000Fh mov ebp,edx and ebp,0000000Eh cmp ebp,00000002h setnz cl mov [esi+000009F8h],ebx mov [esp+0Ch],ebp dec ecx and ecx,FFFFFFFCh add ecx,00000010h test dl,20h mov [esp+18h],ecx mov [esi+000005D0h],ecx jz L0003D1FF cmp dword ptr [esi+00000138h],00000004h jc L0003D628 lea eax,[ecx+04h] mov [esi+00004888h],ecx mov [esi+000005D0h],eax jmp L0003D205 L0003D1FF: mov [esi+00004888h],ecx L0003D205: push edi mov eax,edx shr eax,05h mov edi,edx shr edi,04h and edi,00000004h and eax,00000004h add eax,edi mov edi,[esi+000005D0h] add edi,eax test edx,FFFF0000h mov eax,edi mov [esi+000005D0h],edi mov [esi+00004884h],eax jz L0003D2CB cmp dword ptr [esi+00000138h],00000004h jc L0003D2CB xor edi,edi test ebx,ebx jbe L0003D2D4 L0003D251: lea ecx,[edi+edi+10h] mov eax,00000003h shl eax,cl mov ebp,eax and ebp,edx cmp ebp,eax mov eax,00000001h jz L0003D2AB shl eax,cl mov ebp,eax and ebp,edx cmp ebp,eax jnz L0003D285 test edi,edi mov eax,00000003h jnz L0003D2AB add dword ptr [esi+00000A14h],00000004h jmp L0003D2AB L0003D285: mov eax,00000002h shl eax,cl mov ecx,eax and ecx,edx cmp ecx,eax jnz L0003D2A6 test edi,edi mov eax,00000004h jnz L0003D2AB add dword ptr [esi+00000A14h],00000008h jmp L0003D2AB L0003D2A6: mov eax,00000002h L0003D2AB: mov ebp,[esi+000005D0h] shl eax,02h add ebp,eax inc edi cmp edi,ebx mov [esi+000005D0h],ebp jc L0003D251 mov ecx,[esp+1Ch] mov ebp,[esp+10h] jmp L0003D2D4 L0003D2CB: lea eax,[eax+ebx*8] mov [esi+000005D0h],eax L0003D2D4: mov eax,[esi+00000988h] mov edi,[esi+0000097Ch] shl eax,02h test edi,edi mov [esi+00000A04h],ebp mov [esi+000005D4h],ecx mov dword ptr [esi+00000A08h],00000000h mov [esi+00000A10h],eax jz L0003D326 test dl,40h jz L0003D334 or ebp,00000040h add ecx,00000004h mov [esi+00000A04h],ebp mov [esi+000005D4h],ecx mov dword ptr [esi+00000A08h],00000001h jmp L0003D334 L0003D326: test dl,40h jz L0003D334 add eax,00000004h mov [esi+00000A10h],eax L0003D334: mov ecx,[esp+14h] test ecx,ecx jz L0003D372 test dl,80h jz L0003D37E mov eax,[esi+00000A04h] mov ebp,[esi+000005D4h] or eax,00000080h mov [esi+00000A04h],eax mov eax,[esi+00000A08h] add ebp,00000004h or eax,00000002h mov [esi+000005D4h],ebp mov [esi+00000A08h],eax jmp L0003D37E L0003D372: test dl,80h jz L0003D37E add dword ptr [esi+00000A10h],00000004h L0003D37E: mov eax,[esi+000048ACh] test eax,eax jz L0003D3C7 mov eax,[esi+00000A04h] test al,80h jnz L0003D3C7 mov ebp,[esi+00000A08h] or eax,00000080h mov [esi+00000A04h],eax mov eax,[esi+000005D4h] add eax,00000004h or ebp,00000002h test dl,80h mov [esi+000005D4h],eax mov [esi+00000A08h],ebp jnz L0003D3C7 add dword ptr [esi+00000A10h],FFFFFFFCh L0003D3C7: mov eax,[L000B70A4] test eax,eax jz L0003D429 mov eax,[esi+000001F4h] test eax,eax jz L0003D429 cmp dword ptr [esi+000005E0h],00000001h jnz L0003D3ED mov eax,[esi+000009FCh] test eax,eax jz L0003D429 L0003D3ED: or dword ptr [esi+00000A04h],000000C0h mov eax,[esi+00000A08h] test eax,eax ja L0003D40C mov ebp,[esi+000005D4h] add ebp,00000008h jmp L0003D41A L0003D40C: cmp eax,00000002h ja L0003D420 mov ebp,[esi+000005D4h] add ebp,00000004h L0003D41A: mov [esi+000005D4h],ebp L0003D420: or eax,00000004h mov [esi+00000A08h],eax L0003D429: mov eax,[esi+000009FCh] lea ebp,[00000000h+eax*8] add [esi+000005D4h],ebp mov ebp,eax shl ebp,08h or [esi+00000A04h],ebp cmp eax,00000001h mov dword ptr [esi+00000A0Ch],00000000h jnz L0003D497 mov eax,[esi+0000488Ch] test eax,eax jnz L0003D47D cmp dword ptr [esi+00004890h],3F800000h jnz L0003D47D test dl,20h jnz L0003D47D neg ebx sbb ebx,ebx and ebx,FFFFFFFEh add ebx,00000003h jmp L0003D4B7 L0003D47D: test ebx,ebx jnz L0003D48A test eax,eax mov eax,00000003h jz L0003D48F L0003D48A: mov eax,00000001h L0003D48F: mov [esi+00000A0Ch],eax jmp L0003D4BD L0003D497: cmp eax,00000002h jnz L0003D4BD test ebx,ebx jnz L0003D4AC mov dword ptr [esi+00000A0Ch],00000004h jmp L0003D4BD L0003D4AC: dec ebx neg ebx sbb ebx,ebx and ebx,FFFFFFFDh add ebx,00000005h L0003D4B7: mov [esi+00000A0Ch],ebx L0003D4BD: test ecx,ecx jz L0003D4C6 test dl,80h jz L0003D4D7 L0003D4C6: test edi,edi jz L0003D5B0 test dl,40h jnz L0003D5B0 L0003D4D7: mov edi,[esi+00000148h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+3Ch] cmp ecx,edx jc L0003D51B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003D51B mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+3Ch] cmp ecx,edx jc L0003D51B push edi call [edi+10h] mov eax,[edi+08h] L0003D51B: lea edx,[eax+3Ch] mov [edi+08h],edx mov dword ptr [eax],650000C6h mov dword ptr [eax+04h],7F00000Bh add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h mov dword ptr [eax+04h],FFFFFFFFh add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h mov dword ptr [eax+04h],FFFFFFFFh add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h mov dword ptr [eax+04h],00000000h add eax,00000004h add eax,00000004h mov dword ptr [eax],FFFFFFFFh add eax,00000004h mov dword ptr [eax],00000000h mov ecx,[esi+00000114h] mov [eax+04h],ecx L0003D5B0: mov eax,[esi+00000114h] mov edx,[esi+00000A04h] mov edi,[esi+00000148h] xor edx,eax and edx,000003E6h mov ebx,eax xor ebx,edx mov [esi+00000114h],ebx mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+04h] cmp ecx,edx mov esi,ebx jc L0003D614 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003D614 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L0003D614 push edi call [edi+10h] mov eax,[edi+08h] L0003D614: lea edx,[eax+04h] mov [edi+08h],edx pop edi mov [eax],esi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ L0003D628: pop esi pop ebp mov eax,80070057h pop ebx add esp,00000008h retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0003D640: push ebp mov ebp,esp sub esp,0000002Ch push ebx push esi mov esi,[ebp+08h] mov eax,[esi+00004850h] test al,01h push edi mov dword ptr [ebp-04h],00000000h jz L0003D66D and eax,FFFFFFFEh mov dword ptr [ebp-04h],00000001h mov [esi+00004850h],eax L0003D66D: mov edx,[esi+0000483Ch] test edx,edx mov [ebp-0Ch],edx jz L0003D859 mov eax,[esi+00004850h] test al,08h jz L0003D69D mov ebx,[ebp-04h] or ebx,00000002h and eax,FFFFFFF7h or eax,00000006h mov [ebp-04h],ebx mov [esi+00004850h],eax L0003D69D: mov ecx,[esi+0000484Ch] test ecx,ecx mov [ebp-08h],ecx jz L0003D6B1 or dword ptr [esi+00004850h],00000010h L0003D6B1: mov eax,[esi+00004850h] test al,02h jz L0003D7FD cmp edx,00000003h jnz L0003D7FD fld dword ptr [esi+00004840h] mov edi,[ebp-04h] fld dword ptr [esi+00004844h] and eax,FFFFFFFDh fst qword ptr [ebp-1Ch] mov [esi+00004850h],eax fmul qword ptr [L000B2468] or edi,00000004h mov [ebp-04h],edi fstp qword ptr [ebp-14h] fcom qword ptr [ebp-14h] fnstsw ax test ah,41h jnz L0003D701 fstp ST(0) fld qword ptr [ebp-14h] L0003D701: test ecx,ecx jz L0003D70D fld qword ptr [L000B2460] jmp L0003D713 L0003D70D: fld qword ptr [L000B2458] L0003D713: fld qword ptr [L000B2450] fdiv ST,ST(1) fsubr qword ptr [ebp-1Ch] fstp qword ptr [ebp-14h] fstp ST(0) fcom qword ptr [ebp-14h] fnstsw ax test ah,41h jnz L0003D732 fstp ST(0) fld qword ptr [ebp-14h] L0003D732: fcom qword ptr [L000B2448] fnstsw ax test ah,41h jnz L0003D749 fstp ST(0) fld qword ptr [L000B2448] jmp L0003D75E L0003D749: fcom qword ptr [L000B2440] fnstsw ax test ah,01h jz L0003D75E fstp ST(0) fld qword ptr [L000B2440] L0003D75E: fld qword ptr [ebp-1Ch] fcomp qword ptr [L000B2448] fnstsw ax test ah,41h jnz L0003D77E mov dword ptr [ebp-1Ch],C78CDFADh mov dword ptr [ebp-18h],47EFF933h jmp L0003D79C L0003D77E: fld qword ptr [ebp-1Ch] fcomp qword ptr [L000B2440] fnstsw ax test ah,01h jz L0003D79C mov dword ptr [ebp-1Ch],C78CDFADh mov dword ptr [ebp-18h],C7EFF933h L0003D79C: fsubr qword ptr [ebp-1Ch] fld qword ptr [ebp-1Ch] fdiv ST,ST(1) fstp dword ptr [ebp-18h] fld qword ptr [L000B2450] mov eax,[ebp-18h] fdiv ST,ST(1) mov [ebp-18h],eax fstp dword ptr [ebp-10h] fstp ST(0) fld dword ptr [ebp-18h] fmul dword ptr [L000B2438] call SUB_L000AF4EC mov edi,eax mov eax,[ebp-08h] test eax,eax jz L0003D7DE mov ecx,[ebp-10h] mov edx,[ebp-0Ch] mov [ebp-10h],ecx mov ecx,eax jmp L0003D800 L0003D7DE: mov edx,[ebp-10h] mov [ebp-18h],edx fld dword ptr [ebp-18h] fmul dword ptr [L000B2434] call SUB_L000AF4EC mov edx,[ebp-0Ch] mov ecx,[ebp-08h] mov [ebp-10h],eax jmp L0003D800 L0003D7FD: mov edi,[ebp+08h] L0003D800: mov ebx,[esi+00004850h] test bl,04h jz L0003D85C cmp edx,00000003h jz L0003D85C mov eax,[ebp-04h] or eax,00000008h test ecx,ecx mov [ebp-04h],eax jz L0003D831 mov eax,[esi+00004848h] and ebx,FFFFFFFBh mov [ebp-18h],eax mov [esi+00004850h],ebx jmp L0003D85C L0003D831: mov ecx,[esi+00004848h] mov [ebp-18h],ecx fld dword ptr [ebp-18h] fmul dword ptr [L000B2434] call SUB_L000AF4EC mov edx,[ebp-0Ch] and ebx,FFFFFFFBh mov [ebp-18h],eax mov [esi+00004850h],ebx jmp L0003D85C L0003D859: mov edi,[ebp+08h] L0003D85C: mov eax,[ebp-04h] mov ebx,[ebp+0Ch] xor ecx,ecx cmp eax,ecx jz L0003D999 test al,01h mov dword ptr [ebp-2Ch],7D890002h mov [ebp-20h],ecx mov [ebp-24h],ecx mov [ebp-28h],ecx jz L0003D8A4 mov eax,[esi+000000C4h] mov ecx,edx or ecx,FFFFFFF8h and eax,CFFFFFFFh shl ecx,1Ch shl edx,1Ch or eax,edx mov [esi+000000C4h],eax mov al,[ebp-04h] mov [ebp-28h],ecx L0003D8A4: test al,02h jz L0003D8E1 mov edx,[ebp-08h] or ecx,08000000h test edx,edx mov [ebp-28h],ecx jz L0003D8CF mov edx,[esi+000000C4h] or ecx,02000000h mov [ebp-28h],ecx or edx,02000000h jmp L0003D8DB L0003D8CF: mov edx,[esi+000000C4h] and edx,FDFFFFFFh L0003D8DB: mov [esi+000000C4h],edx L0003D8E1: test al,04h jz L0003D91B mov edx,[esi+000000C4h] mov eax,edi shl eax,04h and edx,FFF0000Fh or edx,eax mov eax,[ebp-10h] or edi,00100000h shl edi,04h or ecx,edi mov [ebp-24h],eax mov [esi+000000C8h],eax mov al,[ebp-04h] mov [esi+000000C4h],edx mov [ebp-28h],ecx L0003D91B: test al,08h jz L0003D934 mov eax,[ebp-18h] or ecx,00800000h mov [ebp-28h],ecx mov [ebp-20h],eax mov [esi+000000CCh],eax L0003D934: mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+10h] cmp ecx,edx mov dword ptr [ebp-10h],00000004h jc L0003D979 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003D979 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+10h] cmp ecx,edx jc L0003D979 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003D979: lea edx,[eax+10h] mov [ebp+0Ch],eax lea eax,[ebp-2Ch] mov [ebx+08h],edx mov [ebp-18h],eax cld push ecx mov ecx,[ebp-10h] mov esi,[ebp-18h] mov edi,[ebp+0Ch] rep movsd pop ecx mov esi,[ebp+08h] L0003D999: mov eax,[esi+0000483Ch] test eax,eax jz L0003DA29 test byte ptr [esi+00004850h],10h jz L0003DA29 mov eax,[esi+000009A8h] test eax,eax jnz L0003DA29 mov eax,[ebx+08h] mov edx,[ebx+0Ch] add esi,00000118h lea ecx,[eax+14h] cmp ecx,edx mov dword ptr [ebp-10h],00000005h mov [ebp-18h],esi jc L0003DA08 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003DA08 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+14h] cmp ecx,edx jc L0003DA08 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003DA08: lea edx,[eax+14h] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-10h] mov esi,[ebp-18h] mov edi,[ebp+0Ch] rep movsd pop ecx mov eax,[ebp+08h] and dword ptr [eax+00004850h],FFFFFFEFh L0003DA29: pop edi pop esi xor eax,eax pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0003DA40: mov eax,[L000B6F24] test eax,eax jz L0003DA8F mov eax,[esp+08h] cmp dword ptr [eax],3F800000h jnz L0003DA62 cmp dword ptr [eax+04h],3F800000h jnz L0003DA62 xor ecx,ecx jmp L0003DA67 L0003DA62: mov ecx,00000001h L0003DA67: mov eax,[esp+04h] cmp [eax+0000484Ch],ecx jz L0003DAEE or dword ptr [eax+00004850h],00000008h or dword ptr [eax+000005D8h],04000000h mov [eax+0000484Ch],ecx xor eax,eax retn 0008h ;------------------------------------------------------------------------------ L0003DA8F: mov eax,[L000B6F30] test eax,eax jz L0003DAEE mov eax,[esp+08h] mov edx,[eax+04h] mov ecx,[esp+04h] mov [ecx+000048C8h],edx mov edx,[eax] mov [ecx+000048C4h],edx fld dword ptr [eax+04h] fsub dword ptr [eax] fcom dword ptr [L000B23F0] fst dword ptr [ecx+000048CCh] fnstsw ax test ah,40h jnz L0003DAD7 fld dword ptr [L000B2470] fdiv ST,ST(1) fstp dword ptr [ecx+000048CCh] L0003DAD7: mov edx,[ecx+000048B0h] fstp ST(0) or edx,00000001h push ecx mov [ecx+000048B0h],edx call SUB_L00033DC0 L0003DAEE: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L0003DB00: push ebp mov ebp,esp sub esp,00000010h mov edx,[ebp+08h] mov ecx,[ebp+0Ch] push ebx mov ebx,[edx+00000148h] lea eax,[edx+000000B4h] push esi mov [ebp+08h],eax mov eax,[ecx+08h] push edi mov edi,[ecx] mov [ebp+0Ch],eax lea eax,[eax+edi-01h] lea esi,[edx+14h] mov edx,[edx+00000174h] test edx,edx mov [ebp-10h],eax mov eax,[ecx+04h] mov ecx,[ecx+0Ch] mov [ebp-04h],ecx mov [ebp-08h],esi mov [ebp-0Ch],edi lea ecx,[ecx+eax-01h] jz L0003DB58 xor edi,edi mov di,[edx+000000A8h] jmp L0003DB5B L0003DB58: mov edi,[ebp+0Ch] L0003DB5B: test edx,edx mov [ebp+0Ch],edi jz L0003DB73 xor edi,edi mov di,[edx+000000AAh] mov [ebp-04h],edi mov edi,[ebp+0Ch] jmp L0003DB79 L0003DB73: mov edx,[ebp-04h] mov [ebp-04h],edx L0003DB79: mov edx,[ebp-0Ch] shl eax,10h or eax,edx mov edx,[ebp+08h] mov [edx+04h],eax mov eax,[ebp-10h] shl ecx,10h or ecx,eax mov [edx+08h],ecx mov ecx,[ebp-04h] add ecx,0000FFFFh xor eax,eax shl ecx,10h dec edi or ecx,edi mov [esi+08h],eax mov [esi+0Ch],ecx mov [esi+10h],eax mov eax,[ebx+08h] mov ecx,[ebx+0Ch] lea edx,[eax+14h] cmp edx,ecx mov dword ptr [ebp-04h],00000005h jc L0003DBF1 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003DBF1 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+14h] cmp ecx,edx jc L0003DBF1 push ebx call [ebx+10h] mov eax,[ebx+08h] L0003DBF1: lea edx,[eax+14h] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-04h] mov esi,[ebp-08h] mov edi,[ebp+0Ch] rep movsd pop ecx mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx mov dword ptr [ebp-08h],00000003h jc L0003DC4D push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0003DC4D mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L0003DC4D push ebx call [ebx+10h] mov eax,[ebx+08h] L0003DC4D: lea edx,[eax+0Ch] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp-08h] mov esi,[ebp+08h] mov edi,[ebp+0Ch] rep movsd pop ecx pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L0003DC70: push ebp mov ebp,esp sub esp,000000CCh push ebx push esi mov esi,[ebp+08h] mov edx,[esi+00000178h] test edx,edx mov ebx,[esi+00000144h] push edi mov dword ptr [ebp-04h],00000000h jz L0003E1D1 xor eax,eax mov ecx,0000002Bh lea edi,[ebp-000000CCh] rep stosd push edx mov [ebp-000000CCh],ebx mov dword ptr [ebp-24h],00000002h call [L000B6F40] mov edi,eax mov eax,[esi+00000178h] push eax call [L000B7088] test ah,20h jz L0003DCDD cmp [ebx+28h],edi jz L0003DCDD shr edi,03h mov ebx,edi jmp L0003DCE3 L0003DCDD: mov ebx,[ebx+28h] shr ebx,03h L0003DCE3: mov eax,[L000B70B0] test eax,eax jz L0003E07C push esi call [L000B6F54] fld dword ptr [ebp+14h] mov edi,[esi+00000178h] fmul dword ptr [L000B2474] mov ecx,[edi+18h] mov [ebp-0Ch],eax mov [ebp-08h],ecx call SUB_L000AF4EC mov ebx,[ebp+0Ch] mov ecx,[ebx] mov edx,eax mov eax,00000080h sub eax,edx shr eax,08h test ecx,ecx mov [ebp-20h],eax jnz L0003DF4C mov ecx,[ebx+04h] test ecx,ecx jnz L0003DF4C mov ecx,[ebx+08h] xor edx,edx mov dx,[edi+000000A8h] mov [ebp+0Ch],ecx cmp ecx,edx jnz L0003DF4C mov edx,[ebx+0Ch] xor ecx,ecx mov cx,[edi+000000AAh] cmp edx,ecx jnz L0003DF4C mov ecx,[L000B7078] test ecx,ecx mov ecx,[ebp+10h] jz L0003DDEA test dword ptr [ebp-08h],00000400h jz L0003DDEA mov edi,ecx and edi,00000002h jz L0003DD88 test cl,04h jnz L0003DDF3 L0003DD88: test edi,edi jz L0003DD91 test cl,04h jz L0003DDC5 L0003DD91: test cl,04h jz L0003E1BF test edi,edi jnz L0003E1BF mov eax,[ebp+18h] mov ecx,[ebp+14h] push eax mov eax,[ebp+0Ch] push ecx push 0000000Ch push eax push edi push edx push edi push esi call SUB_L00035470 mov eax,[ebp-04h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L0003DDC5: mov ecx,[ebp+18h] mov eax,[ebp+14h] push ecx mov ecx,[ebp+0Ch] push eax push 0000000Ah push ecx push 00000000h push edx push 00000000h push esi call SUB_L00035470 mov eax,[ebp-04h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L0003DDEA: test cl,04h jz L0003DE7E L0003DDF3: mov edx,[esi+000000D8h] mov eax,[ebp+18h] mov edi,[esi+00000148h] and edx,00FFFFFFh shl eax,18h or edx,eax mov [esi+000000D8h],edx mov eax,[edi+08h] mov edx,[edi+0Ch] add esi,000000D0h lea ecx,[eax+0Ch] cmp ecx,edx mov dword ptr [ebp+10h],00000003h mov [ebp+18h],esi jc L0003DE61 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003DE61 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L0003DE61 push edi call [edi+10h] mov eax,[edi+08h] L0003DE61: lea edx,[eax+0Ch] mov [edi+08h],edx mov [ebp+14h],eax cld push ecx mov ecx,[ebp+10h] mov esi,[ebp+18h] mov edi,[ebp+14h] rep movsd pop ecx mov esi,[ebp+08h] mov eax,[ebp-20h] L0003DE7E: mov ecx,[esi+000000D8h] mov edi,[esi+00000148h] and ecx,FF000000h or ecx,eax mov [esi+000000D8h],ecx mov eax,[edi+08h] mov ecx,[edi+0Ch] add esi,000000D0h lea edx,[eax+0Ch] cmp edx,ecx mov dword ptr [ebp+10h],00000003h mov [ebp+18h],esi jc L0003DEE6 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003DEE6 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L0003DEE6 push edi call [edi+10h] mov eax,[edi+08h] L0003DEE6: lea edx,[eax+0Ch] mov [edi+08h],edx mov [ebp+14h],eax cld push ecx mov ecx,[ebp+10h] mov esi,[ebp+18h] mov edi,[ebp+14h] rep movsd pop ecx mov eax,ebx mov ecx,[eax] mov edx,[eax+04h] mov [ebp-1Ch],ecx mov ecx,[eax+08h] mov [ebp-18h],edx mov edx,[eax+0Ch] mov eax,[ebx+08h] mov [ebp-14h],ecx mov ecx,[ebx+0Ch] mov [ebp-10h],edx add eax,00000003h add ecx,0000000Fh lea edx,[ebp-000000CCh] push edx mov edx,[ebp+08h] mov [ebp-14h],eax lea eax,[ebp-1Ch] mov [ebp-10h],ecx mov ecx,[ebp-0Ch] push eax push ecx push edx call SUB_L000350F0 mov eax,[ebp-04h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L0003DF4C: mov ecx,[ebp-08h] test ch,04h jz L0003DF7C mov cl,[ebp+10h] test cl,02h mov eax,00000008h jz L0003DF66 mov eax,0000000Ah L0003DF66: test cl,04h jz L0003DF6E or eax,00000004h L0003DF6E: mov ecx,[ebp+18h] mov edx,[ebp+14h] push ecx push edx push eax jmp L0003E05B L0003DF7C: cmp [esi+000000D8h],eax jnz L0003E053 mov ecx,[ebp-0Ch] lea eax,[ebp-000000CCh] push eax push ebx push ecx push esi call SUB_L000350F0 movsx edi,[ebp-000000B0h] mov eax,[ebp-000000A8h] and eax,0000FFFFh add eax,edi lea edx,[00000000h+edi*4] mov edi,[ebp-000000A6h] push 00000000h shl eax,02h mov [ebp+08h],edx movsx edx,[ebp-000000AEh] mov [ebp+10h],eax mov eax,[ebp+14h] push eax mov eax,[ebx] push 00000003h and edi,0000FFFFh mov ecx,edx add edi,edx mov edx,[ebx+08h] push edx shl ecx,04h push eax push ecx mov [ebp+18h],ecx mov ecx,[ebx+04h] push ecx push esi shl edi,04h call SUB_L00035470 mov edx,[ebp+14h] mov eax,[ebx+08h] mov ecx,[ebx] push 00000000h push edx mov edx,[ebx+0Ch] push 00000003h push eax push ecx push edx push edi push esi call SUB_L00035470 mov eax,[ebp+14h] mov ecx,[ebp+08h] mov edx,[ebx] push 00000000h push eax mov eax,[ebp+18h] push 00000003h push ecx push edx push edi push eax push esi call SUB_L00035470 mov ecx,[ebp+14h] mov edx,[ebx+08h] mov eax,[ebp+10h] push 00000000h push ecx mov ecx,[ebp+18h] push 00000003h push edx push eax push edi push ecx push esi call SUB_L00035470 mov eax,[ebp-04h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L0003E053: mov edx,[ebp+14h] push 00000000h push edx push 00000002h L0003E05B: mov eax,[ebx+08h] mov ecx,[ebx+0Ch] mov edx,[ebx+04h] push eax mov eax,[ebx] push eax push ecx push edx push esi call SUB_L00035470 mov eax,[ebp-04h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L0003E07C: mov eax,[esi+00000178h] push eax mov dword ptr [ebp-24h],00000002h call [L000B70C4] fld dword ptr [ebp+14h] mov ecx,[esi+00000178h] fmul dword ptr [L000B2474] mov [ebp-000000B4h],eax mov edx,[ecx+0000009Ch] mov eax,[edx+3Ch] mov [ebp-000000B8h],eax mov eax,[ebp+0Ch] mov cx,[eax] mov di,[eax+08h] mov dx,[eax+04h] sub di,cx mov [ebp-000000B0h],cx mov cx,[eax+0Ch] mov [ebp-000000A8h],di sub cx,dx mov edi,00000001h mov [ebp-000000AEh],dx mov [ebp-000000A6h],cx mov [ebp-000000C8h],di call SUB_L000AF4EC mov ecx,00000080h sub ecx,eax mov eax,[L000B70A8] test eax,eax jz L0003E164 cmp ebx,00000002h jz L0003E164 mov edx,[ebp+10h] shr ecx,08h mov eax,edx and eax,00000002h mov [ebp-44h],ecx mov byte ptr [ebp-000000C5h],07h jz L0003E12A test dl,04h jz L0003E134 L0003E12A: mov ebx,[L000B7078] test ebx,ebx jnz L0003E139 L0003E134: mov [ebp-24h],edi jmp L0003E175 L0003E139: test dl,04h jz L0003E150 test eax,eax jnz L0003E150 mov edx,[ebp+18h] shl edx,18h mov [ebp-44h],edx mov [ebp-24h],eax jmp L0003E175 L0003E150: mov eax,[ebp+18h] shl eax,18h or ecx,eax mov [ebp-44h],ecx mov dword ptr [ebp-24h],00000002h jmp L0003E175 L0003E164: shr ecx,10h dec bl or bl,04h mov [ebp-44h],ecx mov [ebp-000000C5h],bl L0003E175: mov edi,[esi+00000148h] push 00000001h push edi mov byte ptr [ebp-000000C6h],F0h call [edi+14h] xor ecx,ecx push eax push esi mov [edi+0Ch],ecx mov [edi+08h],ecx mov [edi+04h],ecx call [L000B6F34] lea ecx,[ebp-000000CCh] push ecx call SUB_L0002AF80 cmp eax,FFFFFFFFh jnz L0003E1C2 mov dword ptr [ebp-04h],80004005h mov eax,[ebp-04h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ L0003E1BF: mov eax,[ebp+14h] L0003E1C2: mov edx,[esi+00000178h] mov ecx,[edx+0000009Ch] mov [ecx+08h],eax L0003E1D1: mov eax,[ebp-04h] pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 SUB_L0003E1E0: sub esp,000000ACh push ebx push ebp mov ebp,[esp+000000B8h] mov edx,[ebp+00000174h] mov ebx,[ebp+00000144h] xor eax,eax test edx,edx jz L0003E3F3 push esi push edi mov ecx,0000002Bh lea edi,[esp+10h] rep stosd mov eax,[edx+1Ch] dec eax cmp eax,00000003h ja L0003E2EF jmp [CASE_PROCTABLE_0003E400+eax*4] CASE_0003E400_PROC0000: mov eax,[esp+000000C8h] mov esi,eax shr esi,03h and esi,001F0000h mov ecx,eax and ecx,0000FC00h or esi,ecx shr esi,02h and eax,000000F8h or esi,eax shr esi,03h jmp L0003E2F6 CASE_0003E400_PROC0001: mov eax,[esp+000000C8h] mov esi,eax shr esi,07h and esi,01000000h mov ecx,eax and ecx,00F80000h or esi,ecx shr esi,03h mov ecx,eax and ecx,0000F800h or esi,ecx shr esi,03h and eax,000000F8h or esi,eax shr esi,03h jmp L0003E2F6 CASE_0003E400_PROC0002: mov eax,[esp+000000C8h] mov esi,eax shr esi,03h and esi,001F0000h mov ecx,eax and ecx,0000F800h or esi,ecx shr esi,03h and eax,000000F8h or esi,eax shr esi,03h jmp L0003E2F6 CASE_0003E400_PROC0003: mov eax,[esp+000000C8h] mov esi,eax shr esi,04h and esi,0F000000h mov ecx,eax and ecx,00F00000h or esi,ecx shr esi,04h mov ecx,eax and ecx,0000F000h or esi,ecx shr esi,04h and eax,000000F0h or esi,eax shr esi,04h jmp L0003E2F6 L0003E2EF: mov esi,[esp+000000C8h] L0003E2F6: push edx mov [esp+14h],ebx call [L000B6F40] mov edx,[ebp+00000174h] push edx mov edi,eax call [L000B7088] test ah,20h jz L0003E321 cmp [ebx+28h],edi jz L0003E321 shr edi,03h mov ebx,edi jmp L0003E327 L0003E321: mov ebx,[ebx+28h] shr ebx,03h L0003E327: mov eax,[ebp+00000174h] push eax call [L000B70C4] mov ecx,[ebp+00000174h] mov [esp+28h],eax mov edx,[ecx+0000009Ch] mov eax,[edx+3Ch] mov [esp+24h],eax mov eax,[esp+000000C4h] mov cx,[eax] mov di,[eax+08h] mov dx,[eax+04h] sub di,cx mov [esp+2Ch],cx mov cx,[eax+0Ch] sub cx,dx mov [esp+00000098h],esi mov esi,[ebp+00000148h] dec bl push 00000001h or bl,04h push esi mov [esp+36h],dx mov [esp+3Ch],di mov [esp+3Eh],cx mov word ptr [esp+1Ch],0001h mov [esp+1Fh],bl mov byte ptr [esp+1Eh],F0h call [esi+14h] xor ecx,ecx push eax push ebp mov [esi+0Ch],ecx mov [esi+08h],ecx mov [esi+04h],ecx call [L000B6F34] lea edx,[esp+10h] push edx mov dword ptr [esp+000000BCh],00000002h call SUB_L0002AF80 cmp eax,FFFFFFFFh pop edi pop esi jnz L0003E3E2 pop ebp mov eax,80004005h pop ebx add esp,000000ACh retn 000Ch ;------------------------------------------------------------------------------ L0003E3E2: mov ecx,[ebp+00000174h] mov edx,[ecx+0000009Ch] mov [edx+08h],eax xor eax,eax L0003E3F3: pop ebp pop ebx add esp,000000ACh retn 000Ch ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0003E400: dd CASE_0003E400_PROC0000 dd CASE_0003E400_PROC0001 dd CASE_0003E400_PROC0002 dd CASE_0003E400_PROC0003 SUB_L0003E410: push ecx mov eax,[esp+24h] mov ecx,[eax] mov edx,[esp+0Ch] push ebx push ebp mov ebp,[eax+08h] push esi mov esi,[eax+04h] push edi mov edi,[eax+0Ch] mov eax,[esp+30h] mov ebx,[eax+04h] mov [esp+10h],ecx sub ebp,ecx mov ecx,[eax] push edx sub edi,esi mov [esp+38h],ecx call [L000B7088] test ah,20h jz L0003E487 mov eax,[esp+1Ch] push eax call [L000B6F40] dec eax cmp eax,00000017h ja CASE_0003E4E8_PROC0003 xor ecx,ecx mov cl,[eax+CASE_0003E4F8] jmp [CASE_PROCTABLE_0003E4E8+ecx*4] CASE_0003E4E8_PROC0000: mov eax,00000001h jmp L0003E491 CASE_0003E4E8_PROC0001: mov eax,00000002h jmp L0003E491 CASE_0003E4E8_PROC0002: mov eax,00000003h jmp L0003E491 CASE_0003E4E8_PROC0003: mov edx,[esp+38h] mov eax,[edx+10h] jmp L0003E48E L0003E487: mov eax,[esp+38h] mov eax,[eax+10h] L0003E48E: shr eax,03h L0003E491: imul ebx,[esp+28h] mov ecx,eax imul ecx,[esp+34h] add ecx,ebx mov ebx,[esp+2Ch] mov edx,eax imul esi,ebx imul eax,ebp imul edx,[esp+10h] add edx,esi test edi,edi mov [esp+1Ch],eax jbe L0003E4DD mov eax,[esp+24h] lea ebp,[edx+eax] mov edx,[esp+20h] lea esi,[ecx+edx] L0003E4C8: mov eax,[esp+1Ch] push eax push esi push ebp call SUB_L0003E510 add esi,[esp+28h] add ebp,ebx dec edi jnz L0003E4C8 L0003E4DD: pop edi pop esi pop ebp pop ebx pop ecx retn 0024h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0003E4E8: dd CASE_0003E4E8_PROC0000 dd CASE_0003E4E8_PROC0001 dd CASE_0003E4E8_PROC0002 dd CASE_0003E4E8_PROC0003 CASE_0003E4F8: db 00h, 00h, 03h, 00h, 03h, 03h, 03h, 00h, 03h, 03h, 03h, 03h, 03h, 03h, 03h, 01h db 03h, 03h, 03h, 03h, 03h, 03h, 03h, 02h SUB_L0003E510: push ebp mov ebp,esp push FFFFFFFFh push L000B2478 push L000AF82C mov eax,fs:[00000000h] push eax mov fs:[00000000h],esp sub esp,0000000Ch push ebx push esi push edi mov [ebp-18h],esp mov dword ptr [ebp-04h],00000000h mov ecx,[ebp+10h] mov esi,[ebp+0Ch] mov edi,[ebp+08h] mov edx,ecx mov eax,edi mov [ebp-1Ch],eax shr ecx,02h rep movsd mov ecx,edx and ecx,00000003h rep movsb jmp L0003E566 L0003E55B: mov eax,00000001h retn ;------------------------------------------------------------------------------ L0003E561: mov esp,[ebp-18h] xor eax,eax L0003E566: mov dword ptr [ebp-04h],FFFFFFFFh mov ecx,[ebp-10h] mov fs:[00000000h],ecx pop edi pop esi pop ebx mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ SUB_L0003E580: mov eax,[esp+08h] push ebx push ebp push esi push edi mov edi,[esp+14h] mov esi,[edi+00000A04h] and esi,00000040h or esi,00000130h shr esi,04h add esi,eax lea ebx,[eax+0Ch] mov eax,[edi+0000483Ch] test eax,eax jbe L0003E6B2 cmp eax,00000002h jbe L0003E63A cmp eax,00000003h jnz L0003E6B2 mov eax,[esp+1Ch] mov ecx,eax dec eax test ecx,ecx jle L0003E6B2 lea ebp,[eax+01h] L0003E5D5: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+1Ch] fcomp dword ptr [edi+000048B4h] fnstsw ax test ah,41h jz L0003E5F3 mov byte ptr [esi],FFh jmp L0003E620 L0003E5F3: fld dword ptr [esp+1Ch] fcomp dword ptr [edi+000048B8h] fnstsw ax test ah,01h jnz L0003E609 mov byte ptr [esi],00h jmp L0003E620 L0003E609: fld dword ptr [edi+000048B8h] fsub dword ptr [esp+1Ch] fmul dword ptr [edi+000048BCh] call SUB_L000AF4EC mov [esi],al L0003E620: mov eax,[edi+000005D4h] mov edx,eax shr edx,02h add esi,eax dec ebp lea ebx,[ebx+edx*4] jnz L0003E5D5 pop edi pop esi pop ebp pop ebx retn 000Ch ;------------------------------------------------------------------------------ L0003E63A: mov eax,[esp+1Ch] mov ecx,eax dec eax test ecx,ecx jle L0003E6B2 lea ebp,[eax+01h] L0003E648: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+1Ch] fcomp dword ptr [edi+000048C4h] fnstsw ax test ah,41h jz L0003E666 mov byte ptr [esi],FFh jmp L0003E69F L0003E666: fld dword ptr [esp+1Ch] fcomp dword ptr [edi+000048C8h] fnstsw ax test ah,01h jnz L0003E67C mov byte ptr [esi],00h jmp L0003E69F L0003E67C: fld dword ptr [esp+1Ch] fsub dword ptr [edi+000048C4h] fmul dword ptr [edi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+edi+000048D0h] mov [esi],dl L0003E69F: mov eax,[edi+000005D4h] mov ecx,eax shr ecx,02h add esi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0003E648 L0003E6B2: pop edi pop esi pop ebp pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 8 L0003E6C0: mov ecx,[esp+10h] sub esp,0000001Ch test ecx,ecx push ebx push ebp push esi jz L0003E9AB mov edx,[esp+30h] mov esi,[esp+2Ch] mov eax,[esi+000005D0h] mov ebp,[esi+00000148h] xor ebx,ebx mov bx,[edx] mov edx,[esp+34h] mov [esp+1Ch],eax imul ebx,eax add ebx,edx add eax,ebx test ecx,ecx mov [esp+18h],ebx mov [esp+0Ch],eax jbe L0003E9AB push edi jmp L0003E715 L0003E70D: mov ebx,[esp+1Ch] mov ecx,[esp+3Ch] L0003E715: cmp ecx,00000CCAh mov dword ptr [esp+38h],00000CCAh ja L0003E729 mov [esp+38h],ecx L0003E729: mov ecx,[esp+38h] mov eax,[ebp+08h] lea edi,[ecx+02h] imul edi,[esi+000005D4h] mov ecx,[ebp+0Ch] shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx jc L0003E779 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0003E779 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0003E779 push ebp call [ebp+10h] mov eax,[ebp+08h] L0003E779: lea edx,[eax+edi*4] lea edi,[eax+04h] mov [ebp+08h],edx mov eax,[esi+00000190h] test eax,eax mov [esp+18h],edi jnz L0003E797 mov dword ptr [ebx+0Ch],3F800000h L0003E797: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push edi call [L000B493C+ecx*4] mov ebx,eax mov eax,[esi+000048ACh] test eax,eax jz L0003E7D7 push 00000001h push edi push esi call SUB_L0003E580 L0003E7D7: mov edx,[esp+38h] lea eax,[edx+01h] xor ecx,ecx test eax,eax jbe L0003E955 mov [esp+14h],eax mov [esp+34h],eax L0003E7F0: mov eax,[esp+10h] mov edx,[esp+20h] mov ecx,eax add eax,edx mov [esp+10h],eax mov eax,[esi+00000190h] test eax,eax mov [esp+28h],ecx jnz L0003E815 mov dword ptr [ecx+0Ch],3F800000h L0003E815: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ecx push ebx call [L000B493C+edx*4] mov [esp+24h],eax mov eax,[esi+000048ACh] test eax,eax jz L0003E929 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebx test eax,eax jbe L0003E929 cmp eax,00000002h jbe L0003E8D1 cmp eax,00000003h jnz L0003E929 fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+30h] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L0003E8A4 mov byte ptr [edi],FFh jmp L0003E929 L0003E8A4: fld dword ptr [esp+30h] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L0003E8BA mov byte ptr [edi],00h jmp L0003E929 L0003E8BA: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+30h] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC jmp L0003E927 L0003E8D1: fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+30h] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L0003E8F0 mov byte ptr [edi],FFh jmp L0003E929 L0003E8F0: fld dword ptr [esp+30h] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L0003E906 mov byte ptr [edi],00h jmp L0003E929 L0003E906: fld dword ptr [esp+30h] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov al,[eax+esi+000048D0h] L0003E927: mov [edi],al L0003E929: mov eax,[esp+14h] mov ebx,[esp+24h] dec eax mov [esp+14h],eax jnz L0003E7F0 mov eax,[esp+34h] test eax,eax jz L0003E949 dec eax mov [esp+34h],eax L0003E949: mov ecx,[esp+34h] mov edx,[esp+38h] mov edi,[esp+18h] L0003E955: mov eax,[esp+28h] mov [esp+10h],eax mov eax,[esp+3Ch] sub eax,edx cmp ecx,edx mov [esp+3Ch],eax mov eax,[esi+000005D4h] jz L0003E98B sub edx,ecx imul edx,eax shr edx,02h test ecx,ecx jnz L0003E97E inc edx L0003E97E: mov ebx,[ebp+08h] neg edx shl edx,02h add ebx,edx mov [ebp+08h],ebx L0003E98B: add ecx,00000002h imul ecx,eax mov eax,[esp+3Ch] shr ecx,02h dec ecx or ecx,7F0C0000h test eax,eax mov [edi-04h],ecx ja L0003E70D pop edi L0003E9AB: pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0003E9C0: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L0003EBF2 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L0003EBF2 push ebx jmp L0003EA11 L0003EA0D: mov ecx,[esp+30h] L0003EA11: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0003EA28 mov [esp+24h],eax L0003EA28: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L0003EA85 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003EA81 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003EA85 push edi call [edi+10h] mov eax,[edi+08h] jmp L0003EA85 L0003EA81: mov ebx,[esp+28h] L0003EA85: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L0003EBA7 mov dword ptr [esp+2Ch],00000003h L0003EAAF: mov ecx,[esp+30h] test ecx,ecx jbe L0003EBA7 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0003EB93 push edi push ecx push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[ebx+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L0003EB93: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L0003EAAF L0003EBA7: cmp edx,eax mov ecx,[esi+000005D4h] jz L0003EBCF sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0003EBC2 inc eax L0003EBC2: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0003EBCF: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0003EA0D pop ebx L0003EBF2: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 SUB_L0003EC00: push ebp mov ebp,esp sub esp,0000000Ch mov ecx,[ebp+08h] push ebx mov ebx,[ecx+00000A04h] push esi mov esi,[ebp+0Ch] push edi mov edi,[ebp+10h] mov eax,[edi] mov [esi],eax mov edx,[edi+04h] add edi,00000004h mov [ebp-0Ch],esi add esi,00000004h mov [esi],edx mov eax,[edi+04h] add edi,00000004h add esi,00000004h mov [esi],eax mov eax,[ebp+14h] add esi,00000004h add edi,00000004h add eax,0000000Ch test bl,04h mov dword ptr [ebp-04h],00000000h mov [ebp-08h],ebx mov [ebp+0Ch],esi mov [ebp+10h],edi mov [ebp+14h],eax jz L0003EC6F mov edx,[edi] mov [esi],edx add esi,00000004h add edi,00000004h add eax,00000004h mov [ebp+0Ch],esi mov [ebp+10h],edi mov [ebp+14h],eax L0003EC6F: test bl,40h jz L0003ED84 mov edx,[ecx+00000A00h] test dl,80h jz L0003ED6B cmp dword ptr [ecx+000001F4h],00000000h jz L0003ED6B cmp dword ptr [L000B70A4],00000000h jz L0003ED6B cmp dword ptr [ecx+000005E0h],00000001h jnz L0003ECB7 cmp dword ptr [ecx+00000A0Ch],00000000h jz L0003ED6B L0003ECB7: mov eax,[eax+04h] xor ebx,ebx mov bl,ah xor ecx,ecx mov [ebp-04h],eax mov cl,[ebp-02h] and eax,000000FFh mov edx,ebx and edx,eax and edx,ecx and edx,000000FFh cmp ecx,edx jnz L0003ECF9 cmp ebx,edx jnz L0003ECF9 cmp eax,edx jnz L0003ECF9 mov dword ptr [L000B39E0],FF000000h mov dword ptr [L000B39E4],FFFFFFFFh jmp L0003ED06 L0003ECF9: or eax,FFFFFFFFh mov [L000B39E0],eax mov [L000B39E4],eax L0003ED06: mov eax,[ebp+0Ch] mov ebx,[ebp+10h] mov ecx,[ebp+14h] movq mm2,[ecx] ; MMX movq mm3,mm2 ; MMX movq mm4,[ebx] ; MMX pand mm4,[L000B39C0] ; MMX psrlq mm3,20h ; MMX pand mm3,[L000B39A0] ; MMX pand mm3,[L000B39E0] ; MMX paddusb mm2,mm3 ; MMX pand mm2,[L000B39D0] ; MMX por mm2,mm4 ; MMX movq [eax],mm2 ; MMX emms ; MMX mov ecx,[ebp+14h] mov eax,[esi+04h] mov ebx,[ebp-08h] add esi,00000008h add ecx,00000008h add edi,00000008h or eax,edx mov [esi-04h],eax mov [ebp+14h],ecx mov eax,ecx mov ecx,[ebp+08h] mov dword ptr [ebp-04h],00000001h jmp L0003ED93 L0003ED6B: test dl,40h jz L0003ED79 mov edx,[eax] mov [esi],edx add esi,00000004h jmp L0003ED8D L0003ED79: mov dword ptr [esi],FFFFFFFFh add esi,00000004h jmp L0003ED93 L0003ED84: test byte ptr [ecx+00000A00h],40h jz L0003ED93 L0003ED8D: add eax,00000004h add edi,00000004h L0003ED93: test bl,80h jz L0003EDC8 mov edx,[ebp-04h] test edx,edx jnz L0003EDC8 test byte ptr [ecx+00000A00h],80h jnz L0003EDB3 mov dword ptr [esi],00000000h add esi,00000004h jmp L0003EDDB L0003EDB3: mov ebx,[edi] mov edx,ebx xor edx,[eax] and edx,00FFFFFFh xor edx,ebx mov [esi],edx add esi,00000004h jmp L0003EDD8 L0003EDC8: test byte ptr [ecx+00000A00h],80h jz L0003EDDB mov eax,[ebp-04h] test eax,eax jnz L0003EDDB L0003EDD8: add edi,00000004h L0003EDDB: mov eax,[ecx+000048ACh] test eax,eax jz L0003EEC5 mov ebx,[ecx+00000A04h] mov edx,[ebp-0Ch] mov eax,[ecx+0000483Ch] and ebx,00000040h or ebx,00000130h shr ebx,04h add ebx,edx test eax,eax jbe L0003EEC5 cmp eax,00000002h jbe L0003EE6A cmp eax,00000003h jnz L0003EEC5 fld dword ptr [L000B2380] fdiv dword ptr [edx+0Ch] fst dword ptr [ebp+14h] fcomp dword ptr [ecx+000048B4h] fnstsw ax test ah,41h jz L0003EE3D mov byte ptr [ebx],FFh jmp L0003EEC5 L0003EE3D: fld dword ptr [ebp+14h] fcomp dword ptr [ecx+000048B8h] fnstsw ax test ah,01h jnz L0003EE52 mov byte ptr [ebx],00h jmp L0003EEC5 L0003EE52: fld dword ptr [ecx+000048B8h] fsub dword ptr [ebp+14h] fmul dword ptr [ecx+000048BCh] call SUB_L000AF4EC mov [ebx],al jmp L0003EEC2 L0003EE6A: fld dword ptr [L000B2380] fdiv dword ptr [edx+0Ch] fst dword ptr [ebp+14h] fcomp dword ptr [ecx+000048C4h] fnstsw ax test ah,41h jz L0003EE88 mov byte ptr [ebx],FFh jmp L0003EEC5 L0003EE88: fld dword ptr [ebp+14h] fcomp dword ptr [ecx+000048C8h] fnstsw ax test ah,01h jnz L0003EE9D mov byte ptr [ebx],00h jmp L0003EEC5 L0003EE9D: fld dword ptr [ebp+14h] fsub dword ptr [ecx+000048C4h] fmul dword ptr [ecx+000048CCh] call SUB_L000AF4EC mov ecx,[ebp+08h] and eax,000000FFh mov dl,[eax+ecx+000048D0h] mov [ebx],dl L0003EEC2: mov ecx,[ebp+08h] L0003EEC5: mov eax,[ecx+00000A0Ch] dec eax cmp eax,00000004h ja L0003EF6C jmp [CASE_PROCTABLE_0003EF78+eax*4] CASE_0003EF78_PROC0000: mov eax,[ecx+00000988h] mov ecx,[edi+eax*4] lea edi,[edi+eax*4] mov [esi],ecx mov edx,[edi+04h] pop edi mov [esi+04h],edx pop esi pop ebx mov esp,ebp pop ebp retn 0010h ;------------------------------------------------------------------------------ CASE_0003EF78_PROC0001: mov eax,[ecx+00000988h] mov edx,[edi+eax*4] lea edi,[edi+eax*4] mov [esi],edx mov eax,[edi+04h] add edi,00000004h mov [esi+04h],eax mov ecx,[ecx+0000098Ch] mov edx,[edi+ecx*4+04h] add esi,00000004h lea eax,[edi+ecx*4+04h] add esi,00000004h mov [esi],edx mov eax,[eax+04h] pop edi mov [esi+04h],eax pop esi pop ebx mov esp,ebp pop ebp retn 0010h ;------------------------------------------------------------------------------ CASE_0003EF78_PROC0003: mov dword ptr [esi],00000000h add esi,00000004h mov dword ptr [esi],00000000h jmp L0003EF5C CASE_0003EF78_PROC0004: mov ecx,[ecx+00000988h] mov edx,[edi+ecx*4] lea edi,[edi+ecx*4] mov [esi],edx mov eax,[edi+04h] add esi,00000004h mov [esi],eax L0003EF5C: add esi,00000004h CASE_0003EF78_PROC0002: mov dword ptr [esi],00000000h mov dword ptr [esi+04h],00000000h L0003EF6C: pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0010h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0003EF78: dd CASE_0003EF78_PROC0000 dd CASE_0003EF78_PROC0001 dd CASE_0003EF78_PROC0002 dd CASE_0003EF78_PROC0003 dd CASE_0003EF78_PROC0004 Align 8 L0003EF90: sub esp,00000010h push ebx mov ebx,[esp+24h] test ebx,ebx jz L0003F1D5 push ebp push esi mov esi,[esp+20h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] xor eax,eax mov ax,[ecx] mov ecx,[esp+2Ch] imul eax,edi add eax,ecx mov [esp+14h],eax add eax,edi test ebx,ebx mov [esp+24h],eax jbe L0003F1C9 jmp L0003EFEA L0003EFE6: mov ebx,[esp+30h] L0003EFEA: lea eax,[ebx+ebx+01h] cmp eax,00000666h jbe L0003F000 mov edi,00000666h mov [esp+28h],edi jmp L0003F006 L0003F000: mov [esp+28h],eax mov edi,eax L0003F006: mov ebx,[esi+000005D4h] mov eax,[ebp+08h] imul ebx,edi mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx jc L0003F053 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0003F053 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003F053 push ebp call [ebp+10h] mov eax,[ebp+08h] L0003F053: lea edx,[eax+ebx*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp edi,00000003h mov [esp+1Ch],eax mov ebx,eax mov [esp+2Ch],edx jc L0003F180 mov dword ptr [esp+10h],00000003h L0003F079: mov eax,[esp+30h] test eax,eax jbe L0003F180 mov ecx,[esp+18h] mov edi,eax dec edi mov [esp+30h],edi mov edi,[esp+24h] mov eax,edi add eax,ecx mov ecx,[esp+14h] fld dword ptr [ecx+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0003F16E push edi push ecx push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+10h] shr edx,02h lea ebx,[ebx+edx*4] mov edx,[esp+2Ch] mov eax,00000003h add edx,eax add ecx,eax mov [esp+2Ch],edx mov [esp+10h],ecx L0003F16E: mov ecx,[esp+28h] mov eax,[esp+10h] cmp eax,ecx mov edi,ecx jbe L0003F079 L0003F180: cmp edx,edi mov eax,[esi+000005D4h] jz L0003F1A8 sub edi,edx mov ecx,eax shr ecx,02h imul edi,ecx shl edi,1 test edx,edx jnz L0003F19B inc edi L0003F19B: mov ecx,[ebp+08h] neg edi shl edi,02h add ecx,edi mov [ebp+08h],ecx L0003F1A8: imul eax,edx mov edx,[esp+1Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0003EFE6 L0003F1C9: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp L0003F1D5: pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0003F1E0: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L0003F412 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L0003F412 push ebx jmp L0003F231 L0003F22D: mov ecx,[esp+30h] L0003F231: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0003F248 mov [esp+24h],eax L0003F248: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L0003F2A5 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003F2A1 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003F2A5 push edi call [edi+10h] mov eax,[edi+08h] jmp L0003F2A5 L0003F2A1: mov ebx,[esp+28h] L0003F2A5: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L0003F3C7 mov dword ptr [esp+2Ch],00000003h L0003F2CF: mov ecx,[esp+30h] test ecx,ecx jbe L0003F3C7 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0003F3B3 push edi push ecx push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[ebx+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L0003F3B3: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L0003F2CF L0003F3C7: cmp edx,eax mov ecx,[esi+000005D4h] jz L0003F3EF sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0003F3E2 inc eax L0003F3E2: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0003F3EF: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0003F22D pop ebx L0003F412: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0003F420: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L0003F652 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L0003F652 push ebx jmp L0003F471 L0003F46D: mov ecx,[esp+30h] L0003F471: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0003F488 mov [esp+24h],eax L0003F488: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L0003F4E5 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003F4E1 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003F4E5 push edi call [edi+10h] mov eax,[edi+08h] jmp L0003F4E5 L0003F4E1: mov ebx,[esp+28h] L0003F4E5: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L0003F607 mov dword ptr [esp+2Ch],00000003h L0003F50F: mov ecx,[esp+30h] test ecx,ecx jbe L0003F607 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0003F5F3 push edi push ecx push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[ebx+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L0003F5F3: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L0003F50F L0003F607: cmp edx,eax mov ecx,[esi+000005D4h] jz L0003F62F sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0003F622 inc eax L0003F622: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0003F62F: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0003F46D pop ebx L0003F652: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0003F660: sub esp,00000010h push ebx mov ebx,[esp+24h] test ebx,ebx jz L0003F8A5 push ebp push esi mov esi,[esp+20h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] xor eax,eax mov ax,[ecx] mov ecx,[esp+2Ch] imul eax,edi add eax,ecx mov [esp+14h],eax add eax,edi test ebx,ebx mov [esp+24h],eax jbe L0003F899 jmp L0003F6BA L0003F6B6: mov ebx,[esp+30h] L0003F6BA: lea eax,[ebx+ebx+01h] cmp eax,00000666h jbe L0003F6D0 mov edi,00000666h mov [esp+28h],edi jmp L0003F6D6 L0003F6D0: mov [esp+28h],eax mov edi,eax L0003F6D6: mov ebx,[esi+000005D4h] mov eax,[ebp+08h] imul ebx,edi mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx jc L0003F723 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0003F723 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003F723 push ebp call [ebp+10h] mov eax,[ebp+08h] L0003F723: lea edx,[eax+ebx*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp edi,00000003h mov [esp+1Ch],eax mov ebx,eax mov [esp+2Ch],edx jc L0003F850 mov dword ptr [esp+10h],00000003h L0003F749: mov eax,[esp+30h] test eax,eax jbe L0003F850 mov ecx,[esp+18h] mov edi,eax dec edi mov [esp+30h],edi mov edi,[esp+24h] mov eax,edi add eax,ecx mov ecx,[esp+14h] fld dword ptr [ecx+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0003F83E push edi push ecx push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+10h] shr edx,02h lea ebx,[ebx+edx*4] mov edx,[esp+2Ch] mov eax,00000003h add edx,eax add ecx,eax mov [esp+2Ch],edx mov [esp+10h],ecx L0003F83E: mov ecx,[esp+28h] mov eax,[esp+10h] cmp eax,ecx mov edi,ecx jbe L0003F749 L0003F850: cmp edx,edi mov eax,[esi+000005D4h] jz L0003F878 sub edi,edx mov ecx,eax shr ecx,02h imul edi,ecx shl edi,1 test edx,edx jnz L0003F86B inc edi L0003F86B: mov ecx,[ebp+08h] neg edi shl edi,02h add ecx,edi mov [ebp+08h],ecx L0003F878: imul eax,edx mov edx,[esp+1Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0003F6B6 L0003F899: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp L0003F8A5: pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0003F8B0: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L0003FAE2 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L0003FAE2 push ebx jmp L0003F901 L0003F8FD: mov ecx,[esp+30h] L0003F901: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0003F918 mov [esp+24h],eax L0003F918: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L0003F975 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003F971 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003F975 push edi call [edi+10h] mov eax,[edi+08h] jmp L0003F975 L0003F971: mov ebx,[esp+28h] L0003F975: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L0003FA97 mov dword ptr [esp+2Ch],00000003h L0003F99F: mov ecx,[esp+30h] test ecx,ecx jbe L0003FA97 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0003FA83 push edi push ecx push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[ebx+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L0003FA83: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L0003F99F L0003FA97: cmp edx,eax mov ecx,[esi+000005D4h] jz L0003FABF sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0003FAB2 inc eax L0003FAB2: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0003FABF: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0003F8FD pop ebx L0003FAE2: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0003FAF0: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L0003FCF3 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+28h],ebp add ebp,eax test ecx,ecx jbe L0003FCF3 push ebx jmp L0003FB41 L0003FB3D: mov ecx,[esp+30h] L0003FB41: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0003FB58 mov [esp+24h],eax L0003FB58: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L0003FBB5 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003FBB1 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003FBB5 push edi call [edi+10h] mov eax,[edi+08h] jmp L0003FBB5 L0003FBB1: mov ebx,[esp+28h] L0003FBB5: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L0003FCA8 mov dword ptr [esp+10h],00000003h L0003FBDF: mov ecx,[esp+30h] test ecx,ecx jbe L0003FCA8 mov eax,[esp+18h] mov edi,ebp push edi add ebp,eax mov eax,[esp+30h] push eax push ebx dec ecx push esi mov [esp+40h],ecx call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] push edi shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edi,[esp+28h] mov eax,[esp+10h] shr ecx,02h add edi,00000003h add eax,00000003h lea ebx,[ebx+ecx*4] mov ecx,[esp+24h] mov [esp+28h],edi mov [esp+10h],eax cmp eax,ecx mov edx,edi mov edi,[esp+14h] mov eax,ecx jbe L0003FBDF L0003FCA8: cmp edx,eax mov ecx,[esi+000005D4h] jz L0003FCD0 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0003FCC3 inc eax L0003FCC3: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0003FCD0: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0003FB3D pop ebx L0003FCF3: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0003FD00: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L0003FF1A push ebx push ebp push esi mov esi,[esp+20h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+24h],ebx mov [esp+20h],edi call SUB_L000ABBE0 mov eax,[esp+28h] mov ecx,[esp+2Ch] xor ebp,ebp mov bp,[eax] mov eax,[esp+30h] imul ebp,ebx add ebp,ecx mov [esp+2Ch],ebp add ebp,ebx test eax,eax jbe L0003FF0D L0003FD58: mov ecx,[esp+30h] lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0003FD73 mov [esp+24h],eax L0003FD73: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+28h],ebx jc L0003FDD0 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003FDCC mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003FDD0 push edi call [edi+10h] mov eax,[edi+08h] jmp L0003FDD0 L0003FDCC: mov ebx,[esp+28h] L0003FDD0: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L0003FEC3 mov dword ptr [esp+10h],00000003h L0003FDFA: mov ecx,[esp+30h] test ecx,ecx jbe L0003FEC3 mov eax,[esp+18h] mov edi,ebp push edi add ebp,eax mov eax,[esp+30h] push eax push ebx dec ecx push esi mov [esp+40h],ecx call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] push edi shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edi,[esp+28h] mov eax,[esp+10h] shr ecx,02h add edi,00000003h add eax,00000003h lea ebx,[ebx+ecx*4] mov ecx,[esp+24h] mov [esp+28h],edi mov [esp+10h],eax cmp eax,ecx mov edx,edi mov edi,[esp+14h] mov eax,ecx jbe L0003FDFA L0003FEC3: cmp edx,eax mov ecx,[esi+000005D4h] jz L0003FEEB sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0003FEDE inc eax L0003FEDE: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0003FEEB: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0003FD58 L0003FF0D: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0003FF1A: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ L0003FF20: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L00040123 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+28h],ebp add ebp,eax test ecx,ecx jbe L00040123 push ebx jmp L0003FF71 L0003FF6D: mov ecx,[esp+30h] L0003FF71: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0003FF88 mov [esp+24h],eax L0003FF88: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L0003FFE5 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0003FFE1 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0003FFE5 push edi call [edi+10h] mov eax,[edi+08h] jmp L0003FFE5 L0003FFE1: mov ebx,[esp+28h] L0003FFE5: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L000400D8 mov dword ptr [esp+10h],00000003h L0004000F: mov ecx,[esp+30h] test ecx,ecx jbe L000400D8 mov eax,[esp+18h] mov edi,ebp push edi add ebp,eax mov eax,[esp+30h] push eax push ebx dec ecx push esi mov [esp+40h],ecx call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] push edi shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edi,[esp+28h] mov eax,[esp+10h] shr ecx,02h add edi,00000003h add eax,00000003h lea ebx,[ebx+ecx*4] mov ecx,[esp+24h] mov [esp+28h],edi mov [esp+10h],eax cmp eax,ecx mov edx,edi mov edi,[esp+14h] mov eax,ecx jbe L0004000F L000400D8: cmp edx,eax mov ecx,[esi+000005D4h] jz L00040100 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L000400F3 inc eax L000400F3: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L00040100: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0003FF6D pop ebx L00040123: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00040130: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L0004035C mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L0004035C push ebx jmp L00040181 L0004017D: mov ecx,[esp+30h] L00040181: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L00040198 mov [esp+24h],eax L00040198: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L000401F5 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000401F1 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000401F5 push edi call [edi+10h] mov eax,[edi+08h] jmp L000401F5 L000401F1: mov ebx,[esp+28h] L000401F5: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L00040311 mov dword ptr [esp+2Ch],00000003h L0004021F: mov ecx,[esp+30h] test ecx,ecx jbe L00040311 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000402FD push ecx push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[edi+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L000402FD: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L0004021F L00040311: cmp edx,eax mov ecx,[esi+000005D4h] jz L00040339 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0004032C inc eax L0004032C: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L00040339: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004017D pop ebx L0004035C: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L00040370: push ebp mov ebp,esp sub esp,00000010h mov edx,[ebp+08h] push ebx mov ebx,[edx+00000A04h] push esi mov esi,[ebp+0Ch] push edi mov edi,[ebp+10h] mov ecx,[edi] mov [esi],ecx mov ecx,[edi+04h] add edi,00000004h mov [ebp-10h],esi add esi,00000004h mov [esi],ecx mov ecx,[edi+04h] add edi,00000004h add esi,00000004h mov [esi],ecx add esi,00000004h add edi,00000004h xor eax,eax test bl,04h mov [ebp-08h],ebx mov [ebp+0Ch],esi mov [ebp+10h],edi jz L000403CB mov ecx,[edi] mov [esi],ecx add esi,00000004h add edi,00000004h mov [ebp+0Ch],esi mov [ebp+10h],edi L000403CB: test bl,40h jz L00040513 mov ecx,[edx+00000A00h] test cl,80h jz L000404FA cmp dword ptr [edx+000001F4h],00000000h jz L000404FA cmp dword ptr [L000B70A4],00000000h jz L000404FA cmp dword ptr [edx+000005E0h],00000001h jnz L00040413 cmp dword ptr [edx+00000A0Ch],00000000h jz L000404FA L00040413: test cl,40h jz L000404A6 mov eax,[edi+04h] xor ecx,ecx mov cl,ah mov [ebp-04h],eax xor ebx,ebx mov bl,[ebp-02h] and eax,000000FFh mov [ebp-04h],eax mov [ebp-0Ch],ecx and ecx,eax and ecx,ebx and ecx,000000FFh cmp ebx,ecx jnz L00040464 cmp [ebp-0Ch],ecx jnz L00040464 cmp [ebp-04h],ecx jnz L00040464 mov dword ptr [L000B39E0],FF000000h mov dword ptr [L000B39E4],FFFFFFFFh jmp L00040471 L00040464: or eax,FFFFFFFFh mov [L000B39E0],eax mov [L000B39E4],eax L00040471: mov eax,[ebp+0Ch] mov ebx,[ebp+10h] movq mm2,[ebx] ; MMX movq mm3,mm2 ; MMX psrlq mm3,20h ; MMX pand mm3,[L000B39A0] ; MMX pand mm3,[L000B39E0] ; MMX paddusb mm2,mm3 ; MMX pand mm2,[L000B39B0] ; MMX movq [eax],mm2 ; MMX emms ; MMX add edi,00000008h add esi,00000008h jmp L000404E8 L000404A6: mov ebx,[edi] mov ecx,ebx shr ecx,10h mov eax,ebx shr eax,08h and ecx,eax mov eax,[edx+0000097Ch] and ecx,ebx and ecx,000000FFh test eax,eax jz L000404CE mov dword ptr [esi],FFFFFFFFh jmp L000404D6 L000404CE: and ebx,00FFFFFFh mov [esi],ebx L000404D6: mov eax,[edi] add esi,00000004h and eax,FF000000h mov [esi],eax add esi,00000004h add edi,00000004h L000404E8: mov eax,[esi-04h] mov ebx,[ebp-08h] or eax,ecx mov [esi-04h],eax mov eax,00000001h jmp L0004051F L000404FA: test cl,40h jz L00040508 mov ecx,[edi] mov [esi],ecx add esi,00000004h jmp L0004051C L00040508: mov dword ptr [esi],FFFFFFFFh add esi,00000004h jmp L0004051F L00040513: test byte ptr [edx+00000A00h],40h jz L0004051F L0004051C: add edi,00000004h L0004051F: test bl,80h jz L00040545 test eax,eax jnz L00040545 test byte ptr [edx+00000A00h],80h jnz L0004053C mov dword ptr [esi],00000000h add esi,00000004h jmp L00040555 L0004053C: mov eax,[edi] mov [esi],eax add esi,00000004h jmp L00040552 L00040545: test byte ptr [edx+00000A00h],80h jz L00040555 test eax,eax jnz L00040555 L00040552: add edi,00000004h L00040555: mov eax,[edx+000048ACh] test eax,eax jz L0004063F mov ebx,[edx+00000A04h] mov eax,[ebp-10h] mov ecx,[edx+0000483Ch] and ebx,00000040h or ebx,00000130h shr ebx,04h add ebx,eax test ecx,ecx jbe L0004063F cmp ecx,00000002h jbe L000405E4 cmp ecx,00000003h jnz L0004063F fld dword ptr [L000B2380] fdiv dword ptr [eax+0Ch] fst dword ptr [ebp+10h] fcomp dword ptr [edx+000048B4h] fnstsw ax test ah,41h jz L000405B7 mov byte ptr [ebx],FFh jmp L0004063F L000405B7: fld dword ptr [ebp+10h] fcomp dword ptr [edx+000048B8h] fnstsw ax test ah,01h jnz L000405CC mov byte ptr [ebx],00h jmp L0004063F L000405CC: fld dword ptr [edx+000048B8h] fsub dword ptr [ebp+10h] fmul dword ptr [edx+000048BCh] call SUB_L000AF4EC mov [ebx],al jmp L0004063C L000405E4: fld dword ptr [L000B2380] fdiv dword ptr [eax+0Ch] fst dword ptr [ebp+10h] fcomp dword ptr [edx+000048C4h] fnstsw ax test ah,41h jz L00040602 mov byte ptr [ebx],FFh jmp L0004063F L00040602: fld dword ptr [ebp+10h] fcomp dword ptr [edx+000048C8h] fnstsw ax test ah,01h jnz L00040617 mov byte ptr [ebx],00h jmp L0004063F L00040617: fld dword ptr [ebp+10h] fsub dword ptr [edx+000048C4h] fmul dword ptr [edx+000048CCh] call SUB_L000AF4EC mov ecx,[ebp+08h] and eax,000000FFh mov dl,[eax+ecx+000048D0h] mov [ebx],dl L0004063C: mov edx,[ebp+08h] L0004063F: mov eax,[edx+00000A0Ch] dec eax cmp eax,00000004h ja L000406E6 jmp [CASE_PROCTABLE_000406F0+eax*4] CASE_000406F0_PROC0000: mov eax,[edx+00000988h] mov ecx,[edi+eax*4] lea edi,[edi+eax*4] mov [esi],ecx mov edx,[edi+04h] pop edi mov [esi+04h],edx pop esi pop ebx mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ CASE_000406F0_PROC0001: mov eax,[edx+00000988h] mov ecx,[edi+eax*4] lea edi,[edi+eax*4] mov [esi],ecx mov eax,[edi+04h] add edi,00000004h mov [esi+04h],eax mov ecx,[edx+0000098Ch] mov edx,[edi+ecx*4+04h] add esi,00000004h lea eax,[edi+ecx*4+04h] add esi,00000004h mov [esi],edx mov eax,[eax+04h] pop edi mov [esi+04h],eax pop esi pop ebx mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ CASE_000406F0_PROC0003: mov dword ptr [esi],00000000h add esi,00000004h mov dword ptr [esi],00000000h jmp L000406D6 CASE_000406F0_PROC0004: mov ecx,[edx+00000988h] mov edx,[edi+ecx*4] lea edi,[edi+ecx*4] mov [esi],edx mov eax,[edi+04h] add esi,00000004h mov [esi],eax L000406D6: add esi,00000004h CASE_000406F0_PROC0002: mov dword ptr [esi],00000000h mov dword ptr [esi+04h],00000000h L000406E6: pop edi pop esi pop ebx mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_000406F0: dd CASE_000406F0_PROC0000 dd CASE_000406F0_PROC0001 dd CASE_000406F0_PROC0002 dd CASE_000406F0_PROC0003 dd CASE_000406F0_PROC0004 Align 16 L00040710: sub esp,00000010h push ebx mov ebx,[esp+24h] test ebx,ebx jz L0004094B push ebp push esi mov esi,[esp+20h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] xor eax,eax mov ax,[ecx] mov ecx,[esp+2Ch] imul eax,edi add eax,ecx mov [esp+14h],eax add eax,edi test ebx,ebx mov [esp+28h],eax jbe L0004093F jmp L0004076A L00040766: mov ebx,[esp+30h] L0004076A: lea eax,[ebx+ebx+01h] cmp eax,00000666h jbe L00040780 mov edi,00000666h mov [esp+24h],edi jmp L00040786 L00040780: mov [esp+24h],eax mov edi,eax L00040786: mov ebx,[esi+000005D4h] mov eax,[ebp+08h] imul ebx,edi mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx jc L000407D3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000407D3 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000407D3 push ebp call [ebp+10h] mov eax,[ebp+08h] L000407D3: lea edx,[eax+ebx*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp edi,00000003h mov [esp+1Ch],eax mov ebx,eax mov [esp+2Ch],edx jc L000408F6 mov dword ptr [esp+10h],00000003h L000407F9: mov eax,[esp+30h] test eax,eax jbe L000408F6 mov ecx,[esp+18h] mov edi,eax dec edi mov [esp+30h],edi mov edi,[esp+28h] mov eax,edi add eax,ecx mov ecx,[esp+14h] fld dword ptr [ecx+04h] mov [esp+28h],eax fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000408E4 push ecx push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea edi,[ebx+edx*4] mov ebx,[esp+28h] push ebx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+2Ch] mov ecx,[esp+10h] shr eax,02h lea ebx,[edi+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+2Ch],edx mov [esp+10h],ecx L000408E4: mov eax,[esp+24h] mov ecx,[esp+10h] cmp ecx,eax mov edi,eax jbe L000407F9 L000408F6: cmp edx,edi mov eax,[esi+000005D4h] jz L0004091E sub edi,edx mov ecx,eax shr ecx,02h imul edi,ecx shl edi,1 test edx,edx jnz L00040911 inc edi L00040911: mov ecx,[ebp+08h] neg edi shl edi,02h add ecx,edi mov [ebp+08h],ecx L0004091E: imul eax,edx mov edx,[esp+1Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00040766 L0004093F: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp L0004094B: pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00040960: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L00040B8C mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L00040B8C push ebx jmp L000409B1 L000409AD: mov ecx,[esp+30h] L000409B1: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L000409C8 mov [esp+24h],eax L000409C8: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00040A25 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00040A21 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00040A25 push edi call [edi+10h] mov eax,[edi+08h] jmp L00040A25 L00040A21: mov ebx,[esp+28h] L00040A25: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L00040B41 mov dword ptr [esp+2Ch],00000003h L00040A4F: mov ecx,[esp+30h] test ecx,ecx jbe L00040B41 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00040B2D push ecx push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[edi+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L00040B2D: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L00040A4F L00040B41: cmp edx,eax mov ecx,[esi+000005D4h] jz L00040B69 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L00040B5C inc eax L00040B5C: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L00040B69: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000409AD pop ebx L00040B8C: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00040BA0: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L00040DCC mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L00040DCC push ebx jmp L00040BF1 L00040BED: mov ecx,[esp+30h] L00040BF1: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L00040C08 mov [esp+24h],eax L00040C08: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00040C65 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00040C61 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00040C65 push edi call [edi+10h] mov eax,[edi+08h] jmp L00040C65 L00040C61: mov ebx,[esp+28h] L00040C65: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L00040D81 mov dword ptr [esp+2Ch],00000003h L00040C8F: mov ecx,[esp+30h] test ecx,ecx jbe L00040D81 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00040D6D push ecx push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[edi+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L00040D6D: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L00040C8F L00040D81: cmp edx,eax mov ecx,[esi+000005D4h] jz L00040DA9 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L00040D9C inc eax L00040D9C: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L00040DA9: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00040BED pop ebx L00040DCC: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00040DE0: sub esp,00000010h push ebx mov ebx,[esp+24h] test ebx,ebx jz L0004101B push ebp push esi mov esi,[esp+20h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] xor eax,eax mov ax,[ecx] mov ecx,[esp+2Ch] imul eax,edi add eax,ecx mov [esp+14h],eax add eax,edi test ebx,ebx mov [esp+28h],eax jbe L0004100F jmp L00040E3A L00040E36: mov ebx,[esp+30h] L00040E3A: lea eax,[ebx+ebx+01h] cmp eax,00000666h jbe L00040E50 mov edi,00000666h mov [esp+24h],edi jmp L00040E56 L00040E50: mov [esp+24h],eax mov edi,eax L00040E56: mov ebx,[esi+000005D4h] mov eax,[ebp+08h] imul ebx,edi mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx jc L00040EA3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00040EA3 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00040EA3 push ebp call [ebp+10h] mov eax,[ebp+08h] L00040EA3: lea edx,[eax+ebx*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp edi,00000003h mov [esp+1Ch],eax mov ebx,eax mov [esp+2Ch],edx jc L00040FC6 mov dword ptr [esp+10h],00000003h L00040EC9: mov eax,[esp+30h] test eax,eax jbe L00040FC6 mov ecx,[esp+18h] mov edi,eax dec edi mov [esp+30h],edi mov edi,[esp+28h] mov eax,edi add eax,ecx mov ecx,[esp+14h] fld dword ptr [ecx+04h] mov [esp+28h],eax fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00040FB4 push ecx push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea edi,[ebx+edx*4] mov ebx,[esp+28h] push ebx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+2Ch] mov ecx,[esp+10h] shr eax,02h lea ebx,[edi+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+2Ch],edx mov [esp+10h],ecx L00040FB4: mov eax,[esp+24h] mov ecx,[esp+10h] cmp ecx,eax mov edi,eax jbe L00040EC9 L00040FC6: cmp edx,edi mov eax,[esi+000005D4h] jz L00040FEE sub edi,edx mov ecx,eax shr ecx,02h imul edi,ecx shl edi,1 test edx,edx jnz L00040FE1 inc edi L00040FE1: mov ecx,[ebp+08h] neg edi shl edi,02h add ecx,edi mov [ebp+08h],ecx L00040FEE: imul eax,edx mov edx,[esp+1Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00040E36 L0004100F: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp L0004101B: pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00041030: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebp push esi push edi jz L0004125C mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] xor ebp,ebp mov bp,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],edi imul ebp,eax add ebp,edx mov [esp+0Ch],ebp add ebp,eax test ecx,ecx jbe L0004125C push ebx jmp L00041081 L0004107D: mov ecx,[esp+30h] L00041081: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L00041098 mov [esp+24h],eax L00041098: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L000410F5 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000410F1 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000410F5 push edi call [edi+10h] mov eax,[edi+08h] jmp L000410F5 L000410F1: mov ebx,[esp+28h] L000410F5: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+24h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L00041211 mov dword ptr [esp+2Ch],00000003h L0004111F: mov ecx,[esp+30h] test ecx,ecx jbe L00041211 mov eax,[esp+18h] dec ecx mov edi,ebp mov [esp+30h],ecx mov ecx,[esp+10h] fld dword ptr [ecx+04h] add ebp,eax fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000411FD push ecx push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+28h] mov ecx,[esp+2Ch] shr eax,02h lea ebx,[edi+eax*4] mov eax,00000003h add edx,eax add ecx,eax mov [esp+28h],edx mov [esp+2Ch],ecx L000411FD: mov ecx,[esp+2Ch] mov eax,[esp+24h] cmp ecx,eax mov edi,[esp+14h] jbe L0004111F L00041211: cmp edx,eax mov ecx,[esi+000005D4h] jz L00041239 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L0004122C inc eax L0004122C: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L00041239: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004107D pop ebx L0004125C: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00041270: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi jz L0004146D mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov ebp,[esi+0000017Ch] xor ebx,ebx mov bx,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],ebp imul ebx,eax add ebx,edx mov [esp+28h],ebx add ebx,eax test ecx,ecx jbe L0004146D push edi jmp L000412C1 L000412BD: mov ecx,[esp+30h] L000412C1: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L000412D8 mov [esp+24h],eax L000412D8: mov edi,[esi+000005D4h] imul edi,[esp+24h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+28h],edi jc L00041335 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00041331 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+28h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00041335 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00041335 L00041331: mov edi,[esp+28h] L00041335: lea edx,[eax+edi*4] add eax,00000004h mov [esp+1Ch],eax mov edi,eax mov eax,[esp+24h] mov [ebp+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L00041422 mov dword ptr [esp+10h],00000003h L0004135F: mov ecx,[esp+30h] test ecx,ecx jbe L00041422 mov eax,[esp+18h] mov ebp,ebx add ebx,eax mov eax,[esp+2Ch] push eax push edi dec ecx push esi mov [esp+3Ch],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov ebp,[esp+28h] mov eax,[esp+10h] shr ecx,02h add ebp,00000003h add eax,00000003h lea edi,[edi+ecx*4] mov ecx,[esp+24h] mov [esp+28h],ebp mov [esp+10h],eax cmp eax,ecx mov edx,ebp mov ebp,[esp+14h] mov eax,ecx jbe L0004135F L00041422: cmp edx,eax mov ecx,[esi+000005D4h] jz L0004144A sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0004143D inc eax L0004143D: mov edi,[ebp+08h] neg eax shl eax,02h add edi,eax mov [ebp+08h],edi L0004144A: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000412BD pop edi L0004146D: pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00041480: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L00041694 push ebx push ebp push esi mov esi,[esp+20h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+24h],edi mov [esp+20h],ebp call SUB_L000ABBE0 mov eax,[esp+28h] mov ecx,[esp+2Ch] xor ebx,ebx mov bx,[eax] mov eax,[esp+30h] imul ebx,edi add ebx,ecx mov [esp+2Ch],ebx add ebx,edi test eax,eax jbe L00041687 L000414D8: mov ecx,[esp+30h] lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L000414F3 mov [esp+24h],eax L000414F3: mov edi,[esi+000005D4h] imul edi,[esp+24h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+28h],edi jc L00041550 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004154C mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+28h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00041550 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00041550 L0004154C: mov edi,[esp+28h] L00041550: lea edx,[eax+edi*4] add eax,00000004h mov [esp+1Ch],eax mov edi,eax mov eax,[esp+24h] mov [ebp+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L0004163D mov dword ptr [esp+10h],00000003h L0004157A: mov ecx,[esp+30h] test ecx,ecx jbe L0004163D mov eax,[esp+18h] mov ebp,ebx add ebx,eax mov eax,[esp+2Ch] push eax push edi dec ecx push esi mov [esp+3Ch],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov ebp,[esp+28h] mov eax,[esp+10h] shr ecx,02h add ebp,00000003h add eax,00000003h lea edi,[edi+ecx*4] mov ecx,[esp+24h] mov [esp+28h],ebp mov [esp+10h],eax cmp eax,ecx mov edx,ebp mov ebp,[esp+14h] mov eax,ecx jbe L0004157A L0004163D: cmp edx,eax mov ecx,[esi+000005D4h] jz L00041665 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00041658 inc eax L00041658: mov edi,[ebp+08h] neg eax shl eax,02h add edi,eax mov [ebp+08h],edi L00041665: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000414D8 L00041687: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L00041694: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000416A0: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi jz L0004189D mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov ebp,[esi+00000148h] xor ebx,ebx mov bx,[edx] mov edx,[esp+28h] mov [esp+14h],eax mov [esp+10h],ebp imul ebx,eax add ebx,edx mov [esp+28h],ebx add ebx,eax test ecx,ecx jbe L0004189D push edi jmp L000416F1 L000416ED: mov ecx,[esp+30h] L000416F1: lea eax,[ecx+ecx+01h] cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L00041708 mov [esp+24h],eax L00041708: mov edi,[esi+000005D4h] imul edi,[esp+24h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+28h],edi jc L00041765 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00041761 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+28h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00041765 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00041765 L00041761: mov edi,[esp+28h] L00041765: lea edx,[eax+edi*4] add eax,00000004h mov [esp+1Ch],eax mov edi,eax mov eax,[esp+24h] mov [ebp+08h],edx xor edx,edx cmp eax,00000003h mov [esp+28h],edx jc L00041852 mov dword ptr [esp+10h],00000003h L0004178F: mov ecx,[esp+30h] test ecx,ecx jbe L00041852 mov eax,[esp+18h] mov ebp,ebx add ebx,eax mov eax,[esp+2Ch] push eax push edi dec ecx push esi mov [esp+3Ch],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov ebp,[esp+28h] mov eax,[esp+10h] shr ecx,02h add ebp,00000003h add eax,00000003h lea edi,[edi+ecx*4] mov ecx,[esp+24h] mov [esp+28h],ebp mov [esp+10h],eax cmp eax,ecx mov edx,ebp mov ebp,[esp+14h] mov eax,ecx jbe L0004178F L00041852: cmp edx,eax mov ecx,[esi+000005D4h] jz L0004187A sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0004186D inc eax L0004186D: mov edi,[ebp+08h] neg eax shl eax,02h add edi,eax mov [ebp+08h],edi L0004187A: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000416ED pop edi L0004189D: pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000418B0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L00041CA6 mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+10h],00000000h imul ecx,eax add ecx,esi mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L00041CA6 L0004190B: lea eax,[edx+01h] cmp eax,00000666h jbe L00041920 mov ebx,00000666h mov [esp+34h],ebx jmp L00041926 L00041920: mov [esp+34h],eax mov ebx,eax L00041926: mov edx,[ebp+0Ch] mov eax,ebx imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebp+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00041975 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00041975 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00041975 push ebp call [ebp+10h] mov eax,[ebp+08h] L00041975: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+24h],eax mov esi,eax jc L00041B5E mov dword ptr [esp+30h],00000002h L00041997: mov eax,[esp+38h] test eax,eax jbe L00041B5E mov ebx,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebx add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00041B44 inc edx push ecx mov [esp+18h],edx mov edx,[esp+34h] push ecx push esi inc edx push edi mov [esp+40h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+2Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00041B36 mov eax,[esp+14h] mov edx,[esp+30h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+24h],eax mov [esp+40h],edx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00041B36: mov ecx,[esp+2Ch] mov edx,[esp+14h] mov [esp+10h],ecx jmp L00041B4C L00041B44: mov dword ptr [esp+18h],00000001h L00041B4C: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebx,ecx jbe L00041997 L00041B5E: cmp edx,ebx mov eax,[edi+000005D4h] jz L00041B86 sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L00041B79 inc ebx L00041B79: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00041B86: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L0004190B mov eax,[esp+10h] test eax,eax jz L00041CA6 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00041BFD push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00041BFD mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00041BFD push ebp call [ebp+10h] mov eax,[ebp+08h] L00041BFD: mov ecx,[esp+1Ch] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+10h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L00041CA6: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ SUB_L00041CB0: mov ecx,[esp+0Ch] mov eax,[esp+10h] mov edx,[esp+14h] push edi mov edi,[esp+0Ch] sub edi,00000004h cmp ecx,eax jz L00041CEE push ebx push esi sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00041CDB inc eax L00041CDB: mov esi,[esp+10h] mov ebx,[esi+08h] neg eax shl eax,02h add ebx,eax mov [esi+08h],ebx pop esi pop ebx L00041CEE: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [edi],ecx pop edi retn 0014h ;------------------------------------------------------------------------------ Align 16 L00041D10: sub esp,00000018h push ebx mov ebx,[esp+2Ch] test ebx,ebx jz L00042129 push ebp push esi push edi mov edi,[esp+2Ch] mov ebp,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+2Ch],esi mov dword ptr [esp+24h],00000001h mov dword ptr [esp+1Ch],00000000h call SUB_L000ABBE0 mov ecx,[esp+30h] xor eax,eax mov ax,[ecx] mov ecx,[esp+34h] imul eax,esi add eax,ecx mov [esp+1Ch],eax add eax,esi test ebx,ebx mov [esp+2Ch],eax jbe L0004211D jmp L00041D7A L00041D76: mov ebx,[esp+38h] L00041D7A: lea eax,[ebx+01h] cmp eax,00000666h jbe L00041D8F mov ebx,00000666h mov [esp+34h],ebx jmp L00041D95 L00041D8F: mov [esp+34h],eax mov ebx,eax L00041D95: mov eax,[ebp+08h] mov edx,ebx imul edx,[edi+000005D4h] shl edx,1 mov esi,edx mov edx,[ebp+0Ch] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00041DE4 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00041DE4 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00041DE4 push ebp call [ebp+10h] mov eax,[ebp+08h] L00041DE4: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+24h],eax mov esi,eax jc L00041FCD mov dword ptr [esp+30h],00000002h L00041E06: mov eax,[esp+38h] test eax,eax jbe L00041FCD mov ebx,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebx add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00041FB3 inc edx push ecx mov [esp+18h],edx mov edx,[esp+34h] push ecx push esi inc edx push edi mov [esp+40h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+2Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00041FA5 mov eax,[esp+14h] mov edx,[esp+30h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+24h],eax mov [esp+40h],edx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00041FA5: mov ecx,[esp+2Ch] mov edx,[esp+14h] mov [esp+10h],ecx jmp L00041FBB L00041FB3: mov dword ptr [esp+18h],00000001h L00041FBB: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebx,ecx jbe L00041E06 L00041FCD: cmp edx,ebx mov eax,[edi+000005D4h] jz L00041FF5 sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L00041FE8 inc ebx L00041FE8: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00041FF5: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+38h] test eax,eax ja L00041D76 mov eax,[esp+10h] test eax,eax jz L0004211D mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L00042074 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov esi,eax jz L00042074 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L00042074 push ebp call [ebp+10h] mov eax,[ebp+08h] mov esi,eax L00042074: mov ecx,[esp+1Ch] lea edx,[eax+ebx*4] mov eax,[esp+10h] push eax push ecx add esi,00000004h push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L0004211D: push 00000000h push ebp push edi call SUB_L000ABBE0 pop edi pop esi pop ebp L00042129: pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00042130: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L00042526 mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+10h],00000000h imul ecx,eax add ecx,esi mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L00042526 L0004218B: lea eax,[edx+01h] cmp eax,00000666h jbe L000421A0 mov ebx,00000666h mov [esp+34h],ebx jmp L000421A6 L000421A0: mov [esp+34h],eax mov ebx,eax L000421A6: mov edx,[ebp+0Ch] mov eax,ebx imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebp+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000421F5 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000421F5 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000421F5 push ebp call [ebp+10h] mov eax,[ebp+08h] L000421F5: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+24h],eax mov esi,eax jc L000423DE mov dword ptr [esp+30h],00000002h L00042217: mov eax,[esp+38h] test eax,eax jbe L000423DE mov ebx,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebx add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000423C4 inc edx push ecx mov [esp+18h],edx mov edx,[esp+34h] push ecx push esi inc edx push edi mov [esp+40h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+2Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L000423B6 mov eax,[esp+14h] mov edx,[esp+30h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+24h],eax mov [esp+40h],edx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000423B6: mov ecx,[esp+2Ch] mov edx,[esp+14h] mov [esp+10h],ecx jmp L000423CC L000423C4: mov dword ptr [esp+18h],00000001h L000423CC: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebx,ecx jbe L00042217 L000423DE: cmp edx,ebx mov eax,[edi+000005D4h] jz L00042406 sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L000423F9 inc ebx L000423F9: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00042406: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L0004218B mov eax,[esp+10h] test eax,eax jz L00042526 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004247D push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004247D mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004247D push ebp call [ebp+10h] mov eax,[ebp+08h] L0004247D: mov ecx,[esp+1Ch] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+10h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L00042526: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00042530: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L00042926 mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+10h],00000000h imul ecx,eax add ecx,esi mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L00042926 L0004258B: lea eax,[edx+01h] cmp eax,00000666h jbe L000425A0 mov ebx,00000666h mov [esp+34h],ebx jmp L000425A6 L000425A0: mov [esp+34h],eax mov ebx,eax L000425A6: mov edx,[ebp+0Ch] mov eax,ebx imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebp+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000425F5 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000425F5 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000425F5 push ebp call [ebp+10h] mov eax,[ebp+08h] L000425F5: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+24h],eax mov esi,eax jc L000427DE mov dword ptr [esp+30h],00000002h L00042617: mov eax,[esp+38h] test eax,eax jbe L000427DE mov ebx,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebx add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000427C4 inc edx push ecx mov [esp+18h],edx mov edx,[esp+34h] push ecx push esi inc edx push edi mov [esp+40h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+2Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L000427B6 mov eax,[esp+14h] mov edx,[esp+30h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+24h],eax mov [esp+40h],edx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000427B6: mov ecx,[esp+2Ch] mov edx,[esp+14h] mov [esp+10h],ecx jmp L000427CC L000427C4: mov dword ptr [esp+18h],00000001h L000427CC: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebx,ecx jbe L00042617 L000427DE: cmp edx,ebx mov eax,[edi+000005D4h] jz L00042806 sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L000427F9 inc ebx L000427F9: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00042806: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L0004258B mov eax,[esp+10h] test eax,eax jz L00042926 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004287D push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004287D mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004287D push ebp call [ebp+10h] mov eax,[ebp+08h] L0004287D: mov ecx,[esp+1Ch] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+10h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L00042926: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00042930: sub esp,00000018h push ebx mov ebx,[esp+2Ch] test ebx,ebx jz L00042D49 push ebp push esi push edi mov edi,[esp+2Ch] mov ebp,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+2Ch],esi mov dword ptr [esp+24h],00000001h mov dword ptr [esp+1Ch],00000000h call SUB_L000ABBE0 mov ecx,[esp+30h] xor eax,eax mov ax,[ecx] mov ecx,[esp+34h] imul eax,esi add eax,ecx mov [esp+1Ch],eax add eax,esi test ebx,ebx mov [esp+2Ch],eax jbe L00042D3D jmp L0004299A L00042996: mov ebx,[esp+38h] L0004299A: lea eax,[ebx+01h] cmp eax,00000666h jbe L000429AF mov ebx,00000666h mov [esp+34h],ebx jmp L000429B5 L000429AF: mov [esp+34h],eax mov ebx,eax L000429B5: mov eax,[ebp+08h] mov edx,ebx imul edx,[edi+000005D4h] shl edx,1 mov esi,edx mov edx,[ebp+0Ch] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00042A04 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00042A04 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00042A04 push ebp call [ebp+10h] mov eax,[ebp+08h] L00042A04: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+24h],eax mov esi,eax jc L00042BED mov dword ptr [esp+30h],00000002h L00042A26: mov eax,[esp+38h] test eax,eax jbe L00042BED mov ebx,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebx add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00042BD3 inc edx push ecx mov [esp+18h],edx mov edx,[esp+34h] push ecx push esi inc edx push edi mov [esp+40h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+2Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00042BC5 mov eax,[esp+14h] mov edx,[esp+30h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+24h],eax mov [esp+40h],edx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00042BC5: mov ecx,[esp+2Ch] mov edx,[esp+14h] mov [esp+10h],ecx jmp L00042BDB L00042BD3: mov dword ptr [esp+18h],00000001h L00042BDB: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebx,ecx jbe L00042A26 L00042BED: cmp edx,ebx mov eax,[edi+000005D4h] jz L00042C15 sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L00042C08 inc ebx L00042C08: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00042C15: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+38h] test eax,eax ja L00042996 mov eax,[esp+10h] test eax,eax jz L00042D3D mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L00042C94 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov esi,eax jz L00042C94 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L00042C94 push ebp call [ebp+10h] mov eax,[ebp+08h] mov esi,eax L00042C94: mov ecx,[esp+1Ch] lea edx,[eax+ebx*4] mov eax,[esp+10h] push eax push ecx add esi,00000004h push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L00042D3D: push 00000000h push ebp push edi call SUB_L000ABBE0 pop edi pop esi pop ebp L00042D49: pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00042D50: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L00043146 mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+10h],00000000h imul ecx,eax add ecx,esi mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L00043146 L00042DAB: lea eax,[edx+01h] cmp eax,00000666h jbe L00042DC0 mov ebx,00000666h mov [esp+34h],ebx jmp L00042DC6 L00042DC0: mov [esp+34h],eax mov ebx,eax L00042DC6: mov edx,[ebp+0Ch] mov eax,ebx imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebp+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00042E15 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00042E15 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00042E15 push ebp call [ebp+10h] mov eax,[ebp+08h] L00042E15: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+24h],eax mov esi,eax jc L00042FFE mov dword ptr [esp+30h],00000002h L00042E37: mov eax,[esp+38h] test eax,eax jbe L00042FFE mov ebx,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebx add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00042FE4 inc edx push ecx mov [esp+18h],edx mov edx,[esp+34h] push ecx push esi inc edx push edi mov [esp+40h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+2Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00042FD6 mov eax,[esp+14h] mov edx,[esp+30h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+24h],eax mov [esp+40h],edx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+10h],eax fild dword ptr [esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00042FD6: mov ecx,[esp+2Ch] mov edx,[esp+14h] mov [esp+10h],ecx jmp L00042FEC L00042FE4: mov dword ptr [esp+18h],00000001h L00042FEC: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebx,ecx jbe L00042E37 L00042FFE: cmp edx,ebx mov eax,[edi+000005D4h] jz L00043026 sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L00043019 inc ebx L00043019: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00043026: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L00042DAB mov eax,[esp+10h] test eax,eax jz L00043146 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004309D push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004309D mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004309D push ebp call [ebp+10h] mov eax,[ebp+08h] L0004309D: mov ecx,[esp+1Ch] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+10h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L00043146: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00043150: mov ecx,[esp+10h] sub esp,00000018h test ecx,ecx push ebx push ebp push esi push edi jz L00043511 mov edx,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] xor ebx,ebx mov bx,[edx] mov edx,[esp+34h] mov [esp+18h],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+10h],00000000h imul ebx,eax add ebx,edx mov [esp+24h],ebx add ebx,eax test ecx,ecx jbe L00043511 jmp L000431AD L000431A9: mov ecx,[esp+38h] L000431AD: lea eax,[ecx+01h] cmp eax,00000666h mov dword ptr [esp+2Ch],00000666h ja L000431C3 mov [esp+2Ch],eax L000431C3: mov esi,[esp+2Ch] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+30h],esi jc L00043220 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004321C mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+30h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00043220 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00043220 L0004321C: mov esi,[esp+30h] L00043220: lea edx,[eax+esi*4] add eax,00000004h mov [esp+20h],eax mov esi,eax mov eax,[esp+2Ch] xor ecx,ecx cmp eax,00000002h mov [ebp+08h],edx jc L000433CA mov dword ptr [esp+30h],00000002h L00043246: mov edx,[esp+38h] test edx,edx jbe L000433CA mov eax,[esp+18h] mov [esp+10h],ebx add ebx,eax mov eax,[esp+30h] push ebx dec edx push ebx inc ecx push esi inc eax push edi mov [esp+48h],edx mov [esp+44h],ecx mov [esp+40h],eax call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L000433B2 mov ecx,[esp+34h] mov eax,[esp+30h] inc ecx inc eax mov [esp+30h],eax mov eax,[esp+10h] push eax push eax push esi push edi mov [esp+44h],ecx mov dword ptr [esp+24h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+10h] push eax push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000433B2: mov ecx,[esp+2Ch] cmp [esp+30h],ecx mov eax,ecx mov ecx,[esp+34h] mov [esp+10h],ebx jbe L00043246 L000433CA: cmp ecx,eax mov edx,[edi+000005D4h] jz L000433F2 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L000433E5 inc eax L000433E5: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L000433F2: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+38h] test eax,eax ja L000431A9 mov ebx,[esp+10h] test ebx,ebx jz L00043511 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004346A push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004346A mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004346A push ebp call [ebp+10h] mov eax,[ebp+08h] L0004346A: push ebx mov ebx,[esp+28h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+38h],eax fild dword ptr [esp+38h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L00043511: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00043520: mov eax,[esp+10h] sub esp,00000018h test eax,eax jz L00043907 push ebx push ebp push esi push edi mov edi,[esp+2Ch] mov ebp,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+28h],esi mov dword ptr [esp+20h],00000001h mov dword ptr [esp+1Ch],00000000h call SUB_L000ABBE0 mov eax,[esp+30h] mov ecx,[esp+34h] xor ebx,ebx mov bx,[eax] mov eax,[esp+38h] imul ebx,esi add ebx,ecx mov [esp+18h],ebx add ebx,esi test eax,eax jbe L000438FA L00043584: mov ecx,[esp+38h] lea eax,[ecx+01h] cmp eax,00000666h mov dword ptr [esp+2Ch],00000666h ja L0004359E mov [esp+2Ch],eax L0004359E: mov esi,[esp+2Ch] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx mov [esp+30h],esi jc L000435FB push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000435F7 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+30h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000435FB push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L000435FB L000435F7: mov esi,[esp+30h] L000435FB: lea edx,[eax+esi*4] add eax,00000004h mov [esp+24h],eax mov esi,eax mov eax,[esp+2Ch] xor ecx,ecx cmp eax,00000002h mov [ebp+08h],edx jc L000437A5 mov dword ptr [esp+30h],00000002h L00043621: mov edx,[esp+38h] test edx,edx jbe L000437A5 mov eax,[esp+1Ch] mov [esp+10h],ebx add ebx,eax mov eax,[esp+30h] push ebx dec edx push ebx inc ecx push esi inc eax push edi mov [esp+48h],edx mov [esp+44h],ecx mov [esp+40h],eax call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L0004378D mov ecx,[esp+34h] mov eax,[esp+30h] inc ecx inc eax mov [esp+30h],eax mov eax,[esp+10h] push eax push eax push esi push edi mov [esp+44h],ecx mov dword ptr [esp+24h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+10h] push eax push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004378D: mov ecx,[esp+2Ch] cmp [esp+30h],ecx mov eax,ecx mov ecx,[esp+34h] mov [esp+10h],ebx jbe L00043621 L000437A5: cmp ecx,eax mov edx,[edi+000005D4h] jz L000437CD sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L000437C0 inc eax L000437C0: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L000437CD: mov eax,[esp+24h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+38h] test eax,eax ja L00043584 mov eax,[esp+10h] test eax,eax jz L000438FA mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L0004384D push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov esi,eax jz L0004384D mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L0004384D push ebp call [ebp+10h] mov eax,[ebp+08h] mov esi,eax L0004384D: mov ecx,[esp+18h] lea edx,[eax+ebx*4] mov eax,[esp+10h] push eax push ecx add esi,00000004h push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] lea edx,[eax+eax] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L000438FA: push 00000000h push ebp push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L00043907: add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00043910: mov ecx,[esp+10h] sub esp,00000018h test ecx,ecx push ebx push ebp push esi push edi jz L00043CD1 mov edx,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] xor ebx,ebx mov bx,[edx] mov edx,[esp+34h] mov [esp+18h],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+10h],00000000h imul ebx,eax add ebx,edx mov [esp+24h],ebx add ebx,eax test ecx,ecx jbe L00043CD1 jmp L0004396D L00043969: mov ecx,[esp+38h] L0004396D: lea eax,[ecx+01h] cmp eax,00000666h mov dword ptr [esp+2Ch],00000666h ja L00043983 mov [esp+2Ch],eax L00043983: mov esi,[esp+2Ch] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+30h],esi jc L000439E0 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000439DC mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+30h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000439E0 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L000439E0 L000439DC: mov esi,[esp+30h] L000439E0: lea edx,[eax+esi*4] add eax,00000004h mov [esp+20h],eax mov esi,eax mov eax,[esp+2Ch] xor ecx,ecx cmp eax,00000002h mov [ebp+08h],edx jc L00043B8A mov dword ptr [esp+30h],00000002h L00043A06: mov edx,[esp+38h] test edx,edx jbe L00043B8A mov eax,[esp+18h] mov [esp+10h],ebx add ebx,eax mov eax,[esp+30h] push ebx dec edx push ebx inc ecx push esi inc eax push edi mov [esp+48h],edx mov [esp+44h],ecx mov [esp+40h],eax call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00043B72 mov ecx,[esp+34h] mov eax,[esp+30h] inc ecx inc eax mov [esp+30h],eax mov eax,[esp+10h] push eax push eax push esi push edi mov [esp+44h],ecx mov dword ptr [esp+24h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+10h] push eax push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00043B72: mov ecx,[esp+2Ch] cmp [esp+30h],ecx mov eax,ecx mov ecx,[esp+34h] mov [esp+10h],ebx jbe L00043A06 L00043B8A: cmp ecx,eax mov edx,[edi+000005D4h] jz L00043BB2 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00043BA5 inc eax L00043BA5: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L00043BB2: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+38h] test eax,eax ja L00043969 mov ebx,[esp+10h] test ebx,ebx jz L00043CD1 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00043C2A push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00043C2A mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00043C2A push ebp call [ebp+10h] mov eax,[ebp+08h] L00043C2A: push ebx mov ebx,[esp+28h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+38h],eax fild dword ptr [esp+38h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L00043CD1: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00043CE0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L000440CD mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+1Ch],00000000h imul ecx,eax add ecx,esi mov [esp+18h],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L000440CD L00043D3B: lea eax,[edx+01h] cmp eax,00000666h jbe L00043D50 mov ebp,00000666h mov [esp+34h],ebp jmp L00043D56 L00043D50: mov [esp+34h],eax mov ebp,eax L00043D56: mov edx,[ebx+0Ch] mov eax,ebp imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebx+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00043DA5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00043DA5 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00043DA5 push ebx call [ebx+10h] mov eax,[ebx+08h] L00043DA5: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+24h],eax mov esi,eax jc L00043F8C mov dword ptr [esp+30h],00000002h L00043DC7: mov eax,[esp+38h] test eax,eax jbe L00043F8C mov ebp,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebp add ecx,eax mov eax,[esp+18h] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00043F72 mov eax,[esp+30h] push ecx inc edx push esi inc eax push edi mov [esp+1Ch],edx mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+2Ch] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00043F64 mov eax,[esp+10h] mov edx,[esp+30h] push ebp inc eax push esi inc edx push edi mov [esp+1Ch],eax mov [esp+3Ch],edx mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00043F64: mov edx,[esp+2Ch] mov [esp+1Ch],edx mov edx,[esp+10h] jmp L00043F7A L00043F72: mov dword ptr [esp+14h],00000001h L00043F7A: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebp,ecx jbe L00043DC7 L00043F8C: cmp edx,ebp mov eax,[edi+000005D4h] jz L00043FB4 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00043FA7 inc ebp L00043FA7: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00043FB4: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L00043D3B mov eax,[esp+1Ch] test eax,eax jz L000440CD mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004402B push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004402B mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004402B push ebx call [ebx+10h] mov eax,[ebx+08h] L0004402B: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+18h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000440CD: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000440E0: sub esp,00000018h push ebp mov ebp,[esp+2Ch] test ebp,ebp jz L000444E9 push ebx push esi push edi mov edi,[esp+2Ch] mov ebx,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+2Ch],esi mov dword ptr [esp+20h],00000001h mov dword ptr [esp+28h],00000000h call SUB_L000ABBE0 mov ecx,[esp+30h] xor eax,eax mov ax,[ecx] mov ecx,[esp+34h] imul eax,esi add eax,ecx mov [esp+18h],eax add eax,esi test ebp,ebp mov [esp+2Ch],eax jbe L000444DD jmp L0004414A L00044146: mov ebp,[esp+38h] L0004414A: lea eax,[ebp+01h] cmp eax,00000666h jbe L0004415F mov ebp,00000666h mov [esp+34h],ebp jmp L00044165 L0004415F: mov [esp+34h],eax mov ebp,eax L00044165: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 mov esi,edx mov edx,[ebx+0Ch] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000441B4 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000441B4 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000441B4 push ebx call [ebx+10h] mov eax,[ebx+08h] L000441B4: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+24h],eax mov esi,eax jc L0004439B mov dword ptr [esp+30h],00000002h L000441D6: mov eax,[esp+38h] test eax,eax jbe L0004439B mov ebp,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebp add ecx,eax mov eax,[esp+18h] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00044381 mov eax,[esp+30h] push ecx inc edx push esi inc eax push edi mov [esp+1Ch],edx mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+2Ch] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00044373 mov eax,[esp+10h] mov edx,[esp+30h] push ebp inc eax push esi inc edx push edi mov [esp+1Ch],eax mov [esp+3Ch],edx mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00044373: mov edx,[esp+2Ch] mov [esp+1Ch],edx mov edx,[esp+10h] jmp L00044389 L00044381: mov dword ptr [esp+14h],00000001h L00044389: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebp,ecx jbe L000441D6 L0004439B: cmp edx,ebp mov eax,[edi+000005D4h] jz L000443C3 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000443B6 inc ebp L000443B6: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000443C3: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+38h] test eax,eax ja L00044146 mov eax,[esp+1Ch] test eax,eax jz L000444DD mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004443A push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004443A mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004443A push ebx call [ebx+10h] mov eax,[ebx+08h] L0004443A: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+18h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000444DD: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L000444E9: pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L000444F0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L000448DD mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+1Ch],00000000h imul ecx,eax add ecx,esi mov [esp+18h],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L000448DD L0004454B: lea eax,[edx+01h] cmp eax,00000666h jbe L00044560 mov ebp,00000666h mov [esp+34h],ebp jmp L00044566 L00044560: mov [esp+34h],eax mov ebp,eax L00044566: mov edx,[ebx+0Ch] mov eax,ebp imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebx+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000445B5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000445B5 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000445B5 push ebx call [ebx+10h] mov eax,[ebx+08h] L000445B5: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+24h],eax mov esi,eax jc L0004479C mov dword ptr [esp+30h],00000002h L000445D7: mov eax,[esp+38h] test eax,eax jbe L0004479C mov ebp,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebp add ecx,eax mov eax,[esp+18h] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00044782 mov eax,[esp+30h] push ecx inc edx push esi inc eax push edi mov [esp+1Ch],edx mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+2Ch] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00044774 mov eax,[esp+10h] mov edx,[esp+30h] push ebp inc eax push esi inc edx push edi mov [esp+1Ch],eax mov [esp+3Ch],edx mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00044774: mov edx,[esp+2Ch] mov [esp+1Ch],edx mov edx,[esp+10h] jmp L0004478A L00044782: mov dword ptr [esp+14h],00000001h L0004478A: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebp,ecx jbe L000445D7 L0004479C: cmp edx,ebp mov eax,[edi+000005D4h] jz L000447C4 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000447B7 inc ebp L000447B7: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000447C4: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L0004454B mov eax,[esp+1Ch] test eax,eax jz L000448DD mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004483B push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004483B mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004483B push ebx call [ebx+10h] mov eax,[ebx+08h] L0004483B: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+18h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000448DD: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000448F0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L00044CDD mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+1Ch],00000000h imul ecx,eax add ecx,esi mov [esp+18h],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L00044CDD L0004494B: lea eax,[edx+01h] cmp eax,00000666h jbe L00044960 mov ebp,00000666h mov [esp+34h],ebp jmp L00044966 L00044960: mov [esp+34h],eax mov ebp,eax L00044966: mov edx,[ebx+0Ch] mov eax,ebp imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebx+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000449B5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000449B5 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000449B5 push ebx call [ebx+10h] mov eax,[ebx+08h] L000449B5: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+24h],eax mov esi,eax jc L00044B9C mov dword ptr [esp+30h],00000002h L000449D7: mov eax,[esp+38h] test eax,eax jbe L00044B9C mov ebp,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebp add ecx,eax mov eax,[esp+18h] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00044B82 mov eax,[esp+30h] push ecx inc edx push esi inc eax push edi mov [esp+1Ch],edx mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+2Ch] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00044B74 mov eax,[esp+10h] mov edx,[esp+30h] push ebp inc eax push esi inc edx push edi mov [esp+1Ch],eax mov [esp+3Ch],edx mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00044B74: mov edx,[esp+2Ch] mov [esp+1Ch],edx mov edx,[esp+10h] jmp L00044B8A L00044B82: mov dword ptr [esp+14h],00000001h L00044B8A: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebp,ecx jbe L000449D7 L00044B9C: cmp edx,ebp mov eax,[edi+000005D4h] jz L00044BC4 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00044BB7 inc ebp L00044BB7: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00044BC4: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L0004494B mov eax,[esp+1Ch] test eax,eax jz L00044CDD mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00044C3B push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00044C3B mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00044C3B push ebx call [ebx+10h] mov eax,[ebx+08h] L00044C3B: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+18h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L00044CDD: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00044CF0: sub esp,00000018h push ebp mov ebp,[esp+2Ch] test ebp,ebp jz L000450F9 push ebx push esi push edi mov edi,[esp+2Ch] mov ebx,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+2Ch],esi mov dword ptr [esp+20h],00000001h mov dword ptr [esp+28h],00000000h call SUB_L000ABBE0 mov ecx,[esp+30h] xor eax,eax mov ax,[ecx] mov ecx,[esp+34h] imul eax,esi add eax,ecx mov [esp+18h],eax add eax,esi test ebp,ebp mov [esp+2Ch],eax jbe L000450ED jmp L00044D5A L00044D56: mov ebp,[esp+38h] L00044D5A: lea eax,[ebp+01h] cmp eax,00000666h jbe L00044D6F mov ebp,00000666h mov [esp+34h],ebp jmp L00044D75 L00044D6F: mov [esp+34h],eax mov ebp,eax L00044D75: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 mov esi,edx mov edx,[ebx+0Ch] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00044DC4 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00044DC4 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00044DC4 push ebx call [ebx+10h] mov eax,[ebx+08h] L00044DC4: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+24h],eax mov esi,eax jc L00044FAB mov dword ptr [esp+30h],00000002h L00044DE6: mov eax,[esp+38h] test eax,eax jbe L00044FAB mov ebp,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebp add ecx,eax mov eax,[esp+18h] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00044F91 mov eax,[esp+30h] push ecx inc edx push esi inc eax push edi mov [esp+1Ch],edx mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+2Ch] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00044F83 mov eax,[esp+10h] mov edx,[esp+30h] push ebp inc eax push esi inc edx push edi mov [esp+1Ch],eax mov [esp+3Ch],edx mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00044F83: mov edx,[esp+2Ch] mov [esp+1Ch],edx mov edx,[esp+10h] jmp L00044F99 L00044F91: mov dword ptr [esp+14h],00000001h L00044F99: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebp,ecx jbe L00044DE6 L00044FAB: cmp edx,ebp mov eax,[edi+000005D4h] jz L00044FD3 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00044FC6 inc ebp L00044FC6: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00044FD3: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+38h] test eax,eax ja L00044D56 mov eax,[esp+1Ch] test eax,eax jz L000450ED mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004504A push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004504A mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004504A push ebx call [ebx+10h] mov eax,[ebx+08h] L0004504A: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+18h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000450ED: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L000450F9: pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00045100: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push ebp push esi push edi jz L000454ED mov esi,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] xor ecx,ecx mov cx,[esi] mov esi,[esp+34h] mov [esp+20h],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+1Ch],00000000h imul ecx,eax add ecx,esi mov [esp+18h],ecx add ecx,eax test edx,edx mov [esp+2Ch],ecx jbe L000454ED L0004515B: lea eax,[edx+01h] cmp eax,00000666h jbe L00045170 mov ebp,00000666h mov [esp+34h],ebp jmp L00045176 L00045170: mov [esp+34h],eax mov ebp,eax L00045176: mov edx,[ebx+0Ch] mov eax,ebp imul eax,[edi+000005D4h] shl eax,1 mov esi,eax mov eax,[ebx+08h] shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000451C5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000451C5 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000451C5 push ebx call [ebx+10h] mov eax,[ebx+08h] L000451C5: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+24h],eax mov esi,eax jc L000453AC mov dword ptr [esp+30h],00000002h L000451E7: mov eax,[esp+38h] test eax,eax jbe L000453AC mov ebp,[esp+2Ch] mov ecx,eax mov eax,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,ebp add ecx,eax mov eax,[esp+18h] fld dword ptr [eax+04h] mov [esp+2Ch],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00045392 mov eax,[esp+30h] push ecx inc edx push esi inc eax push edi mov [esp+1Ch],edx mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+2Ch] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00045384 mov eax,[esp+10h] mov edx,[esp+30h] push ebp inc eax push esi inc edx push edi mov [esp+1Ch],eax mov [esp+3Ch],edx mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00045384: mov edx,[esp+2Ch] mov [esp+1Ch],edx mov edx,[esp+10h] jmp L0004539A L00045392: mov dword ptr [esp+14h],00000001h L0004539A: mov ecx,[esp+34h] mov eax,[esp+30h] cmp eax,ecx mov ebp,ecx jbe L000451E7 L000453AC: cmp edx,ebp mov eax,[edi+000005D4h] jz L000453D4 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000453C7 inc ebp L000453C7: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000453D4: imul eax,edx mov edx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+38h] test edx,edx ja L0004515B mov eax,[esp+1Ch] test eax,eax jz L000454ED mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004544B push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004544B mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004544B push ebx call [ebx+10h] mov eax,[ebx+08h] L0004544B: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+18h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000454ED: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00045500: mov ecx,[esp+10h] sub esp,00000018h test ecx,ecx push ebx push ebp push esi push edi jz L000458B7 mov edx,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] xor ebp,ebp mov bp,[edx] mov edx,[esp+34h] mov [esp+18h],eax mov dword ptr [esp+10h],00000001h mov dword ptr [esp+14h],00000000h imul ebp,eax add ebp,edx mov [esp+24h],ebp add ebp,eax test ecx,ecx jbe L000458B7 jmp L0004555D L00045559: mov ecx,[esp+38h] L0004555D: lea eax,[ecx+01h] cmp eax,00000666h mov dword ptr [esp+2Ch],00000666h ja L00045573 mov [esp+2Ch],eax L00045573: mov esi,[esp+2Ch] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+30h],esi jc L000455D0 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000455CC mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+30h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000455D0 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L000455D0 L000455CC: mov esi,[esp+30h] L000455D0: lea edx,[eax+esi*4] add eax,00000004h mov [esp+20h],eax mov esi,eax mov eax,[esp+2Ch] xor ecx,ecx cmp eax,00000002h mov [ebx+08h],edx jc L00045778 mov dword ptr [esp+30h],00000002h L000455F6: mov edx,[esp+38h] test edx,edx jbe L00045778 mov eax,edx mov edx,[esp+18h] mov [esp+14h],ebp add ebp,edx mov edx,[esp+30h] dec eax push ebp inc ecx push esi inc edx push edi mov [esp+44h],eax mov [esp+40h],ecx mov [esp+3Ch],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00045760 mov eax,[esp+34h] mov edx,[esp+30h] inc eax inc edx mov [esp+30h],edx mov edx,[esp+14h] push edx push esi push edi mov [esp+40h],eax mov dword ptr [esp+1Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] L00045760: mov ecx,[esp+30h] mov eax,[esp+2Ch] cmp ecx,eax mov ecx,[esp+34h] mov [esp+14h],ebp jbe L000455F6 L00045778: cmp ecx,eax mov edx,[edi+000005D4h] jz L000457A0 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00045793 inc eax L00045793: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L000457A0: mov eax,[esp+38h] imul edx,ecx mov ecx,[esp+20h] shl edx,1 shr edx,02h dec edx or edx,7F140000h test eax,eax mov [ecx-04h],edx ja L00045559 mov eax,[esp+14h] test eax,eax jz L000458B7 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L00045818 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00045818 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00045818 push ebx call [ebx+10h] mov eax,[ebx+08h] L00045818: mov ebp,[esp+24h] lea edx,[eax+esi*4] push ebp lea esi,[eax+04h] push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L000458B7: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000458D0: mov eax,[esp+10h] sub esp,00000018h test eax,eax jz L00045CA3 push ebx push ebp push esi push edi mov edi,[esp+2Ch] mov ebx,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+28h],esi mov dword ptr [esp+1Ch],00000001h mov dword ptr [esp+20h],00000000h call SUB_L000ABBE0 mov eax,[esp+30h] mov ecx,[esp+34h] xor ebp,ebp mov bp,[eax] mov eax,[esp+38h] imul ebp,esi add ebp,ecx mov [esp+18h],ebp add ebp,esi test eax,eax jbe L00045C96 L00045934: mov ecx,[esp+38h] lea eax,[ecx+01h] cmp eax,00000666h mov dword ptr [esp+2Ch],00000666h ja L0004594E mov [esp+2Ch],eax L0004594E: mov esi,[esp+2Ch] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx mov [esp+30h],esi jc L000459AB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000459A7 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+30h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000459AB push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L000459AB L000459A7: mov esi,[esp+30h] L000459AB: lea edx,[eax+esi*4] add eax,00000004h mov [esp+24h],eax mov esi,eax mov eax,[esp+2Ch] xor ecx,ecx cmp eax,00000002h mov [ebx+08h],edx jc L00045B53 mov dword ptr [esp+30h],00000002h L000459D1: mov edx,[esp+38h] test edx,edx jbe L00045B53 mov eax,edx mov edx,[esp+1Ch] mov [esp+14h],ebp add ebp,edx mov edx,[esp+30h] dec eax push ebp inc ecx push esi inc edx push edi mov [esp+44h],eax mov [esp+40h],ecx mov [esp+3Ch],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00045B3B mov eax,[esp+34h] mov edx,[esp+30h] inc eax inc edx mov [esp+30h],edx mov edx,[esp+14h] push edx push esi push edi mov [esp+40h],eax mov dword ptr [esp+1Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] L00045B3B: mov ecx,[esp+30h] mov eax,[esp+2Ch] cmp ecx,eax mov ecx,[esp+34h] mov [esp+14h],ebp jbe L000459D1 L00045B53: cmp ecx,eax mov edx,[edi+000005D4h] jz L00045B7B sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00045B6E inc eax L00045B6E: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L00045B7B: mov eax,[esp+38h] imul edx,ecx mov ecx,[esp+24h] shl edx,1 shr edx,02h dec edx or edx,7F140000h test eax,eax mov [ecx-04h],edx ja L00045934 mov eax,[esp+14h] test eax,eax jz L00045C96 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L00045BF3 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00045BF3 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00045BF3 push ebx call [ebx+10h] mov eax,[ebx+08h] L00045BF3: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+18h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+18h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L00045C96: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L00045CA3: add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00045CB0: mov ecx,[esp+10h] sub esp,00000018h test ecx,ecx push ebx push ebp push esi push edi jz L00046067 mov edx,[esp+30h] mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] xor ebp,ebp mov bp,[edx] mov edx,[esp+34h] mov [esp+18h],eax mov dword ptr [esp+10h],00000001h mov dword ptr [esp+14h],00000000h imul ebp,eax add ebp,edx mov [esp+24h],ebp add ebp,eax test ecx,ecx jbe L00046067 jmp L00045D0D L00045D09: mov ecx,[esp+38h] L00045D0D: lea eax,[ecx+01h] cmp eax,00000666h mov dword ptr [esp+2Ch],00000666h ja L00045D23 mov [esp+2Ch],eax L00045D23: mov esi,[esp+2Ch] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+30h],esi jc L00045D80 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00045D7C mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+30h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00045D80 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00045D80 L00045D7C: mov esi,[esp+30h] L00045D80: lea edx,[eax+esi*4] add eax,00000004h mov [esp+20h],eax mov esi,eax mov eax,[esp+2Ch] xor ecx,ecx cmp eax,00000002h mov [ebx+08h],edx jc L00045F28 mov dword ptr [esp+30h],00000002h L00045DA6: mov edx,[esp+38h] test edx,edx jbe L00045F28 mov eax,edx mov edx,[esp+18h] mov [esp+14h],ebp add ebp,edx mov edx,[esp+30h] dec eax push ebp inc ecx push esi inc edx push edi mov [esp+44h],eax mov [esp+40h],ecx mov [esp+3Ch],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00045F10 mov eax,[esp+34h] mov edx,[esp+30h] inc eax inc edx mov [esp+30h],edx mov edx,[esp+14h] push edx push esi push edi mov [esp+40h],eax mov dword ptr [esp+1Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] L00045F10: mov ecx,[esp+30h] mov eax,[esp+2Ch] cmp ecx,eax mov ecx,[esp+34h] mov [esp+14h],ebp jbe L00045DA6 L00045F28: cmp ecx,eax mov edx,[edi+000005D4h] jz L00045F50 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00045F43 inc eax L00045F43: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L00045F50: mov eax,[esp+38h] imul edx,ecx mov ecx,[esp+20h] shl edx,1 shr edx,02h dec edx or edx,7F140000h test eax,eax mov [ecx-04h],edx ja L00045D09 mov eax,[esp+14h] test eax,eax jz L00046067 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L00045FC8 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00045FC8 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00045FC8 push ebx call [ebx+10h] mov eax,[ebx+08h] L00045FC8: mov ebp,[esp+24h] lea edx,[eax+esi*4] push ebp lea esi,[eax+04h] push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L00046067: pop edi pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00046080: mov eax,[esp+10h] sub esp,00000038h push ebx push ebp push esi push edi xor edi,edi cmp eax,edi jz L00046481 mov esi,[esp+4Ch] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+24h],ebx jnc L000460CC mov ecx,[esp+50h] xor edx,edx mov dx,[ecx] add ecx,00000002h mov [esp+18h],edi mov [esp+14h],edx jmp L000460ED L000460CC: mov ecx,[esi+00004860h] mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov ecx,[esp+50h] mov [esp+14h],edi mov edx,edi mov [esp+18h],eax L000460ED: mov edi,[esi+00004868h] lea ebp,[edi+ecx] xor eax,eax mov ax,[ecx] xor ecx,ecx mov cx,[ebp+00h] add ebp,edi mov edi,[esp+28h] add eax,edx add ecx,edx mov [esp+20h],ecx imul ecx,edi mov edx,eax imul edx,edi mov edi,[esp+54h] add edx,[esp+54h] add ecx,edi mov [esp+1Ch],ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+10h],edx jbe L00046481 mov edi,[esp+18h] add eax,edi mov [esp+34h],eax jmp L00046151 L00046141: mov ecx,[esp+58h] mov eax,[esp+34h] mov ebx,[esp+24h] mov edx,[esp+10h] L00046151: test eax,eax jl L00046477 cmp eax,[esi+00000A34h] jge L00046477 cmp ecx,00000CCAh mov dword ptr [esp+4Ch],00000CCAh ja L00046179 mov [esp+4Ch],ecx L00046179: mov ecx,[esp+4Ch] mov eax,[ebx+08h] lea edi,[ecx+02h] imul edi,[esi+000005D4h] shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,[ebx+0Ch] jc L000461CB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000461C7 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000461C7 push ebx call [ebx+10h] mov eax,[ebx+08h] L000461C7: mov edx,[esp+10h] L000461CB: lea ecx,[eax+edi*4] lea edi,[eax+04h] mov [ebx+08h],ecx mov eax,[esi+00000190h] test eax,eax mov [esp+44h],edi jnz L000461E9 mov dword ptr [edx+0Ch],3F800000h L000461E9: mov eax,[esi+00000A30h] mov ebx,[esi+00000A0Ch] lea ecx,[esi+00000A10h] lea eax,[eax+eax*2] push ecx lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] push edx lea eax,[ebx+eax*8] push edi call [L000B493C+eax*4] mov ebx,eax mov eax,[esi+000048ACh] test eax,eax jz L00046229 push 00000001h push edi push esi call SUB_L0003E580 L00046229: mov ecx,[esp+4Ch] xor edi,edi lea eax,[ecx+01h] cmp eax,edi mov [esp+2Ch],edi mov [esp+30h],edi jbe L000463DF L00046242: mov edi,[esp+20h] mov edx,[esp+1Ch] xor eax,eax mov ax,[ebp+00h] add ebp,[esi+00004868h] mov [esp+3Ch],edx mov [esp+40h],edi add eax,[esp+14h] mov [esp+20h],eax imul eax,[esp+28h] nop add eax,[esp+54h] mov [esp+1Ch],eax mov eax,[esp+18h] add eax,edi test eax,eax jl L00046454 cmp eax,[esi+00000A34h] jge L00046454 mov eax,[esi+00000190h] test eax,eax jnz L0004629F mov dword ptr [edx+0Ch],3F800000h L0004629F: mov eax,[esi+00000A30h] lea ecx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+ecx*2] mov eax,[esi+00000A08h] lea ecx,[eax+ecx*8] lea eax,[esi+00000A10h] push eax push edx push ebx call [L000B493C+ecx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L000463B5 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebx test eax,eax jbe L000463B5 cmp eax,00000002h jbe L0004635D cmp eax,00000003h jnz L000463B5 fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+50h] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L0004632E mov byte ptr [edi],FFh jmp L000463B5 L0004632E: fld dword ptr [esp+50h] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L00046344 mov byte ptr [edi],00h jmp L000463B5 L00046344: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+50h] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al jmp L000463B5 L0004635D: fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+50h] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L0004637C mov byte ptr [edi],FFh jmp L000463B5 L0004637C: fld dword ptr [esp+50h] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L00046392 mov byte ptr [edi],00h jmp L000463B5 L00046392: fld dword ptr [esp+50h] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L000463B5: mov edi,[esp+2Ch] mov edx,[esp+30h] mov ecx,[esp+4Ch] mov ebx,[esp+38h] inc edi inc edx lea eax,[ecx+01h] cmp edx,eax mov [esp+2Ch],edi mov [esp+30h],edx jc L00046242 test edi,edi jz L000463DF dec edi L000463DF: mov eax,[esp+3Ch] mov ebx,[esp+58h] mov edx,[esp+40h] mov [esp+1Ch],eax sub ebp,[esi+00004868h] mov eax,[esi+000005D4h] sub ebx,ecx cmp edi,ecx mov [esp+20h],edx mov [esp+58h],ebx jz L00046427 sub ecx,edi imul ecx,eax shr ecx,02h test edi,edi jnz L00046416 inc ecx L00046416: mov edx,[esp+24h] mov ebx,[edx+08h] neg ecx shl ecx,02h add ebx,ecx mov [edx+08h],ebx L00046427: add edi,00000002h imul edi,eax mov eax,[esp+44h] shr edi,02h dec edi or edi,7F0C0000h mov [eax-04h],edi mov eax,[esp+58h] test eax,eax ja L00046141 pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00046454: mov edx,[esi+000005D4h] mov eax,[esp+24h] add ecx,00000002h imul edx,ecx shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00046477: mov dword ptr [esi+000005B0h],00000001h L00046481: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00046490: sub esp,0000003Ch push ebx mov ebx,[esp+50h] push ebp push esi push edi xor edi,edi cmp ebx,edi jz L000468AE mov esi,[esp+50h] push esi call SUB_L00036580 cmp eax,edi mov [esp+34h],eax jnz L000464D9 mov eax,[esp+58h] mov ecx,[esp+54h] push ebx push eax push ecx push esi call [esi+000009E8h] mov [esi+00000A38h],edi pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ L000464D9: cmp dword ptr [esi+00000138h],00000004h mov edx,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+18h],edx mov [esp+1Ch],ebp jnc L0004650C mov ecx,[esp+54h] xor edx,edx mov dx,[ecx] add ecx,00000002h mov [esp+50h],edi mov [esp+14h],edx jmp L0004652D L0004650C: mov ecx,[esi+00004860h] mov eax,[esp+58h] sub eax,ecx cdq idiv [esi+00004858h] mov ecx,[esp+54h] mov [esp+14h],edi mov edx,edi mov [esp+50h],eax L0004652D: mov edi,[esi+00004868h] lea ebx,[edi+ecx] xor eax,eax mov ax,[ecx] xor ecx,ecx mov cx,[ebx] add ebx,edi mov edi,[esp+58h] add eax,edx mov [esp+44h],eax add ecx,edx mov [esp+28h],ecx imul ecx,[esp+18h] mov edx,eax imul edx,[esp+18h] add ecx,edi mov [esp+24h],ecx mov ecx,[esp+5Ch] add edx,edi test ecx,ecx mov [esp+2Ch],edx jbe L000468AE mov ecx,[esp+50h] mov edi,[esp+5Ch] add eax,ecx mov [esp+40h],eax jmp L0004658A L00046586: mov eax,[esp+40h] L0004658A: test eax,eax jl L000468A4 cmp eax,[esi+00000A34h] jge L000468A4 mov eax,[esp+5Ch] cmp eax,0000FFFBh mov dword ptr [esp+54h],0000FFFBh ja L000465B5 mov [esp+54h],eax L000465B5: mov edx,[esp+54h] mov eax,[ebp+08h] lea ecx,[edx+edx+06h] shr ecx,02h inc ecx mov edx,eax mov [esp+50h],edx lea edx,[edx+ecx*4] cmp edx,[ebp+0Ch] mov [esp+10h],ecx jc L0004661B push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+50h],eax jz L00046617 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+10h] mov ecx,eax mov [esp+50h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L00046617 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+50h],eax L00046617: mov ecx,[esp+10h] L0004661B: lea edx,[eax+ecx*4] mov eax,[esp+44h] mov ecx,[esp+50h] mov [ebp+08h],edx mov [ecx+04h],ax add ecx,00000006h mov [esp+30h],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h mov [esp+10h],ecx test [esi+ecx*4+00000A3Ch],edx mov [esp+38h],edx jnz L000466E4 mov ecx,[esi+000005D4h] mov edx,[esp+34h] shr ecx,02h imul ecx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[edx+ecx*4] mov [esp+3Ch],ecx jnz L00046686 mov eax,[esp+2Ch] mov dword ptr [eax+0Ch],3F800000h L00046686: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax mov eax,[esp+30h] push eax push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L000466CC mov ecx,[esp+3Ch] push 00000001h push ecx push esi call SUB_L0003E580 L000466CC: mov eax,[esp+10h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+38h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L000466E4: mov eax,[esp+54h] xor edx,edx inc eax cmp eax,edx mov [esp+38h],edx mov [esp+3Ch],edx jbe L00046826 jmp L00046705 L000466FD: mov ebx,[esp+10h] mov ebp,[esp+1Ch] L00046705: mov ecx,[esp+24h] mov edi,[esp+28h] xor eax,eax mov ax,[ebx] mov [esp+20h],ecx add eax,[esp+14h] mov ecx,[esi+00004868h] mov [esp+28h],eax imul eax,[esp+18h] nop add ebx,ecx add eax,[esp+58h] test edi,edi mov [esp+10h],ebx mov [esp+24h],eax jl L00046889 cmp edi,[esi+00000A34h] jge L00046889 mov eax,[esp+30h] mov ecx,edi and ecx,0000001Fh mov [eax],di add eax,00000002h mov ebp,00000001h mov ebx,edi shl ebp,cl shr ebx,05h mov [esp+30h],eax test [esi+ebx*4+00000A3Ch],ebp jnz L000467FE mov ecx,[esi+000005D4h] mov edx,[esp+34h] mov eax,[esi+00000190h] shr ecx,02h imul ecx,edi test eax,eax lea ecx,[edx+ecx*4] mov [esp+48h],ecx jnz L000467A4 mov eax,[esp+20h] mov dword ptr [eax+0Ch],3F800000h L000467A4: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax mov eax,[esp+24h] push eax push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L000467EA mov ecx,[esp+48h] push 00000001h push ecx push esi call SUB_L0003E580 L000467EA: mov eax,[esi+ebx*4+00000A3Ch] mov edx,[esp+38h] or eax,ebp mov [esi+ebx*4+00000A3Ch],eax L000467FE: mov ecx,[esp+3Ch] mov eax,[esp+54h] inc edx inc ecx inc eax cmp ecx,eax mov [esp+38h],edx mov [esp+3Ch],ecx jc L000466FD test edx,edx jz L0004681E dec edx L0004681E: mov ebx,[esp+10h] mov ebp,[esp+1Ch] L00046826: mov ecx,[esp+20h] mov [esp+24h],ecx sub ebx,[esi+00004868h] mov ecx,[esp+54h] sub [esp+5Ch],ecx cmp edx,ecx mov [esp+28h],edi jz L00046864 add eax,eax lea ecx,[edx+edx+02h] shr ecx,02h shr eax,02h sub eax,ecx test edx,edx jnz L00046857 inc eax L00046857: mov ecx,[ebp+08h] neg eax shl eax,02h add ecx,eax mov [ebp+08h],ecx L00046864: mov eax,[esp+50h] add edx,00000002h or edx,7F8E0000h mov [eax],edx mov eax,[esp+5Ch] test eax,eax ja L00046586 pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ L00046889: mov ecx,[esp+54h] lea edx,[ecx+ecx+06h] mov ecx,[ebp+08h] or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebp+08h],ecx L000468A4: mov dword ptr [esi+000005B0h],00000001h L000468AE: pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L000468C0: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L00046C2E mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],edi jnc L0004690C mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L0004692D L0004690C: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L0004692D: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor ebx,ebx mov bx,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add ebx,ebp test eax,eax jbe L00046C2E mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00046981 L0004697D: mov ecx,[esp+30h] L00046981: test ecx,ecx jl L00046C24 cmp ecx,[esi+00000A34h] jge L00046C24 mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L000469B0 mov [esp+40h],eax L000469B0: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L00046A0D push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00046A09 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00046A0D push edi call [edi+10h] mov eax,[edi+08h] jmp L00046A0D L00046A09: mov ebp,[esp+1Ch] L00046A0D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00046B95 mov dword ptr [esp+1Ch],00000003h L00046A37: mov ecx,[esp+48h] test ecx,ecx jbe L00046B95 mov edx,[esp+24h] mov eax,ecx dec eax mov [esp+48h],eax mov ecx,[esp+20h] xor eax,eax mov ax,[edx] mov edi,ebx add eax,[esp+18h] add edx,[esi+00004868h] mov ebx,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add ebx,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00046C00 mov edx,[esi+00000A34h] cmp ecx,edx jge L00046C00 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00046BE9 cmp eax,edx jge L00046BE9 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00046B7B push edi push ecx push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebp+edx*4+00h] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00046B7B: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov edi,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00046A37 L00046B95: cmp edx,eax mov ecx,[esi+000005D4h] jz L00046BBD sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00046BB0 inc eax L00046BB0: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L00046BBD: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004697D pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00046BE9: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00046C15 L00046C00: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00046C15: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00046C24: mov dword ptr [esi+000005B0h],00000001h L00046C2E: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00046C40: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L00046F6F mov esi,[esp+3Ch] mov edi,[esi+0000017Ch] mov eax,[esi+000005D0h] push 00000001h push edi push esi mov [esp+34h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00046C95 mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ebx mov [esp+18h],eax jmp L00046CB4 L00046C95: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ebx mov [esp+3Ch],eax mov eax,ebx L00046CB4: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor ebx,ebx mov bx,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add ebx,ebp test eax,eax jbe L00046F66 mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00046D08 L00046D04: mov ecx,[esp+30h] L00046D08: test ecx,ecx jl L00046F9D cmp ecx,[esi+00000A34h] jge L00046F9D mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00046D37 mov [esp+40h],eax L00046D37: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L00046D94 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00046D90 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00046D94 push edi call [edi+10h] mov eax,[edi+08h] jmp L00046D94 L00046D90: mov ebp,[esp+1Ch] L00046D94: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00046F1C mov dword ptr [esp+1Ch],00000003h L00046DBE: mov ecx,[esp+48h] test ecx,ecx jbe L00046F1C mov edx,[esp+24h] mov eax,ecx dec eax mov [esp+48h],eax mov ecx,[esp+20h] xor eax,eax mov ax,[edx] mov edi,ebx add eax,[esp+18h] add edx,[esi+00004868h] mov ebx,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add ebx,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00046FB1 mov edx,[esi+00000A34h] cmp ecx,edx jge L00046FB1 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00046F79 cmp eax,edx jge L00046F79 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00046F02 push edi push ecx push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebp+edx*4+00h] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00046F02: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov edi,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00046DBE L00046F1C: cmp edx,eax mov ecx,[esi+000005D4h] jz L00046F44 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00046F37 inc eax L00046F37: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L00046F44: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00046D04 L00046F66: push 00000000h push edi push esi call SUB_L000ABBE0 L00046F6F: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00046F79: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L00046F8E: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00046F9D: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00046FB1: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L00046F8E Align 16 L00046FD0: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004733E mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],edi jnc L0004701C mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L0004703D L0004701C: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L0004703D: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor ebx,ebx mov bx,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add ebx,ebp test eax,eax jbe L0004733E mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00047091 L0004708D: mov ecx,[esp+30h] L00047091: test ecx,ecx jl L00047334 cmp ecx,[esi+00000A34h] jge L00047334 mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L000470C0 mov [esp+40h],eax L000470C0: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L0004711D push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00047119 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0004711D push edi call [edi+10h] mov eax,[edi+08h] jmp L0004711D L00047119: mov ebp,[esp+1Ch] L0004711D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L000472A5 mov dword ptr [esp+1Ch],00000003h L00047147: mov ecx,[esp+48h] test ecx,ecx jbe L000472A5 mov edx,[esp+24h] mov eax,ecx dec eax mov [esp+48h],eax mov ecx,[esp+20h] xor eax,eax mov ax,[edx] mov edi,ebx add eax,[esp+18h] add edx,[esi+00004868h] mov ebx,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add ebx,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00047310 mov edx,[esi+00000A34h] cmp ecx,edx jge L00047310 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L000472F9 cmp eax,edx jge L000472F9 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0004728B push edi push ecx push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebp+edx*4+00h] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L0004728B: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov edi,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00047147 L000472A5: cmp edx,eax mov ecx,[esi+000005D4h] jz L000472CD sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L000472C0 inc eax L000472C0: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L000472CD: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004708D pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000472F9: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00047325 L00047310: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00047325: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00047334: mov dword ptr [esi+000005B0h],00000001h L0004733E: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00047350: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L000476BE mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],edi jnc L0004739C mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L000473BD L0004739C: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L000473BD: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor ebx,ebx mov bx,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add ebx,ebp test eax,eax jbe L000476BE mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00047411 L0004740D: mov ecx,[esp+30h] L00047411: test ecx,ecx jl L000476B4 cmp ecx,[esi+00000A34h] jge L000476B4 mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00047440 mov [esp+40h],eax L00047440: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L0004749D push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00047499 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0004749D push edi call [edi+10h] mov eax,[edi+08h] jmp L0004749D L00047499: mov ebp,[esp+1Ch] L0004749D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00047625 mov dword ptr [esp+1Ch],00000003h L000474C7: mov ecx,[esp+48h] test ecx,ecx jbe L00047625 mov edx,[esp+24h] mov eax,ecx dec eax mov [esp+48h],eax mov ecx,[esp+20h] xor eax,eax mov ax,[edx] mov edi,ebx add eax,[esp+18h] add edx,[esi+00004868h] mov ebx,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add ebx,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00047690 mov edx,[esi+00000A34h] cmp ecx,edx jge L00047690 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00047679 cmp eax,edx jge L00047679 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0004760B push edi push ecx push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebp+edx*4+00h] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L0004760B: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov edi,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L000474C7 L00047625: cmp edx,eax mov ecx,[esi+000005D4h] jz L0004764D sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00047640 inc eax L00047640: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L0004764D: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004740D pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00047679: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000476A5 L00047690: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000476A5: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L000476B4: mov dword ptr [esi+000005B0h],00000001h L000476BE: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000476D0: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L000479FF mov esi,[esp+3Ch] mov edi,[esi+0000017Ch] mov eax,[esi+000005D0h] push 00000001h push edi push esi mov [esp+34h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00047725 mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ebx mov [esp+18h],eax jmp L00047744 L00047725: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ebx mov [esp+3Ch],eax mov eax,ebx L00047744: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor ebx,ebx mov bx,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add ebx,ebp test eax,eax jbe L000479F6 mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00047798 L00047794: mov ecx,[esp+30h] L00047798: test ecx,ecx jl L00047A2D cmp ecx,[esi+00000A34h] jge L00047A2D mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L000477C7 mov [esp+40h],eax L000477C7: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L00047824 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00047820 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00047824 push edi call [edi+10h] mov eax,[edi+08h] jmp L00047824 L00047820: mov ebp,[esp+1Ch] L00047824: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L000479AC mov dword ptr [esp+1Ch],00000003h L0004784E: mov ecx,[esp+48h] test ecx,ecx jbe L000479AC mov edx,[esp+24h] mov eax,ecx dec eax mov [esp+48h],eax mov ecx,[esp+20h] xor eax,eax mov ax,[edx] mov edi,ebx add eax,[esp+18h] add edx,[esi+00004868h] mov ebx,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add ebx,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00047A41 mov edx,[esi+00000A34h] cmp ecx,edx jge L00047A41 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00047A09 cmp eax,edx jge L00047A09 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00047992 push edi push ecx push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebp+edx*4+00h] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00047992: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov edi,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L0004784E L000479AC: cmp edx,eax mov ecx,[esi+000005D4h] jz L000479D4 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L000479C7 inc eax L000479C7: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L000479D4: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00047794 L000479F6: push 00000000h push edi push esi call SUB_L000ABBE0 L000479FF: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00047A09: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L00047A1E: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00047A2D: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00047A41: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L00047A1E Align 16 L00047A60: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L00047DCE mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],edi jnc L00047AAC mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L00047ACD L00047AAC: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L00047ACD: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor ebx,ebx mov bx,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add ebx,ebp test eax,eax jbe L00047DCE mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00047B21 L00047B1D: mov ecx,[esp+30h] L00047B21: test ecx,ecx jl L00047DC4 cmp ecx,[esi+00000A34h] jge L00047DC4 mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00047B50 mov [esp+40h],eax L00047B50: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L00047BAD push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00047BA9 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00047BAD push edi call [edi+10h] mov eax,[edi+08h] jmp L00047BAD L00047BA9: mov ebp,[esp+1Ch] L00047BAD: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [edi+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00047D35 mov dword ptr [esp+1Ch],00000003h L00047BD7: mov ecx,[esp+48h] test ecx,ecx jbe L00047D35 mov edx,[esp+24h] mov eax,ecx dec eax mov [esp+48h],eax mov ecx,[esp+20h] xor eax,eax mov ax,[edx] mov edi,ebx add eax,[esp+18h] add edx,[esi+00004868h] mov ebx,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add ebx,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00047DA0 mov edx,[esi+00000A34h] cmp ecx,edx jge L00047DA0 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00047D89 cmp eax,edx jge L00047D89 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00047D1B push edi push ecx push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebp+edx*4+00h] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00047D1B: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov edi,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00047BD7 L00047D35: cmp edx,eax mov ecx,[esi+000005D4h] jz L00047D5D sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00047D50 inc eax L00047D50: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L00047D5D: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00047B1D pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00047D89: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00047DB5 L00047DA0: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00047DB5: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00047DC4: mov dword ptr [esi+000005B0h],00000001h L00047DCE: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00047DE0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004811F mov esi,[esp+40h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+10h],edi jnc L00047E2C mov ebx,[esp+44h] xor eax,eax mov ax,[ebx] add ebx,00000002h mov [esp+1Ch],ecx mov [esp+14h],eax jmp L00047E4D L00047E2C: mov edx,[esi+00004860h] mov eax,[esp+48h] sub eax,edx cdq idiv [esi+00004858h] mov ebx,[esp+44h] mov [esp+14h],ecx mov [esp+1Ch],eax mov eax,ecx L00047E4D: mov ecx,[esi+00004868h] lea ebp,[ecx+ebx] xor edx,edx mov dx,[ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,ecx mov ecx,[esp+48h] add edx,eax add ebx,eax mov eax,edx imul eax,[esp+18h] mov [esp+24h],ebx imul ebx,[esp+18h] add eax,ecx mov [esp+28h],eax mov eax,[esp+4Ch] add ebx,ecx test eax,eax jbe L0004811F mov ecx,[esp+1Ch] add edx,ecx mov [esp+34h],edx jmp L00047E9F L00047E9B: mov edx,[esp+34h] L00047E9F: test edx,edx jl L00048115 cmp edx,[esi+00000A34h] jge L00048115 mov edx,[esp+4Ch] lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L00047ECE mov [esp+44h],eax L00047ECE: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+20h],ecx lea ecx,[edx+ecx*4] mov [esp+40h],edx cmp ecx,[edi+0Ch] jc L00047F35 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+40h],eax jz L00047F35 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+20h] mov ecx,eax mov [esp+40h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00047F35 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+40h],eax L00047F35: mov edx,[esp+20h] mov ecx,[esp+44h] cmp ecx,00000003h lea eax,[eax+edx*4] mov edx,[esp+40h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+20h],eax mov dword ptr [esp+40h],00000000h jc L0004809B mov dword ptr [esp+2Ch],00000003h L00047F6B: mov eax,[esp+4Ch] test eax,eax jbe L0004809B mov edx,[esi+00004868h] dec eax mov ecx,[esp+24h] mov [esp+4Ch],eax xor eax,eax mov ax,[ebp+00h] mov edi,ebx mov ebx,[esp+14h] add ebp,edx mov [esp+30h],ebp add eax,ebx mov ebx,[esp+48h] mov edx,eax imul edx,[esp+18h] nop add ebx,edx mov edx,[esp+1Ch] add ecx,edx test ecx,ecx mov [esp+24h],eax jl L000480F1 mov ebp,[esi+00000A34h] cmp ecx,ebp jge L000480F1 add eax,edx test eax,eax jl L000480F1 cmp eax,ebp jge L000480F1 mov eax,[esp+28h] mov ecx,[esp+20h] push edi push eax push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+20h] push edi shr edx,02h push edi lea ebp,[eax+edx*4] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edi,[esp+40h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov eax,[esp+2Ch] mov ebp,[esp+30h] add edi,00000003h mov [esp+20h],ecx mov ecx,[esp+44h] add eax,00000003h cmp eax,ecx mov [esp+40h],edi mov edi,[esp+10h] mov [esp+2Ch],eax jbe L00047F6B L0004809B: mov edx,[esp+40h] cmp edx,ecx mov eax,[esi+000005D4h] jz L000480C6 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+40h] shl ecx,1 test edx,edx jnz L000480BE inc ecx L000480BE: neg ecx shl ecx,02h add [edi+08h],ecx L000480C6: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L00047E9B pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L000480F1: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00048115: mov dword ptr [esi+000005B0h],00000001h L0004811F: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L00048130: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ebp,ebp cmp eax,ebp push esi push edi jz L00048443 mov esi,[esp+40h] mov edi,[esi+0000017Ch] mov eax,[esi+000005D0h] push 00000001h push edi push esi mov [esp+24h],eax mov [esp+1Ch],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00048185 mov ebx,[esp+44h] xor eax,eax mov ax,[ebx] add ebx,00000002h mov [esp+1Ch],ebp mov [esp+14h],eax jmp L000481A4 L00048185: mov eax,[esp+48h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+44h] mov [esp+14h],ebp mov [esp+1Ch],eax mov eax,ebp L000481A4: mov ecx,[esi+00004868h] lea ebp,[ecx+ebx] xor edx,edx mov dx,[ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,ecx mov ecx,[esp+48h] add edx,eax add ebx,eax mov eax,edx imul eax,[esp+18h] mov [esp+24h],ebx imul ebx,[esp+18h] add eax,ecx mov [esp+28h],eax mov eax,[esp+4Ch] add ebx,ecx test eax,eax jbe L0004843A mov ecx,[esp+1Ch] add edx,ecx mov [esp+34h],edx jmp L000481F6 L000481F2: mov edx,[esp+34h] L000481F6: test edx,edx jl L00048471 cmp edx,[esi+00000A34h] jge L00048471 lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L00048221 mov [esp+44h],eax L00048221: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+40h],edx lea edx,[edx+ecx*4] mov [esp+20h],ecx cmp edx,[edi+0Ch] jc L00048288 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+40h],eax jz L00048288 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+20h] mov ecx,eax mov [esp+40h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00048288 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+40h],eax L00048288: mov edx,[esp+20h] mov ecx,[esp+44h] cmp ecx,00000003h lea eax,[eax+edx*4] mov edx,[esp+40h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+20h],eax mov dword ptr [esp+40h],00000000h jc L000483EE mov dword ptr [esp+2Ch],00000003h L000482BE: mov eax,[esp+4Ch] test eax,eax jbe L000483EE mov edx,[esi+00004868h] dec eax mov ecx,[esp+24h] mov [esp+4Ch],eax xor eax,eax mov ax,[ebp+00h] mov edi,ebx mov ebx,[esp+14h] add ebp,edx mov [esp+30h],ebp add eax,ebx mov ebx,[esp+48h] mov edx,eax imul edx,[esp+18h] nop add ebx,edx mov edx,[esp+1Ch] add ecx,edx test ecx,ecx mov [esp+24h],eax jl L0004844D mov ebp,[esi+00000A34h] cmp ecx,ebp jge L0004844D add eax,edx test eax,eax jl L0004844D cmp eax,ebp jge L0004844D mov eax,[esp+28h] mov ecx,[esp+20h] push edi push eax push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+20h] push edi shr edx,02h push edi lea ebp,[eax+edx*4] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edi,[esp+40h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov eax,[esp+2Ch] mov ebp,[esp+30h] add edi,00000003h mov [esp+20h],ecx mov ecx,[esp+44h] add eax,00000003h cmp eax,ecx mov [esp+40h],edi mov edi,[esp+10h] mov [esp+2Ch],eax jbe L000482BE L000483EE: mov edx,[esp+40h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00048419 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+40h] shl ecx,1 test edx,edx jnz L00048411 inc ecx L00048411: neg ecx shl ecx,02h add [edi+08h],ecx L00048419: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L000481F2 L0004843A: push 00000000h push edi push esi call SUB_L000ABBE0 L00048443: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0004844D: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00048471: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00048490: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L000487CF mov esi,[esp+40h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+10h],edi jnc L000484DC mov ebx,[esp+44h] xor eax,eax mov ax,[ebx] add ebx,00000002h mov [esp+1Ch],ecx mov [esp+14h],eax jmp L000484FD L000484DC: mov edx,[esi+00004860h] mov eax,[esp+48h] sub eax,edx cdq idiv [esi+00004858h] mov ebx,[esp+44h] mov [esp+14h],ecx mov [esp+1Ch],eax mov eax,ecx L000484FD: mov ecx,[esi+00004868h] lea ebp,[ecx+ebx] xor edx,edx mov dx,[ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,ecx mov ecx,[esp+48h] add edx,eax add ebx,eax mov eax,edx imul eax,[esp+18h] mov [esp+24h],ebx imul ebx,[esp+18h] add eax,ecx mov [esp+28h],eax mov eax,[esp+4Ch] add ebx,ecx test eax,eax jbe L000487CF mov ecx,[esp+1Ch] add edx,ecx mov [esp+34h],edx jmp L0004854F L0004854B: mov edx,[esp+34h] L0004854F: test edx,edx jl L000487C5 cmp edx,[esi+00000A34h] jge L000487C5 mov edx,[esp+4Ch] lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L0004857E mov [esp+44h],eax L0004857E: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+20h],ecx lea ecx,[edx+ecx*4] mov [esp+40h],edx cmp ecx,[edi+0Ch] jc L000485E5 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+40h],eax jz L000485E5 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+20h] mov ecx,eax mov [esp+40h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L000485E5 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+40h],eax L000485E5: mov edx,[esp+20h] mov ecx,[esp+44h] cmp ecx,00000003h lea eax,[eax+edx*4] mov edx,[esp+40h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+20h],eax mov dword ptr [esp+40h],00000000h jc L0004874B mov dword ptr [esp+2Ch],00000003h L0004861B: mov eax,[esp+4Ch] test eax,eax jbe L0004874B mov edx,[esi+00004868h] dec eax mov ecx,[esp+24h] mov [esp+4Ch],eax xor eax,eax mov ax,[ebp+00h] mov edi,ebx mov ebx,[esp+14h] add ebp,edx mov [esp+30h],ebp add eax,ebx mov ebx,[esp+48h] mov edx,eax imul edx,[esp+18h] nop add ebx,edx mov edx,[esp+1Ch] add ecx,edx test ecx,ecx mov [esp+24h],eax jl L000487A1 mov ebp,[esi+00000A34h] cmp ecx,ebp jge L000487A1 add eax,edx test eax,eax jl L000487A1 cmp eax,ebp jge L000487A1 mov eax,[esp+28h] mov ecx,[esp+20h] push edi push eax push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+20h] push edi shr edx,02h push edi lea ebp,[eax+edx*4] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edi,[esp+40h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov eax,[esp+2Ch] mov ebp,[esp+30h] add edi,00000003h mov [esp+20h],ecx mov ecx,[esp+44h] add eax,00000003h cmp eax,ecx mov [esp+40h],edi mov edi,[esp+10h] mov [esp+2Ch],eax jbe L0004861B L0004874B: mov edx,[esp+40h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00048776 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+40h] shl ecx,1 test edx,edx jnz L0004876E inc ecx L0004876E: neg ecx shl ecx,02h add [edi+08h],ecx L00048776: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0004854B pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L000487A1: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L000487C5: mov dword ptr [esi+000005B0h],00000001h L000487CF: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L000487E0: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L00048B45 mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],ebx jnc L0004882C mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L0004884D L0004882C: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L0004884D: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor edi,edi mov di,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add edi,eax mov eax,ecx imul eax,edx mov [esp+20h],edi imul edi,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add edi,ebp test eax,eax jbe L00048B45 mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L000488A1 L0004889D: mov ecx,[esp+30h] L000488A1: test ecx,ecx jl L00048B3B cmp ecx,[esi+00000A34h] jge L00048B3B mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L000488D0 mov [esp+40h],eax L000488D0: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L0004892D push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00048929 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+1Ch] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0004892D push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0004892D L00048929: mov ebp,[esp+1Ch] L0004892D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [ebx+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00048AAC mov dword ptr [esp+1Ch],00000003h L00048957: mov ecx,[esp+48h] test ecx,ecx jbe L00048AAC mov edx,[esp+24h] xor eax,eax mov ax,[edx] mov ebx,ecx mov ecx,[esp+20h] dec ebx mov [esp+48h],ebx mov ebx,edi add eax,[esp+18h] add edx,[esi+00004868h] mov edi,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add edi,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00048B17 mov edx,[esi+00000A34h] cmp ecx,edx jge L00048B17 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00048B00 cmp eax,edx jge L00048B00 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [edi] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00048A92 push ecx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebx+edx*4] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00048A92: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov ebx,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00048957 L00048AAC: cmp edx,eax mov ecx,[esi+000005D4h] jz L00048AD4 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00048AC7 inc eax L00048AC7: mov ebp,[ebx+08h] neg eax shl eax,02h add ebp,eax mov [ebx+08h],ebp L00048AD4: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004889D pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00048B00: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00048B2C L00048B17: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00048B2C: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00048B3B: mov dword ptr [esi+000005B0h],00000001h L00048B45: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00048B50: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp push esi push edi xor edi,edi cmp eax,edi jz L00048E76 mov esi,[esp+3Ch] mov ebx,[esi+0000017Ch] mov eax,[esi+000005D0h] push 00000001h push ebx push esi mov [esp+34h],eax mov [esp+20h],ebx call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00048BA5 mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],edi mov [esp+18h],eax jmp L00048BC4 L00048BA5: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],edi mov [esp+3Ch],eax mov eax,edi L00048BC4: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor edi,edi mov di,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add edi,eax mov eax,ecx imul eax,edx mov [esp+20h],edi imul edi,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add edi,ebp test eax,eax jbe L00048E6D mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00048C18 L00048C14: mov ecx,[esp+30h] L00048C18: test ecx,ecx jl L00048EA4 cmp ecx,[esi+00000A34h] jge L00048EA4 mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00048C47 mov [esp+40h],eax L00048C47: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L00048CA4 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00048CA0 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+1Ch] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00048CA4 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00048CA4 L00048CA0: mov ebp,[esp+1Ch] L00048CA4: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [ebx+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00048E23 mov dword ptr [esp+1Ch],00000003h L00048CCE: mov ecx,[esp+48h] test ecx,ecx jbe L00048E23 mov edx,[esp+24h] xor eax,eax mov ax,[edx] mov ebx,ecx mov ecx,[esp+20h] dec ebx mov [esp+48h],ebx mov ebx,edi add eax,[esp+18h] add edx,[esi+00004868h] mov edi,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add edi,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00048EB8 mov edx,[esi+00000A34h] cmp ecx,edx jge L00048EB8 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00048E80 cmp eax,edx jge L00048E80 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [edi] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00048E09 push ecx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebx+edx*4] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00048E09: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov ebx,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00048CCE L00048E23: cmp edx,eax mov ecx,[esi+000005D4h] jz L00048E4B sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00048E3E inc eax L00048E3E: mov ebp,[ebx+08h] neg eax shl eax,02h add ebp,eax mov [ebx+08h],ebp L00048E4B: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00048C14 L00048E6D: push 00000000h push ebx push esi call SUB_L000ABBE0 L00048E76: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00048E80: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L00048E95: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00048EA4: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00048EB8: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L00048E95 Align 4 L00048ED0: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L00049235 mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],ebx jnc L00048F1C mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L00048F3D L00048F1C: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L00048F3D: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor edi,edi mov di,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add edi,eax mov eax,ecx imul eax,edx mov [esp+20h],edi imul edi,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add edi,ebp test eax,eax jbe L00049235 mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00048F91 L00048F8D: mov ecx,[esp+30h] L00048F91: test ecx,ecx jl L0004922B cmp ecx,[esi+00000A34h] jge L0004922B mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00048FC0 mov [esp+40h],eax L00048FC0: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L0004901D push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00049019 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+1Ch] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0004901D push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0004901D L00049019: mov ebp,[esp+1Ch] L0004901D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [ebx+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L0004919C mov dword ptr [esp+1Ch],00000003h L00049047: mov ecx,[esp+48h] test ecx,ecx jbe L0004919C mov edx,[esp+24h] xor eax,eax mov ax,[edx] mov ebx,ecx mov ecx,[esp+20h] dec ebx mov [esp+48h],ebx mov ebx,edi add eax,[esp+18h] add edx,[esi+00004868h] mov edi,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add edi,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00049207 mov edx,[esi+00000A34h] cmp ecx,edx jge L00049207 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L000491F0 cmp eax,edx jge L000491F0 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [edi] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00049182 push ecx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebx+edx*4] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00049182: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov ebx,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00049047 L0004919C: cmp edx,eax mov ecx,[esi+000005D4h] jz L000491C4 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L000491B7 inc eax L000491B7: mov ebp,[ebx+08h] neg eax shl eax,02h add ebp,eax mov [ebx+08h],ebp L000491C4: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00048F8D pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000491F0: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0004921C L00049207: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0004921C: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004922B: mov dword ptr [esi+000005B0h],00000001h L00049235: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00049240: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L000495A5 mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],ebx jnc L0004928C mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L000492AD L0004928C: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L000492AD: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor edi,edi mov di,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add edi,eax mov eax,ecx imul eax,edx mov [esp+20h],edi imul edi,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add edi,ebp test eax,eax jbe L000495A5 mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00049301 L000492FD: mov ecx,[esp+30h] L00049301: test ecx,ecx jl L0004959B cmp ecx,[esi+00000A34h] jge L0004959B mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00049330 mov [esp+40h],eax L00049330: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L0004938D push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00049389 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+1Ch] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0004938D push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0004938D L00049389: mov ebp,[esp+1Ch] L0004938D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [ebx+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L0004950C mov dword ptr [esp+1Ch],00000003h L000493B7: mov ecx,[esp+48h] test ecx,ecx jbe L0004950C mov edx,[esp+24h] xor eax,eax mov ax,[edx] mov ebx,ecx mov ecx,[esp+20h] dec ebx mov [esp+48h],ebx mov ebx,edi add eax,[esp+18h] add edx,[esi+00004868h] mov edi,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add edi,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00049577 mov edx,[esi+00000A34h] cmp ecx,edx jge L00049577 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00049560 cmp eax,edx jge L00049560 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [edi] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000494F2 push ecx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebx+edx*4] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L000494F2: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov ebx,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L000493B7 L0004950C: cmp edx,eax mov ecx,[esi+000005D4h] jz L00049534 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00049527 inc eax L00049527: mov ebp,[ebx+08h] neg eax shl eax,02h add ebp,eax mov [ebx+08h],ebp L00049534: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000492FD pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00049560: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0004958C L00049577: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0004958C: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004959B: mov dword ptr [esi+000005B0h],00000001h L000495A5: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000495B0: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp push esi push edi xor edi,edi cmp eax,edi jz L000498D6 mov esi,[esp+3Ch] mov ebx,[esi+0000017Ch] mov eax,[esi+000005D0h] push 00000001h push ebx push esi mov [esp+34h],eax mov [esp+20h],ebx call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00049605 mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],edi mov [esp+18h],eax jmp L00049624 L00049605: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],edi mov [esp+3Ch],eax mov eax,edi L00049624: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor edi,edi mov di,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add edi,eax mov eax,ecx imul eax,edx mov [esp+20h],edi imul edi,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add edi,ebp test eax,eax jbe L000498CD mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L00049678 L00049674: mov ecx,[esp+30h] L00049678: test ecx,ecx jl L00049904 cmp ecx,[esi+00000A34h] jge L00049904 mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L000496A7 mov [esp+40h],eax L000496A7: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L00049704 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00049700 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+1Ch] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00049704 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00049704 L00049700: mov ebp,[esp+1Ch] L00049704: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [ebx+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00049883 mov dword ptr [esp+1Ch],00000003h L0004972E: mov ecx,[esp+48h] test ecx,ecx jbe L00049883 mov edx,[esp+24h] xor eax,eax mov ax,[edx] mov ebx,ecx mov ecx,[esp+20h] dec ebx mov [esp+48h],ebx mov ebx,edi add eax,[esp+18h] add edx,[esi+00004868h] mov edi,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add edi,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00049918 mov edx,[esi+00000A34h] cmp ecx,edx jge L00049918 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L000498E0 cmp eax,edx jge L000498E0 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [edi] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00049869 push ecx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebx+edx*4] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00049869: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov ebx,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L0004972E L00049883: cmp edx,eax mov ecx,[esi+000005D4h] jz L000498AB sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L0004989E inc eax L0004989E: mov ebp,[ebx+08h] neg eax shl eax,02h add ebp,eax mov [ebx+08h],ebp L000498AB: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00049674 L000498CD: push 00000000h push ebx push esi call SUB_L000ABBE0 L000498D6: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000498E0: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L000498F5: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00049904: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00049918: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L000498F5 Align 4 L00049930: mov eax,[esp+10h] sub esp,00000028h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L00049C95 mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+14h],ebx jnc L0004997C mov edx,[esp+40h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+3Ch],ecx mov [esp+18h],eax jmp L0004999D L0004997C: mov edx,[esi+00004860h] mov eax,[esp+44h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+40h] mov [esp+18h],ecx mov [esp+3Ch],eax mov eax,ecx L0004999D: mov ebp,[esi+00004868h] xor ecx,ecx mov cx,[edx] add edx,ebp xor edi,edi mov di,[edx] add edx,ebp mov ebp,[esp+44h] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add edi,eax mov eax,ecx imul eax,edx mov [esp+20h],edi imul edi,edx add eax,ebp mov [esp+2Ch],eax mov eax,[esp+48h] add edi,ebp test eax,eax jbe L00049C95 mov edx,[esp+3Ch] add ecx,edx mov [esp+30h],ecx jmp L000499F1 L000499ED: mov ecx,[esp+30h] L000499F1: test ecx,ecx jl L00049C8B cmp ecx,[esi+00000A34h] jge L00049C8B mov eax,[esp+48h] lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00049A20 mov [esp+40h],eax L00049A20: mov ebp,[esi+000005D4h] imul ebp,[esp+40h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L00049A7D push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00049A79 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+1Ch] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00049A7D push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00049A7D L00049A79: mov ebp,[esp+1Ch] L00049A7D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+34h],eax mov ebp,eax mov eax,[esp+40h] mov [ebx+08h],edx xor edx,edx cmp eax,00000003h mov [esp+10h],edx jc L00049BFC mov dword ptr [esp+1Ch],00000003h L00049AA7: mov ecx,[esp+48h] test ecx,ecx jbe L00049BFC mov edx,[esp+24h] xor eax,eax mov ax,[edx] mov ebx,ecx mov ecx,[esp+20h] dec ebx mov [esp+48h],ebx mov ebx,edi add eax,[esp+18h] add edx,[esi+00004868h] mov edi,[esp+44h] mov [esp+24h],edx mov edx,eax imul edx,[esp+28h] nop add edi,edx mov edx,[esp+3Ch] add ecx,edx test ecx,ecx mov [esp+20h],eax jl L00049C67 mov edx,[esi+00000A34h] cmp ecx,edx jge L00049C67 mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L00049C50 cmp eax,edx jge L00049C50 mov ecx,[esp+2Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [edi] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00049BE2 push ecx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+1Ch] shr edx,02h lea ebp,[ebx+edx*4] mov edx,[esp+10h] mov eax,00000003h add edx,eax add ecx,eax mov [esp+10h],edx mov [esp+1Ch],ecx L00049BE2: mov eax,[esp+1Ch] mov ecx,[esp+40h] mov ebx,[esp+14h] mov edx,[esp+10h] cmp eax,ecx mov eax,ecx jbe L00049AA7 L00049BFC: cmp edx,eax mov ecx,[esi+000005D4h] jz L00049C24 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00049C17 inc eax L00049C17: mov ebp,[ebx+08h] neg eax shl eax,02h add ebp,eax mov [ebx+08h],ebp L00049C24: mov eax,[esp+48h] imul ecx,edx mov edx,[esp+34h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000499ED pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00049C50: mov eax,[esi+000005D4h] imul eax,[esp+40h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00049C7C L00049C67: mov edx,[esi+000005D4h] imul edx,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00049C7C: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00049C8B: mov dword ptr [esi+000005B0h],00000001h L00049C95: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00049CA0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L00049FD4 mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebp,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+10h],ebp jnc L00049CEC mov edi,[esp+44h] xor eax,eax mov ax,[edi] add edi,00000002h mov [esp+1Ch],ecx mov [esp+14h],eax jmp L00049D0D L00049CEC: mov edx,[esi+00004860h] mov eax,[esp+48h] sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+44h] mov [esp+14h],ecx mov [esp+1Ch],eax mov eax,ecx L00049D0D: mov ecx,[esi+00004868h] lea ebx,[ecx+edi] xor edx,edx mov dx,[edi] xor edi,edi mov di,[ebx] add ebx,ecx mov ecx,[esp+48h] add edx,eax add edi,eax mov eax,edx imul eax,[esp+18h] mov [esp+24h],edi imul edi,[esp+18h] add eax,ecx mov [esp+28h],eax mov eax,[esp+4Ch] add edi,ecx test eax,eax jbe L00049FD4 mov ecx,[esp+1Ch] add edx,ecx mov [esp+34h],edx jmp L00049D5E L00049D5A: mov edx,[esp+34h] L00049D5E: test edx,edx jl L00049FCA cmp edx,[esi+00000A34h] jge L00049FCA mov edx,[esp+4Ch] lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L00049D8D mov [esp+44h],eax L00049D8D: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[ebp+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+20h],ecx lea ecx,[edx+ecx*4] mov [esp+40h],edx cmp ecx,[ebp+0Ch] jc L00049DF4 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+40h],eax jz L00049DF4 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+20h] mov ecx,eax mov [esp+40h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L00049DF4 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+40h],eax L00049DF4: mov edx,[esp+20h] mov ecx,[esp+44h] cmp ecx,00000003h lea eax,[eax+edx*4] mov edx,[esp+40h] mov [ebp+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+20h],eax mov dword ptr [esp+40h],00000000h jc L00049F50 mov dword ptr [esp+2Ch],00000003h L00049E2A: mov eax,[esp+4Ch] test eax,eax jbe L00049F50 mov edx,[esi+00004868h] mov ecx,[esp+24h] mov ebp,eax xor eax,eax mov ax,[ebx] dec ebp mov [esp+4Ch],ebp mov ebp,edi mov edi,[esp+14h] add ebx,edx mov [esp+30h],ebx add eax,edi mov edi,[esp+48h] mov edx,eax imul edx,[esp+18h] nop add edi,edx mov edx,[esp+1Ch] add ecx,edx test ecx,ecx mov [esp+24h],eax jl L00049FA6 mov ebx,[esi+00000A34h] cmp ecx,ebx jge L00049FA6 add eax,edx test eax,eax jl L00049FA6 cmp eax,ebx jge L00049FA6 mov eax,[esp+28h] mov ecx,[esp+20h] push eax push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+20h] shr edx,02h push ebp lea ebx,[eax+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ebp,[esp+10h] shr eax,02h lea ecx,[ebx+eax*4] mov ebx,[esp+40h] mov eax,[esp+2Ch] add ebx,00000003h mov [esp+20h],ecx mov ecx,[esp+44h] add eax,00000003h cmp eax,ecx mov [esp+40h],ebx mov ebx,[esp+30h] mov [esp+2Ch],eax jbe L00049E2A L00049F50: mov edx,[esp+40h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00049F7B sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+40h] shl ecx,1 test edx,edx jnz L00049F73 inc ecx L00049F73: neg ecx shl ecx,02h add [ebp+08h],ecx L00049F7B: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L00049D5A pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00049FA6: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L00049FCA: mov dword ptr [esi+000005B0h],00000001h L00049FD4: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L00049FE0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L0004A2E8 mov esi,[esp+40h] mov ebp,[esi+0000017Ch] mov eax,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+24h],eax mov [esp+1Ch],ebp call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0004A035 mov edi,[esp+44h] xor eax,eax mov ax,[edi] add edi,00000002h mov [esp+1Ch],ebx mov [esp+14h],eax jmp L0004A054 L0004A035: mov eax,[esp+48h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+44h] mov [esp+14h],ebx mov [esp+1Ch],eax mov eax,ebx L0004A054: mov ecx,[esi+00004868h] lea ebx,[ecx+edi] xor edx,edx mov dx,[edi] xor edi,edi mov di,[ebx] add ebx,ecx mov ecx,[esp+48h] add edx,eax add edi,eax mov eax,edx imul eax,[esp+18h] mov [esp+24h],edi imul edi,[esp+18h] add eax,ecx mov [esp+28h],eax mov eax,[esp+4Ch] add edi,ecx test eax,eax jbe L0004A2DF mov ecx,[esp+1Ch] add edx,ecx mov [esp+34h],edx jmp L0004A0A5 L0004A0A1: mov edx,[esp+34h] L0004A0A5: test edx,edx jl L0004A316 cmp edx,[esi+00000A34h] jge L0004A316 lea eax,[eax+eax+01h] cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L0004A0D0 mov [esp+44h],eax L0004A0D0: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[ebp+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+40h],edx lea edx,[edx+ecx*4] mov [esp+20h],ecx cmp edx,[ebp+0Ch] jc L0004A137 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+40h],eax jz L0004A137 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+20h] mov ecx,eax mov [esp+40h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L0004A137 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+40h],eax L0004A137: mov edx,[esp+20h] mov ecx,[esp+44h] cmp ecx,00000003h lea eax,[eax+edx*4] mov edx,[esp+40h] mov [ebp+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+20h],eax mov dword ptr [esp+40h],00000000h jc L0004A293 mov dword ptr [esp+2Ch],00000003h L0004A16D: mov eax,[esp+4Ch] test eax,eax jbe L0004A293 mov edx,[esi+00004868h] mov ecx,[esp+24h] mov ebp,eax xor eax,eax mov ax,[ebx] dec ebp mov [esp+4Ch],ebp mov ebp,edi mov edi,[esp+14h] add ebx,edx mov [esp+30h],ebx add eax,edi mov edi,[esp+48h] mov edx,eax imul edx,[esp+18h] nop add edi,edx mov edx,[esp+1Ch] add ecx,edx test ecx,ecx mov [esp+24h],eax jl L0004A2F2 mov ebx,[esi+00000A34h] cmp ecx,ebx jge L0004A2F2 add eax,edx test eax,eax jl L0004A2F2 cmp eax,ebx jge L0004A2F2 mov eax,[esp+28h] mov ecx,[esp+20h] push eax push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+20h] shr edx,02h push ebp lea ebx,[eax+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ebp,[esp+10h] shr eax,02h lea ecx,[ebx+eax*4] mov ebx,[esp+40h] mov eax,[esp+2Ch] add ebx,00000003h mov [esp+20h],ecx mov ecx,[esp+44h] add eax,00000003h cmp eax,ecx mov [esp+40h],ebx mov ebx,[esp+30h] mov [esp+2Ch],eax jbe L0004A16D L0004A293: mov edx,[esp+40h] cmp edx,ecx mov eax,[esi+000005D4h] jz L0004A2BE sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+40h] shl ecx,1 test edx,edx jnz L0004A2B6 inc ecx L0004A2B6: neg ecx shl ecx,02h add [ebp+08h],ecx L0004A2BE: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0004A0A1 L0004A2DF: push 00000000h push ebp push esi call SUB_L000ABBE0 L0004A2E8: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0004A2F2: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004A316: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004A330: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004A664 mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+10h],ebp jnc L0004A37C mov edi,[esp+44h] xor eax,eax mov ax,[edi] add edi,00000002h mov [esp+1Ch],ecx mov [esp+14h],eax jmp L0004A39D L0004A37C: mov edx,[esi+00004860h] mov eax,[esp+48h] sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+44h] mov [esp+14h],ecx mov [esp+1Ch],eax mov eax,ecx L0004A39D: mov ecx,[esi+00004868h] lea ebx,[ecx+edi] xor edx,edx mov dx,[edi] xor edi,edi mov di,[ebx] add ebx,ecx mov ecx,[esp+48h] add edx,eax add edi,eax mov eax,edx imul eax,[esp+18h] mov [esp+24h],edi imul edi,[esp+18h] add eax,ecx mov [esp+28h],eax mov eax,[esp+4Ch] add edi,ecx test eax,eax jbe L0004A664 mov ecx,[esp+1Ch] add edx,ecx mov [esp+34h],edx jmp L0004A3EE L0004A3EA: mov edx,[esp+34h] L0004A3EE: test edx,edx jl L0004A65A cmp edx,[esi+00000A34h] jge L0004A65A mov edx,[esp+4Ch] lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L0004A41D mov [esp+44h],eax L0004A41D: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[ebp+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+20h],ecx lea ecx,[edx+ecx*4] mov [esp+40h],edx cmp ecx,[ebp+0Ch] jc L0004A484 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+40h],eax jz L0004A484 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+20h] mov ecx,eax mov [esp+40h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L0004A484 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+40h],eax L0004A484: mov edx,[esp+20h] mov ecx,[esp+44h] cmp ecx,00000003h lea eax,[eax+edx*4] mov edx,[esp+40h] mov [ebp+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+20h],eax mov dword ptr [esp+40h],00000000h jc L0004A5E0 mov dword ptr [esp+2Ch],00000003h L0004A4BA: mov eax,[esp+4Ch] test eax,eax jbe L0004A5E0 mov edx,[esi+00004868h] mov ecx,[esp+24h] mov ebp,eax xor eax,eax mov ax,[ebx] dec ebp mov [esp+4Ch],ebp mov ebp,edi mov edi,[esp+14h] add ebx,edx mov [esp+30h],ebx add eax,edi mov edi,[esp+48h] mov edx,eax imul edx,[esp+18h] nop add edi,edx mov edx,[esp+1Ch] add ecx,edx test ecx,ecx mov [esp+24h],eax jl L0004A636 mov ebx,[esi+00000A34h] cmp ecx,ebx jge L0004A636 add eax,edx test eax,eax jl L0004A636 cmp eax,ebx jge L0004A636 mov eax,[esp+28h] mov ecx,[esp+20h] push eax push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+20h] shr edx,02h push ebp lea ebx,[eax+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ebp,[esp+10h] shr eax,02h lea ecx,[ebx+eax*4] mov ebx,[esp+40h] mov eax,[esp+2Ch] add ebx,00000003h mov [esp+20h],ecx mov ecx,[esp+44h] add eax,00000003h cmp eax,ecx mov [esp+40h],ebx mov ebx,[esp+30h] mov [esp+2Ch],eax jbe L0004A4BA L0004A5E0: mov edx,[esp+40h] cmp edx,ecx mov eax,[esi+000005D4h] jz L0004A60B sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+40h] shl ecx,1 test edx,edx jnz L0004A603 inc ecx L0004A603: neg ecx shl ecx,02h add [ebp+08h],ecx L0004A60B: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0004A3EA pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0004A636: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004A65A: mov dword ptr [esi+000005B0h],00000001h L0004A664: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L0004A670: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004AB4F mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov [esp+30h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+24h],ecx mov [esp+18h],ebp jnc L0004A6C8 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+1Ch],eax jmp L0004A6E9 L0004A6C8: mov eax,[esp+4Ch] mov [esp+1Ch],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+1Ch] L0004A6E9: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+2Ch],edx mov edx,[esp+30h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+28h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004AB4F mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004A73D L0004A739: mov ecx,[esp+38h] L0004A73D: test ecx,ecx jl L0004ABB5 cmp ecx,[edi+00000A34h] jge L0004ABB5 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004A769 mov [esp+48h],eax L0004A769: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004A7C6 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004A7C2 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004A7C6 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004A7C6 L0004A7C2: mov esi,[esp+44h] L0004A7C6: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004AA08 mov dword ptr [esp+10h],00000002h L0004A7F0: mov ecx,[esp+50h] test ecx,ecx jbe L0004AA08 mov eax,[esp+2Ch] xor edx,edx mov dx,[eax] mov ebp,ecx mov ecx,[esp+28h] dec ebp mov [esp+50h],ebp mov ebp,ebx add edx,[esp+1Ch] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+2Ch],eax mov eax,edx imul eax,[esp+30h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+28h],edx jl L0004AB91 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004AB91 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004AB59 cmp eax,ecx jge L0004AB59 mov eax,[esp+34h] fld dword ptr [eax+04h] fsub dword ptr [ebp+04h] fld dword ptr [ebx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0004A9E8 mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004A9E2 mov edx,[esp+44h] mov ecx,[esp+10h] push ebp push ebp inc edx push esi inc ecx push edi mov [esp+54h],edx mov [esp+20h],ecx mov dword ptr [esp+30h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004A9E2: mov [esp+24h],ebx jmp L0004A9F0 L0004A9E8: mov dword ptr [esp+20h],00000001h L0004A9F0: mov edx,[esp+10h] mov eax,[esp+48h] mov ebp,[esp+18h] cmp edx,eax mov edx,[esp+44h] jbe L0004A7F0 L0004AA08: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004AA30 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004AA23 inc eax L0004AA23: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004AA30: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004A739 mov ebx,[esp+24h] test ebx,ebx jz L0004AB4F mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0004AAA8 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004AAA8 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004AAA8 push ebp call [ebp+10h] mov eax,[ebp+08h] L0004AAA8: push ebx mov ebx,[esp+38h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+24h] mov [esp+50h],eax fild dword ptr [esp+50h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004AB4F: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004AB59: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004AB91: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004ABB5: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004ABD0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp push esi xor esi,esi cmp eax,esi push edi jz L0004B0CD mov edi,[esp+44h] mov ebp,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+40h],eax mov dword ptr [esp+30h],00000001h mov [esp+28h],esi mov [esp+24h],ebp call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0004AC31 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],esi mov [esp+20h],eax jmp L0004AC50 L0004AC31: mov eax,[esp+4Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+20h],esi mov [esp+14h],eax mov eax,esi L0004AC50: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+30h],edx mov edx,[esp+34h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+2Ch],ebx imul ebx,edx add eax,esi mov [esp+28h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004B0C4 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004ACA4 L0004ACA0: mov ecx,[esp+38h] L0004ACA4: test ecx,ecx jl L0004B0FB cmp ecx,[edi+00000A34h] jge L0004B0FB mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004ACD0 mov [esp+48h],eax L0004ACD0: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004AD2D push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004AD29 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004AD2D push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004AD2D L0004AD29: mov esi,[esp+44h] L0004AD2D: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004AF6F mov dword ptr [esp+10h],00000002h L0004AD57: mov ecx,[esp+50h] test ecx,ecx jbe L0004AF6F mov eax,[esp+30h] xor edx,edx mov dx,[eax] mov ebp,ecx mov ecx,[esp+2Ch] dec ebp mov [esp+50h],ebp mov ebp,ebx add edx,[esp+20h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+30h],eax mov eax,edx imul eax,[esp+34h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+2Ch],edx jl L0004B10F mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004B10F mov eax,[esp+14h] add eax,edx test eax,eax jl L0004B0D7 cmp eax,ecx jge L0004B0D7 mov eax,[esp+28h] fld dword ptr [eax+04h] fsub dword ptr [ebp+04h] fld dword ptr [ebx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0004AF4F mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004AF49 mov edx,[esp+44h] mov ecx,[esp+10h] push ebp push ebp inc edx push esi inc ecx push edi mov [esp+54h],edx mov [esp+20h],ecx mov dword ptr [esp+34h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004AF49: mov [esp+1Ch],ebx jmp L0004AF57 L0004AF4F: mov dword ptr [esp+24h],00000001h L0004AF57: mov edx,[esp+10h] mov eax,[esp+48h] mov ebp,[esp+18h] cmp edx,eax mov edx,[esp+44h] jbe L0004AD57 L0004AF6F: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004AF97 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004AF8A inc eax L0004AF8A: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004AF97: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004ACA0 mov eax,[esp+1Ch] test eax,eax jz L0004B0C4 mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx mov esi,eax lea edx,[esi+ebx*4] cmp edx,ecx jc L0004B017 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov esi,eax jz L0004B017 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L0004B017 push ebp call [ebp+10h] mov eax,[ebp+08h] mov esi,eax L0004B017: mov ecx,[esp+28h] lea edx,[eax+ebx*4] mov eax,[esp+1Ch] push eax push ecx add esi,00000004h push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+28h] mov [esp+50h],eax fild dword ptr [esp+50h] mov eax,[esp+1Ch] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] lea edx,[eax+eax] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004B0C4: push 00000000h push ebp push edi call SUB_L000ABBE0 L0004B0CD: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004B0D7: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0004B0FB: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004B10F: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0004B150: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004B62F mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov [esp+30h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+24h],ecx mov [esp+18h],ebp jnc L0004B1A8 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+1Ch],eax jmp L0004B1C9 L0004B1A8: mov eax,[esp+4Ch] mov [esp+1Ch],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+1Ch] L0004B1C9: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+2Ch],edx mov edx,[esp+30h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+28h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004B62F mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004B21D L0004B219: mov ecx,[esp+38h] L0004B21D: test ecx,ecx jl L0004B695 cmp ecx,[edi+00000A34h] jge L0004B695 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004B249 mov [esp+48h],eax L0004B249: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004B2A6 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004B2A2 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004B2A6 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004B2A6 L0004B2A2: mov esi,[esp+44h] L0004B2A6: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004B4E8 mov dword ptr [esp+10h],00000002h L0004B2D0: mov ecx,[esp+50h] test ecx,ecx jbe L0004B4E8 mov eax,[esp+2Ch] xor edx,edx mov dx,[eax] mov ebp,ecx mov ecx,[esp+28h] dec ebp mov [esp+50h],ebp mov ebp,ebx add edx,[esp+1Ch] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+2Ch],eax mov eax,edx imul eax,[esp+30h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+28h],edx jl L0004B671 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004B671 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004B639 cmp eax,ecx jge L0004B639 mov eax,[esp+34h] fld dword ptr [eax+04h] fsub dword ptr [ebp+04h] fld dword ptr [ebx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0004B4C8 mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004B4C2 mov edx,[esp+44h] mov ecx,[esp+10h] push ebp push ebp inc edx push esi inc ecx push edi mov [esp+54h],edx mov [esp+20h],ecx mov dword ptr [esp+30h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004B4C2: mov [esp+24h],ebx jmp L0004B4D0 L0004B4C8: mov dword ptr [esp+20h],00000001h L0004B4D0: mov edx,[esp+10h] mov eax,[esp+48h] mov ebp,[esp+18h] cmp edx,eax mov edx,[esp+44h] jbe L0004B2D0 L0004B4E8: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004B510 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004B503 inc eax L0004B503: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004B510: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004B219 mov ebx,[esp+24h] test ebx,ebx jz L0004B62F mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0004B588 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004B588 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004B588 push ebp call [ebp+10h] mov eax,[ebp+08h] L0004B588: push ebx mov ebx,[esp+38h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+24h] mov [esp+50h],eax fild dword ptr [esp+50h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004B62F: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004B639: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004B671: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004B695: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004B6B0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004BB8F mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov [esp+30h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+24h],ecx mov [esp+18h],ebp jnc L0004B708 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+1Ch],eax jmp L0004B729 L0004B708: mov eax,[esp+4Ch] mov [esp+1Ch],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+1Ch] L0004B729: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+2Ch],edx mov edx,[esp+30h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+28h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004BB8F mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004B77D L0004B779: mov ecx,[esp+38h] L0004B77D: test ecx,ecx jl L0004BBF5 cmp ecx,[edi+00000A34h] jge L0004BBF5 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004B7A9 mov [esp+48h],eax L0004B7A9: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004B806 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004B802 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004B806 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004B806 L0004B802: mov esi,[esp+44h] L0004B806: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004BA48 mov dword ptr [esp+10h],00000002h L0004B830: mov ecx,[esp+50h] test ecx,ecx jbe L0004BA48 mov eax,[esp+2Ch] xor edx,edx mov dx,[eax] mov ebp,ecx mov ecx,[esp+28h] dec ebp mov [esp+50h],ebp mov ebp,ebx add edx,[esp+1Ch] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+2Ch],eax mov eax,edx imul eax,[esp+30h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+28h],edx jl L0004BBD1 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004BBD1 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004BB99 cmp eax,ecx jge L0004BB99 mov eax,[esp+34h] fld dword ptr [eax+04h] fsub dword ptr [ebp+04h] fld dword ptr [ebx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0004BA28 mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004BA22 mov edx,[esp+44h] mov ecx,[esp+10h] push ebp push ebp inc edx push esi inc ecx push edi mov [esp+54h],edx mov [esp+20h],ecx mov dword ptr [esp+30h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004BA22: mov [esp+24h],ebx jmp L0004BA30 L0004BA28: mov dword ptr [esp+20h],00000001h L0004BA30: mov edx,[esp+10h] mov eax,[esp+48h] mov ebp,[esp+18h] cmp edx,eax mov edx,[esp+44h] jbe L0004B830 L0004BA48: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004BA70 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004BA63 inc eax L0004BA63: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004BA70: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004B779 mov ebx,[esp+24h] test ebx,ebx jz L0004BB8F mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0004BAE8 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004BAE8 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004BAE8 push ebp call [ebp+10h] mov eax,[ebp+08h] L0004BAE8: push ebx mov ebx,[esp+38h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+24h] mov [esp+50h],eax fild dword ptr [esp+50h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004BB8F: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004BB99: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004BBD1: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004BBF5: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004BC10: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp push esi xor esi,esi cmp eax,esi push edi jz L0004C10D mov edi,[esp+44h] mov ebp,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+40h],eax mov dword ptr [esp+30h],00000001h mov [esp+28h],esi mov [esp+24h],ebp call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0004BC71 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],esi mov [esp+20h],eax jmp L0004BC90 L0004BC71: mov eax,[esp+4Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+20h],esi mov [esp+14h],eax mov eax,esi L0004BC90: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+30h],edx mov edx,[esp+34h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+2Ch],ebx imul ebx,edx add eax,esi mov [esp+28h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004C104 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004BCE4 L0004BCE0: mov ecx,[esp+38h] L0004BCE4: test ecx,ecx jl L0004C13B cmp ecx,[edi+00000A34h] jge L0004C13B mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004BD10 mov [esp+48h],eax L0004BD10: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004BD6D push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004BD69 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004BD6D push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004BD6D L0004BD69: mov esi,[esp+44h] L0004BD6D: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004BFAF mov dword ptr [esp+10h],00000002h L0004BD97: mov ecx,[esp+50h] test ecx,ecx jbe L0004BFAF mov eax,[esp+30h] xor edx,edx mov dx,[eax] mov ebp,ecx mov ecx,[esp+2Ch] dec ebp mov [esp+50h],ebp mov ebp,ebx add edx,[esp+20h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+30h],eax mov eax,edx imul eax,[esp+34h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+2Ch],edx jl L0004C14F mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004C14F mov eax,[esp+14h] add eax,edx test eax,eax jl L0004C117 cmp eax,ecx jge L0004C117 mov eax,[esp+28h] fld dword ptr [eax+04h] fsub dword ptr [ebp+04h] fld dword ptr [ebx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0004BF8F mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004BF89 mov edx,[esp+44h] mov ecx,[esp+10h] push ebp push ebp inc edx push esi inc ecx push edi mov [esp+54h],edx mov [esp+20h],ecx mov dword ptr [esp+34h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004BF89: mov [esp+1Ch],ebx jmp L0004BF97 L0004BF8F: mov dword ptr [esp+24h],00000001h L0004BF97: mov edx,[esp+10h] mov eax,[esp+48h] mov ebp,[esp+18h] cmp edx,eax mov edx,[esp+44h] jbe L0004BD97 L0004BFAF: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004BFD7 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004BFCA inc eax L0004BFCA: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004BFD7: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004BCE0 mov eax,[esp+1Ch] test eax,eax jz L0004C104 mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx mov esi,eax lea edx,[esi+ebx*4] cmp edx,ecx jc L0004C057 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov esi,eax jz L0004C057 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L0004C057 push ebp call [ebp+10h] mov eax,[ebp+08h] mov esi,eax L0004C057: mov ecx,[esp+28h] lea edx,[eax+ebx*4] mov eax,[esp+1Ch] push eax push ecx add esi,00000004h push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+28h] mov [esp+50h],eax fild dword ptr [esp+50h] mov eax,[esp+1Ch] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] lea edx,[eax+eax] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004C104: push 00000000h push ebp push edi call SUB_L000ABBE0 L0004C10D: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004C117: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0004C13B: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004C14F: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0004C190: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004C66F mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov [esp+30h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+24h],ecx mov [esp+18h],ebp jnc L0004C1E8 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+1Ch],eax jmp L0004C209 L0004C1E8: mov eax,[esp+4Ch] mov [esp+1Ch],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+1Ch] L0004C209: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+2Ch],edx mov edx,[esp+30h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+28h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004C66F mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004C25D L0004C259: mov ecx,[esp+38h] L0004C25D: test ecx,ecx jl L0004C6D5 cmp ecx,[edi+00000A34h] jge L0004C6D5 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004C289 mov [esp+48h],eax L0004C289: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004C2E6 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004C2E2 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004C2E6 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004C2E6 L0004C2E2: mov esi,[esp+44h] L0004C2E6: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004C528 mov dword ptr [esp+10h],00000002h L0004C310: mov ecx,[esp+50h] test ecx,ecx jbe L0004C528 mov eax,[esp+2Ch] xor edx,edx mov dx,[eax] mov ebp,ecx mov ecx,[esp+28h] dec ebp mov [esp+50h],ebp mov ebp,ebx add edx,[esp+1Ch] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+2Ch],eax mov eax,edx imul eax,[esp+30h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+28h],edx jl L0004C6B1 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004C6B1 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004C679 cmp eax,ecx jge L0004C679 mov eax,[esp+34h] fld dword ptr [eax+04h] fsub dword ptr [ebp+04h] fld dword ptr [ebx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0004C508 mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004C502 mov edx,[esp+44h] mov ecx,[esp+10h] push ebp push ebp inc edx push esi inc ecx push edi mov [esp+54h],edx mov [esp+20h],ecx mov dword ptr [esp+30h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004C502: mov [esp+24h],ebx jmp L0004C510 L0004C508: mov dword ptr [esp+20h],00000001h L0004C510: mov edx,[esp+10h] mov eax,[esp+48h] mov ebp,[esp+18h] cmp edx,eax mov edx,[esp+44h] jbe L0004C310 L0004C528: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004C550 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004C543 inc eax L0004C543: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004C550: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004C259 mov ebx,[esp+24h] test ebx,ebx jz L0004C66F mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0004C5C8 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004C5C8 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004C5C8 push ebp call [ebp+10h] mov eax,[ebp+08h] L0004C5C8: push ebx mov ebx,[esp+38h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+24h] mov [esp+50h],eax fild dword ptr [esp+50h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004C66F: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004C679: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004C6B1: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0004C6D5: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004C6F0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004CB98 mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov [esp+28h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+2Ch],00000001h mov [esp+1Ch],ecx jnc L0004C744 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L0004C765 L0004C744: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L0004C765: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,esi mov [esp+3Ch],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004CB98 mov edx,[esp+14h] add ecx,edx mov [esp+30h],ecx jmp L0004C7B9 L0004C7B5: mov ecx,[esp+30h] L0004C7B9: test ecx,ecx jl L0004CBF6 cmp ecx,[edi+00000A34h] jge L0004CBF6 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004C7E5 mov [esp+48h],eax L0004C7E5: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004C842 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004C83E mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004C842 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004C842 L0004C83E: mov esi,[esp+44h] L0004C842: lea edx,[eax+esi*4] add eax,00000004h mov [esp+38h],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004CA51 mov dword ptr [esp+10h],00000002h L0004C86C: mov ecx,[esp+50h] test ecx,ecx jbe L0004CA51 mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+24h] mov ecx,[esp+20h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebx add edx,[esp+18h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+24h],eax mov eax,edx imul eax,[esp+28h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+20h],edx jl L0004CBD6 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004CBD6 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004CBA2 cmp eax,ecx jge L0004CBA2 mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] mov eax,[esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004CA37 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push eax push esi push edi mov [esp+54h],ecx mov dword ptr [esp+3Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+1Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004CA37: mov edx,[esp+48h] cmp [esp+10h],edx mov edx,[esp+44h] mov eax,[esp+48h] mov [esp+1Ch],ebx jbe L0004C86C L0004CA51: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004CA79 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004CA6C inc eax L0004CA6C: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004CA79: mov eax,[esp+38h] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004C7B5 mov ebx,[esp+1Ch] test ebx,ebx jz L0004CB98 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0004CAF1 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004CAF1 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004CAF1 push ebp call [ebp+10h] mov eax,[ebp+08h] L0004CAF1: push ebx mov ebx,[esp+40h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+50h],eax fild dword ptr [esp+50h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004CB98: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004CBA2: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx shl edx,02h add eax,edx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004CBD6: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax L0004CBF6: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004CC10: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp push esi xor esi,esi cmp eax,esi push edi jz L0004D0D6 mov edi,[esp+44h] mov ebp,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+34h],eax mov dword ptr [esp+38h],00000001h mov [esp+24h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0004CC6D mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],esi mov [esp+1Ch],eax jmp L0004CC8C L0004CC6D: mov eax,[esp+4Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+1Ch],esi mov [esp+14h],eax mov eax,esi L0004CC8C: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,esi mov [esp+30h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004D0CD mov edx,[esp+14h] add ecx,edx mov [esp+34h],ecx jmp L0004CCE0 L0004CCDC: mov ecx,[esp+34h] L0004CCE0: test ecx,ecx jl L0004D100 cmp ecx,[edi+00000A34h] jge L0004D100 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004CD0C mov [esp+48h],eax L0004CD0C: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004CD69 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004CD65 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004CD69 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004CD69 L0004CD65: mov esi,[esp+44h] L0004CD69: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004CF78 mov dword ptr [esp+10h],00000002h L0004CD93: mov ecx,[esp+50h] test ecx,ecx jbe L0004CF78 mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+24h] mov ecx,[esp+20h] xor edx,edx mov dx,[eax] mov [esp+18h],ebx add edx,[esp+1Ch] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+24h],eax mov eax,edx imul eax,[esp+28h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+20h],edx jl L0004D114 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004D114 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004D0E0 cmp eax,ecx jge L0004D0E0 mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004CF5E mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+18h] push eax push eax push esi push edi mov [esp+54h],ecx mov dword ptr [esp+3Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+18h] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004CF5E: mov edx,[esp+48h] cmp [esp+10h],edx mov edx,[esp+44h] mov eax,[esp+48h] mov [esp+18h],ebx jbe L0004CD93 L0004CF78: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004CFA0 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004CF93 inc eax L0004CF93: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004CFA0: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004CCDC mov eax,[esp+18h] test eax,eax jz L0004D0CD mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx mov esi,eax lea edx,[esi+ebx*4] cmp edx,ecx jc L0004D020 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov esi,eax jz L0004D020 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L0004D020 push ebp call [ebp+10h] mov eax,[ebp+08h] mov esi,eax L0004D020: mov ecx,[esp+30h] lea edx,[eax+ebx*4] mov eax,[esp+18h] push eax push ecx add esi,00000004h push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+50h],eax fild dword ptr [esp+50h] mov eax,[esp+18h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] lea edx,[eax+eax] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004D0CD: push 00000000h push ebp push edi call SUB_L000ABBE0 L0004D0D6: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004D0E0: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx shl edx,02h add eax,edx mov [ebp+08h],eax L0004D100: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004D114: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0004D150: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004D5F8 mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov [esp+28h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+2Ch],00000001h mov [esp+1Ch],ecx jnc L0004D1A4 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L0004D1C5 L0004D1A4: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L0004D1C5: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+24h],edx mov edx,[esp+28h] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+20h],ebx imul ebx,edx add eax,esi mov [esp+3Ch],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004D5F8 mov edx,[esp+14h] add ecx,edx mov [esp+30h],ecx jmp L0004D219 L0004D215: mov ecx,[esp+30h] L0004D219: test ecx,ecx jl L0004D656 cmp ecx,[edi+00000A34h] jge L0004D656 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004D245 mov [esp+48h],eax L0004D245: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004D2A2 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004D29E mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004D2A2 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004D2A2 L0004D29E: mov esi,[esp+44h] L0004D2A2: lea edx,[eax+esi*4] add eax,00000004h mov [esp+38h],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004D4B1 mov dword ptr [esp+10h],00000002h L0004D2CC: mov ecx,[esp+50h] test ecx,ecx jbe L0004D4B1 mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+24h] mov ecx,[esp+20h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebx add edx,[esp+18h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+24h],eax mov eax,edx imul eax,[esp+28h] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+20h],edx jl L0004D636 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004D636 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004D602 cmp eax,ecx jge L0004D602 mov eax,[esp+44h] mov edx,[esp+10h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+54h],eax mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] mov eax,[esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004D497 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push eax push esi push edi mov [esp+54h],ecx mov dword ptr [esp+3Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+1Ch] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0004D497: mov edx,[esp+48h] cmp [esp+10h],edx mov edx,[esp+44h] mov eax,[esp+48h] mov [esp+1Ch],ebx jbe L0004D2CC L0004D4B1: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004D4D9 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004D4CC inc eax L0004D4CC: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004D4D9: mov eax,[esp+38h] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0004D215 mov ebx,[esp+1Ch] test ebx,ebx jz L0004D5F8 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0004D551 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004D551 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004D551 push ebp call [ebp+10h] mov eax,[ebp+08h] L0004D551: push ebx mov ebx,[esp+40h] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+50h],eax fild dword ptr [esp+50h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L0004D5F8: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004D602: mov ecx,[edi+000005D4h] imul ecx,[esp+48h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx shl edx,02h add eax,edx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004D636: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax L0004D656: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004D670: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004DB49 mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+30h],ecx jnc L0004D6C4 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L0004D6E5 L0004D6C4: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L0004D6E5: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+28h],edx mov edx,[esp+2Ch] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+24h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004DB49 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004D739 L0004D735: mov ecx,[esp+38h] L0004D739: test ecx,ecx jl L0004DBA7 cmp ecx,[edi+00000A34h] jge L0004DBA7 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004D765 mov [esp+48h],eax L0004D765: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004D7C2 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004D7BE mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004D7C2 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004D7C2 L0004D7BE: mov esi,[esp+44h] L0004D7C2: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004DA0A mov dword ptr [esp+10h],00000002h L0004D7EC: mov ecx,[esp+50h] test ecx,ecx jbe L0004DA0A mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+28h] mov ecx,[esp+24h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebx add edx,[esp+18h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+28h],eax mov eax,edx imul eax,[esp+2Ch] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+24h],edx jl L0004DB87 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004DB87 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004DB53 cmp eax,ecx jge L0004DB53 mov eax,[esp+1Ch] mov ecx,[esp+34h] fld dword ptr [ecx+04h] fsub dword ptr [eax+04h] fld dword ptr [ebx] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0004D9EC mov ecx,[esp+44h] mov eax,[esp+10h] push ebx inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004D9E6 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+2Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+30h],eax fild dword ptr [esp+30h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004D9E6: mov [esp+30h],ebx jmp L0004D9F4 L0004D9EC: mov dword ptr [esp+20h],00000001h L0004D9F4: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov eax,ecx jbe L0004D7EC L0004DA0A: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004DA32 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004DA25 inc eax L0004DA25: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004DA32: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+3Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004D735 mov eax,[esp+30h] test eax,eax jz L0004DB49 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004DAAA push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004DAAA mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004DAAA push ebp call [ebp+10h] mov eax,[ebp+08h] L0004DAAA: lea edx,[eax+esi*4] mov [ebp+08h],edx mov ebp,[esp+34h] push ebp lea esi,[eax+04h] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L0004DB49: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004DB53: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004DB87: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebp+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebp+08h],ecx L0004DBA7: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004DBC0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp push esi xor esi,esi cmp eax,esi push edi jz L0004E0AE mov edi,[esp+44h] mov ebx,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+3Ch],eax mov dword ptr [esp+2Ch],00000001h mov [esp+40h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0004DC1D mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],esi mov [esp+18h],eax jmp L0004DC3C L0004DC1D: mov eax,[esp+4Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+18h],esi mov [esp+14h],eax mov eax,esi L0004DC3C: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebp,ebp mov bp,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+2Ch],edx mov edx,[esp+30h] add ecx,eax add ebp,eax mov eax,ecx imul eax,edx mov [esp+28h],ebp imul ebp,edx add eax,esi mov [esp+24h],eax mov eax,[esp+50h] add ebp,esi test eax,eax jbe L0004E0A5 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004DC90 L0004DC8C: mov ecx,[esp+38h] L0004DC90: test ecx,ecx jl L0004E0D8 cmp ecx,[edi+00000A34h] jge L0004E0D8 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004DCBC mov [esp+48h],eax L0004DCBC: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004DD19 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004DD15 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+44h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004DD19 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0004DD19 L0004DD15: mov esi,[esp+44h] L0004DD19: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebx+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004DF62 mov dword ptr [esp+10h],00000002h L0004DD43: mov ecx,[esp+50h] test ecx,ecx jbe L0004DF62 mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+2Ch] mov ecx,[esp+28h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebp add edx,[esp+18h] add eax,[edi+00004868h] mov ebp,[esp+4Ch] mov [esp+2Ch],eax mov eax,edx imul eax,[esp+30h] nop add ebp,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+28h],edx jl L0004E0EC mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004E0EC mov eax,[esp+14h] add eax,edx test eax,eax jl L0004E0B8 cmp eax,ecx jge L0004E0B8 mov eax,[esp+1Ch] mov ecx,[esp+24h] fld dword ptr [ecx+04h] fsub dword ptr [eax+04h] fld dword ptr [ebp+00h] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0004DF44 mov ecx,[esp+44h] mov eax,[esp+10h] push ebp inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004DF3E mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+2Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004DF3E: mov [esp+34h],ebp jmp L0004DF4C L0004DF44: mov dword ptr [esp+20h],00000001h L0004DF4C: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov eax,ecx jbe L0004DD43 L0004DF62: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004DF8A sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004DF7D inc eax L0004DF7D: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L0004DF8A: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+3Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004DC8C mov eax,[esp+34h] test eax,eax jz L0004E0A5 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004E002 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004E002 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004E002 push ebx call [ebx+10h] mov eax,[ebx+08h] L0004E002: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+24h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+24h] mov [esp+50h],eax fild dword ptr [esp+50h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L0004E0A5: push 00000000h push ebx push edi call SUB_L000ABBE0 L0004E0AE: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004E0B8: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx mov [ebx+08h],eax L0004E0D8: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004E0EC: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebx+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004E120: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004E5F9 mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+30h],ecx jnc L0004E174 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L0004E195 L0004E174: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L0004E195: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+28h],edx mov edx,[esp+2Ch] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+24h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004E5F9 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004E1E9 L0004E1E5: mov ecx,[esp+38h] L0004E1E9: test ecx,ecx jl L0004E657 cmp ecx,[edi+00000A34h] jge L0004E657 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004E215 mov [esp+48h],eax L0004E215: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004E272 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004E26E mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004E272 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004E272 L0004E26E: mov esi,[esp+44h] L0004E272: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004E4BA mov dword ptr [esp+10h],00000002h L0004E29C: mov ecx,[esp+50h] test ecx,ecx jbe L0004E4BA mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+28h] mov ecx,[esp+24h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebx add edx,[esp+18h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+28h],eax mov eax,edx imul eax,[esp+2Ch] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+24h],edx jl L0004E637 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004E637 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004E603 cmp eax,ecx jge L0004E603 mov eax,[esp+1Ch] mov ecx,[esp+34h] fld dword ptr [ecx+04h] fsub dword ptr [eax+04h] fld dword ptr [ebx] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0004E49C mov ecx,[esp+44h] mov eax,[esp+10h] push ebx inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004E496 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+2Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+30h],eax fild dword ptr [esp+30h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004E496: mov [esp+30h],ebx jmp L0004E4A4 L0004E49C: mov dword ptr [esp+20h],00000001h L0004E4A4: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov eax,ecx jbe L0004E29C L0004E4BA: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004E4E2 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004E4D5 inc eax L0004E4D5: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004E4E2: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+3Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004E1E5 mov eax,[esp+30h] test eax,eax jz L0004E5F9 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004E55A push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004E55A mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004E55A push ebp call [ebp+10h] mov eax,[ebp+08h] L0004E55A: lea edx,[eax+esi*4] mov [ebp+08h],edx mov ebp,[esp+34h] push ebp lea esi,[eax+04h] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L0004E5F9: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004E603: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004E637: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebp+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebp+08h],ecx L0004E657: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004E670: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004EB49 mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+30h],ecx jnc L0004E6C4 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L0004E6E5 L0004E6C4: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L0004E6E5: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+28h],edx mov edx,[esp+2Ch] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+24h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004EB49 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004E739 L0004E735: mov ecx,[esp+38h] L0004E739: test ecx,ecx jl L0004EBA7 cmp ecx,[edi+00000A34h] jge L0004EBA7 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004E765 mov [esp+48h],eax L0004E765: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004E7C2 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004E7BE mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004E7C2 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004E7C2 L0004E7BE: mov esi,[esp+44h] L0004E7C2: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004EA0A mov dword ptr [esp+10h],00000002h L0004E7EC: mov ecx,[esp+50h] test ecx,ecx jbe L0004EA0A mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+28h] mov ecx,[esp+24h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebx add edx,[esp+18h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+28h],eax mov eax,edx imul eax,[esp+2Ch] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+24h],edx jl L0004EB87 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004EB87 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004EB53 cmp eax,ecx jge L0004EB53 mov eax,[esp+1Ch] mov ecx,[esp+34h] fld dword ptr [ecx+04h] fsub dword ptr [eax+04h] fld dword ptr [ebx] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0004E9EC mov ecx,[esp+44h] mov eax,[esp+10h] push ebx inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004E9E6 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+2Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+30h],eax fild dword ptr [esp+30h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004E9E6: mov [esp+30h],ebx jmp L0004E9F4 L0004E9EC: mov dword ptr [esp+20h],00000001h L0004E9F4: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov eax,ecx jbe L0004E7EC L0004EA0A: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004EA32 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004EA25 inc eax L0004EA25: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004EA32: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+3Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004E735 mov eax,[esp+30h] test eax,eax jz L0004EB49 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004EAAA push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004EAAA mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004EAAA push ebp call [ebp+10h] mov eax,[ebp+08h] L0004EAAA: lea edx,[eax+esi*4] mov [ebp+08h],edx mov ebp,[esp+34h] push ebp lea esi,[eax+04h] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L0004EB49: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004EB53: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004EB87: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebp+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebp+08h],ecx L0004EBA7: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004EBC0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp push esi xor esi,esi cmp eax,esi push edi jz L0004F0AE mov edi,[esp+44h] mov ebx,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+3Ch],eax mov dword ptr [esp+2Ch],00000001h mov [esp+40h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0004EC1D mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],esi mov [esp+18h],eax jmp L0004EC3C L0004EC1D: mov eax,[esp+4Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+18h],esi mov [esp+14h],eax mov eax,esi L0004EC3C: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebp,ebp mov bp,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+2Ch],edx mov edx,[esp+30h] add ecx,eax add ebp,eax mov eax,ecx imul eax,edx mov [esp+28h],ebp imul ebp,edx add eax,esi mov [esp+24h],eax mov eax,[esp+50h] add ebp,esi test eax,eax jbe L0004F0A5 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004EC90 L0004EC8C: mov ecx,[esp+38h] L0004EC90: test ecx,ecx jl L0004F0D8 cmp ecx,[edi+00000A34h] jge L0004F0D8 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004ECBC mov [esp+48h],eax L0004ECBC: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004ED19 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004ED15 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+44h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004ED19 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0004ED19 L0004ED15: mov esi,[esp+44h] L0004ED19: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebx+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004EF62 mov dword ptr [esp+10h],00000002h L0004ED43: mov ecx,[esp+50h] test ecx,ecx jbe L0004EF62 mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+2Ch] mov ecx,[esp+28h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebp add edx,[esp+18h] add eax,[edi+00004868h] mov ebp,[esp+4Ch] mov [esp+2Ch],eax mov eax,edx imul eax,[esp+30h] nop add ebp,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+28h],edx jl L0004F0EC mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004F0EC mov eax,[esp+14h] add eax,edx test eax,eax jl L0004F0B8 cmp eax,ecx jge L0004F0B8 mov eax,[esp+1Ch] mov ecx,[esp+24h] fld dword ptr [ecx+04h] fsub dword ptr [eax+04h] fld dword ptr [ebp+00h] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0004EF44 mov ecx,[esp+44h] mov eax,[esp+10h] push ebp inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004EF3E mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+2Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004EF3E: mov [esp+34h],ebp jmp L0004EF4C L0004EF44: mov dword ptr [esp+20h],00000001h L0004EF4C: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov eax,ecx jbe L0004ED43 L0004EF62: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004EF8A sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004EF7D inc eax L0004EF7D: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L0004EF8A: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+3Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004EC8C mov eax,[esp+34h] test eax,eax jz L0004F0A5 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004F002 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004F002 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004F002 push ebx call [ebx+10h] mov eax,[ebx+08h] L0004F002: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+24h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+24h] mov [esp+50h],eax fild dword ptr [esp+50h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L0004F0A5: push 00000000h push ebx push edi call SUB_L000ABBE0 L0004F0AE: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004F0B8: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx mov [ebx+08h],eax L0004F0D8: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004F0EC: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebx+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004F120: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004F5F9 mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000001h mov [esp+30h],ecx jnc L0004F174 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L0004F195 L0004F174: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L0004F195: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebx,ebx mov bx,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+28h],edx mov edx,[esp+2Ch] add ecx,eax add ebx,eax mov eax,ecx imul eax,edx mov [esp+24h],ebx imul ebx,edx add eax,esi mov [esp+34h],eax mov eax,[esp+50h] add ebx,esi test eax,eax jbe L0004F5F9 mov edx,[esp+14h] add ecx,edx mov [esp+38h],ecx jmp L0004F1E9 L0004F1E5: mov ecx,[esp+38h] L0004F1E9: test ecx,ecx jl L0004F657 cmp ecx,[edi+00000A34h] jge L0004F657 mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004F215 mov [esp+48h],eax L0004F215: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004F272 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004F26E mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004F272 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0004F272 L0004F26E: mov esi,[esp+44h] L0004F272: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004F4BA mov dword ptr [esp+10h],00000002h L0004F29C: mov ecx,[esp+50h] test ecx,ecx jbe L0004F4BA mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+28h] mov ecx,[esp+24h] xor edx,edx mov dx,[eax] mov [esp+1Ch],ebx add edx,[esp+18h] add eax,[edi+00004868h] mov ebx,[esp+4Ch] mov [esp+28h],eax mov eax,edx imul eax,[esp+2Ch] nop add ebx,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+24h],edx jl L0004F637 mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004F637 mov eax,[esp+14h] add eax,edx test eax,eax jl L0004F603 cmp eax,ecx jge L0004F603 mov eax,[esp+1Ch] mov ecx,[esp+34h] fld dword ptr [ecx+04h] fsub dword ptr [eax+04h] fld dword ptr [ebx] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0004F49C mov ecx,[esp+44h] mov eax,[esp+10h] push ebx inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004F496 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+1Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+2Ch],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+30h],eax fild dword ptr [esp+30h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004F496: mov [esp+30h],ebx jmp L0004F4A4 L0004F49C: mov dword ptr [esp+20h],00000001h L0004F4A4: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov eax,ecx jbe L0004F29C L0004F4BA: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004F4E2 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004F4D5 inc eax L0004F4D5: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0004F4E2: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+3Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004F1E5 mov eax,[esp+30h] test eax,eax jz L0004F5F9 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004F55A push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0004F55A mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004F55A push ebp call [ebp+10h] mov eax,[ebp+08h] L0004F55A: lea edx,[eax+esi*4] mov [ebp+08h],edx mov ebp,[esp+34h] push ebp lea esi,[eax+04h] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L0004F5F9: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004F603: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004F637: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebp+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebp+08h],ecx L0004F657: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0004F670: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0004FB0C mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] mov [esp+24h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+28h],00000001h mov [esp+2Ch],ecx jnc L0004F6C4 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L0004F6E5 L0004F6C4: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L0004F6E5: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebp,ebp mov bp,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+20h],edx mov edx,[esp+24h] add ecx,eax add ebp,eax mov eax,ecx imul eax,edx mov [esp+1Ch],ebp imul ebp,edx add eax,esi mov [esp+3Ch],eax mov eax,[esp+50h] add ebp,esi test eax,eax jbe L0004FB0C mov edx,[esp+14h] add ecx,edx mov [esp+30h],ecx jmp L0004F739 L0004F735: mov ecx,[esp+30h] L0004F739: test ecx,ecx jl L0004FB6A cmp ecx,[edi+00000A34h] jge L0004FB6A mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004F765 mov [esp+48h],eax L0004F765: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004F7C2 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004F7BE mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+44h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004F7C2 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0004F7C2 L0004F7BE: mov esi,[esp+44h] L0004F7C2: lea edx,[eax+esi*4] add eax,00000004h mov [esp+38h],eax mov esi,eax mov eax,[esp+48h] mov [ebx+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004F9CD mov dword ptr [esp+10h],00000002h L0004F7EC: mov ecx,[esp+50h] test ecx,ecx jbe L0004F9CD mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+20h] mov ecx,[esp+1Ch] xor edx,edx mov dx,[eax] mov [esp+2Ch],ebp add edx,[esp+18h] add eax,[edi+00004868h] mov ebp,[esp+4Ch] mov [esp+20h],eax mov eax,edx imul eax,[esp+24h] nop add ebp,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+1Ch],edx jl L0004FB4A mov ecx,[edi+00000A34h] cmp eax,ecx jge L0004FB4A mov eax,[esp+14h] add eax,edx test eax,eax jl L0004FB16 cmp eax,ecx jge L0004FB16 mov ecx,[esp+44h] mov eax,[esp+10h] push ebp inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] mov eax,[esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004F9B3 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+2Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+34h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+2Ch] mov [esp+34h],eax fild dword ptr [esp+34h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004F9B3: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov [esp+2Ch],ebp mov eax,ecx jbe L0004F7EC L0004F9CD: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004F9F5 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004F9E8 inc eax L0004F9E8: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L0004F9F5: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004F735 mov eax,[esp+2Ch] test eax,eax jz L0004FB0C mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004FA6D push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004FA6D mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004FA6D push ebx call [ebx+10h] mov eax,[ebx+08h] L0004FA6D: mov ebp,[esp+3Ch] lea edx,[eax+esi*4] push ebp lea esi,[eax+04h] push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L0004FB0C: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004FB16: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx mov [ebx+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0004FB4A: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebx+08h],ecx L0004FB6A: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0004FB80: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp push esi xor esi,esi cmp eax,esi push edi jz L00050030 mov edi,[esp+44h] mov ebx,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+30h],eax mov dword ptr [esp+34h],00000001h mov [esp+38h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0004FBDD mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],esi mov [esp+18h],eax jmp L0004FBFC L0004FBDD: mov eax,[esp+4Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+18h],esi mov [esp+14h],eax mov eax,esi L0004FBFC: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebp,ebp mov bp,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+20h],edx mov edx,[esp+24h] add ecx,eax add ebp,eax mov eax,ecx imul eax,edx mov [esp+1Ch],ebp imul ebp,edx add eax,esi mov [esp+30h],eax mov eax,[esp+50h] add ebp,esi test eax,eax jbe L00050027 mov edx,[esp+14h] add ecx,edx mov [esp+34h],ecx jmp L0004FC50 L0004FC4C: mov ecx,[esp+34h] L0004FC50: test ecx,ecx jl L0005005A cmp ecx,[edi+00000A34h] jge L0005005A mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0004FC7C mov [esp+48h],eax L0004FC7C: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L0004FCD9 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004FCD5 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+44h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004FCD9 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0004FCD9 L0004FCD5: mov esi,[esp+44h] L0004FCD9: lea edx,[eax+esi*4] add eax,00000004h mov [esp+3Ch],eax mov esi,eax mov eax,[esp+48h] mov [ebx+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0004FEE4 mov dword ptr [esp+10h],00000002h L0004FD03: mov ecx,[esp+50h] test ecx,ecx jbe L0004FEE4 mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+20h] mov ecx,[esp+1Ch] xor edx,edx mov dx,[eax] mov [esp+2Ch],ebp add edx,[esp+18h] add eax,[edi+00004868h] mov ebp,[esp+4Ch] mov [esp+20h],eax mov eax,edx imul eax,[esp+24h] nop add ebp,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+1Ch],edx jl L0005006E mov ecx,[edi+00000A34h] cmp eax,ecx jge L0005006E mov eax,[esp+14h] add eax,edx test eax,eax jl L0005003A cmp eax,ecx jge L0005003A mov ecx,[esp+44h] mov eax,[esp+10h] push ebp inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0004FECA mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+2Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+34h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+2Ch] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L0004FECA: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov [esp+2Ch],ebp mov eax,ecx jbe L0004FD03 L0004FEE4: cmp edx,eax mov ecx,[edi+000005D4h] jz L0004FF0C sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L0004FEFF inc eax L0004FEFF: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L0004FF0C: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+3Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0004FC4C mov eax,[esp+2Ch] test eax,eax jz L00050027 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0004FF84 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0004FF84 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0004FF84 push ebx call [ebx+10h] mov eax,[ebx+08h] L0004FF84: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+30h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+50h],eax fild dword ptr [esp+50h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L00050027: push 00000000h push ebx push edi call SUB_L000ABBE0 L00050030: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0005003A: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx mov [ebx+08h],eax L0005005A: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0005006E: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebx+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000500B0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ecx,ecx cmp eax,ecx push esi push edi jz L0005054C mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+24h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+28h],00000001h mov [esp+2Ch],ecx jnc L00050104 mov edx,[esp+48h] xor eax,eax mov ax,[edx] add edx,00000002h mov [esp+14h],ecx mov [esp+18h],eax jmp L00050125 L00050104: mov eax,[esp+4Ch] mov [esp+18h],ecx sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov edx,[esp+48h] mov [esp+14h],eax mov eax,[esp+18h] L00050125: mov esi,[edi+00004868h] xor ecx,ecx mov cx,[edx] add edx,esi xor ebp,ebp mov bp,[edx] add edx,esi mov esi,[esp+4Ch] mov [esp+20h],edx mov edx,[esp+24h] add ecx,eax add ebp,eax mov eax,ecx imul eax,edx mov [esp+1Ch],ebp imul ebp,edx add eax,esi mov [esp+3Ch],eax mov eax,[esp+50h] add ebp,esi test eax,eax jbe L0005054C mov edx,[esp+14h] add ecx,edx mov [esp+30h],ecx jmp L00050179 L00050175: mov ecx,[esp+30h] L00050179: test ecx,ecx jl L000505AA cmp ecx,[edi+00000A34h] jge L000505AA mov eax,[esp+50h] inc eax cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L000501A5 mov [esp+48h],eax L000501A5: mov esi,[esp+48h] imul esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+44h],esi jc L00050202 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000501FE mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+44h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00050202 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00050202 L000501FE: mov esi,[esp+44h] L00050202: lea edx,[eax+esi*4] add eax,00000004h mov [esp+38h],eax mov esi,eax mov eax,[esp+48h] mov [ebx+08h],edx xor edx,edx cmp eax,00000002h mov [esp+44h],edx jc L0005040D mov dword ptr [esp+10h],00000002h L0005022C: mov ecx,[esp+50h] test ecx,ecx jbe L0005040D mov eax,ecx dec eax mov [esp+50h],eax mov eax,[esp+20h] mov ecx,[esp+1Ch] xor edx,edx mov dx,[eax] mov [esp+2Ch],ebp add edx,[esp+18h] add eax,[edi+00004868h] mov ebp,[esp+4Ch] mov [esp+20h],eax mov eax,edx imul eax,[esp+24h] nop add ebp,eax mov eax,[esp+14h] add eax,ecx test eax,eax mov [esp+1Ch],edx jl L0005058A mov ecx,[edi+00000A34h] cmp eax,ecx jge L0005058A mov eax,[esp+14h] add eax,edx test eax,eax jl L00050556 cmp eax,ecx jge L00050556 mov ecx,[esp+44h] mov eax,[esp+10h] push ebp inc ecx push esi inc eax push edi mov [esp+50h],ecx mov [esp+1Ch],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] mov eax,[esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L000503F3 mov ecx,[esp+44h] mov eax,[esp+10h] inc ecx inc eax mov [esp+10h],eax mov eax,[esp+2Ch] push eax push esi push edi mov [esp+50h],ecx mov dword ptr [esp+34h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+2Ch] mov [esp+34h],eax fild dword ptr [esp+34h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000503F3: mov ecx,[esp+48h] mov eax,[esp+10h] mov edx,[esp+44h] cmp eax,ecx mov [esp+2Ch],ebp mov eax,ecx jbe L0005022C L0005040D: cmp edx,eax mov ecx,[edi+000005D4h] jz L00050435 sub eax,edx mov esi,ecx shr esi,02h imul eax,esi shl eax,1 test edx,edx jnz L00050428 inc eax L00050428: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L00050435: mov eax,[esp+50h] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00050175 mov eax,[esp+2Ch] test eax,eax jz L0005054C mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000504AD push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000504AD mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000504AD push ebx call [ebx+10h] mov eax,[ebx+08h] L000504AD: mov ebp,[esp+3Ch] lea edx,[eax+esi*4] push ebp lea esi,[eax+04h] push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+50h],eax fild dword ptr [esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L0005054C: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00050556: mov eax,[edi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx mov [ebx+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0005058A: mov edx,[edi+000005D4h] imul edx,[esp+48h] mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebx+08h],ecx L000505AA: mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000505C0: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi jz L000508BE mov esi,[esp+2Ch] cmp dword ptr [esi+00000138h],00000004h mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+1Ch],ecx jnc L00050605 mov eax,[esp+30h] lea ebx,[eax+07h] and ebx,FFFFFFFCh add ecx,ebx mov [esp+10h],ebx mov [esp+0Ch],ecx jmp L00050615 L00050605: mov eax,[esp+34h] add ecx,eax mov [esp+10h],eax mov [esp+0Ch],ecx mov ebx,eax L00050615: test edx,edx jbe L000508BE push edi jmp L00050628 L00050620: mov edx,[esp+3Ch] mov ebx,[esp+14h] L00050628: cmp edx,00000CCAh mov dword ptr [esp+38h],00000CCAh ja L0005063C mov [esp+38h],edx L0005063C: mov edx,[esp+38h] mov eax,[ebp+08h] lea edi,[edx+02h] imul edi,[esi+000005D4h] mov edx,[ebp+0Ch] shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L0005068C push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005068C mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0005068C push ebp call [ebp+10h] mov eax,[ebp+08h] L0005068C: lea edx,[eax+edi*4] lea edi,[eax+04h] mov [ebp+08h],edx mov eax,[esi+00000190h] test eax,eax mov [esp+1Ch],edi jnz L000506AA mov dword ptr [ebx+0Ch],3F800000h L000506AA: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push edi call [L000B493C+ecx*4] mov ebx,eax mov eax,[esi+000048ACh] test eax,eax jz L000506EA push 00000001h push edi push esi call SUB_L0003E580 L000506EA: mov ecx,[esp+38h] lea eax,[ecx+01h] xor edx,edx test eax,eax jbe L00050868 mov [esp+18h],eax mov [esp+34h],eax L00050703: mov eax,[esp+10h] mov edx,[esp+20h] mov ecx,eax add eax,edx mov [esp+10h],eax mov eax,[esi+00000190h] test eax,eax mov [esp+28h],ecx jnz L00050728 mov dword ptr [ecx+0Ch],3F800000h L00050728: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ecx push ebx call [L000B493C+edx*4] mov [esp+24h],eax mov eax,[esi+000048ACh] test eax,eax jz L0005083C mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebx test eax,eax jbe L0005083C cmp eax,00000002h jbe L000507E4 cmp eax,00000003h jnz L0005083C fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+30h] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L000507B7 mov byte ptr [edi],FFh jmp L0005083C L000507B7: fld dword ptr [esp+30h] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L000507CD mov byte ptr [edi],00h jmp L0005083C L000507CD: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+30h] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC jmp L0005083A L000507E4: fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+30h] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L00050803 mov byte ptr [edi],FFh jmp L0005083C L00050803: fld dword ptr [esp+30h] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L00050819 mov byte ptr [edi],00h jmp L0005083C L00050819: fld dword ptr [esp+30h] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov al,[eax+esi+000048D0h] L0005083A: mov [edi],al L0005083C: mov eax,[esp+18h] mov ebx,[esp+24h] dec eax mov [esp+18h],eax jnz L00050703 mov eax,[esp+34h] test eax,eax jz L0005085C dec eax mov [esp+34h],eax L0005085C: mov edx,[esp+34h] mov ecx,[esp+38h] mov edi,[esp+1Ch] L00050868: mov eax,[esp+28h] mov [esp+10h],eax mov eax,[esp+3Ch] sub eax,ecx cmp edx,ecx mov [esp+3Ch],eax mov eax,[esi+000005D4h] jz L0005089E sub ecx,edx imul ecx,eax shr ecx,02h test edx,edx jnz L00050891 inc ecx L00050891: mov ebx,[ebp+08h] neg ecx shl ecx,02h add ebx,ecx mov [ebp+08h],ebx L0005089E: add edx,00000002h imul edx,eax mov eax,[esp+3Ch] shr edx,02h dec edx or edx,7F0C0000h test eax,eax mov [edi-04h],edx ja L00050620 pop edi L000508BE: pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L000508D0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push esi push edi jz L00050B72 mov edi,[esp+28h] mov eax,[edi+00000138h] mov ecx,[edi+000005D0h] mov esi,[edi+0000017Ch] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],esi jnc L00050929 mov ebx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],ebx mov [esp+2Ch],eax jmp L0005093E L00050929: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L0005093E: test edx,edx jbe L00050B72 push ebp jmp L0005094D L00050949: mov edx,[esp+38h] L0005094D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00050964 mov [esp+34h],eax L00050964: mov ebx,[edi+000005D4h] imul ebx,[esp+34h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx jc L000509B3 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000509B3 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000509B3 push esi call [esi+10h] mov eax,[esi+08h] L000509B3: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+24h],eax mov ebp,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [esi+08h],edx jc L00050B27 mov dword ptr [esp+2Ch],00000003h L000509D9: mov ecx,[esp+38h] test ecx,ecx jbe L00050B27 mov esi,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [esi+04h] dec ecx mov [esp+38h],ecx mov ecx,esi fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [esi] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [esi+04h] fld dword ptr [edx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00050B09 test byte ptr [esp+10h],01h jz L00050A73 mov eax,[esp+18h] test eax,eax jz L00050A73 push esi push edx push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] push esi shr eax,02h push esi lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00050A73: test byte ptr [esp+10h],02h jz L00050AB8 push esi push esi push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00050AB8: mov eax,[esp+38h] test eax,eax jnz L00050B01 test byte ptr [esp+10h],04h jz L00050B01 push esi push ecx push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+14h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov [esp+2Ch],eax L00050B01: mov dword ptr [esp+18h],00000000h L00050B09: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov esi,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L000509D9 L00050B27: cmp ebx,eax mov ecx,[edi+000005D4h] jz L00050B4F sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00050B42 inc eax L00050B42: mov edx,[esi+08h] neg eax shl eax,02h add edx,eax mov [esi+08h],edx L00050B4F: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00050949 pop ebp L00050B72: pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00050B80: sub esp,00000018h push ebp mov ebp,[esp+2Ch] test ebp,ebp jz L00050E38 push ebx push esi push edi mov edi,[esp+2Ch] mov esi,[edi+0000017Ch] mov ebx,[edi+000005D0h] push 00000001h push esi push edi mov [esp+2Ch],ebx mov dword ptr [esp+24h],00000001h mov [esp+28h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L00050BE1 mov eax,[esp+30h] mov ecx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+14h],eax add eax,ebx mov [esp+10h],ecx mov [esp+30h],eax jmp L00050BFA L00050BE1: mov edx,[esp+30h] mov eax,[edx+04h] mov [esp+10h],eax mov eax,[esp+34h] add ebx,eax mov [esp+14h],eax mov [esp+30h],ebx L00050BFA: test ebp,ebp jbe L00050E2C jmp L00050C08 L00050C04: mov ebp,[esp+38h] L00050C08: lea eax,[ebp+ebp+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00050C1F mov [esp+34h],eax L00050C1F: mov ebx,[edi+000005D4h] imul ebx,[esp+34h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx jc L00050C6E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00050C6E mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00050C6E push esi call [esi+10h] mov eax,[esi+08h] L00050C6E: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+24h],eax mov ebp,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [esi+08h],edx jc L00050DE2 mov dword ptr [esp+2Ch],00000003h L00050C94: mov ecx,[esp+38h] test ecx,ecx jbe L00050DE2 mov esi,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [esi+04h] dec ecx mov [esp+38h],ecx mov ecx,esi fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [esi] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [esi+04h] fld dword ptr [edx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00050DC4 test byte ptr [esp+10h],01h jz L00050D2E mov eax,[esp+18h] test eax,eax jz L00050D2E push esi push edx push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] push esi shr eax,02h push esi lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00050D2E: test byte ptr [esp+10h],02h jz L00050D73 push esi push esi push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00050D73: mov eax,[esp+38h] test eax,eax jnz L00050DBC test byte ptr [esp+10h],04h jz L00050DBC push esi push ecx push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+14h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov [esp+2Ch],eax L00050DBC: mov dword ptr [esp+18h],00000000h L00050DC4: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov esi,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L00050C94 L00050DE2: cmp ebx,eax mov ecx,[edi+000005D4h] jz L00050E0A sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00050DFD inc eax L00050DFD: mov edx,[esi+08h] neg eax shl eax,02h add edx,eax mov [esi+08h],edx L00050E0A: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00050C04 L00050E2C: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L00050E38: pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00050E40: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push esi push edi jz L000510E2 mov edi,[esp+28h] mov eax,[edi+00000138h] mov ecx,[edi+000005D0h] mov esi,[edi+00000148h] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],esi jnc L00050E99 mov ebx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],ebx mov [esp+2Ch],eax jmp L00050EAE L00050E99: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L00050EAE: test edx,edx jbe L000510E2 push ebp jmp L00050EBD L00050EB9: mov edx,[esp+38h] L00050EBD: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00050ED4 mov [esp+34h],eax L00050ED4: mov ebx,[edi+000005D4h] imul ebx,[esp+34h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx jc L00050F23 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00050F23 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00050F23 push esi call [esi+10h] mov eax,[esi+08h] L00050F23: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+24h],eax mov ebp,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [esi+08h],edx jc L00051097 mov dword ptr [esp+2Ch],00000003h L00050F49: mov ecx,[esp+38h] test ecx,ecx jbe L00051097 mov esi,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [esi+04h] dec ecx mov [esp+38h],ecx mov ecx,esi fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [esi] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [esi+04h] fld dword ptr [edx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00051079 test byte ptr [esp+10h],01h jz L00050FE3 mov eax,[esp+18h] test eax,eax jz L00050FE3 push esi push edx push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] push esi shr eax,02h push esi lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00050FE3: test byte ptr [esp+10h],02h jz L00051028 push esi push esi push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00051028: mov eax,[esp+38h] test eax,eax jnz L00051071 test byte ptr [esp+10h],04h jz L00051071 push esi push ecx push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+14h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov [esp+2Ch],eax L00051071: mov dword ptr [esp+18h],00000000h L00051079: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov esi,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L00050F49 L00051097: cmp ebx,eax mov ecx,[edi+000005D4h] jz L000510BF sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L000510B2 inc eax L000510B2: mov edx,[esi+08h] neg eax shl eax,02h add edx,eax mov [esi+08h],edx L000510BF: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00050EB9 pop ebp L000510E2: pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000510F0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push esi push edi jz L00051392 mov edi,[esp+28h] mov eax,[edi+00000138h] mov ecx,[edi+000005D0h] mov esi,[edi+0000017Ch] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],esi jnc L00051149 mov ebx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],ebx mov [esp+2Ch],eax jmp L0005115E L00051149: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L0005115E: test edx,edx jbe L00051392 push ebp jmp L0005116D L00051169: mov edx,[esp+38h] L0005116D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00051184 mov [esp+34h],eax L00051184: mov ebx,[edi+000005D4h] imul ebx,[esp+34h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx jc L000511D3 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000511D3 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000511D3 push esi call [esi+10h] mov eax,[esi+08h] L000511D3: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+24h],eax mov ebp,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [esi+08h],edx jc L00051347 mov dword ptr [esp+2Ch],00000003h L000511F9: mov ecx,[esp+38h] test ecx,ecx jbe L00051347 mov esi,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [esi+04h] dec ecx mov [esp+38h],ecx mov ecx,esi fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [esi] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [esi+04h] fld dword ptr [edx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00051329 test byte ptr [esp+10h],01h jz L00051293 mov eax,[esp+18h] test eax,eax jz L00051293 push esi push edx push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] push esi shr eax,02h push esi lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00051293: test byte ptr [esp+10h],02h jz L000512D8 push esi push esi push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L000512D8: mov eax,[esp+38h] test eax,eax jnz L00051321 test byte ptr [esp+10h],04h jz L00051321 push esi push ecx push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+14h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov [esp+2Ch],eax L00051321: mov dword ptr [esp+18h],00000000h L00051329: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov esi,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L000511F9 L00051347: cmp ebx,eax mov ecx,[edi+000005D4h] jz L0005136F sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00051362 inc eax L00051362: mov edx,[esi+08h] neg eax shl eax,02h add edx,eax mov [esi+08h],edx L0005136F: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00051169 pop ebp L00051392: pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000513A0: sub esp,00000018h push ebp mov ebp,[esp+2Ch] test ebp,ebp jz L00051658 push ebx push esi push edi mov edi,[esp+2Ch] mov esi,[edi+0000017Ch] mov ebx,[edi+000005D0h] push 00000001h push esi push edi mov [esp+2Ch],ebx mov dword ptr [esp+24h],00000001h mov [esp+28h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L00051401 mov eax,[esp+30h] mov ecx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+14h],eax add eax,ebx mov [esp+10h],ecx mov [esp+30h],eax jmp L0005141A L00051401: mov edx,[esp+30h] mov eax,[edx+04h] mov [esp+10h],eax mov eax,[esp+34h] add ebx,eax mov [esp+14h],eax mov [esp+30h],ebx L0005141A: test ebp,ebp jbe L0005164C jmp L00051428 L00051424: mov ebp,[esp+38h] L00051428: lea eax,[ebp+ebp+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005143F mov [esp+34h],eax L0005143F: mov ebx,[edi+000005D4h] imul ebx,[esp+34h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx jc L0005148E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0005148E mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0005148E push esi call [esi+10h] mov eax,[esi+08h] L0005148E: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+24h],eax mov ebp,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [esi+08h],edx jc L00051602 mov dword ptr [esp+2Ch],00000003h L000514B4: mov ecx,[esp+38h] test ecx,ecx jbe L00051602 mov esi,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [esi+04h] dec ecx mov [esp+38h],ecx mov ecx,esi fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [esi] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [esi+04h] fld dword ptr [edx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000515E4 test byte ptr [esp+10h],01h jz L0005154E mov eax,[esp+18h] test eax,eax jz L0005154E push esi push edx push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] push esi shr eax,02h push esi lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L0005154E: test byte ptr [esp+10h],02h jz L00051593 push esi push esi push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00051593: mov eax,[esp+38h] test eax,eax jnz L000515DC test byte ptr [esp+10h],04h jz L000515DC push esi push ecx push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+14h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov [esp+2Ch],eax L000515DC: mov dword ptr [esp+18h],00000000h L000515E4: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov esi,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L000514B4 L00051602: cmp ebx,eax mov ecx,[edi+000005D4h] jz L0005162A sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L0005161D inc eax L0005161D: mov edx,[esi+08h] neg eax shl eax,02h add edx,eax mov [esi+08h],edx L0005162A: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00051424 L0005164C: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L00051658: pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00051660: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push esi push edi jz L00051902 mov edi,[esp+28h] mov eax,[edi+00000138h] mov ecx,[edi+000005D0h] mov esi,[edi+00000148h] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],esi jnc L000516B9 mov ebx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],ebx mov [esp+2Ch],eax jmp L000516CE L000516B9: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L000516CE: test edx,edx jbe L00051902 push ebp jmp L000516DD L000516D9: mov edx,[esp+38h] L000516DD: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L000516F4 mov [esp+34h],eax L000516F4: mov ebx,[edi+000005D4h] imul ebx,[esp+34h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx jc L00051743 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00051743 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00051743 push esi call [esi+10h] mov eax,[esi+08h] L00051743: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+24h],eax mov ebp,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [esi+08h],edx jc L000518B7 mov dword ptr [esp+2Ch],00000003h L00051769: mov ecx,[esp+38h] test ecx,ecx jbe L000518B7 mov esi,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [esi+04h] dec ecx mov [esp+38h],ecx mov ecx,esi fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [esi] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [esi+04h] fld dword ptr [edx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00051899 test byte ptr [esp+10h],01h jz L00051803 mov eax,[esp+18h] test eax,eax jz L00051803 push esi push edx push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] push esi shr eax,02h push esi lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00051803: test byte ptr [esp+10h],02h jz L00051848 push esi push esi push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov ecx,[esp+30h] mov [esp+2Ch],eax L00051848: mov eax,[esp+38h] test eax,eax jnz L00051891 test byte ptr [esp+10h],04h jz L00051891 push esi push ecx push ebp push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+14h] push esi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea ebp,[ebp+ecx*4+00h] mov [esp+2Ch],eax L00051891: mov dword ptr [esp+18h],00000000h L00051899: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov esi,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L00051769 L000518B7: cmp ebx,eax mov ecx,[edi+000005D4h] jz L000518DF sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L000518D2 inc eax L000518D2: mov edx,[esi+08h] neg eax shl eax,02h add edx,eax mov [esi+08h],edx L000518DF: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L000516D9 pop ebp L00051902: pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00051910: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebp push esi push edi jz L00051B7F mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebp,[esi+0000017Ch] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],ebp jnc L00051969 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],edi mov [esp+28h],eax jmp L0005197E L00051969: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+28h],ecx L0005197E: test edx,edx jbe L00051B7F push ebx jmp L0005198D L00051989: mov edx,[esp+38h] L0005198D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L000519A4 mov [esp+34h],eax L000519A4: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L000519F3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000519F3 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000519F3 push ebp call [ebp+10h] mov eax,[ebp+08h] L000519F3: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L00051B34 mov dword ptr [esp+30h],00000003h L00051A19: mov ecx,[esp+38h] test ecx,ecx jbe L00051B34 mov ebp,[esp+2Ch] mov eax,[esp+20h] mov edx,ecx mov ecx,ebp add ecx,eax mov al,[esp+10h] dec edx test al,01h mov [esp+38h],edx mov [esp+2Ch],ecx jz L00051A84 mov eax,[esp+18h] test eax,eax jz L00051A84 mov ecx,[esp+14h] push ebp push ecx push edi push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push ebp shr edx,02h push ebp lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+30h] inc ebx inc eax mov [esp+30h],eax L00051A84: test byte ptr [esp+10h],02h jz L00051AC3 push ebp push ebp push edi push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+2Ch] push ebp shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+30h] inc ebx inc eax mov [esp+30h],eax L00051AC3: mov eax,[esp+38h] test eax,eax jnz L00051B0E test byte ptr [esp+10h],04h jz L00051B0E mov ecx,[esp+2Ch] push ebp push ecx push edi push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push ebp shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+30h],eax L00051B0E: mov ecx,[esp+10h] mov edx,[esp+30h] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov dword ptr [esp+18h],00000000h mov [esp+10h],ecx jbe L00051A19 L00051B34: cmp ebx,eax mov ecx,[esi+000005D4h] jz L00051B5C sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00051B4F inc eax L00051B4F: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L00051B5C: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00051989 pop ebx L00051B7F: pop edi pop esi pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00051B90: sub esp,00000018h push ebx mov ebx,[esp+2Ch] test ebx,ebx jz L00051E15 push ebp push esi mov esi,[esp+28h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+2Ch],edi mov dword ptr [esp+24h],00000001h mov [esp+28h],ebp call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00051BF1 mov eax,[esp+30h] mov ecx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+14h],eax add eax,edi mov [esp+10h],ecx mov [esp+2Ch],eax jmp L00051C0A L00051BF1: mov edx,[esp+30h] mov eax,[edx+04h] mov [esp+10h],eax mov eax,[esp+34h] add edi,eax mov [esp+14h],eax mov [esp+2Ch],edi L00051C0A: test ebx,ebx jbe L00051E09 jmp L00051C18 L00051C14: mov ebx,[esp+38h] L00051C18: lea eax,[ebx+ebx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00051C2F mov [esp+34h],eax L00051C2F: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L00051C7E push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00051C7E mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00051C7E push ebp call [ebp+10h] mov eax,[ebp+08h] L00051C7E: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L00051DBF mov dword ptr [esp+30h],00000003h L00051CA4: mov ecx,[esp+38h] test ecx,ecx jbe L00051DBF mov ebp,[esp+2Ch] mov eax,[esp+20h] mov edx,ecx mov ecx,ebp add ecx,eax mov al,[esp+10h] dec edx test al,01h mov [esp+38h],edx mov [esp+2Ch],ecx jz L00051D0F mov eax,[esp+18h] test eax,eax jz L00051D0F mov ecx,[esp+14h] push ebp push ecx push edi push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push ebp shr edx,02h push ebp lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+30h] inc ebx inc eax mov [esp+30h],eax L00051D0F: test byte ptr [esp+10h],02h jz L00051D4E push ebp push ebp push edi push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+2Ch] push ebp shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+30h] inc ebx inc eax mov [esp+30h],eax L00051D4E: mov eax,[esp+38h] test eax,eax jnz L00051D99 test byte ptr [esp+10h],04h jz L00051D99 mov ecx,[esp+2Ch] push ebp push ecx push edi push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push ebp shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+30h],eax L00051D99: mov ecx,[esp+10h] mov edx,[esp+30h] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov dword ptr [esp+18h],00000000h mov [esp+10h],ecx jbe L00051CA4 L00051DBF: cmp ebx,eax mov ecx,[esi+000005D4h] jz L00051DE7 sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00051DDA inc eax L00051DDA: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L00051DE7: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00051C14 L00051E09: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp L00051E15: pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00051E20: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebp push esi push edi jz L0005208F mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],ebp jnc L00051E79 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],edi mov [esp+28h],eax jmp L00051E8E L00051E79: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+28h],ecx L00051E8E: test edx,edx jbe L0005208F push ebx jmp L00051E9D L00051E99: mov edx,[esp+38h] L00051E9D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00051EB4 mov [esp+34h],eax L00051EB4: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L00051F03 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00051F03 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00051F03 push ebp call [ebp+10h] mov eax,[ebp+08h] L00051F03: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L00052044 mov dword ptr [esp+30h],00000003h L00051F29: mov ecx,[esp+38h] test ecx,ecx jbe L00052044 mov ebp,[esp+2Ch] mov eax,[esp+20h] mov edx,ecx mov ecx,ebp add ecx,eax mov al,[esp+10h] dec edx test al,01h mov [esp+38h],edx mov [esp+2Ch],ecx jz L00051F94 mov eax,[esp+18h] test eax,eax jz L00051F94 mov ecx,[esp+14h] push ebp push ecx push edi push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push ebp shr edx,02h push ebp lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+30h] inc ebx inc eax mov [esp+30h],eax L00051F94: test byte ptr [esp+10h],02h jz L00051FD3 push ebp push ebp push edi push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+2Ch] push ebp shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+30h] inc ebx inc eax mov [esp+30h],eax L00051FD3: mov eax,[esp+38h] test eax,eax jnz L0005201E test byte ptr [esp+10h],04h jz L0005201E mov ecx,[esp+2Ch] push ebp push ecx push edi push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push ebp shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+30h],eax L0005201E: mov ecx,[esp+10h] mov edx,[esp+30h] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov dword ptr [esp+18h],00000000h mov [esp+10h],ecx jbe L00051F29 L00052044: cmp ebx,eax mov ecx,[esi+000005D4h] jz L0005206C sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L0005205F inc eax L0005205F: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L0005206C: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00051E99 pop ebx L0005208F: pop edi pop esi pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000520A0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebp push esi push edi jz L00052338 mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebp,[esi+0000017Ch] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],ebp jnc L000520F9 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],edi mov [esp+2Ch],eax jmp L0005210E L000520F9: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L0005210E: test edx,edx jbe L00052338 push ebx jmp L0005211D L00052119: mov edx,[esp+38h] L0005211D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00052134 mov [esp+34h],eax L00052134: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L00052183 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00052183 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00052183 push ebp call [ebp+10h] mov eax,[ebp+08h] L00052183: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L000522ED mov dword ptr [esp+2Ch],00000003h L000521A9: mov ecx,[esp+38h] test ecx,ecx jbe L000522ED mov ebp,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [ebp+04h] dec ecx mov [esp+38h],ecx mov ecx,ebp fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [ebp+00h] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [edx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000522CF test byte ptr [esp+10h],01h jz L00052241 mov eax,[esp+18h] test eax,eax jz L00052241 push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00052241: test byte ptr [esp+10h],02h jz L00052282 push ebp push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00052282: mov eax,[esp+38h] test eax,eax jnz L000522C7 test byte ptr [esp+10h],04h jz L000522C7 push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+2Ch],eax L000522C7: mov dword ptr [esp+18h],00000000h L000522CF: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L000521A9 L000522ED: cmp ebx,eax mov ecx,[esi+000005D4h] jz L00052315 sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00052308 inc eax L00052308: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L00052315: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00052119 pop ebx L00052338: pop edi pop esi pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00052350: sub esp,00000018h push ebx mov ebx,[esp+2Ch] test ebx,ebx jz L000525FE push ebp push esi mov esi,[esp+28h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+2Ch],edi mov dword ptr [esp+24h],00000001h mov [esp+28h],ebp call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L000523B1 mov eax,[esp+30h] mov ecx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+14h],eax add eax,edi mov [esp+10h],ecx mov [esp+30h],eax jmp L000523CA L000523B1: mov edx,[esp+30h] mov eax,[edx+04h] mov [esp+10h],eax mov eax,[esp+34h] add edi,eax mov [esp+14h],eax mov [esp+30h],edi L000523CA: test ebx,ebx jbe L000525F2 jmp L000523D8 L000523D4: mov ebx,[esp+38h] L000523D8: lea eax,[ebx+ebx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L000523EF mov [esp+34h],eax L000523EF: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L0005243E push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005243E mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0005243E push ebp call [ebp+10h] mov eax,[ebp+08h] L0005243E: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L000525A8 mov dword ptr [esp+2Ch],00000003h L00052464: mov ecx,[esp+38h] test ecx,ecx jbe L000525A8 mov ebp,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [ebp+04h] dec ecx mov [esp+38h],ecx mov ecx,ebp fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [ebp+00h] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [edx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005258A test byte ptr [esp+10h],01h jz L000524FC mov eax,[esp+18h] test eax,eax jz L000524FC push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L000524FC: test byte ptr [esp+10h],02h jz L0005253D push ebp push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L0005253D: mov eax,[esp+38h] test eax,eax jnz L00052582 test byte ptr [esp+10h],04h jz L00052582 push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+2Ch],eax L00052582: mov dword ptr [esp+18h],00000000h L0005258A: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L00052464 L000525A8: cmp ebx,eax mov ecx,[esi+000005D4h] jz L000525D0 sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L000525C3 inc eax L000525C3: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L000525D0: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L000523D4 L000525F2: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp L000525FE: pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00052610: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebp push esi push edi jz L000528A8 mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],ebp jnc L00052669 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],edi mov [esp+2Ch],eax jmp L0005267E L00052669: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L0005267E: test edx,edx jbe L000528A8 push ebx jmp L0005268D L00052689: mov edx,[esp+38h] L0005268D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L000526A4 mov [esp+34h],eax L000526A4: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L000526F3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000526F3 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000526F3 push ebp call [ebp+10h] mov eax,[ebp+08h] L000526F3: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L0005285D mov dword ptr [esp+2Ch],00000003h L00052719: mov ecx,[esp+38h] test ecx,ecx jbe L0005285D mov ebp,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [ebp+04h] dec ecx mov [esp+38h],ecx mov ecx,ebp fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [ebp+00h] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [edx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005283F test byte ptr [esp+10h],01h jz L000527B1 mov eax,[esp+18h] test eax,eax jz L000527B1 push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L000527B1: test byte ptr [esp+10h],02h jz L000527F2 push ebp push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L000527F2: mov eax,[esp+38h] test eax,eax jnz L00052837 test byte ptr [esp+10h],04h jz L00052837 push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+2Ch],eax L00052837: mov dword ptr [esp+18h],00000000h L0005283F: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L00052719 L0005285D: cmp ebx,eax mov ecx,[esi+000005D4h] jz L00052885 sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00052878 inc eax L00052878: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L00052885: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00052689 pop ebx L000528A8: pop edi pop esi pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000528C0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebp push esi push edi jz L00052B58 mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebp,[esi+0000017Ch] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],ebp jnc L00052919 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],edi mov [esp+2Ch],eax jmp L0005292E L00052919: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L0005292E: test edx,edx jbe L00052B58 push ebx jmp L0005293D L00052939: mov edx,[esp+38h] L0005293D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00052954 mov [esp+34h],eax L00052954: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L000529A3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000529A3 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000529A3 push ebp call [ebp+10h] mov eax,[ebp+08h] L000529A3: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L00052B0D mov dword ptr [esp+2Ch],00000003h L000529C9: mov ecx,[esp+38h] test ecx,ecx jbe L00052B0D mov ebp,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [ebp+04h] dec ecx mov [esp+38h],ecx mov ecx,ebp fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [ebp+00h] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [edx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00052AEF test byte ptr [esp+10h],01h jz L00052A61 mov eax,[esp+18h] test eax,eax jz L00052A61 push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00052A61: test byte ptr [esp+10h],02h jz L00052AA2 push ebp push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00052AA2: mov eax,[esp+38h] test eax,eax jnz L00052AE7 test byte ptr [esp+10h],04h jz L00052AE7 push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+2Ch],eax L00052AE7: mov dword ptr [esp+18h],00000000h L00052AEF: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L000529C9 L00052B0D: cmp ebx,eax mov ecx,[esi+000005D4h] jz L00052B35 sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00052B28 inc eax L00052B28: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L00052B35: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00052939 pop ebx L00052B58: pop edi pop esi pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00052B70: sub esp,00000018h push ebx mov ebx,[esp+2Ch] test ebx,ebx jz L00052E1E push ebp push esi mov esi,[esp+28h] mov ebp,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+2Ch],edi mov dword ptr [esp+24h],00000001h mov [esp+28h],ebp call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00052BD1 mov eax,[esp+30h] mov ecx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+14h],eax add eax,edi mov [esp+10h],ecx mov [esp+30h],eax jmp L00052BEA L00052BD1: mov edx,[esp+30h] mov eax,[edx+04h] mov [esp+10h],eax mov eax,[esp+34h] add edi,eax mov [esp+14h],eax mov [esp+30h],edi L00052BEA: test ebx,ebx jbe L00052E12 jmp L00052BF8 L00052BF4: mov ebx,[esp+38h] L00052BF8: lea eax,[ebx+ebx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00052C0F mov [esp+34h],eax L00052C0F: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L00052C5E push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00052C5E mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00052C5E push ebp call [ebp+10h] mov eax,[ebp+08h] L00052C5E: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L00052DC8 mov dword ptr [esp+2Ch],00000003h L00052C84: mov ecx,[esp+38h] test ecx,ecx jbe L00052DC8 mov ebp,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [ebp+04h] dec ecx mov [esp+38h],ecx mov ecx,ebp fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [ebp+00h] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [edx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00052DAA test byte ptr [esp+10h],01h jz L00052D1C mov eax,[esp+18h] test eax,eax jz L00052D1C push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00052D1C: test byte ptr [esp+10h],02h jz L00052D5D push ebp push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00052D5D: mov eax,[esp+38h] test eax,eax jnz L00052DA2 test byte ptr [esp+10h],04h jz L00052DA2 push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+2Ch],eax L00052DA2: mov dword ptr [esp+18h],00000000h L00052DAA: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L00052C84 L00052DC8: cmp ebx,eax mov ecx,[esi+000005D4h] jz L00052DF0 sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00052DE3 inc eax L00052DE3: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L00052DF0: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00052BF4 L00052E12: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp L00052E1E: pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00052E30: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebp push esi push edi jz L000530C8 mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov [esp+18h],ebp jnc L00052E89 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+10h],eax add eax,ecx mov [esp+0Ch],edi mov [esp+2Ch],eax jmp L00052E9E L00052E89: mov eax,[eax+04h] mov [esp+0Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+10h],eax mov [esp+2Ch],ecx L00052E9E: test edx,edx jbe L000530C8 push ebx jmp L00052EAD L00052EA9: mov edx,[esp+38h] L00052EAD: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00052EC4 mov [esp+34h],eax L00052EC4: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L00052F13 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00052F13 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00052F13 push ebp call [ebp+10h] mov eax,[ebp+08h] L00052F13: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+34h] xor ebx,ebx cmp eax,00000003h mov [ebp+08h],edx jc L0005307D mov dword ptr [esp+2Ch],00000003h L00052F39: mov ecx,[esp+38h] test ecx,ecx jbe L0005307D mov ebp,[esp+30h] mov edx,[esp+14h] mov eax,[esp+20h] fld dword ptr [edx+04h] fsub dword ptr [ebp+04h] dec ecx mov [esp+38h],ecx mov ecx,ebp fld dword ptr [ecx+eax] add ecx,eax fsub dword ptr [ebp+00h] mov [esp+30h],ecx fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [edx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005305F test byte ptr [esp+10h],01h jz L00052FD1 mov eax,[esp+18h] test eax,eax jz L00052FD1 push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00052FD1: test byte ptr [esp+10h],02h jz L00053012 push ebp push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov ecx,[esp+30h] mov [esp+2Ch],eax L00053012: mov eax,[esp+38h] test eax,eax jnz L00053057 test byte ptr [esp+10h],04h jz L00053057 push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h inc ebx inc eax lea edi,[edi+ecx*4] mov [esp+2Ch],eax L00053057: mov dword ptr [esp+18h],00000000h L0005305F: mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,[esp+34h] mov ebp,[esp+1Ch] shr ecx,1 cmp edx,eax mov [esp+10h],ecx jbe L00052F39 L0005307D: cmp ebx,eax mov ecx,[esi+000005D4h] jz L000530A5 sub eax,ebx mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebx,ebx jnz L00053098 inc eax L00053098: mov edx,[ebp+08h] neg eax shl eax,02h add edx,eax mov [ebp+08h],edx L000530A5: mov eax,[esp+24h] imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L00052EA9 pop ebx L000530C8: pop edi pop esi pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000530E0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push esi push edi jz L00053336 mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebx,[esi+0000017Ch] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+18h],ecx mov dword ptr [esp+14h],00000001h mov [esp+1Ch],ebx jnc L00053139 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+0Ch],eax add eax,ecx mov [esp+2Ch],edi mov [esp+28h],eax jmp L0005314E L00053139: mov eax,[eax+04h] mov [esp+2Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+0Ch],eax mov [esp+28h],ecx L0005314E: test edx,edx jbe L00053336 push ebp jmp L0005315D L00053159: mov edx,[esp+38h] L0005315D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00053174 mov [esp+34h],eax L00053174: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L000531C3 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000531C3 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000531C3 push ebx call [ebx+10h] mov eax,[ebx+08h] L000531C3: lea edx,[eax+edi*4] lea edi,[eax+04h] mov eax,[esp+34h] xor ebp,ebp cmp eax,00000003h mov [ebx+08h],edx mov [esp+24h],edi jc L000532EF mov ebx,00000003h L000531E4: mov eax,[esp+38h] test eax,eax jbe L000532E3 mov ecx,[esp+1Ch] mov edx,eax mov eax,[esp+2Ch] mov [esp+14h],eax add eax,ecx mov [esp+2Ch],eax mov al,[esp+30h] dec edx test al,01h mov [esp+38h],edx jz L0005324B mov eax,[esp+18h] test eax,eax jz L0005324B mov eax,[esp+10h] push eax push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h inc ebp lea edi,[edi+eax*4] inc ebx L0005324B: test byte ptr [esp+30h],02h jz L00053284 mov ecx,[esp+14h] push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h inc ebp lea edi,[edi+ecx*4] inc ebx L00053284: mov eax,[esp+38h] test eax,eax jnz L000532C5 test byte ptr [esp+30h],04h jz L000532C5 mov edx,[esp+2Ch] push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h push ecx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h inc ebp lea edi,[edi+edx*4] inc ebx L000532C5: mov ecx,[esp+30h] mov eax,[esp+34h] shr ecx,1 cmp ebx,eax mov dword ptr [esp+18h],00000000h mov [esp+30h],ecx jbe L000531E4 L000532E3: mov ebx,[esp+20h] mov eax,[esp+34h] mov edi,[esp+24h] L000532EF: cmp ebp,eax mov ecx,[esi+000005D4h] jz L00053317 sub eax,ebp mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebp,ebp jnz L0005330A inc eax L0005330A: mov edx,[ebx+08h] neg eax shl eax,02h add edx,eax mov [ebx+08h],edx L00053317: mov eax,[esp+38h] imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edi-04h],ecx ja L00053159 pop ebp L00053336: pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00053340: sub esp,00000018h push ebp mov ebp,[esp+2Ch] test ebp,ebp jz L000535C6 push ebx push esi mov esi,[esp+28h] mov ebx,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebx push esi mov [esp+2Ch],edi mov dword ptr [esp+28h],00000001h call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0005339D mov eax,[esp+30h] mov ecx,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+14h],eax add eax,edi mov [esp+10h],ecx mov [esp+34h],eax jmp L000533B6 L0005339D: mov edx,[esp+30h] mov eax,[edx+04h] mov [esp+10h],eax mov eax,[esp+34h] add edi,eax mov [esp+14h],eax mov [esp+34h],edi L000533B6: test ebp,ebp jbe L000535BA jmp L000533C4 L000533C0: mov ebp,[esp+38h] L000533C4: lea eax,[ebp+ebp+01h] cmp eax,00000666h mov dword ptr [esp+2Ch],00000666h ja L000533DB mov [esp+2Ch],eax L000533DB: mov edi,[esi+000005D4h] imul edi,[esp+2Ch] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L0005342A push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0005342A mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0005342A push ebx call [ebx+10h] mov eax,[ebx+08h] L0005342A: lea edx,[eax+edi*4] add eax,00000004h mov [esp+24h],eax mov edi,eax mov eax,[esp+2Ch] xor ebp,ebp cmp eax,00000003h mov [ebx+08h],edx jc L00053570 mov dword ptr [esp+30h],00000003h L00053450: mov ecx,[esp+38h] test ecx,ecx jbe L00053570 mov edx,[esp+20h] dec ecx mov [esp+38h],ecx mov ecx,[esp+34h] mov [esp+18h],ecx add ecx,edx mov [esp+34h],ecx test byte ptr [esp+10h],01h jz L000534C0 mov ecx,[esp+1Ch] test ecx,ecx jz L000534C0 mov eax,[esp+14h] push eax push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+18h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+30h] inc ebp inc eax mov [esp+30h],eax mov eax,[esp+2Ch] L000534C0: test byte ptr [esp+10h],02h jz L00053505 mov ecx,[esp+18h] push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+34h] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h inc ebp inc eax mov [esp+30h],eax mov eax,[esp+2Ch] lea edi,[edi+ecx*4] L00053505: mov ecx,[esp+38h] test ecx,ecx jnz L00053552 test byte ptr [esp+10h],04h jz L00053552 mov edx,[esp+34h] push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h push ecx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] shr edx,02h inc ebp inc eax mov [esp+30h],eax mov eax,[esp+2Ch] lea edi,[edi+edx*4] L00053552: mov edx,[esp+10h] mov ecx,[esp+30h] shr edx,1 cmp ecx,eax mov dword ptr [esp+1Ch],00000000h mov [esp+10h],edx jbe L00053450 L00053570: cmp ebp,eax mov ecx,[esi+000005D4h] jz L00053598 sub eax,ebp mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebp,ebp jnz L0005358B inc eax L0005358B: mov edx,[ebx+08h] neg eax shl eax,02h add edx,eax mov [ebx+08h],edx L00053598: mov eax,[esp+24h] imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L000533C0 L000535BA: push 00000000h push ebx push esi call SUB_L000ABBE0 pop edi pop esi pop ebx L000535C6: pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000535D0: mov edx,[esp+10h] sub esp,00000018h test edx,edx push ebx push esi push edi jz L00053826 mov esi,[esp+28h] mov eax,[esi+00000138h] mov ecx,[esi+000005D0h] mov ebx,[esi+00000148h] cmp eax,00000004h mov eax,[esp+2Ch] mov [esp+18h],ecx mov dword ptr [esp+14h],00000001h mov [esp+1Ch],ebx jnc L00053629 mov edi,[eax] add eax,00000007h and eax,FFFFFFFCh mov [esp+0Ch],eax add eax,ecx mov [esp+2Ch],edi mov [esp+28h],eax jmp L0005363E L00053629: mov eax,[eax+04h] mov [esp+2Ch],eax mov eax,[esp+30h] add ecx,eax mov [esp+0Ch],eax mov [esp+28h],ecx L0005363E: test edx,edx jbe L00053826 push ebp jmp L0005364D L00053649: mov edx,[esp+38h] L0005364D: lea eax,[edx+edx+01h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00053664 mov [esp+34h],eax L00053664: mov edi,[esi+000005D4h] imul edi,[esp+34h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L000536B3 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000536B3 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000536B3 push ebx call [ebx+10h] mov eax,[ebx+08h] L000536B3: lea edx,[eax+edi*4] lea edi,[eax+04h] mov eax,[esp+34h] xor ebp,ebp cmp eax,00000003h mov [ebx+08h],edx mov [esp+24h],edi jc L000537DF mov ebx,00000003h L000536D4: mov eax,[esp+38h] test eax,eax jbe L000537D3 mov ecx,[esp+1Ch] mov edx,eax mov eax,[esp+2Ch] mov [esp+14h],eax add eax,ecx mov [esp+2Ch],eax mov al,[esp+30h] dec edx test al,01h mov [esp+38h],edx jz L0005373B mov eax,[esp+18h] test eax,eax jz L0005373B mov eax,[esp+10h] push eax push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h inc ebp lea edi,[edi+eax*4] inc ebx L0005373B: test byte ptr [esp+30h],02h jz L00053774 mov ecx,[esp+14h] push ecx push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] shr edx,02h push eax lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h inc ebp lea edi,[edi+ecx*4] inc ebx L00053774: mov eax,[esp+38h] test eax,eax jnz L000537B5 test byte ptr [esp+30h],04h jz L000537B5 mov edx,[esp+2Ch] push edx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h push ecx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h inc ebp lea edi,[edi+edx*4] inc ebx L000537B5: mov ecx,[esp+30h] mov eax,[esp+34h] shr ecx,1 cmp ebx,eax mov dword ptr [esp+18h],00000000h mov [esp+30h],ecx jbe L000536D4 L000537D3: mov ebx,[esp+20h] mov eax,[esp+34h] mov edi,[esp+24h] L000537DF: cmp ebp,eax mov ecx,[esi+000005D4h] jz L00053807 sub eax,ebp mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test ebp,ebp jnz L000537FA inc eax L000537FA: mov edx,[ebx+08h] neg eax shl eax,02h add edx,eax mov [ebx+08h],edx L00053807: mov eax,[esp+38h] imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edi-04h],ecx ja L00053649 pop ebp L00053826: pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00053830: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L00053C1C mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+20h],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+1Ch],00000001h mov dword ptr [esp+14h],00000000h mov [esp+30h],ecx jbe L00053C1C L00053883: lea eax,[edx+01h] cmp eax,00000666h jbe L00053898 mov ebx,00000666h mov [esp+10h],ebx jmp L0005389E L00053898: mov [esp+10h],eax mov ebx,eax L0005389E: mov esi,[edi+000005D4h] mov eax,[ebp+08h] imul esi,ebx mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L000538EB push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000538EB mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000538EB push ebp call [ebp+10h] mov eax,[ebp+08h] L000538EB: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+28h],eax mov esi,eax jc L00053AD4 mov dword ptr [esp+34h],00000002h L0005390D: mov eax,[esp+3Ch] test eax,eax jbe L00053AD4 mov ebx,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebx add ecx,eax mov eax,[esp+20h] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00053ABA inc edx push ecx mov [esp+1Ch],edx mov edx,[esp+38h] push ecx push esi inc edx push edi mov [esp+44h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+30h] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] mov eax,[esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00053AAC mov eax,[esp+18h] mov edx,[esp+34h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+28h],eax mov [esp+44h],edx mov dword ptr [esp+2Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00053AAC: mov ecx,[esp+30h] mov edx,[esp+18h] mov [esp+14h],ecx jmp L00053AC2 L00053ABA: mov dword ptr [esp+1Ch],00000001h L00053AC2: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebx,ecx jbe L0005390D L00053AD4: cmp edx,ebx mov eax,[edi+000005D4h] jz L00053AFC sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L00053AEF inc ebx L00053AEF: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00053AFC: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L00053883 mov eax,[esp+14h] test eax,eax jz L00053C1C mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00053B73 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00053B73 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00053B73 push ebp call [ebp+10h] mov eax,[ebp+08h] L00053B73: mov ecx,[esp+20h] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+14h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+14h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L00053C1C: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00053C30: sub esp,0000001Ch push ebp mov ebp,[esp+30h] test ebp,ebp jz L00054043 push ebx push esi push edi mov edi,[esp+30h] mov ebx,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+30h],esi mov dword ptr [esp+28h],00000001h mov dword ptr [esp+20h],00000000h call SUB_L000ABBE0 mov eax,[esp+34h] add eax,00000007h and eax,FFFFFFFCh mov [esp+20h],eax add eax,esi test ebp,ebp mov [esp+30h],eax jbe L00054037 jmp L00053C92 L00053C8E: mov ebp,[esp+3Ch] L00053C92: lea eax,[ebp+01h] cmp eax,00000666h jbe L00053CA7 mov ebp,00000666h mov [esp+10h],ebp jmp L00053CAD L00053CA7: mov [esp+10h],eax mov ebp,eax L00053CAD: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00053CFA push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00053CFA mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00053CFA push ebx call [ebx+10h] mov eax,[ebx+08h] L00053CFA: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L00053EE5 mov dword ptr [esp+34h],00000002h L00053D1C: mov eax,[esp+3Ch] test eax,eax jbe L00053EE5 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+20h] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00053ECB inc edx push ecx mov [esp+1Ch],edx mov edx,[esp+38h] push ecx push esi inc edx push edi mov [esp+44h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+30h] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] mov eax,[esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00053EBD mov eax,[esp+18h] mov edx,[esp+34h] push ebp push ebp inc eax push esi inc edx push edi mov [esp+28h],eax mov [esp+44h],edx mov dword ptr [esp+2Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00053EBD: mov ecx,[esp+30h] mov edx,[esp+18h] mov [esp+14h],ecx jmp L00053ED3 L00053ECB: mov dword ptr [esp+1Ch],00000001h L00053ED3: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L00053D1C L00053EE5: cmp edx,ebp mov eax,[edi+000005D4h] jz L00053F0D sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00053F00 inc ebp L00053F00: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00053F0D: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+3Ch] test eax,eax ja L00053C8E mov eax,[esp+14h] test eax,eax jz L00054037 mov ebp,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp mov esi,eax lea ecx,[esi+ebp*4] cmp ecx,edx jc L00053F8C push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov esi,eax jz L00053F8C mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov esi,eax lea ecx,[esi+ebp*4] cmp ecx,edx jc L00053F8C push ebx call [ebx+10h] mov eax,[ebx+08h] mov esi,eax L00053F8C: mov ecx,[esp+20h] lea edx,[eax+ebp*4] mov eax,[esp+14h] push eax push ecx add esi,00000004h push esi push edi mov [ebx+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+14h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebp,[esi+edx*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebx call SUB_L00041CB0 L00054037: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L00054043: pop ebp add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L00054050: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L0005443C mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+20h],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+1Ch],00000001h mov dword ptr [esp+14h],00000000h mov [esp+30h],ecx jbe L0005443C L000540A3: lea eax,[edx+01h] cmp eax,00000666h jbe L000540B8 mov ebx,00000666h mov [esp+10h],ebx jmp L000540BE L000540B8: mov [esp+10h],eax mov ebx,eax L000540BE: mov esi,[edi+000005D4h] mov eax,[ebp+08h] imul esi,ebx mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0005410B push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005410B mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005410B push ebp call [ebp+10h] mov eax,[ebp+08h] L0005410B: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+28h],eax mov esi,eax jc L000542F4 mov dword ptr [esp+34h],00000002h L0005412D: mov eax,[esp+3Ch] test eax,eax jbe L000542F4 mov ebx,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebx add ecx,eax mov eax,[esp+20h] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000542DA inc edx push ecx mov [esp+1Ch],edx mov edx,[esp+38h] push ecx push esi inc edx push edi mov [esp+44h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+30h] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] mov eax,[esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L000542CC mov eax,[esp+18h] mov edx,[esp+34h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+28h],eax mov [esp+44h],edx mov dword ptr [esp+2Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000542CC: mov ecx,[esp+30h] mov edx,[esp+18h] mov [esp+14h],ecx jmp L000542E2 L000542DA: mov dword ptr [esp+1Ch],00000001h L000542E2: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebx,ecx jbe L0005412D L000542F4: cmp edx,ebx mov eax,[edi+000005D4h] jz L0005431C sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L0005430F inc ebx L0005430F: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L0005431C: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L000540A3 mov eax,[esp+14h] test eax,eax jz L0005443C mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00054393 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00054393 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00054393 push ebp call [ebp+10h] mov eax,[ebp+08h] L00054393: mov ecx,[esp+20h] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+14h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+14h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L0005443C: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00054450: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L0005483C mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+20h],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+1Ch],00000001h mov dword ptr [esp+14h],00000000h mov [esp+30h],ecx jbe L0005483C L000544A3: lea eax,[edx+01h] cmp eax,00000666h jbe L000544B8 mov ebx,00000666h mov [esp+10h],ebx jmp L000544BE L000544B8: mov [esp+10h],eax mov ebx,eax L000544BE: mov esi,[edi+000005D4h] mov eax,[ebp+08h] imul esi,ebx mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0005450B push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005450B mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005450B push ebp call [ebp+10h] mov eax,[ebp+08h] L0005450B: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+28h],eax mov esi,eax jc L000546F4 mov dword ptr [esp+34h],00000002h L0005452D: mov eax,[esp+3Ch] test eax,eax jbe L000546F4 mov ebx,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebx add ecx,eax mov eax,[esp+20h] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000546DA inc edx push ecx mov [esp+1Ch],edx mov edx,[esp+38h] push ecx push esi inc edx push edi mov [esp+44h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+30h] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] mov eax,[esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L000546CC mov eax,[esp+18h] mov edx,[esp+34h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+28h],eax mov [esp+44h],edx mov dword ptr [esp+2Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000546CC: mov ecx,[esp+30h] mov edx,[esp+18h] mov [esp+14h],ecx jmp L000546E2 L000546DA: mov dword ptr [esp+1Ch],00000001h L000546E2: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebx,ecx jbe L0005452D L000546F4: cmp edx,ebx mov eax,[edi+000005D4h] jz L0005471C sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L0005470F inc ebx L0005470F: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L0005471C: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L000544A3 mov eax,[esp+14h] test eax,eax jz L0005483C mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00054793 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00054793 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00054793 push ebp call [ebp+10h] mov eax,[ebp+08h] L00054793: mov ecx,[esp+20h] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+14h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+14h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L0005483C: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00054850: sub esp,0000001Ch push ebp mov ebp,[esp+30h] test ebp,ebp jz L00054C63 push ebx push esi push edi mov edi,[esp+30h] mov ebx,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+30h],esi mov dword ptr [esp+28h],00000001h mov dword ptr [esp+20h],00000000h call SUB_L000ABBE0 mov eax,[esp+34h] add eax,00000007h and eax,FFFFFFFCh mov [esp+20h],eax add eax,esi test ebp,ebp mov [esp+30h],eax jbe L00054C57 jmp L000548B2 L000548AE: mov ebp,[esp+3Ch] L000548B2: lea eax,[ebp+01h] cmp eax,00000666h jbe L000548C7 mov ebp,00000666h mov [esp+10h],ebp jmp L000548CD L000548C7: mov [esp+10h],eax mov ebp,eax L000548CD: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0005491A push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0005491A mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005491A push ebx call [ebx+10h] mov eax,[ebx+08h] L0005491A: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L00054B05 mov dword ptr [esp+34h],00000002h L0005493C: mov eax,[esp+3Ch] test eax,eax jbe L00054B05 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+20h] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00054AEB inc edx push ecx mov [esp+1Ch],edx mov edx,[esp+38h] push ecx push esi inc edx push edi mov [esp+44h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+30h] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] mov eax,[esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00054ADD mov eax,[esp+18h] mov edx,[esp+34h] push ebp push ebp inc eax push esi inc edx push edi mov [esp+28h],eax mov [esp+44h],edx mov dword ptr [esp+2Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00054ADD: mov ecx,[esp+30h] mov edx,[esp+18h] mov [esp+14h],ecx jmp L00054AF3 L00054AEB: mov dword ptr [esp+1Ch],00000001h L00054AF3: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L0005493C L00054B05: cmp edx,ebp mov eax,[edi+000005D4h] jz L00054B2D sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00054B20 inc ebp L00054B20: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00054B2D: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+3Ch] test eax,eax ja L000548AE mov eax,[esp+14h] test eax,eax jz L00054C57 mov ebp,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp mov esi,eax lea ecx,[esi+ebp*4] cmp ecx,edx jc L00054BAC push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov esi,eax jz L00054BAC mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov esi,eax lea ecx,[esi+ebp*4] cmp ecx,edx jc L00054BAC push ebx call [ebx+10h] mov eax,[ebx+08h] mov esi,eax L00054BAC: mov ecx,[esp+20h] lea edx,[eax+ebp*4] mov eax,[esp+14h] push eax push ecx add esi,00000004h push esi push edi mov [ebx+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+14h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebp,[esi+edx*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebx call SUB_L00041CB0 L00054C57: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L00054C63: pop ebp add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L00054C70: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L0005505C mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+20h],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+1Ch],00000001h mov dword ptr [esp+14h],00000000h mov [esp+30h],ecx jbe L0005505C L00054CC3: lea eax,[edx+01h] cmp eax,00000666h jbe L00054CD8 mov ebx,00000666h mov [esp+10h],ebx jmp L00054CDE L00054CD8: mov [esp+10h],eax mov ebx,eax L00054CDE: mov esi,[edi+000005D4h] mov eax,[ebp+08h] imul esi,ebx mov ecx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L00054D2B push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00054D2B mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00054D2B push ebp call [ebp+10h] mov eax,[ebp+08h] L00054D2B: lea edx,[eax+esi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ebx,00000002h mov [esp+28h],eax mov esi,eax jc L00054F14 mov dword ptr [esp+34h],00000002h L00054D4D: mov eax,[esp+3Ch] test eax,eax jbe L00054F14 mov ebx,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebx add ecx,eax mov eax,[esp+20h] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00054EFA inc edx push ecx mov [esp+1Ch],edx mov edx,[esp+38h] push ecx push esi inc edx push edi mov [esp+44h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+30h] push eax push eax push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] mov eax,[esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00054EEC mov eax,[esp+18h] mov edx,[esp+34h] push ebx push ebx inc eax push esi inc edx push edi mov [esp+28h],eax mov [esp+44h],edx mov dword ptr [esp+2Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+14h],eax fild dword ptr [esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00054EEC: mov ecx,[esp+30h] mov edx,[esp+18h] mov [esp+14h],ecx jmp L00054F02 L00054EFA: mov dword ptr [esp+1Ch],00000001h L00054F02: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebx,ecx jbe L00054D4D L00054F14: cmp edx,ebx mov eax,[edi+000005D4h] jz L00054F3C sub ebx,edx mov ecx,eax shr ecx,02h imul ebx,ecx shl ebx,1 test edx,edx jnz L00054F2F inc ebx L00054F2F: mov ecx,[ebp+08h] neg ebx shl ebx,02h add ecx,ebx mov [ebp+08h],ecx L00054F3C: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L00054CC3 mov eax,[esp+14h] test eax,eax jz L0005505C mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00054FB3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00054FB3 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00054FB3 push ebp call [ebp+10h] mov eax,[ebp+08h] L00054FB3: mov ecx,[esp+20h] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+14h] push eax push ecx push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+14h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] push edx push 00000001h push 00000001h push esi push ebp call SUB_L00041CB0 L0005505C: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00055070: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax push ebx push ebp push esi push edi jz L00055427 mov edx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov ebp,[edi+0000017Ch] lea ebx,[edx+07h] and ebx,FFFFFFFCh mov [esp+28h],ebx add ebx,ecx test eax,eax mov [esp+1Ch],ecx mov dword ptr [esp+18h],00000001h mov dword ptr [esp+14h],00000000h jbe L00055427 jmp L000550C5 L000550C1: mov eax,[esp+3Ch] L000550C5: inc eax cmp eax,00000666h mov dword ptr [esp+30h],00000666h ja L000550D9 mov [esp+30h],eax L000550D9: mov esi,[edi+000005D4h] imul esi,[esp+30h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+34h],esi jc L00055136 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00055132 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+34h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00055136 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00055136 L00055132: mov esi,[esp+34h] L00055136: lea edx,[eax+esi*4] add eax,00000004h mov [esp+24h],eax mov esi,eax mov eax,[esp+30h] xor ecx,ecx cmp eax,00000002h mov [ebp+08h],edx jc L000552E0 mov dword ptr [esp+34h],00000002h L0005515C: mov edx,[esp+3Ch] test edx,edx jbe L000552E0 mov eax,[esp+1Ch] mov [esp+14h],ebx add ebx,eax mov eax,[esp+34h] push ebx dec edx push ebx inc ecx push esi inc eax push edi mov [esp+4Ch],edx mov [esp+20h],ecx mov [esp+44h],eax call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L000552C8 mov ecx,[esp+10h] mov eax,[esp+34h] inc ecx inc eax mov [esp+34h],eax mov eax,[esp+14h] push eax push eax push esi push edi mov [esp+20h],ecx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] push eax push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000552C8: mov ecx,[esp+30h] cmp [esp+34h],ecx mov eax,ecx mov ecx,[esp+10h] mov [esp+14h],ebx jbe L0005515C L000552E0: cmp ecx,eax mov edx,[edi+000005D4h] jz L00055308 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L000552FB inc eax L000552FB: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L00055308: mov eax,[esp+24h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L000550C1 mov ebx,[esp+14h] test ebx,ebx jz L00055427 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00055380 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00055380 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00055380 push ebp call [ebp+10h] mov eax,[ebp+08h] L00055380: push ebx mov ebx,[esp+2Ch] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L00055427: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00055440: sub esp,0000001Ch push esi mov esi,[esp+30h] test esi,esi jz L00055820 push ebx push ebp push edi mov edi,[esp+30h] mov ebp,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+24h],eax mov dword ptr [esp+28h],00000001h mov dword ptr [esp+20h],00000000h call SUB_L000ABBE0 mov ecx,[esp+34h] mov edx,[esp+18h] lea ebx,[ecx+07h] and ebx,FFFFFFFCh mov [esp+20h],ebx add ebx,edx test esi,esi jbe L00055814 jmp L000554A2 L0005549E: mov esi,[esp+3Ch] L000554A2: lea eax,[esi+01h] cmp eax,00000666h mov dword ptr [esp+30h],00000666h ja L000554B8 mov [esp+30h],eax L000554B8: mov esi,[edi+000005D4h] imul esi,[esp+30h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+34h],esi jc L00055515 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00055511 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+34h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00055515 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00055515 L00055511: mov esi,[esp+34h] L00055515: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+30h] xor ecx,ecx cmp eax,00000002h mov [ebp+08h],edx jc L000556BF mov dword ptr [esp+34h],00000002h L0005553B: mov edx,[esp+3Ch] test edx,edx jbe L000556BF mov eax,[esp+18h] mov [esp+14h],ebx add ebx,eax mov eax,[esp+34h] push ebx dec edx push ebx inc ecx push esi inc eax push edi mov [esp+4Ch],edx mov [esp+20h],ecx mov [esp+44h],eax call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L000556A7 mov ecx,[esp+10h] mov eax,[esp+34h] inc ecx inc eax mov [esp+34h],eax mov eax,[esp+14h] push eax push eax push esi push edi mov [esp+20h],ecx mov dword ptr [esp+2Ch],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+14h] push eax push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L000556A7: mov ecx,[esp+30h] cmp [esp+34h],ecx mov eax,ecx mov ecx,[esp+10h] mov [esp+14h],ebx jbe L0005553B L000556BF: cmp ecx,eax mov edx,[edi+000005D4h] jz L000556E7 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L000556DA inc eax L000556DA: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L000556E7: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005549E mov eax,[esp+14h] test eax,eax jz L00055814 mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L00055767 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov esi,eax jz L00055767 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov esi,eax lea ecx,[esi+ebx*4] cmp ecx,edx jc L00055767 push ebp call [ebp+10h] mov eax,[ebp+08h] mov esi,eax L00055767: mov ecx,[esp+20h] lea edx,[eax+ebx*4] mov eax,[esp+14h] push eax push ecx add esi,00000004h push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+14h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] lea edx,[eax+eax] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L00055814: push 00000000h push ebp push edi call SUB_L000ABBE0 pop edi pop ebp pop ebx L00055820: pop esi add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00055830: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax push ebx push ebp push esi push edi jz L00055BE7 mov edx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov ebp,[edi+00000148h] lea ebx,[edx+07h] and ebx,FFFFFFFCh mov [esp+28h],ebx add ebx,ecx test eax,eax mov [esp+1Ch],ecx mov dword ptr [esp+18h],00000001h mov dword ptr [esp+14h],00000000h jbe L00055BE7 jmp L00055885 L00055881: mov eax,[esp+3Ch] L00055885: inc eax cmp eax,00000666h mov dword ptr [esp+30h],00000666h ja L00055899 mov [esp+30h],eax L00055899: mov esi,[edi+000005D4h] imul esi,[esp+30h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+34h],esi jc L000558F6 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000558F2 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+34h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000558F6 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L000558F6 L000558F2: mov esi,[esp+34h] L000558F6: lea edx,[eax+esi*4] add eax,00000004h mov [esp+24h],eax mov esi,eax mov eax,[esp+30h] xor ecx,ecx cmp eax,00000002h mov [ebp+08h],edx jc L00055AA0 mov dword ptr [esp+34h],00000002h L0005591C: mov edx,[esp+3Ch] test edx,edx jbe L00055AA0 mov eax,[esp+1Ch] mov [esp+14h],ebx add ebx,eax mov eax,[esp+34h] push ebx dec edx push ebx inc ecx push esi inc eax push edi mov [esp+4Ch],edx mov [esp+20h],ecx mov [esp+44h],eax call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00055A88 mov ecx,[esp+10h] mov eax,[esp+34h] inc ecx inc eax mov [esp+34h],eax mov eax,[esp+14h] push eax push eax push esi push edi mov [esp+20h],ecx mov dword ptr [esp+28h],00000000h call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] push eax push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] L00055A88: mov ecx,[esp+30h] cmp [esp+34h],ecx mov eax,ecx mov ecx,[esp+10h] mov [esp+14h],ebx jbe L0005591C L00055AA0: cmp ecx,eax mov edx,[edi+000005D4h] jz L00055AC8 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00055ABB inc eax L00055ABB: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L00055AC8: mov eax,[esp+24h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L00055881 mov ebx,[esp+14h] test ebx,ebx jz L00055BE7 mov esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00055B40 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00055B40 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00055B40 push ebp call [ebp+10h] mov eax,[ebp+08h] L00055B40: push ebx mov ebx,[esp+2Ch] lea edx,[eax+esi*4] push ebx lea esi,[eax+04h] push esi push edi mov [ebp+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebp,[esi+eax*4] push ebp push edi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edi,[edi+000005D4h] lea edx,[edi+edi] shr edx,02h dec edx or edx,7F140000h mov [esi-04h],edx L00055BE7: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00055C00: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L00055FE3 mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+20h],00000000h mov [esp+30h],ecx jbe L00055FE3 L00055C53: lea eax,[edx+01h] cmp eax,00000666h jbe L00055C68 mov ebp,00000666h mov [esp+10h],ebp jmp L00055C6E L00055C68: mov [esp+10h],eax mov ebp,eax L00055C6E: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L00055CBB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00055CBB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00055CBB push ebx call [ebx+10h] mov eax,[ebx+08h] L00055CBB: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L00055EA2 mov dword ptr [esp+34h],00000002h L00055CDD: mov eax,[esp+3Ch] test eax,eax jbe L00055EA2 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00055E88 mov eax,[esp+34h] push ecx inc edx push esi inc eax push edi mov [esp+20h],edx mov [esp+40h],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00055E7A mov eax,[esp+14h] mov edx,[esp+34h] push ebp inc eax push esi inc edx push edi mov [esp+20h],eax mov [esp+40h],edx mov dword ptr [esp+24h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00055E7A: mov edx,[esp+30h] mov [esp+20h],edx mov edx,[esp+14h] jmp L00055E90 L00055E88: mov dword ptr [esp+18h],00000001h L00055E90: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L00055CDD L00055EA2: cmp edx,ebp mov eax,[edi+000005D4h] jz L00055ECA sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00055EBD inc ebp L00055EBD: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00055ECA: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L00055C53 mov eax,[esp+20h] test eax,eax jz L00055FE3 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00055F41 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00055F41 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00055F41 push ebx call [ebx+10h] mov eax,[ebx+08h] L00055F41: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+1Ch] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L00055FE3: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L00055FF0: sub esp,0000001Ch push ebp mov ebp,[esp+30h] test ebp,ebp jz L000563EF push ebx push esi push edi mov edi,[esp+30h] mov ebx,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+30h],esi mov dword ptr [esp+24h],00000001h mov dword ptr [esp+2Ch],00000000h call SUB_L000ABBE0 mov eax,[esp+34h] add eax,00000007h and eax,FFFFFFFCh mov [esp+1Ch],eax add eax,esi test ebp,ebp mov [esp+30h],eax jbe L000563E3 jmp L00056052 L0005604E: mov ebp,[esp+3Ch] L00056052: lea eax,[ebp+01h] cmp eax,00000666h jbe L00056067 mov ebp,00000666h mov [esp+10h],ebp jmp L0005606D L00056067: mov [esp+10h],eax mov ebp,eax L0005606D: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L000560BA push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000560BA mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000560BA push ebx call [ebx+10h] mov eax,[ebx+08h] L000560BA: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L000562A1 mov dword ptr [esp+34h],00000002h L000560DC: mov eax,[esp+3Ch] test eax,eax jbe L000562A1 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00056287 mov eax,[esp+34h] push ecx inc edx push esi inc eax push edi mov [esp+20h],edx mov [esp+40h],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00056279 mov eax,[esp+14h] mov edx,[esp+34h] push ebp inc eax push esi inc edx push edi mov [esp+20h],eax mov [esp+40h],edx mov dword ptr [esp+24h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00056279: mov edx,[esp+30h] mov [esp+20h],edx mov edx,[esp+14h] jmp L0005628F L00056287: mov dword ptr [esp+18h],00000001h L0005628F: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L000560DC L000562A1: cmp edx,ebp mov eax,[edi+000005D4h] jz L000562C9 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000562BC inc ebp L000562BC: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000562C9: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+3Ch] test eax,eax ja L0005604E mov eax,[esp+20h] test eax,eax jz L000563E3 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00056340 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00056340 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00056340 push ebx call [ebx+10h] mov eax,[ebx+08h] L00056340: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+1Ch] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000563E3: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L000563EF: pop ebp add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00056400: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L000567E3 mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+20h],00000000h mov [esp+30h],ecx jbe L000567E3 L00056453: lea eax,[edx+01h] cmp eax,00000666h jbe L00056468 mov ebp,00000666h mov [esp+10h],ebp jmp L0005646E L00056468: mov [esp+10h],eax mov ebp,eax L0005646E: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L000564BB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000564BB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000564BB push ebx call [ebx+10h] mov eax,[ebx+08h] L000564BB: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L000566A2 mov dword ptr [esp+34h],00000002h L000564DD: mov eax,[esp+3Ch] test eax,eax jbe L000566A2 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00056688 mov eax,[esp+34h] push ecx inc edx push esi inc eax push edi mov [esp+20h],edx mov [esp+40h],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0005667A mov eax,[esp+14h] mov edx,[esp+34h] push ebp inc eax push esi inc edx push edi mov [esp+20h],eax mov [esp+40h],edx mov dword ptr [esp+24h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0005667A: mov edx,[esp+30h] mov [esp+20h],edx mov edx,[esp+14h] jmp L00056690 L00056688: mov dword ptr [esp+18h],00000001h L00056690: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L000564DD L000566A2: cmp edx,ebp mov eax,[edi+000005D4h] jz L000566CA sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000566BD inc ebp L000566BD: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000566CA: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L00056453 mov eax,[esp+20h] test eax,eax jz L000567E3 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00056741 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00056741 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00056741 push ebx call [ebx+10h] mov eax,[ebx+08h] L00056741: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+1Ch] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000567E3: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L000567F0: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L00056BD3 mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+20h],00000000h mov [esp+30h],ecx jbe L00056BD3 L00056843: lea eax,[edx+01h] cmp eax,00000666h jbe L00056858 mov ebp,00000666h mov [esp+10h],ebp jmp L0005685E L00056858: mov [esp+10h],eax mov ebp,eax L0005685E: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L000568AB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000568AB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000568AB push ebx call [ebx+10h] mov eax,[ebx+08h] L000568AB: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L00056A92 mov dword ptr [esp+34h],00000002h L000568CD: mov eax,[esp+3Ch] test eax,eax jbe L00056A92 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00056A78 mov eax,[esp+34h] push ecx inc edx push esi inc eax push edi mov [esp+20h],edx mov [esp+40h],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00056A6A mov eax,[esp+14h] mov edx,[esp+34h] push ebp inc eax push esi inc edx push edi mov [esp+20h],eax mov [esp+40h],edx mov dword ptr [esp+24h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00056A6A: mov edx,[esp+30h] mov [esp+20h],edx mov edx,[esp+14h] jmp L00056A80 L00056A78: mov dword ptr [esp+18h],00000001h L00056A80: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L000568CD L00056A92: cmp edx,ebp mov eax,[edi+000005D4h] jz L00056ABA sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00056AAD inc ebp L00056AAD: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00056ABA: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L00056843 mov eax,[esp+20h] test eax,eax jz L00056BD3 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00056B31 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00056B31 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00056B31 push ebx call [ebx+10h] mov eax,[ebx+08h] L00056B31: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+1Ch] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L00056BD3: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L00056BE0: sub esp,0000001Ch push ebp mov ebp,[esp+30h] test ebp,ebp jz L00056FDF push ebx push esi push edi mov edi,[esp+30h] mov ebx,[edi+0000017Ch] mov esi,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+30h],esi mov dword ptr [esp+24h],00000001h mov dword ptr [esp+2Ch],00000000h call SUB_L000ABBE0 mov eax,[esp+34h] add eax,00000007h and eax,FFFFFFFCh mov [esp+1Ch],eax add eax,esi test ebp,ebp mov [esp+30h],eax jbe L00056FD3 jmp L00056C42 L00056C3E: mov ebp,[esp+3Ch] L00056C42: lea eax,[ebp+01h] cmp eax,00000666h jbe L00056C57 mov ebp,00000666h mov [esp+10h],ebp jmp L00056C5D L00056C57: mov [esp+10h],eax mov ebp,eax L00056C5D: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00056CAA push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00056CAA mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00056CAA push ebx call [ebx+10h] mov eax,[ebx+08h] L00056CAA: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L00056E91 mov dword ptr [esp+34h],00000002h L00056CCC: mov eax,[esp+3Ch] test eax,eax jbe L00056E91 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00056E77 mov eax,[esp+34h] push ecx inc edx push esi inc eax push edi mov [esp+20h],edx mov [esp+40h],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L00056E69 mov eax,[esp+14h] mov edx,[esp+34h] push ebp inc eax push esi inc edx push edi mov [esp+20h],eax mov [esp+40h],edx mov dword ptr [esp+24h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L00056E69: mov edx,[esp+30h] mov [esp+20h],edx mov edx,[esp+14h] jmp L00056E7F L00056E77: mov dword ptr [esp+18h],00000001h L00056E7F: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L00056CCC L00056E91: cmp edx,ebp mov eax,[edi+000005D4h] jz L00056EB9 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00056EAC inc ebp L00056EAC: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00056EB9: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+3Ch] test eax,eax ja L00056C3E mov eax,[esp+20h] test eax,eax jz L00056FD3 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00056F30 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00056F30 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00056F30 push ebx call [ebx+10h] mov eax,[ebx+08h] L00056F30: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+1Ch] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L00056FD3: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop esi pop ebx L00056FDF: pop ebp add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00056FF0: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L000573D3 mov ecx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] add ecx,00000007h and ecx,FFFFFFFCh mov [esp+1Ch],ecx add ecx,eax test edx,edx mov [esp+24h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+20h],00000000h mov [esp+30h],ecx jbe L000573D3 L00057043: lea eax,[edx+01h] cmp eax,00000666h jbe L00057058 mov ebp,00000666h mov [esp+10h],ebp jmp L0005705E L00057058: mov [esp+10h],eax mov ebp,eax L0005705E: mov esi,[edi+000005D4h] mov eax,[ebx+08h] imul esi,ebp mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L000570AB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000570AB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000570AB push ebx call [ebx+10h] mov eax,[ebx+08h] L000570AB: lea edx,[eax+esi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov [esp+28h],eax mov esi,eax jc L00057292 mov dword ptr [esp+34h],00000002h L000570CD: mov eax,[esp+3Ch] test eax,eax jbe L00057292 mov ebp,[esp+30h] mov ecx,eax mov eax,[esp+24h] dec ecx mov [esp+3Ch],ecx mov ecx,ebp add ecx,eax mov eax,[esp+1Ch] fld dword ptr [eax+04h] mov [esp+30h],ecx fsub dword ptr [ebp+04h] fld dword ptr [ecx] fsub dword ptr [ebp+00h] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebp+04h] fld dword ptr [eax] fsub dword ptr [ebp+00h] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00057278 mov eax,[esp+34h] push ecx inc edx push esi inc eax push edi mov [esp+20h],edx mov [esp+40h],eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h cmp eax,00000001h lea esi,[esi+edx*4] jnz L0005726A mov eax,[esp+14h] mov edx,[esp+34h] push ebp inc eax push esi inc edx push edi mov [esp+20h],eax mov [esp+40h],edx mov dword ptr [esp+24h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] L0005726A: mov edx,[esp+30h] mov [esp+20h],edx mov edx,[esp+14h] jmp L00057280 L00057278: mov dword ptr [esp+18h],00000001h L00057280: mov ecx,[esp+10h] mov eax,[esp+34h] cmp eax,ecx mov ebp,ecx jbe L000570CD L00057292: cmp edx,ebp mov eax,[edi+000005D4h] jz L000572BA sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000572AD inc ebp L000572AD: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000572BA: imul eax,edx mov edx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov edx,[esp+3Ch] test edx,edx ja L00057043 mov eax,[esp+20h] test eax,eax jz L000573D3 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L00057331 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00057331 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00057331 push ebx call [ebx+10h] mov eax,[ebx+08h] L00057331: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+1Ch] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[esi+ecx*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea eax,[edi+edi] shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L000573D3: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L000573E0: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax push ebx push ebp push esi push edi jz L0005778D mov edx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov ebx,[edi+0000017Ch] lea ebp,[edx+07h] and ebp,FFFFFFFCh mov [esp+28h],ebp add ebp,ecx test eax,eax mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov dword ptr [esp+18h],00000000h jbe L0005778D jmp L00057435 L00057431: mov eax,[esp+3Ch] L00057435: inc eax cmp eax,00000666h mov dword ptr [esp+30h],00000666h ja L00057449 mov [esp+30h],eax L00057449: mov esi,[edi+000005D4h] imul esi,[esp+30h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+34h],esi jc L000574A6 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000574A2 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+34h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000574A6 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L000574A6 L000574A2: mov esi,[esp+34h] L000574A6: lea edx,[eax+esi*4] add eax,00000004h mov [esp+24h],eax mov esi,eax mov eax,[esp+30h] xor ecx,ecx cmp eax,00000002h mov [ebx+08h],edx jc L0005764E mov dword ptr [esp+34h],00000002h L000574CC: mov edx,[esp+3Ch] test edx,edx jbe L0005764E mov eax,edx mov edx,[esp+1Ch] mov [esp+18h],ebp add ebp,edx mov edx,[esp+34h] dec eax push ebp inc ecx push esi inc edx push edi mov [esp+48h],eax mov [esp+1Ch],ecx mov [esp+40h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00057636 mov eax,[esp+10h] mov edx,[esp+34h] inc eax inc edx mov [esp+34h],edx mov edx,[esp+18h] push edx push esi push edi mov [esp+1Ch],eax mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+18h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] L00057636: mov ecx,[esp+34h] mov eax,[esp+30h] cmp ecx,eax mov ecx,[esp+10h] mov [esp+18h],ebp jbe L000574CC L0005764E: cmp ecx,eax mov edx,[edi+000005D4h] jz L00057676 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00057669 inc eax L00057669: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L00057676: mov eax,[esp+3Ch] imul edx,ecx mov ecx,[esp+24h] shl edx,1 shr edx,02h dec edx or edx,7F140000h test eax,eax mov [ecx-04h],edx ja L00057431 mov eax,[esp+18h] test eax,eax jz L0005778D mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L000576EE push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000576EE mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000576EE push ebx call [ebx+10h] mov eax,[ebx+08h] L000576EE: mov ebp,[esp+28h] lea edx,[eax+esi*4] push ebp lea esi,[eax+04h] push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L0005778D: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L000577A0: sub esp,0000001Ch push esi mov esi,[esp+30h] test esi,esi jz L00057B6C push ebx push ebp push edi mov edi,[esp+30h] mov ebx,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebx push edi mov [esp+20h],eax mov dword ptr [esp+24h],00000001h mov dword ptr [esp+28h],00000000h call SUB_L000ABBE0 mov ecx,[esp+34h] mov edx,[esp+14h] lea ebp,[ecx+07h] and ebp,FFFFFFFCh mov [esp+20h],ebp add ebp,edx test esi,esi jbe L00057B60 jmp L00057802 L000577FE: mov esi,[esp+3Ch] L00057802: lea eax,[esi+01h] cmp eax,00000666h mov dword ptr [esp+30h],00000666h ja L00057818 mov [esp+30h],eax L00057818: mov esi,[edi+000005D4h] imul esi,[esp+30h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+34h],esi jc L00057875 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00057871 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+34h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00057875 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00057875 L00057871: mov esi,[esp+34h] L00057875: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+30h] xor ecx,ecx cmp eax,00000002h mov [ebx+08h],edx jc L00057A1D mov dword ptr [esp+34h],00000002h L0005789B: mov edx,[esp+3Ch] test edx,edx jbe L00057A1D mov eax,edx mov edx,[esp+14h] mov [esp+1Ch],ebp add ebp,edx mov edx,[esp+34h] dec eax push ebp inc ecx push esi inc edx push edi mov [esp+48h],eax mov [esp+1Ch],ecx mov [esp+40h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00057A05 mov eax,[esp+10h] mov edx,[esp+34h] inc eax inc edx mov [esp+34h],edx mov edx,[esp+1Ch] push edx push esi push edi mov [esp+1Ch],eax mov dword ptr [esp+24h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+1Ch] mov [esp+24h],eax fild dword ptr [esp+24h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] L00057A05: mov ecx,[esp+34h] mov eax,[esp+30h] cmp ecx,eax mov ecx,[esp+10h] mov [esp+1Ch],ebp jbe L0005789B L00057A1D: cmp ecx,eax mov edx,[edi+000005D4h] jz L00057A45 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00057A38 inc eax L00057A38: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L00057A45: mov eax,[esp+3Ch] imul edx,ecx mov ecx,[esp+28h] shl edx,1 shr edx,02h dec edx or edx,7F140000h test eax,eax mov [ecx-04h],edx ja L000577FE mov eax,[esp+1Ch] test eax,eax jz L00057B60 mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L00057ABD push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00057ABD mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00057ABD push ebx call [ebx+10h] mov eax,[ebx+08h] L00057ABD: lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+20h] push eax push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+20h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebp,[esi+ecx*4] push ebp push edi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[edi+000005D4h] add eax,eax shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax L00057B60: push 00000000h push ebx push edi call SUB_L000ABBE0 pop edi pop ebp pop ebx L00057B6C: pop esi add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00057B80: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax push ebx push ebp push esi push edi jz L00057F2D mov edx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov ebx,[edi+00000148h] lea ebp,[edx+07h] and ebp,FFFFFFFCh mov [esp+28h],ebp add ebp,ecx test eax,eax mov [esp+1Ch],ecx mov dword ptr [esp+14h],00000001h mov dword ptr [esp+18h],00000000h jbe L00057F2D jmp L00057BD5 L00057BD1: mov eax,[esp+3Ch] L00057BD5: inc eax cmp eax,00000666h mov dword ptr [esp+30h],00000666h ja L00057BE9 mov [esp+30h],eax L00057BE9: mov esi,[edi+000005D4h] imul esi,[esp+30h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+34h],esi jc L00057C46 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00057C42 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+34h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00057C46 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00057C46 L00057C42: mov esi,[esp+34h] L00057C46: lea edx,[eax+esi*4] add eax,00000004h mov [esp+24h],eax mov esi,eax mov eax,[esp+30h] xor ecx,ecx cmp eax,00000002h mov [ebx+08h],edx jc L00057DEE mov dword ptr [esp+34h],00000002h L00057C6C: mov edx,[esp+3Ch] test edx,edx jbe L00057DEE mov eax,edx mov edx,[esp+1Ch] mov [esp+18h],ebp add ebp,edx mov edx,[esp+34h] dec eax push ebp inc ecx push esi inc edx push edi mov [esp+48h],eax mov [esp+1Ch],ecx mov [esp+40h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000001h lea esi,[esi+ecx*4] jnz L00057DD6 mov eax,[esp+10h] mov edx,[esp+34h] inc eax inc edx mov [esp+34h],edx mov edx,[esp+18h] push edx push esi push edi mov [esp+1Ch],eax mov dword ptr [esp+20h],00000000h call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+18h] mov [esp+20h],eax fild dword ptr [esp+20h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] L00057DD6: mov ecx,[esp+34h] mov eax,[esp+30h] cmp ecx,eax mov ecx,[esp+10h] mov [esp+18h],ebp jbe L00057C6C L00057DEE: cmp ecx,eax mov edx,[edi+000005D4h] jz L00057E16 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L00057E09 inc eax L00057E09: mov esi,[ebx+08h] neg eax shl eax,02h add esi,eax mov [ebx+08h],esi L00057E16: mov eax,[esp+3Ch] imul edx,ecx mov ecx,[esp+24h] shl edx,1 shr edx,02h dec edx or edx,7F140000h test eax,eax mov [ecx-04h],edx ja L00057BD1 mov eax,[esp+18h] test eax,eax jz L00057F2D mov esi,[edi+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L00057E8E push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00057E8E mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00057E8E push ebx call [ebx+10h] mov eax,[ebx+08h] L00057E8E: mov ebp,[esp+28h] lea edx,[eax+esi*4] push ebp lea esi,[eax+04h] push esi push edi mov [ebx+08h],edx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[esi+eax*4] push ebx push edi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edi,[edi+000005D4h] lea ecx,[edi+edi] shr ecx,02h dec ecx or ecx,7F140000h mov [esi-04h],ecx L00057F2D: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00057F40: mov eax,[esp+10h] sub esp,00000014h test eax,eax push ebx push ebp push esi jz L00058253 mov edx,[esp+28h] mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov ebx,[esi+00000148h] xor ebp,ebp mov bp,[edx] mov edx,[esp+2Ch] mov [esp+10h],ecx mov [esp+14h],ebx imul ebp,ecx add ebp,edx test eax,eax jbe L00058253 push edi jmp L00057F8B L00057F87: mov eax,[esp+34h] L00057F8B: cmp eax,00000CCAh jbe L00057F9D mov ecx,00000CCAh mov [esp+10h],ecx jmp L00057FA3 L00057F9D: mov [esp+10h],eax mov ecx,eax L00057FA3: mov eax,[ebx+08h] lea edi,[ecx+02h] imul edi,[esi+000005D4h] shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,[ebx+0Ch] jc L00057FF1 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00057FED mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00057FED push ebx call [ebx+10h] mov eax,[ebx+08h] L00057FED: mov ecx,[esp+10h] L00057FF1: lea edx,[eax+edi*4] add eax,00000004h mov [esp+20h],eax mov edi,eax cmp dword ptr [esp+34h],00000001h mov [ebx+08h],edx jbe L0005800E mov eax,ecx and eax,FFFFFFFEh jmp L00058014 L0005800E: mov [esp+30h],ecx mov eax,ecx L00058014: sub [esp+34h],eax add eax,00000002h mov edx,00000000h mov [esp+30h],eax mov [esp+28h],edx jz L00058201 L0005802E: mov eax,[esi+00000190h] test eax,eax jnz L0005803F mov dword ptr [ebp+0Ch],3F800000h L0005803F: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebp push edi call [L000B493C+ecx*4] mov ebx,eax mov eax,[esi+000048ACh] test eax,eax jz L0005807F push 00000001h push edi push esi call SUB_L0003E580 L0005807F: mov edx,[esp+28h] mov ecx,[esp+14h] mov eax,[esp+30h] inc edx add ebp,ecx dec eax mov [esp+28h],edx mov [esp+30h],eax jz L000581E6 mov eax,[esi+00000190h] test eax,eax jnz L000580AE mov dword ptr [ebp+0Ch],3F800000h L000580AE: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[esi+00000A10h] push eax push ebp lea ecx,[edx+ecx*8] push ebx call [L000B493C+ecx*4] mov [esp+1Ch],eax mov eax,[esi+000048ACh] test eax,eax jz L000581C4 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebx test eax,eax jbe L000581C4 cmp eax,00000002h jbe L0005816C cmp eax,00000003h jnz L000581C4 fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L0005813D mov byte ptr [edi],FFh jmp L000581C4 L0005813D: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L00058153 mov byte ptr [edi],00h jmp L000581C4 L00058153: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+2Ch] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al jmp L000581C4 L0005816C: fld dword ptr [L000B2380] fdiv dword ptr [ebx+0Ch] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L0005818B mov byte ptr [edi],FFh jmp L000581C4 L0005818B: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L000581A1 mov byte ptr [edi],00h jmp L000581C4 L000581A1: fld dword ptr [esp+2Ch] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L000581C4: mov edx,[esp+28h] mov ecx,[esp+14h] mov eax,[esp+30h] mov edi,[esp+1Ch] inc edx add ebp,ecx dec eax mov [esp+28h],edx mov [esp+30h],eax jnz L0005802E L000581E6: mov eax,[esp+28h] test eax,eax jz L000581F5 sub eax,00000002h mov [esp+28h],eax L000581F5: mov ebx,[esp+18h] mov edx,[esp+28h] mov ecx,[esp+10h] L00058201: mov eax,[esp+14h] neg eax cmp edx,ecx lea ebp,[ebp+eax*2+00h] mov eax,[esi+000005D4h] jz L0005822F sub ecx,edx imul ecx,eax shr ecx,02h test edx,edx jnz L00058222 inc ecx L00058222: mov edi,[ebx+08h] neg ecx shl ecx,02h add edi,ecx mov [ebx+08h],edi L0005822F: mov ecx,[esp+20h] add edx,00000002h imul edx,eax mov eax,[esp+34h] shr edx,02h dec edx or edx,7F040000h test eax,eax mov [ecx-04h],edx ja L00057F87 pop edi L00058253: pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00058260: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push esi push edi jz L000585B0 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebx,ebx mov bx,[edx] mov edx,[esp+28h] mov [esp+10h],eax mov [esp+14h],edi imul ebx,eax add ebx,edx add eax,ebx test ecx,ecx mov [esp+20h],eax jbe L000585B0 push ebp jmp L000582B1 L000582AD: mov ecx,[esp+30h] L000582B1: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L000582C1 mov eax,00000006h jmp L000582D0 L000582C1: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L000582D4 L000582D0: mov [esp+28h],eax L000582D4: mov ebp,[esi+000005D4h] imul ebp,[esp+28h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+2Ch],ebp jc L00058331 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0005832D mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+2Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00058331 push edi call [edi+10h] mov eax,[edi+08h] jmp L00058331 L0005832D: mov ebp,[esp+2Ch] L00058331: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+1Ch],eax mov ebp,eax mov eax,[esp+28h] mov [edi+08h],edx xor edx,edx cmp eax,00000006h mov [esp+2Ch],edx jc L00058565 mov dword ptr [esp+10h],00000006h jmp L00058369 L0005835D: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00058369: mov ecx,[esp+30h] test ecx,ecx jbe L00058565 mov eax,ecx mov ecx,[esp+14h] dec eax mov edi,ebx mov [esp+30h],eax mov eax,[esp+24h] fld dword ptr [eax+ecx+04h] lea ebx,[eax+ecx] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005845A push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax mov [esp+10h],ecx mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp add edx,eax push esi mov [esp+3Ch],edx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L0005845A: mov eax,[esp+30h] test eax,eax jbe L00058559 mov edi,[esp+24h] fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] mov ecx,[esp+14h] fld dword ptr [ebx+ecx] dec eax fsub dword ptr [edi] mov [esp+30h],eax lea eax,[ebx+ecx] fmulp ST(1),ST fld dword ptr [eax+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005854B push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+10h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+3Ch],ecx mov [esp+20h],edx call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L0005854B: mov ecx,[esp+10h] cmp ecx,[esp+28h] jbe L0005835D L00058559: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00058565: cmp edx,eax mov ecx,[esi+000005D4h] jz L0005858D sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00058580 inc eax L00058580: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L0005858D: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000582AD pop ebp L000585B0: pop edi pop esi pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000585C0: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L00058928 push ebx push ebp push esi mov esi,[esp+20h] mov ebp,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+20h],ebp mov [esp+24h],edi call SUB_L000ABBE0 mov eax,[esp+28h] mov ecx,[esp+2Ch] xor ebx,ebx mov bx,[eax] mov eax,[esp+30h] imul ebx,ebp add ebx,ecx test eax,eax lea ecx,[ebx+ebp] mov [esp+24h],ecx jbe L0005891B L00058619: mov edx,[esp+30h] lea eax,[edx+edx+01h] cmp eax,00000006h ja L0005862D mov eax,00000006h jmp L0005863C L0005862D: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L00058640 L0005863C: mov [esp+28h],eax L00058640: mov ebp,[esi+000005D4h] imul ebp,[esp+28h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+2Ch],ebp jc L0005869D push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00058699 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+2Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0005869D push edi call [edi+10h] mov eax,[edi+08h] jmp L0005869D L00058699: mov ebp,[esp+2Ch] L0005869D: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+1Ch],eax mov ebp,eax mov eax,[esp+28h] mov [edi+08h],edx xor edx,edx cmp eax,00000006h mov [esp+2Ch],edx jc L000588D1 mov dword ptr [esp+10h],00000006h jmp L000586D5 L000586C9: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L000586D5: mov ecx,[esp+30h] test ecx,ecx jbe L000588D1 mov eax,ecx mov ecx,[esp+14h] dec eax mov edi,ebx mov [esp+30h],eax mov eax,[esp+24h] fld dword ptr [eax+ecx+04h] lea ebx,[eax+ecx] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000587C6 push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax mov [esp+10h],ecx mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp add edx,eax push esi mov [esp+3Ch],edx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L000587C6: mov eax,[esp+30h] test eax,eax jbe L000588C5 mov edi,[esp+24h] fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] mov ecx,[esp+14h] fld dword ptr [ebx+ecx] dec eax fsub dword ptr [edi] mov [esp+30h],eax lea eax,[ebx+ecx] fmulp ST(1),ST fld dword ptr [eax+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000588B7 push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+10h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+3Ch],ecx mov [esp+20h],edx call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L000588B7: mov ecx,[esp+10h] cmp ecx,[esp+28h] jbe L000586C9 L000588C5: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L000588D1: cmp edx,eax mov ecx,[esi+000005D4h] jz L000588F9 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L000588EC inc eax L000588EC: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L000588F9: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00058619 L0005891B: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L00058928: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00058930: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push esi push edi jz L00058C80 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] xor ebx,ebx mov bx,[edx] mov edx,[esp+28h] mov [esp+10h],eax mov [esp+14h],edi imul ebx,eax add ebx,edx add eax,ebx test ecx,ecx mov [esp+20h],eax jbe L00058C80 push ebp jmp L00058981 L0005897D: mov ecx,[esp+30h] L00058981: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L00058991 mov eax,00000006h jmp L000589A0 L00058991: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L000589A4 L000589A0: mov [esp+28h],eax L000589A4: mov ebp,[esi+000005D4h] imul ebp,[esp+28h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+2Ch],ebp jc L00058A01 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000589FD mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+2Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00058A01 push edi call [edi+10h] mov eax,[edi+08h] jmp L00058A01 L000589FD: mov ebp,[esp+2Ch] L00058A01: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+1Ch],eax mov ebp,eax mov eax,[esp+28h] mov [edi+08h],edx xor edx,edx cmp eax,00000006h mov [esp+2Ch],edx jc L00058C35 mov dword ptr [esp+10h],00000006h jmp L00058A39 L00058A2D: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00058A39: mov ecx,[esp+30h] test ecx,ecx jbe L00058C35 mov eax,ecx mov ecx,[esp+14h] dec eax mov edi,ebx mov [esp+30h],eax mov eax,[esp+24h] fld dword ptr [eax+ecx+04h] lea ebx,[eax+ecx] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00058B2A push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax mov [esp+10h],ecx mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp add edx,eax push esi mov [esp+3Ch],edx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00058B2A: mov eax,[esp+30h] test eax,eax jbe L00058C29 mov edi,[esp+24h] fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] mov ecx,[esp+14h] fld dword ptr [ebx+ecx] dec eax fsub dword ptr [edi] mov [esp+30h],eax lea eax,[ebx+ecx] fmulp ST(1),ST fld dword ptr [eax+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00058C1B push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+10h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+3Ch],ecx mov [esp+20h],edx call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00058C1B: mov ecx,[esp+10h] cmp ecx,[esp+28h] jbe L00058A2D L00058C29: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00058C35: cmp edx,eax mov ecx,[esi+000005D4h] jz L00058C5D sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00058C50 inc eax L00058C50: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L00058C5D: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0005897D pop ebp L00058C80: pop edi pop esi pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00058C90: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push esi push edi jz L00058FE0 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebx,ebx mov bx,[edx] mov edx,[esp+28h] mov [esp+10h],eax mov [esp+14h],edi imul ebx,eax add ebx,edx add eax,ebx test ecx,ecx mov [esp+20h],eax jbe L00058FE0 push ebp jmp L00058CE1 L00058CDD: mov ecx,[esp+30h] L00058CE1: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L00058CF1 mov eax,00000006h jmp L00058D00 L00058CF1: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L00058D04 L00058D00: mov [esp+28h],eax L00058D04: mov ebp,[esi+000005D4h] imul ebp,[esp+28h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+2Ch],ebp jc L00058D61 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00058D5D mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+2Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00058D61 push edi call [edi+10h] mov eax,[edi+08h] jmp L00058D61 L00058D5D: mov ebp,[esp+2Ch] L00058D61: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+1Ch],eax mov ebp,eax mov eax,[esp+28h] mov [edi+08h],edx xor edx,edx cmp eax,00000006h mov [esp+2Ch],edx jc L00058F95 mov dword ptr [esp+10h],00000006h jmp L00058D99 L00058D8D: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00058D99: mov ecx,[esp+30h] test ecx,ecx jbe L00058F95 mov eax,ecx mov ecx,[esp+14h] dec eax mov edi,ebx mov [esp+30h],eax mov eax,[esp+24h] fld dword ptr [eax+ecx+04h] lea ebx,[eax+ecx] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00058E8A push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax mov [esp+10h],ecx mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp add edx,eax push esi mov [esp+3Ch],edx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00058E8A: mov eax,[esp+30h] test eax,eax jbe L00058F89 mov edi,[esp+24h] fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] mov ecx,[esp+14h] fld dword ptr [ebx+ecx] dec eax fsub dword ptr [edi] mov [esp+30h],eax lea eax,[ebx+ecx] fmulp ST(1),ST fld dword ptr [eax+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00058F7B push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+10h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+3Ch],ecx mov [esp+20h],edx call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00058F7B: mov ecx,[esp+10h] cmp ecx,[esp+28h] jbe L00058D8D L00058F89: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00058F95: cmp edx,eax mov ecx,[esi+000005D4h] jz L00058FBD sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00058FB0 inc eax L00058FB0: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L00058FBD: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00058CDD pop ebp L00058FE0: pop edi pop esi pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00058FF0: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L00059358 push ebx push ebp push esi mov esi,[esp+20h] mov ebp,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+20h],ebp mov [esp+24h],edi call SUB_L000ABBE0 mov eax,[esp+28h] mov ecx,[esp+2Ch] xor ebx,ebx mov bx,[eax] mov eax,[esp+30h] imul ebx,ebp add ebx,ecx test eax,eax lea ecx,[ebx+ebp] mov [esp+24h],ecx jbe L0005934B L00059049: mov edx,[esp+30h] lea eax,[edx+edx+01h] cmp eax,00000006h ja L0005905D mov eax,00000006h jmp L0005906C L0005905D: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L00059070 L0005906C: mov [esp+28h],eax L00059070: mov ebp,[esi+000005D4h] imul ebp,[esp+28h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+2Ch],ebp jc L000590CD push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000590C9 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+2Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L000590CD push edi call [edi+10h] mov eax,[edi+08h] jmp L000590CD L000590C9: mov ebp,[esp+2Ch] L000590CD: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+1Ch],eax mov ebp,eax mov eax,[esp+28h] mov [edi+08h],edx xor edx,edx cmp eax,00000006h mov [esp+2Ch],edx jc L00059301 mov dword ptr [esp+10h],00000006h jmp L00059105 L000590F9: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00059105: mov ecx,[esp+30h] test ecx,ecx jbe L00059301 mov eax,ecx mov ecx,[esp+14h] dec eax mov edi,ebx mov [esp+30h],eax mov eax,[esp+24h] fld dword ptr [eax+ecx+04h] lea ebx,[eax+ecx] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000591F6 push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax mov [esp+10h],ecx mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp add edx,eax push esi mov [esp+3Ch],edx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L000591F6: mov eax,[esp+30h] test eax,eax jbe L000592F5 mov edi,[esp+24h] fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] mov ecx,[esp+14h] fld dword ptr [ebx+ecx] dec eax fsub dword ptr [edi] mov [esp+30h],eax lea eax,[ebx+ecx] fmulp ST(1),ST fld dword ptr [eax+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000592E7 push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+10h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+3Ch],ecx mov [esp+20h],edx call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L000592E7: mov ecx,[esp+10h] cmp ecx,[esp+28h] jbe L000590F9 L000592F5: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00059301: cmp edx,eax mov ecx,[esi+000005D4h] jz L00059329 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L0005931C inc eax L0005931C: mov ebp,[edi+08h] neg eax L00059321: shl eax,02h add ebp,eax mov [edi+08h],ebp L00059329: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00059049 L0005934B: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L00059358: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00059360: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push esi push edi jz L000596B0 mov edx,[esp+24h] mov esi,[esp+20h] mov eax,[esi+000005D0h] mov edi,[esi+00000148h] xor ebx,ebx mov bx,[edx] mov edx,[esp+28h] mov [esp+10h],eax mov [esp+14h],edi imul ebx,eax add ebx,edx add eax,ebx test ecx,ecx mov [esp+20h],eax jbe L000596B0 push ebp jmp L000593B1 L000593AD: mov ecx,[esp+30h] L000593B1: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L000593C1 mov eax,00000006h jmp L000593D0 L000593C1: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L000593D4 L000593D0: mov [esp+28h],eax L000593D4: mov ebp,[esi+000005D4h] imul ebp,[esp+28h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+2Ch],ebp jc L00059431 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0005942D mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+2Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00059431 push edi call [edi+10h] mov eax,[edi+08h] jmp L00059431 L0005942D: mov ebp,[esp+2Ch] L00059431: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+1Ch],eax mov ebp,eax mov eax,[esp+28h] mov [edi+08h],edx xor edx,edx cmp eax,00000006h mov [esp+2Ch],edx jc L00059665 mov dword ptr [esp+10h],00000006h jmp L00059469 L0005945D: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00059469: mov ecx,[esp+30h] test ecx,ecx jbe L00059665 mov eax,ecx mov ecx,[esp+14h] dec eax mov edi,ebx mov [esp+30h],eax mov eax,[esp+24h] fld dword ptr [eax+ecx+04h] lea ebx,[eax+ecx] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005955A push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+10h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax mov [esp+10h],ecx mov ecx,[esi+000005D4h] push edi shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp add edx,eax push esi mov [esp+3Ch],edx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L0005955A: mov eax,[esp+30h] test eax,eax jbe L00059659 mov edi,[esp+24h] fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] mov ecx,[esp+14h] fld dword ptr [ebx+ecx] dec eax fsub dword ptr [edi] mov [esp+30h],eax lea eax,[ebx+ecx] fmulp ST(1),ST fld dword ptr [eax+04h] mov [esp+24h],eax fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005964B push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+10h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+3Ch],ecx mov [esp+20h],edx call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] L0005964B: mov ecx,[esp+10h] cmp ecx,[esp+28h] jbe L0005945D L00059659: mov edi,[esp+18h] mov eax,[esp+28h] mov edx,[esp+2Ch] L00059665: cmp edx,eax mov ecx,[esi+000005D4h] jz L0005968D sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00059680 inc eax L00059680: mov ebp,[edi+08h] neg eax shl eax,02h add ebp,eax mov [edi+08h],ebp L0005968D: mov eax,[esp+30h] imul ecx,edx mov edx,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000593AD pop ebp L000596B0: pop edi pop esi pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000596C0: mov eax,[esp+10h] sub esp,00000010h test eax,eax push ebx push ebp push esi push edi jz L000599FE mov edx,[esp+28h] mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov edi,[esi+0000017Ch] xor ebx,ebx mov bx,[edx] mov edx,[esp+2Ch] mov [esp+14h],ecx mov [esp+18h],edi imul ebx,ecx add ebx,edx test eax,eax lea ebp,[ebx+ecx] jbe L000599FE L00059708: lea eax,[eax+eax+01h] cmp eax,00000006h ja L00059718 mov eax,00000006h jmp L00059727 L00059718: cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0005972B L00059727: mov [esp+24h],eax L0005972B: mov ecx,[esi+000005D4h] imul ecx,[esp+24h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+2Ch],ecx lea ecx,[edx+ecx*4] mov [esp+28h],edx cmp ecx,[edi+0Ch] jc L00059792 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+28h],eax jz L00059792 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+2Ch] mov ecx,eax mov [esp+28h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00059792 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+28h],eax L00059792: mov edx,[esp+2Ch] mov ecx,[esp+24h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+1Ch],eax mov [esp+10h],eax mov dword ptr [esp+28h],00000000h jc L000599B2 mov dword ptr [esp+2Ch],00000006h jmp L000597D2 L000597CA: mov edi,[esp+18h] mov ecx,[esp+24h] L000597D2: mov eax,[esp+30h] test eax,eax jbe L000599B2 mov ecx,[esp+10h] mov edi,ebx push edi push edi mov edx,eax mov eax,[esp+1Ch] push ecx dec edx push esi mov [esp+40h],edx lea ebx,[eax+ebp] call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+28h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+2Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+2Ch],edx mov edx,[esp+14h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esp+30h] test eax,eax jbe L000599AA mov ecx,[esi+000005D4h] mov edx,[esp+10h] mov edi,eax mov eax,[esp+14h] dec edi mov [esp+30h],edi mov edi,ebp push edi shr ecx,02h lea ebp,[ebx+eax] lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esp+28h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+28h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+3Ch],ecx mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h lea eax,[edx+ecx*4] mov ecx,[esp+24h] mov [esp+10h],eax cmp [esp+2Ch],ecx jbe L000597CA L000599AA: mov edi,[esp+18h] mov ecx,[esp+24h] L000599B2: mov edx,[esp+28h] cmp edx,ecx mov eax,[esi+000005D4h] jz L000599DD sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+28h] shl ecx,1 test edx,edx jnz L000599D5 inc ecx L000599D5: neg ecx shl ecx,02h add [edi+08h],ecx L000599DD: mov ecx,[esp+1Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+30h] test eax,eax ja L00059708 L000599FE: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00059A10: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L00059D67 push ebx push ebp push esi mov esi,[esp+20h] mov ebp,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+20h],ebp mov [esp+24h],edi call SUB_L000ABBE0 mov eax,[esp+28h] mov edx,[esp+2Ch] xor ebx,ebx mov bx,[eax] mov eax,[esp+30h] imul ebx,ebp add ebx,edx add ebp,ebx test eax,eax jbe L00059D5A L00059A64: lea eax,[eax+eax+01h] cmp eax,00000006h ja L00059A74 mov eax,00000006h jmp L00059A83 L00059A74: cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L00059A87 L00059A83: mov [esp+24h],eax L00059A87: mov ecx,[esi+000005D4h] imul ecx,[esp+24h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+2Ch],ecx lea ecx,[edx+ecx*4] mov [esp+28h],edx cmp ecx,[edi+0Ch] jc L00059AEE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+28h],eax jz L00059AEE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+2Ch] mov ecx,eax mov [esp+28h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00059AEE push edi call [edi+10h] mov eax,[edi+08h] mov [esp+28h],eax L00059AEE: mov edx,[esp+2Ch] mov ecx,[esp+24h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+1Ch],eax mov [esp+10h],eax mov dword ptr [esp+28h],00000000h jc L00059D0E mov dword ptr [esp+2Ch],00000006h jmp L00059B2E L00059B26: mov edi,[esp+18h] mov ecx,[esp+24h] L00059B2E: mov eax,[esp+30h] test eax,eax jbe L00059D0E mov ecx,[esp+10h] mov edi,ebx push edi push edi mov edx,eax mov eax,[esp+1Ch] push ecx dec edx push esi mov [esp+40h],edx lea ebx,[eax+ebp] call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+28h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+2Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+2Ch],edx mov edx,[esp+14h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esp+30h] test eax,eax jbe L00059D06 mov ecx,[esi+000005D4h] mov edx,[esp+10h] mov edi,eax mov eax,[esp+14h] dec edi mov [esp+30h],edi mov edi,ebp push edi shr ecx,02h lea ebp,[ebx+eax] lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esp+28h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+28h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+3Ch],ecx mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h lea eax,[edx+ecx*4] mov ecx,[esp+24h] mov [esp+10h],eax cmp [esp+2Ch],ecx jbe L00059B26 L00059D06: mov edi,[esp+18h] mov ecx,[esp+24h] L00059D0E: mov edx,[esp+28h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00059D39 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+28h] shl ecx,1 test edx,edx jnz L00059D31 inc ecx L00059D31: neg ecx shl ecx,02h add [edi+08h],ecx L00059D39: mov ecx,[esp+1Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+30h] test eax,eax ja L00059A64 L00059D5A: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L00059D67: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00059D70: mov eax,[esp+10h] sub esp,00000010h test eax,eax push ebx push ebp push esi push edi jz L0005A0AE mov edx,[esp+28h] mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov edi,[esi+00000148h] xor ebx,ebx mov bx,[edx] mov edx,[esp+2Ch] mov [esp+14h],ecx mov [esp+18h],edi imul ebx,ecx add ebx,edx test eax,eax lea ebp,[ebx+ecx] jbe L0005A0AE L00059DB8: lea eax,[eax+eax+01h] cmp eax,00000006h ja L00059DC8 mov eax,00000006h jmp L00059DD7 L00059DC8: cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L00059DDB L00059DD7: mov [esp+24h],eax L00059DDB: mov ecx,[esi+000005D4h] imul ecx,[esp+24h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+2Ch],ecx lea ecx,[edx+ecx*4] mov [esp+28h],edx cmp ecx,[edi+0Ch] jc L00059E42 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+28h],eax jz L00059E42 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+2Ch] mov ecx,eax mov [esp+28h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00059E42 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+28h],eax L00059E42: mov edx,[esp+2Ch] mov ecx,[esp+24h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+1Ch],eax mov [esp+10h],eax mov dword ptr [esp+28h],00000000h jc L0005A062 mov dword ptr [esp+2Ch],00000006h jmp L00059E82 L00059E7A: mov edi,[esp+18h] mov ecx,[esp+24h] L00059E82: mov eax,[esp+30h] test eax,eax jbe L0005A062 mov ecx,[esp+10h] mov edi,ebx push edi push edi mov edx,eax mov eax,[esp+1Ch] push ecx dec edx push esi mov [esp+40h],edx lea ebx,[eax+ebp] call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esp+2Ch] mov edx,[esp+28h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+2Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+2Ch],edx mov edx,[esp+14h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esp+30h] test eax,eax jbe L0005A05A mov ecx,[esi+000005D4h] mov edx,[esp+10h] mov edi,eax mov eax,[esp+14h] dec edi mov [esp+30h],edi mov edi,ebp push edi shr ecx,02h lea ebp,[ebx+eax] lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esp+28h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+28h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+3Ch],ecx mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+10h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h lea eax,[edx+ecx*4] mov ecx,[esp+24h] mov [esp+10h],eax cmp [esp+2Ch],ecx jbe L00059E7A L0005A05A: mov edi,[esp+18h] mov ecx,[esp+24h] L0005A062: mov edx,[esp+28h] cmp edx,ecx mov eax,[esi+000005D4h] jz L0005A08D sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+28h] shl ecx,1 test edx,edx jnz L0005A085 inc ecx L0005A085: neg ecx shl ecx,02h add [edi+08h],ecx L0005A08D: mov ecx,[esp+1Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+30h] test eax,eax ja L00059DB8 L0005A0AE: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005A0C0: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi push edi jz L0005A3E9 mov edx,[esp+28h] mov esi,[esp+24h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] xor edi,edi mov di,[edx] mov edx,[esp+2Ch] mov [esp+14h],eax mov [esp+18h],ebx imul edi,eax add edi,edx test ecx,ecx lea ebp,[edi+eax] jbe L0005A3E9 jmp L0005A112 L0005A10A: mov ebx,[esp+18h] mov ecx,[esp+30h] L0005A112: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005A122 mov eax,00000006h jmp L0005A131 L0005A122: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L0005A135 L0005A131: mov [esp+28h],eax L0005A135: mov edx,[esi+000005D4h] imul edx,[esp+28h] mov eax,[ebx+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005A198 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+2Ch],eax jz L0005A194 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005A198 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0005A198 L0005A194: mov ecx,[esp+2Ch] L0005A198: mov edx,[esp+24h] add ecx,00000004h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [ebx+08h],eax mov [esp+1Ch],ecx mov ebx,ecx xor ecx,ecx cmp edx,00000006h mov [esp+24h],ecx jc L0005A3A1 mov dword ptr [esp+2Ch],00000006h jmp L0005A1CC L0005A1C8: mov ecx,[esp+24h] L0005A1CC: mov eax,[esp+30h] test eax,eax jbe L0005A3A1 dec eax mov ecx,edi mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [eax+ebp+04h] lea edi,[eax+ebp] fsub dword ptr [ecx+04h] mov [esp+10h],ecx fld dword ptr [ebp+00h] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005A2B0 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005A2B0: mov eax,[esp+30h] test eax,eax jbe L0005A39D fld dword ptr [edi+04h] dec eax mov ecx,ebp fsub dword ptr [ecx+04h] mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [edi+eax] lea ebp,[edi+eax] fsub dword ptr [ecx] mov [esp+10h],ecx fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005A393 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005A393: cmp [esp+2Ch],edx jbe L0005A1C8 L0005A39D: mov ecx,[esp+24h] L0005A3A1: cmp ecx,edx mov eax,[esi+000005D4h] jz L0005A3C8 sub edx,ecx mov ebx,eax shr ebx,02h imul edx,ebx shl edx,1 test ecx,ecx jnz L0005A3BC inc edx L0005A3BC: mov ebx,[esp+18h] neg edx shl edx,02h add [ebx+08h],edx L0005A3C8: mov edx,[esp+1Ch] imul eax,ecx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0005A10A L0005A3E9: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005A400: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L0005A740 push ebx push ebp push esi mov esi,[esp+20h] mov ebx,[esi+0000017Ch] mov ebp,[esi+000005D0h] push edi push 00000001h push ebx push esi mov [esp+24h],ebp mov [esp+20h],ebx call SUB_L000ABBE0 mov eax,[esp+28h] mov ecx,[esp+2Ch] xor edi,edi mov di,[eax] mov eax,[esp+30h] imul edi,ebp add edi,ecx add ebp,edi test eax,eax jbe L0005A733 L0005A454: mov ecx,[esp+30h] lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005A468 mov eax,00000006h jmp L0005A477 L0005A468: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L0005A47B L0005A477: mov [esp+28h],eax L0005A47B: mov edx,[esi+000005D4h] imul edx,[esp+28h] mov eax,[ebx+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005A4DE push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+2Ch],eax jz L0005A4DA mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005A4DE push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0005A4DE L0005A4DA: mov ecx,[esp+2Ch] L0005A4DE: mov edx,[esp+24h] add ecx,00000004h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [ebx+08h],eax mov [esp+1Ch],ecx mov ebx,ecx xor ecx,ecx cmp edx,00000006h mov [esp+24h],ecx jc L0005A6E7 mov dword ptr [esp+2Ch],00000006h jmp L0005A512 L0005A50E: mov ecx,[esp+24h] L0005A512: mov eax,[esp+30h] test eax,eax jbe L0005A6E7 dec eax mov ecx,edi mov [esp+30h],eax mov eax,[esp+18h] fld dword ptr [eax+ebp+04h] lea edi,[eax+ebp] fsub dword ptr [ecx+04h] mov [esp+10h],ecx fld dword ptr [ebp+00h] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005A5F6 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005A5F6: mov eax,[esp+30h] test eax,eax jbe L0005A6E3 fld dword ptr [edi+04h] dec eax mov ecx,ebp fsub dword ptr [ecx+04h] mov [esp+30h],eax mov eax,[esp+18h] fld dword ptr [edi+eax] lea ebp,[edi+eax] fsub dword ptr [ecx] mov [esp+10h],ecx fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005A6D9 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005A6D9: cmp [esp+2Ch],edx jbe L0005A50E L0005A6E3: mov ecx,[esp+24h] L0005A6E7: cmp ecx,edx mov eax,[esi+000005D4h] jz L0005A70E sub edx,ecx mov ebx,eax shr ebx,02h imul edx,ebx shl edx,1 test ecx,ecx jnz L0005A702 inc edx L0005A702: mov ebx,[esp+14h] neg edx shl edx,02h add [ebx+08h],edx L0005A70E: mov edx,[esp+1Ch] imul eax,ecx mov ebx,[esp+14h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0005A454 L0005A733: push 00000000h push ebx push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0005A740: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005A750: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi push edi jz L0005AA79 mov edx,[esp+28h] mov esi,[esp+24h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] xor edi,edi mov di,[edx] mov edx,[esp+2Ch] mov [esp+14h],eax mov [esp+18h],ebx imul edi,eax add edi,edx test ecx,ecx lea ebp,[edi+eax] jbe L0005AA79 jmp L0005A7A2 L0005A79A: mov ebx,[esp+18h] mov ecx,[esp+30h] L0005A7A2: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005A7B2 mov eax,00000006h jmp L0005A7C1 L0005A7B2: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L0005A7C5 L0005A7C1: mov [esp+28h],eax L0005A7C5: mov edx,[esi+000005D4h] imul edx,[esp+28h] mov eax,[ebx+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005A828 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+2Ch],eax jz L0005A824 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005A828 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0005A828 L0005A824: mov ecx,[esp+2Ch] L0005A828: mov edx,[esp+24h] add ecx,00000004h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [ebx+08h],eax mov [esp+1Ch],ecx mov ebx,ecx xor ecx,ecx cmp edx,00000006h mov [esp+24h],ecx jc L0005AA31 mov dword ptr [esp+2Ch],00000006h jmp L0005A85C L0005A858: mov ecx,[esp+24h] L0005A85C: mov eax,[esp+30h] test eax,eax jbe L0005AA31 dec eax mov ecx,edi mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [eax+ebp+04h] lea edi,[eax+ebp] fsub dword ptr [ecx+04h] mov [esp+10h],ecx fld dword ptr [ebp+00h] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005A940 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005A940: mov eax,[esp+30h] test eax,eax jbe L0005AA2D fld dword ptr [edi+04h] dec eax mov ecx,ebp fsub dword ptr [ecx+04h] mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [edi+eax] lea ebp,[edi+eax] fsub dword ptr [ecx] mov [esp+10h],ecx fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005AA23 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005AA23: cmp [esp+2Ch],edx jbe L0005A858 L0005AA2D: mov ecx,[esp+24h] L0005AA31: cmp ecx,edx mov eax,[esi+000005D4h] jz L0005AA58 sub edx,ecx mov ebx,eax shr ebx,02h imul edx,ebx shl edx,1 test ecx,ecx jnz L0005AA4C inc edx L0005AA4C: mov ebx,[esp+18h] neg edx shl edx,02h add [ebx+08h],edx L0005AA58: mov edx,[esp+1Ch] imul eax,ecx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0005A79A L0005AA79: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005AA90: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi push edi jz L0005ADB9 mov edx,[esp+28h] mov esi,[esp+24h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] xor edi,edi mov di,[edx] mov edx,[esp+2Ch] mov [esp+14h],eax mov [esp+18h],ebx imul edi,eax add edi,edx test ecx,ecx lea ebp,[edi+eax] jbe L0005ADB9 jmp L0005AAE2 L0005AADA: mov ebx,[esp+18h] mov ecx,[esp+30h] L0005AAE2: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005AAF2 mov eax,00000006h jmp L0005AB01 L0005AAF2: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L0005AB05 L0005AB01: mov [esp+28h],eax L0005AB05: mov edx,[esi+000005D4h] imul edx,[esp+28h] mov eax,[ebx+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005AB68 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+2Ch],eax jz L0005AB64 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005AB68 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0005AB68 L0005AB64: mov ecx,[esp+2Ch] L0005AB68: mov edx,[esp+24h] add ecx,00000004h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [ebx+08h],eax mov [esp+1Ch],ecx mov ebx,ecx xor ecx,ecx cmp edx,00000006h mov [esp+24h],ecx jc L0005AD71 mov dword ptr [esp+2Ch],00000006h jmp L0005AB9C L0005AB98: mov ecx,[esp+24h] L0005AB9C: mov eax,[esp+30h] test eax,eax jbe L0005AD71 dec eax mov ecx,edi mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [eax+ebp+04h] lea edi,[eax+ebp] fsub dword ptr [ecx+04h] mov [esp+10h],ecx fld dword ptr [ebp+00h] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005AC80 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005AC80: mov eax,[esp+30h] test eax,eax jbe L0005AD6D fld dword ptr [edi+04h] dec eax mov ecx,ebp fsub dword ptr [ecx+04h] mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [edi+eax] lea ebp,[edi+eax] fsub dword ptr [ecx] mov [esp+10h],ecx fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005AD63 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005AD63: cmp [esp+2Ch],edx jbe L0005AB98 L0005AD6D: mov ecx,[esp+24h] L0005AD71: cmp ecx,edx mov eax,[esi+000005D4h] jz L0005AD98 sub edx,ecx mov ebx,eax shr ebx,02h imul edx,ebx shl edx,1 test ecx,ecx jnz L0005AD8C inc edx L0005AD8C: mov ebx,[esp+18h] neg edx shl edx,02h add [ebx+08h],edx L0005AD98: mov edx,[esp+1Ch] imul eax,ecx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0005AADA L0005ADB9: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005ADD0: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L0005B110 push ebx push ebp push esi mov esi,[esp+20h] mov ebx,[esi+0000017Ch] mov ebp,[esi+000005D0h] push edi push 00000001h push ebx push esi mov [esp+24h],ebp mov [esp+20h],ebx call SUB_L000ABBE0 mov eax,[esp+28h] mov ecx,[esp+2Ch] xor edi,edi mov di,[eax] mov eax,[esp+30h] imul edi,ebp add edi,ecx add ebp,edi test eax,eax jbe L0005B103 L0005AE24: mov ecx,[esp+30h] lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005AE38 mov eax,00000006h jmp L0005AE47 L0005AE38: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L0005AE4B L0005AE47: mov [esp+28h],eax L0005AE4B: mov edx,[esi+000005D4h] imul edx,[esp+28h] mov eax,[ebx+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005AEAE push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+2Ch],eax jz L0005AEAA mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005AEAE push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0005AEAE L0005AEAA: mov ecx,[esp+2Ch] L0005AEAE: mov edx,[esp+24h] add ecx,00000004h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [ebx+08h],eax mov [esp+1Ch],ecx mov ebx,ecx xor ecx,ecx cmp edx,00000006h mov [esp+24h],ecx jc L0005B0B7 mov dword ptr [esp+2Ch],00000006h jmp L0005AEE2 L0005AEDE: mov ecx,[esp+24h] L0005AEE2: mov eax,[esp+30h] test eax,eax jbe L0005B0B7 dec eax mov ecx,edi mov [esp+30h],eax mov eax,[esp+18h] fld dword ptr [eax+ebp+04h] lea edi,[eax+ebp] fsub dword ptr [ecx+04h] mov [esp+10h],ecx fld dword ptr [ebp+00h] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005AFC6 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005AFC6: mov eax,[esp+30h] test eax,eax jbe L0005B0B3 fld dword ptr [edi+04h] dec eax mov ecx,ebp fsub dword ptr [ecx+04h] mov [esp+30h],eax mov eax,[esp+18h] fld dword ptr [edi+eax] lea ebp,[edi+eax] fsub dword ptr [ecx] mov [esp+10h],ecx fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005B0A9 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005B0A9: cmp [esp+2Ch],edx jbe L0005AEDE L0005B0B3: mov ecx,[esp+24h] L0005B0B7: cmp ecx,edx mov eax,[esi+000005D4h] jz L0005B0DE sub edx,ecx mov ebx,eax shr ebx,02h imul edx,ebx shl edx,1 test ecx,ecx jnz L0005B0D2 inc edx L0005B0D2: mov ebx,[esp+14h] neg edx shl edx,02h add [ebx+08h],edx L0005B0DE: mov edx,[esp+1Ch] imul eax,ecx mov ebx,[esp+14h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0005AE24 L0005B103: push 00000000h push ebx push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0005B110: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005B120: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi push edi jz L0005B449 mov edx,[esp+28h] mov esi,[esp+24h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] xor edi,edi mov di,[edx] mov edx,[esp+2Ch] mov [esp+14h],eax mov [esp+18h],ebx imul edi,eax add edi,edx test ecx,ecx lea ebp,[edi+eax] jbe L0005B449 jmp L0005B172 L0005B16A: mov ebx,[esp+18h] mov ecx,[esp+30h] L0005B172: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005B182 mov eax,00000006h jmp L0005B191 L0005B182: cmp eax,00000666h mov dword ptr [esp+28h],00000666h ja L0005B195 L0005B191: mov [esp+28h],eax L0005B195: mov edx,[esi+000005D4h] imul edx,[esp+28h] mov eax,[ebx+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005B1F8 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+2Ch],eax jz L0005B1F4 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0005B1F8 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0005B1F8 L0005B1F4: mov ecx,[esp+2Ch] L0005B1F8: mov edx,[esp+24h] add ecx,00000004h lea eax,[eax+edx*4] mov edx,[esp+28h] mov [ebx+08h],eax mov [esp+1Ch],ecx mov ebx,ecx xor ecx,ecx cmp edx,00000006h mov [esp+24h],ecx jc L0005B401 mov dword ptr [esp+2Ch],00000006h jmp L0005B22C L0005B228: mov ecx,[esp+24h] L0005B22C: mov eax,[esp+30h] test eax,eax jbe L0005B401 dec eax mov ecx,edi mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [eax+ebp+04h] lea edi,[eax+ebp] fsub dword ptr [ecx+04h] mov [esp+10h],ecx fld dword ptr [ebp+00h] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005B310 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005B310: mov eax,[esp+30h] test eax,eax jbe L0005B3FD fld dword ptr [edi+04h] dec eax mov ecx,ebp fsub dword ptr [ecx+04h] mov [esp+30h],eax mov eax,[esp+14h] fld dword ptr [edi+eax] lea ebp,[edi+eax] fsub dword ptr [ecx] mov [esp+10h],ecx fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005B3F3 push ecx push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esp+24h] mov ecx,[esp+2Ch] mov eax,00000003h add edx,eax mov [esp+24h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi mov [esp+38h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea ebx,[ebx+ecx*4] L0005B3F3: cmp [esp+2Ch],edx jbe L0005B228 L0005B3FD: mov ecx,[esp+24h] L0005B401: cmp ecx,edx mov eax,[esi+000005D4h] jz L0005B428 sub edx,ecx mov ebx,eax shr ebx,02h imul edx,ebx shl edx,1 test ecx,ecx jnz L0005B41C inc edx L0005B41C: mov ebx,[esp+18h] neg edx shl edx,02h add [ebx+08h],edx L0005B428: mov edx,[esp+1Ch] imul eax,ecx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0005B16A L0005B449: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005B460: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi push edi jz L0005B75E mov edx,[esp+28h] mov esi,[esp+24h] mov eax,[esi+000005D0h] mov ebp,[esi+0000017Ch] xor edi,edi mov di,[edx] mov edx,[esp+2Ch] mov [esp+14h],eax mov [esp+18h],ebp imul edi,eax add edi,edx test ecx,ecx lea ebx,[edi+eax] jbe L0005B75E jmp L0005B4B2 L0005B4AA: mov ecx,[esp+30h] mov ebp,[esp+18h] L0005B4B2: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005B4C2 mov eax,00000006h jmp L0005B4D1 L0005B4C2: cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0005B4D5 L0005B4D1: mov [esp+24h],eax L0005B4D5: mov edx,[esi+000005D4h] imul edx,[esp+24h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L0005B538 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+2Ch],eax jz L0005B534 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L0005B538 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L0005B538 L0005B534: mov ecx,[esp+2Ch] L0005B538: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+24h] add ecx,00000004h cmp eax,00000006h mov [esp+1Ch],ecx mov ebp,ecx mov dword ptr [esp+28h],00000000h jc L0005B70A mov dword ptr [esp+2Ch],00000006h L0005B568: mov ecx,[esp+30h] test ecx,ecx jbe L0005B70A mov eax,edi push eax mov edx,ecx mov ecx,[esp+18h] push ebp dec edx push esi mov [esp+3Ch],edx mov [esp+1Ch],eax lea edi,[ebx+ecx] call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+28h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] mov [esp+28h],ecx mov ecx,[esp+10h] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+38h],edx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[ebp+ecx*4+00h] push edi push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov eax,[esp+30h] test eax,eax jbe L0005B706 mov ecx,[esp+10h] mov edx,[esp+14h] mov ebp,eax mov eax,[esi+000005D4h] dec ebp mov [esp+30h],ebp mov ebp,ebx shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi lea ebx,[edi+edx] mov [esp+1Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov ecx,[esp+2Ch] mov edx,[esp+28h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+2Ch],ecx mov ecx,[esi+000005D4h] mov [esp+28h],edx mov edx,[esp+10h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h push ebx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+24h] mov eax,[esp+2Ch] shr ecx,02h cmp eax,edx lea ebp,[ebp+ecx*4+00h] mov eax,edx jbe L0005B568 jmp L0005B70A L0005B706: mov eax,[esp+24h] L0005B70A: mov edx,[esp+28h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0005B73A sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L0005B729 inc eax L0005B729: mov edx,[esp+18h] mov ebp,[edx+08h] neg eax shl eax,02h add ebp,eax mov [edx+08h],ebp L0005B73A: imul ecx,[esp+28h] mov eax,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L0005B4AA L0005B75E: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005B770: mov eax,[esp+10h] sub esp,00000010h test eax,eax jz L0005BA85 push ebx push ebp push esi mov esi,[esp+20h] mov ebp,[esi+0000017Ch] mov ebx,[esi+000005D0h] push edi push 00000001h push ebp push esi mov [esp+24h],ebx mov [esp+20h],ebp call SUB_L000ABBE0 mov eax,[esp+28h] mov ecx,[esp+2Ch] xor edi,edi mov di,[eax] mov eax,[esp+30h] imul edi,ebx add edi,ecx add ebx,edi test eax,eax jbe L0005BA78 L0005B7C4: mov ecx,[esp+30h] lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005B7D8 mov eax,00000006h jmp L0005B7E7 L0005B7D8: cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0005B7EB L0005B7E7: mov [esp+24h],eax L0005B7EB: mov edx,[esi+000005D4h] imul edx,[esp+24h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L0005B84E push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+2Ch],eax jz L0005B84A mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L0005B84E push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L0005B84E L0005B84A: mov ecx,[esp+2Ch] L0005B84E: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+24h] add ecx,00000004h cmp eax,00000006h mov [esp+1Ch],ecx mov ebp,ecx mov dword ptr [esp+28h],00000000h jc L0005BA20 mov dword ptr [esp+2Ch],00000006h L0005B87E: mov ecx,[esp+30h] test ecx,ecx jbe L0005BA20 mov eax,edi push eax mov edx,ecx mov ecx,[esp+1Ch] push ebp dec edx push esi mov [esp+3Ch],edx mov [esp+1Ch],eax lea edi,[ebx+ecx] call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+28h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] mov [esp+28h],ecx mov ecx,[esp+10h] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+38h],edx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[ebp+ecx*4+00h] push edi push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov eax,[esp+30h] test eax,eax jbe L0005BA1C mov ecx,[esp+10h] mov edx,[esp+18h] mov ebp,eax mov eax,[esi+000005D4h] dec ebp mov [esp+30h],ebp mov ebp,ebx shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi lea ebx,[edi+edx] mov [esp+1Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov ecx,[esp+2Ch] mov edx,[esp+28h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+2Ch],ecx mov ecx,[esi+000005D4h] mov [esp+28h],edx mov edx,[esp+10h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h push ebx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+24h] mov eax,[esp+2Ch] shr ecx,02h cmp eax,edx lea ebp,[ebp+ecx*4+00h] mov eax,edx jbe L0005B87E jmp L0005BA20 L0005BA1C: mov eax,[esp+24h] L0005BA20: mov edx,[esp+28h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0005BA50 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L0005BA3F inc eax L0005BA3F: mov edx,[esp+14h] mov ebp,[edx+08h] neg eax shl eax,02h add ebp,eax mov [edx+08h],ebp L0005BA50: imul ecx,[esp+28h] mov eax,[esp+1Ch] mov ebp,[esp+14h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L0005B7C4 L0005BA78: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0005BA85: add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0005BA90: mov ecx,[esp+10h] sub esp,00000010h test ecx,ecx push ebx push ebp push esi push edi jz L0005BD8E mov edx,[esp+28h] mov esi,[esp+24h] mov eax,[esi+000005D0h] mov ebp,[esi+00000148h] xor edi,edi mov di,[edx] mov edx,[esp+2Ch] mov [esp+14h],eax mov [esp+18h],ebp imul edi,eax add edi,edx test ecx,ecx lea ebx,[edi+eax] jbe L0005BD8E jmp L0005BAE2 L0005BADA: mov ecx,[esp+30h] mov ebp,[esp+18h] L0005BAE2: lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L0005BAF2 mov eax,00000006h jmp L0005BB01 L0005BAF2: cmp eax,00000666h mov dword ptr [esp+24h],00000666h ja L0005BB05 L0005BB01: mov [esp+24h],eax L0005BB05: mov edx,[esi+000005D4h] imul edx,[esp+24h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L0005BB68 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+2Ch],eax jz L0005BB64 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L0005BB68 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L0005BB68 L0005BB64: mov ecx,[esp+2Ch] L0005BB68: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+24h] add ecx,00000004h cmp eax,00000006h mov [esp+1Ch],ecx mov ebp,ecx mov dword ptr [esp+28h],00000000h jc L0005BD3A mov dword ptr [esp+2Ch],00000006h L0005BB98: mov ecx,[esp+30h] test ecx,ecx jbe L0005BD3A mov eax,edi push eax mov edx,ecx mov ecx,[esp+18h] push ebp dec edx push esi mov [esp+3Ch],edx mov [esp+1Ch],eax lea edi,[ebx+ecx] call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+28h] mov edx,[esp+2Ch] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] mov [esp+28h],ecx mov ecx,[esp+10h] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+38h],edx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[ebp+ecx*4+00h] push edi push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov eax,[esp+30h] test eax,eax jbe L0005BD36 mov ecx,[esp+10h] mov edx,[esp+14h] mov ebp,eax mov eax,[esi+000005D4h] dec ebp mov [esp+30h],ebp mov ebp,ebx shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi lea ebx,[edi+edx] mov [esp+1Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov ecx,[esp+2Ch] mov edx,[esp+28h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+2Ch],ecx mov ecx,[esi+000005D4h] mov [esp+28h],edx mov edx,[esp+10h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+1Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h push ebx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+24h] mov eax,[esp+2Ch] shr ecx,02h cmp eax,edx lea ebp,[ebp+ecx*4+00h] mov eax,edx jbe L0005BB98 jmp L0005BD3A L0005BD36: mov eax,[esp+24h] L0005BD3A: mov edx,[esp+28h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0005BD6A sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L0005BD59 inc eax L0005BD59: mov edx,[esp+18h] mov ebp,[edx+08h] neg eax shl eax,02h add ebp,eax mov [edx+08h],ebp L0005BD6A: imul ecx,[esp+28h] mov eax,[esp+1Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L0005BADA L0005BD8E: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005BDA0: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L0005C279 mov ebx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov esi,[edi+0000017Ch] xor eax,eax mov ax,[ebx] mov ebx,[esp+38h] mov [esp+20h],ecx xor ebp,ebp mov dword ptr [esp+14h],00000001h mov [esp+1Ch],esi imul eax,ecx add eax,ebx mov ebx,[esp+3Ch] add ecx,eax test edx,edx mov [esp+38h],eax mov [esp+30h],ecx jbe L0005C174 jmp L0005BE07 L0005BDFF: mov edx,[esp+3Ch] mov esi,[esp+1Ch] L0005BE07: lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005BE1D mov [esp+34h],eax L0005BE1D: mov edx,[esp+34h] imul edx,[edi+000005D4h] mov eax,[esi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+18h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005BE80 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+10h],eax jz L0005BE7C mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+18h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005BE80 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L0005BE80 L0005BE7C: mov ecx,[esp+10h] L0005BE80: mov edx,[esp+18h] add ecx,00000004h lea eax,[eax+edx*4] mov [esi+08h],eax mov eax,[esp+34h] mov [esp+28h],ecx mov esi,ecx xor ecx,ecx cmp eax,00000003h jc L0005C11F mov dword ptr [esp+10h],00000003h L0005BEAA: mov edx,[esp+3Ch] test edx,edx jbe L0005C11F mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005BEDF mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+38h] add edx,eax mov [esp+38h],edx mov dword ptr [esp+14h],00000000h jmp L0005BEFD L0005BEDF: mov edx,[esp+20h] mov eax,[esp+38h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+38h] mov [esp+30h],eax mov dword ptr [esp+14h],00000001h L0005BEFD: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005BFCF inc ecx push ebx mov [esp+1Ch],ecx mov ecx,[esp+14h] push ebx push esi inc ecx push edi mov [esp+20h],ecx mov ebp,ebx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005C115 L0005BFCF: test ebp,ebp jz L0005C10F mov edx,[esp+10h] push ebp push ebx push esi add ecx,00000002h add edx,00000002h push edi mov [esp+28h],ecx mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005C113 L0005C10F: mov eax,[esp+34h] L0005C113: xor ebp,ebp L0005C115: cmp [esp+10h],eax jbe L0005BEAA L0005C11F: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005C146 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005C13A inc eax L0005C13A: mov esi,[esp+1Ch] neg eax shl eax,02h add [esi+08h],eax L0005C146: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005BDFF mov esi,[esp+1Ch] mov eax,[esp+38h] mov ecx,[esp+30h] L0005C174: fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005C279 mov ecx,[edi+000005D4h] shl ecx,02h shr ecx,02h inc ecx push ecx push esi call SUB_L000377E0 mov edx,[esp+30h] push ebp mov ebx,eax push edx add ebx,00000004h push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea eax,[ebx+eax*4] push eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov edx,[esp+3Ch] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov edx,[edi+000005D4h] shr edx,02h lea eax,[eax+edx*4] push eax push edi call SUB_L0005C290 mov ecx,[edi+000005D4h] push ecx push 00000002h push 00000002h push ebx push esi call SUB_L00041CB0 L0005C279: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L0005C290: push ebp mov ebp,esp sub esp,00000014h push ebx mov ebx,[ebp+08h] mov ecx,[ebx+00000A04h] push esi mov esi,[ebp+0Ch] push edi mov edi,[ebp+10h] mov eax,[edi] mov [esi],eax mov edx,[edi+04h] add edi,00000004h add esi,00000004h mov [esi],edx mov eax,[edi+04h] mov edx,[ebp+14h] add edi,00000004h add esi,00000004h mov [esi],eax add esi,00000004h add edi,00000004h test cl,04h lea eax,[edx+0Ch] mov dword ptr [ebp-08h],00000000h mov [ebp-14h],ecx mov [ebp-10h],esi mov [ebp-0Ch],edi mov [ebp-04h],eax jz L0005C2FC mov edx,[edi] mov [esi],edx add esi,00000004h add edi,00000004h add eax,00000004h mov [ebp-10h],esi mov [ebp-0Ch],edi mov [ebp-04h],eax L0005C2FC: test cl,40h jz L0005C412 mov edx,[ebx+00000A00h] test dl,80h jz L0005C3F9 cmp dword ptr [ebx+000001F4h],00000000h jz L0005C3F9 cmp dword ptr [L000B70A4],00000000h jz L0005C3F9 cmp dword ptr [ebx+000005E0h],00000001h jnz L0005C344 cmp dword ptr [ebx+00000A0Ch],00000000h jz L0005C3F9 L0005C344: mov eax,[eax+04h] xor ebx,ebx mov bl,ah xor ecx,ecx mov [ebp-08h],eax mov cl,[ebp-06h] and eax,000000FFh mov edx,ebx and edx,eax and edx,ecx and edx,000000FFh cmp ecx,edx jnz L0005C386 cmp ebx,edx jnz L0005C386 cmp eax,edx jnz L0005C386 mov dword ptr [L000B3D90],FF000000h mov dword ptr [L000B3D94],FFFFFFFFh jmp L0005C393 L0005C386: or eax,FFFFFFFFh mov [L000B3D90],eax mov [L000B3D94],eax L0005C393: mov eax,[ebp-10h] mov ebx,[ebp-0Ch] mov ecx,[ebp-04h] movq mm2,[ecx] ; MMX movq mm3,mm2 ; MMX movq mm4,[ebx] ; MMX pand mm4,[L000B3D70] ; MMX psrlq mm3,20h ; MMX pand mm3,[L000B3D50] ; MMX pand mm3,[L000B3D90] ; MMX paddusb mm2,mm3 ; MMX pand mm2,[L000B3D80] ; MMX por mm2,mm4 ; MMX movq [eax],mm2 ; MMX emms ; MMX mov ecx,[ebp-04h] mov eax,[esi+04h] mov ebx,[ebp+08h] add esi,00000008h add ecx,00000008h add edi,00000008h or eax,edx mov [ebp-04h],ecx mov ecx,[ebp-14h] mov [esi-04h],eax mov eax,[ebp-04h] mov dword ptr [ebp-08h],00000001h jmp L0005C421 L0005C3F9: test dl,40h jz L0005C407 mov edx,[eax] mov [esi],edx add esi,00000004h jmp L0005C41B L0005C407: mov dword ptr [esi],FFFFFFFFh add esi,00000004h jmp L0005C421 L0005C412: test byte ptr [ebx+00000A00h],40h jz L0005C421 L0005C41B: add eax,00000004h add edi,00000004h L0005C421: test cl,80h jz L0005C455 mov ecx,[ebp-08h] test ecx,ecx jnz L0005C455 test byte ptr [ebx+00000A00h],80h jnz L0005C441 mov dword ptr [esi],00000000h add esi,00000004h jmp L0005C468 L0005C441: mov eax,[eax] mov ecx,[edi] xor eax,ecx and eax,00FFFFFFh xor eax,ecx mov [esi],eax add esi,00000004h jmp L0005C465 L0005C455: test byte ptr [ebx+00000A00h],80h jz L0005C468 mov eax,[ebp-08h] test eax,eax jnz L0005C468 L0005C465: add edi,00000004h L0005C468: mov eax,[ebx+000048ACh] test eax,eax jz L0005C47E mov ecx,[ebp+0Ch] push 00000001h push ecx push ebx call SUB_L0003E580 L0005C47E: mov eax,[ebx+00000A0Ch] dec eax cmp eax,00000004h ja L0005C517 jmp [CASE_PROCTABLE_0005C5A8+eax*4] CASE_0005C5A8_PROC0000: mov edx,[ebx+00000988h] mov eax,[edi+edx*4] lea edi,[edi+edx*4] mov [esi],eax mov ecx,[edi+04h] mov [esi+04h],ecx jmp L0005C517 CASE_0005C5A8_PROC0001: mov edx,[ebx+00000988h] mov eax,[edi+edx*4] mov [esi],eax lea edi,[edi+edx*4] mov ecx,[edi+04h] add edi,00000004h mov [esi+04h],ecx mov edx,[ebx+0000098Ch] mov ecx,[edi+edx*4+04h] add esi,00000004h lea eax,[edi+edx*4+04h] add esi,00000004h mov [esi],ecx mov edx,[eax+04h] mov [esi+04h],edx jmp L0005C517 CASE_0005C5A8_PROC0003: mov dword ptr [esi],00000000h add esi,00000004h mov dword ptr [esi],00000000h jmp L0005C507 CASE_0005C5A8_PROC0004: mov eax,[ebx+00000988h] mov ecx,[edi+eax*4] lea edi,[edi+eax*4] mov [esi],ecx mov edx,[edi+04h] add esi,00000004h mov [esi],edx L0005C507: add esi,00000004h CASE_0005C5A8_PROC0002: mov dword ptr [esi],00000000h mov dword ptr [esi+04h],00000000h L0005C517: mov eax,[ebp+0Ch] fld dword ptr [eax] call SUB_L000AF4EC mov esi,[ebp+0Ch] mov [ebp+08h],eax fild dword ptr [ebp+08h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[ebp+14h] mov [ebp+0Ch],eax fild dword ptr [ebp+0Ch] mov eax,[ebp+10h] push edx push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push ebx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [ebp+0Ch],eax fild dword ptr [ebp+0Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [ebp+0Ch],eax fild dword ptr [ebp+0Ch] pop edi fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea eax,[esi+ecx*4] pop esi pop ebx mov esp,ebp pop ebp retn 0010h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0005C5A8: dd CASE_0005C5A8_PROC0000 dd CASE_0005C5A8_PROC0001 dd CASE_0005C5A8_PROC0002 dd CASE_0005C5A8_PROC0003 dd CASE_0005C5A8_PROC0004 Align 8 L0005C5C0: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax jz L0005CAAE push ebx push ebp push esi mov esi,[esp+2Ch] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+2Ch],ebx mov dword ptr [esp+20h],00000001h xor ebp,ebp mov [esp+28h],edi call SUB_L000ABBE0 mov ecx,[esp+34h] mov edx,[esp+3Ch] xor eax,eax mov ax,[ecx] mov ecx,[esp+38h] imul eax,ebx add eax,ecx test edx,edx lea ecx,[eax+ebx] mov ebx,[esp+3Ch] mov [esp+38h],eax mov [esp+30h],ecx jbe L0005C99C L0005C62B: mov edx,[esp+3Ch] lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005C645 mov [esp+34h],eax L0005C645: mov edx,[esp+34h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+18h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0005C6A8 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0005C6A4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0005C6A8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0005C6A8 L0005C6A4: mov ecx,[esp+10h] L0005C6A8: mov edx,[esp+18h] add ecx,00000004h lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+34h] mov [esp+28h],ecx mov edi,ecx xor ecx,ecx cmp eax,00000003h jc L0005C947 mov dword ptr [esp+10h],00000003h L0005C6D2: mov edx,[esp+3Ch] test edx,edx jbe L0005C947 mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005C707 mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+38h] add edx,eax mov [esp+38h],edx mov dword ptr [esp+14h],00000000h jmp L0005C725 L0005C707: mov edx,[esp+20h] mov eax,[esp+38h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+38h] mov [esp+30h],eax mov dword ptr [esp+14h],00000001h L0005C725: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005C7F7 inc ecx push ebx mov [esp+1Ch],ecx mov ecx,[esp+14h] push ebx push edi inc ecx push esi mov [esp+20h],ecx mov ebp,ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] mov ecx,[esp+18h] jmp L0005C93D L0005C7F7: test ebp,ebp jz L0005C937 mov edx,[esp+10h] push ebp push ebx push edi add ecx,00000002h add edx,00000002h push esi mov [esp+28h],ecx mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] mov ecx,[esp+18h] jmp L0005C93B L0005C937: mov eax,[esp+34h] L0005C93B: xor ebp,ebp L0005C93D: cmp [esp+10h],eax jbe L0005C6D2 L0005C947: cmp ecx,eax mov edx,[esi+000005D4h] jz L0005C96E sub eax,ecx mov edi,edx shr edi,02h imul eax,edi shl eax,1 test ecx,ecx jnz L0005C962 inc eax L0005C962: mov edi,[esp+1Ch] neg eax shl eax,02h add [edi+08h],eax L0005C96E: mov eax,[esp+28h] imul edx,ecx mov edi,[esp+1Ch] shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005C62B mov eax,[esp+38h] mov ecx,[esp+30h] L0005C99C: fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005CAA1 mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h inc ecx push ecx push edi call SUB_L000377E0 mov edx,[esp+30h] push ebp mov ebx,eax push edx add ebx,00000004h push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea eax,[ebx+eax*4] push eax push esi mov [esp+4Ch],eax call SUB_L0003EC00 mov edx,[esp+3Ch] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov edx,[esi+000005D4h] shr edx,02h lea eax,[eax+edx*4] push eax push esi call SUB_L0005C290 mov ecx,[esi+000005D4h] push ecx push 00000002h push 00000002h push ebx push edi call SUB_L00041CB0 L0005CAA1: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0005CAAE: add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005CAC0: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L0005CF99 mov ebx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov esi,[edi+00000148h] xor eax,eax mov ax,[ebx] mov ebx,[esp+38h] mov [esp+20h],ecx xor ebp,ebp mov dword ptr [esp+14h],00000001h mov [esp+1Ch],esi imul eax,ecx add eax,ebx mov ebx,[esp+3Ch] add ecx,eax test edx,edx mov [esp+38h],eax mov [esp+30h],ecx jbe L0005CE94 jmp L0005CB27 L0005CB1F: mov edx,[esp+3Ch] mov esi,[esp+1Ch] L0005CB27: lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005CB3D mov [esp+34h],eax L0005CB3D: mov edx,[esp+34h] imul edx,[edi+000005D4h] mov eax,[esi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+18h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005CBA0 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+10h],eax jz L0005CB9C mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+18h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005CBA0 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L0005CBA0 L0005CB9C: mov ecx,[esp+10h] L0005CBA0: mov edx,[esp+18h] add ecx,00000004h lea eax,[eax+edx*4] mov [esi+08h],eax mov eax,[esp+34h] mov [esp+28h],ecx mov esi,ecx xor ecx,ecx cmp eax,00000003h jc L0005CE3F mov dword ptr [esp+10h],00000003h L0005CBCA: mov edx,[esp+3Ch] test edx,edx jbe L0005CE3F mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005CBFF mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+38h] add edx,eax mov [esp+38h],edx mov dword ptr [esp+14h],00000000h jmp L0005CC1D L0005CBFF: mov edx,[esp+20h] mov eax,[esp+38h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+38h] mov [esp+30h],eax mov dword ptr [esp+14h],00000001h L0005CC1D: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005CCEF inc ecx push ebx mov [esp+1Ch],ecx mov ecx,[esp+14h] push ebx push esi inc ecx push edi mov [esp+20h],ecx mov ebp,ebx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005CE35 L0005CCEF: test ebp,ebp jz L0005CE2F mov edx,[esp+10h] push ebp push ebx push esi add ecx,00000002h add edx,00000002h push edi mov [esp+28h],ecx mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005CE33 L0005CE2F: mov eax,[esp+34h] L0005CE33: xor ebp,ebp L0005CE35: cmp [esp+10h],eax jbe L0005CBCA L0005CE3F: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005CE66 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005CE5A inc eax L0005CE5A: mov esi,[esp+1Ch] neg eax shl eax,02h add [esi+08h],eax L0005CE66: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005CB1F mov esi,[esp+1Ch] mov eax,[esp+38h] mov ecx,[esp+30h] L0005CE94: fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005CF99 mov ecx,[edi+000005D4h] shl ecx,02h shr ecx,02h inc ecx push ecx push esi call SUB_L000377E0 mov edx,[esp+30h] push ebp mov ebx,eax push edx add ebx,00000004h push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea eax,[ebx+eax*4] push eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov edx,[esp+3Ch] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov edx,[edi+000005D4h] shr edx,02h lea eax,[eax+edx*4] push eax push edi call SUB_L0005C290 mov ecx,[edi+000005D4h] push ecx push 00000002h push 00000002h push ebx push esi call SUB_L00041CB0 L0005CF99: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005CFB0: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L0005D489 mov ebx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov esi,[edi+0000017Ch] xor eax,eax mov ax,[ebx] mov ebx,[esp+38h] mov [esp+20h],ecx xor ebp,ebp mov dword ptr [esp+14h],00000001h mov [esp+1Ch],esi imul eax,ecx add eax,ebx mov ebx,[esp+3Ch] add ecx,eax test edx,edx mov [esp+38h],eax mov [esp+30h],ecx jbe L0005D384 jmp L0005D017 L0005D00F: mov edx,[esp+3Ch] mov esi,[esp+1Ch] L0005D017: lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005D02D mov [esp+34h],eax L0005D02D: mov edx,[esp+34h] imul edx,[edi+000005D4h] mov eax,[esi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+18h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005D090 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+10h],eax jz L0005D08C mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+18h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005D090 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L0005D090 L0005D08C: mov ecx,[esp+10h] L0005D090: mov edx,[esp+18h] add ecx,00000004h lea eax,[eax+edx*4] mov [esi+08h],eax mov eax,[esp+34h] mov [esp+28h],ecx mov esi,ecx xor ecx,ecx cmp eax,00000003h jc L0005D32F mov dword ptr [esp+10h],00000003h L0005D0BA: mov edx,[esp+3Ch] test edx,edx jbe L0005D32F mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005D0EF mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+38h] add edx,eax mov [esp+38h],edx mov dword ptr [esp+14h],00000000h jmp L0005D10D L0005D0EF: mov edx,[esp+20h] mov eax,[esp+38h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+38h] mov [esp+30h],eax mov dword ptr [esp+14h],00000001h L0005D10D: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005D1DF inc ecx push ebx mov [esp+1Ch],ecx mov ecx,[esp+14h] push ebx push esi inc ecx push edi mov [esp+20h],ecx mov ebp,ebx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005D325 L0005D1DF: test ebp,ebp jz L0005D31F mov edx,[esp+10h] push ebp push ebx push esi add ecx,00000002h add edx,00000002h push edi mov [esp+28h],ecx mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005D323 L0005D31F: mov eax,[esp+34h] L0005D323: xor ebp,ebp L0005D325: cmp [esp+10h],eax jbe L0005D0BA L0005D32F: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005D356 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005D34A inc eax L0005D34A: mov esi,[esp+1Ch] neg eax shl eax,02h add [esi+08h],eax L0005D356: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005D00F mov esi,[esp+1Ch] mov eax,[esp+38h] mov ecx,[esp+30h] L0005D384: fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005D489 mov ecx,[edi+000005D4h] shl ecx,02h shr ecx,02h inc ecx push ecx push esi call SUB_L000377E0 mov edx,[esp+30h] push ebp mov ebx,eax push edx add ebx,00000004h push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea eax,[ebx+eax*4] push eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov edx,[esp+3Ch] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov edx,[edi+000005D4h] shr edx,02h lea eax,[eax+edx*4] push eax push edi call SUB_L0005C290 mov ecx,[edi+000005D4h] push ecx push 00000002h push 00000002h push ebx push esi call SUB_L00041CB0 L0005D489: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005D4A0: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax jz L0005D98E push ebx push ebp push esi mov esi,[esp+2Ch] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+2Ch],ebx mov dword ptr [esp+20h],00000001h xor ebp,ebp mov [esp+28h],edi call SUB_L000ABBE0 mov ecx,[esp+34h] mov edx,[esp+3Ch] xor eax,eax mov ax,[ecx] mov ecx,[esp+38h] imul eax,ebx add eax,ecx test edx,edx lea ecx,[eax+ebx] mov ebx,[esp+3Ch] mov [esp+38h],eax mov [esp+30h],ecx jbe L0005D87C L0005D50B: mov edx,[esp+3Ch] lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005D525 mov [esp+34h],eax L0005D525: mov edx,[esp+34h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+18h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0005D588 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0005D584 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0005D588 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0005D588 L0005D584: mov ecx,[esp+10h] L0005D588: mov edx,[esp+18h] add ecx,00000004h lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+34h] mov [esp+28h],ecx mov edi,ecx xor ecx,ecx cmp eax,00000003h jc L0005D827 mov dword ptr [esp+10h],00000003h L0005D5B2: mov edx,[esp+3Ch] test edx,edx jbe L0005D827 mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005D5E7 mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+38h] add edx,eax mov [esp+38h],edx mov dword ptr [esp+14h],00000000h jmp L0005D605 L0005D5E7: mov edx,[esp+20h] mov eax,[esp+38h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+38h] mov [esp+30h],eax mov dword ptr [esp+14h],00000001h L0005D605: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005D6D7 inc ecx push ebx mov [esp+1Ch],ecx mov ecx,[esp+14h] push ebx push edi inc ecx push esi mov [esp+20h],ecx mov ebp,ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] mov ecx,[esp+18h] jmp L0005D81D L0005D6D7: test ebp,ebp jz L0005D817 mov edx,[esp+10h] push ebp push ebx push edi add ecx,00000002h add edx,00000002h push esi mov [esp+28h],ecx mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] mov ecx,[esp+18h] jmp L0005D81B L0005D817: mov eax,[esp+34h] L0005D81B: xor ebp,ebp L0005D81D: cmp [esp+10h],eax jbe L0005D5B2 L0005D827: cmp ecx,eax mov edx,[esi+000005D4h] jz L0005D84E sub eax,ecx mov edi,edx shr edi,02h imul eax,edi shl eax,1 test ecx,ecx jnz L0005D842 inc eax L0005D842: mov edi,[esp+1Ch] neg eax shl eax,02h add [edi+08h],eax L0005D84E: mov eax,[esp+28h] imul edx,ecx mov edi,[esp+1Ch] shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005D50B mov eax,[esp+38h] mov ecx,[esp+30h] L0005D87C: fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005D981 mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h inc ecx push ecx push edi call SUB_L000377E0 mov edx,[esp+30h] push ebp mov ebx,eax push edx add ebx,00000004h push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea eax,[ebx+eax*4] push eax push esi mov [esp+4Ch],eax call SUB_L0003EC00 mov edx,[esp+3Ch] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov edx,[esi+000005D4h] shr edx,02h lea eax,[eax+edx*4] push eax push esi call SUB_L0005C290 mov ecx,[esi+000005D4h] push ecx push 00000002h push 00000002h push ebx push edi call SUB_L00041CB0 L0005D981: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0005D98E: add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005D9A0: mov edx,[esp+10h] sub esp,0000001Ch test edx,edx push ebx push ebp push esi push edi jz L0005DE79 mov ebx,[esp+34h] mov edi,[esp+30h] mov ecx,[edi+000005D0h] mov esi,[edi+00000148h] xor eax,eax mov ax,[ebx] mov ebx,[esp+38h] mov [esp+20h],ecx xor ebp,ebp mov dword ptr [esp+14h],00000001h mov [esp+1Ch],esi imul eax,ecx add eax,ebx mov ebx,[esp+3Ch] add ecx,eax test edx,edx mov [esp+38h],eax mov [esp+30h],ecx jbe L0005DD74 jmp L0005DA07 L0005D9FF: mov edx,[esp+3Ch] mov esi,[esp+1Ch] L0005DA07: lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005DA1D mov [esp+34h],eax L0005DA1D: mov edx,[esp+34h] imul edx,[edi+000005D4h] mov eax,[esi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+18h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005DA80 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+10h],eax jz L0005DA7C mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+18h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0005DA80 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L0005DA80 L0005DA7C: mov ecx,[esp+10h] L0005DA80: mov edx,[esp+18h] add ecx,00000004h lea eax,[eax+edx*4] mov [esi+08h],eax mov eax,[esp+34h] mov [esp+28h],ecx mov esi,ecx xor ecx,ecx cmp eax,00000003h jc L0005DD1F mov dword ptr [esp+10h],00000003h L0005DAAA: mov edx,[esp+3Ch] test edx,edx jbe L0005DD1F mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005DADF mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+38h] add edx,eax mov [esp+38h],edx mov dword ptr [esp+14h],00000000h jmp L0005DAFD L0005DADF: mov edx,[esp+20h] mov eax,[esp+38h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+38h] mov [esp+30h],eax mov dword ptr [esp+14h],00000001h L0005DAFD: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005DBCF inc ecx push ebx mov [esp+1Ch],ecx mov ecx,[esp+14h] push ebx push esi inc ecx push edi mov [esp+20h],ecx mov ebp,ebx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005DD15 L0005DBCF: test ebp,ebp jz L0005DD0F mov edx,[esp+10h] push ebp push ebx push esi add ecx,00000002h add edx,00000002h push edi mov [esp+28h],ecx mov [esp+20h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+18h] jmp L0005DD13 L0005DD0F: mov eax,[esp+34h] L0005DD13: xor ebp,ebp L0005DD15: cmp [esp+10h],eax jbe L0005DAAA L0005DD1F: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005DD46 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005DD3A inc eax L0005DD3A: mov esi,[esp+1Ch] neg eax shl eax,02h add [esi+08h],eax L0005DD46: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005D9FF mov esi,[esp+1Ch] mov eax,[esp+38h] mov ecx,[esp+30h] L0005DD74: fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005DE79 mov ecx,[edi+000005D4h] shl ecx,02h shr ecx,02h inc ecx push ecx push esi call SUB_L000377E0 mov edx,[esp+30h] push ebp mov ebx,eax push edx add ebx,00000004h push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push ebp push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea eax,[ebx+eax*4] push eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov edx,[esp+3Ch] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+3Ch] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov edx,[edi+000005D4h] shr edx,02h lea eax,[eax+edx*4] push eax push edi call SUB_L0005C290 mov ecx,[edi+000005D4h] push ecx push 00000002h push 00000002h push ebx push esi call SUB_L00041CB0 L0005DE79: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005DE90: mov ecx,[esp+10h] sub esp,0000001Ch test ecx,ecx jz L0005E262 mov edx,[esp+24h] push ebx push ebp mov ebp,[esp+28h] mov eax,[ebp+000005D0h] mov ebx,[ebp+0000017Ch] push esi push edi xor edi,edi mov di,[edx] mov edx,[esp+38h] mov [esp+1Ch],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+10h],00000000h imul edi,eax add edi,edx add eax,edi test ecx,ecx mov [esp+38h],edi mov [esp+34h],eax jbe L0005E0C7 L0005DEEB: lea eax,[ecx+02h] cmp eax,00000666h jbe L0005DF00 mov edi,00000666h mov [esp+30h],edi jmp L0005DF06 L0005DF00: mov [esp+30h],eax mov edi,eax L0005DF06: mov eax,[ebx+08h] mov ecx,edi imul ecx,[ebp+000005D4h] shl ecx,1 mov esi,ecx mov ecx,[ebx+0Ch] shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0005DF55 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0005DF55 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005DF55 push ebx call [ebx+10h] mov eax,[ebx+08h] L0005DF55: lea edx,[eax+esi*4] add eax,00000004h xor ecx,ecx cmp edi,00000003h mov [ebx+08h],edx mov [esp+28h],eax mov esi,eax jc L0005E07A mov dword ptr [esp+18h],00000003h L0005DF77: mov eax,[esp+3Ch] test eax,eax jbe L0005E07A mov edx,eax mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005DFAE mov eax,[esp+34h] mov edx,[esp+1Ch] mov edi,[esp+38h] add eax,edx mov [esp+38h],eax mov dword ptr [esp+14h],00000000h jmp L0005DFC8 L0005DFAE: mov eax,[esp+38h] mov edx,[esp+1Ch] mov edi,[esp+34h] add eax,edx mov [esp+34h],eax mov dword ptr [esp+14h],00000001h L0005DFC8: mov eax,[esp+18h] push edi push edi inc ecx push esi inc eax push ebp mov [esp+30h],ecx mov [esp+28h],eax mov [esp+20h],edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[ebp+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push ebp call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+18h] mov edi,edx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[ebp+000005D4h] shr ecx,02h cmp eax,edx lea esi,[esi+ecx*4] mov ecx,[esp+20h] jbe L0005DF77 L0005E07A: cmp ecx,edi mov eax,[ebp+000005D4h] jz L0005E0A2 sub edi,ecx mov edx,eax shr edx,02h imul edi,edx shl edi,1 test ecx,ecx jnz L0005E095 inc edi L0005E095: mov edx,[ebx+08h] neg edi shl edi,02h add edx,edi mov [ebx+08h],edx L0005E0A2: imul eax,ecx mov ecx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov ecx,[esp+3Ch] test ecx,ecx ja L0005DEEB mov edi,[esp+38h] L0005E0C7: mov esi,[ebp+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,02h shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx mov [esp+3Ch],esi jc L0005E120 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0005E11C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+3Ch] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005E120 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0005E120 L0005E11C: mov esi,[esp+3Ch] L0005E120: mov ecx,[esp+34h] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+10h] push eax push ecx push esi push ebp mov [ebx+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+34h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[ebp+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push ebp call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+10h] push eax push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[ebp+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push ebp call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov edx,[esp+10h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[ebp+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push ebp call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] pop edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[ebp+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax pop esi pop ebp pop ebx L0005E262: add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005E270: sub esp,0000001Ch push ebp mov ebp,[esp+30h] test ebp,ebp jz L0005E660 push ebx mov ebx,[esp+28h] push esi mov esi,[ebx+0000017Ch] push edi mov edi,[ebx+000005D0h] push 00000001h push esi push ebx mov [esp+28h],edi mov dword ptr [esp+20h],00000001h mov dword ptr [esp+1Ch],00000000h call SUB_L000ABBE0 mov ecx,[esp+34h] xor eax,eax mov ax,[ecx] mov ecx,[esp+38h] imul eax,edi add eax,ecx mov [esp+38h],eax add eax,edi test ebp,ebp mov [esp+34h],eax jbe L0005E4B2 jmp L0005E2DA L0005E2D6: mov ebp,[esp+3Ch] L0005E2DA: lea eax,[ebp+02h] cmp eax,00000666h jbe L0005E2EF mov ebp,00000666h mov [esp+30h],ebp jmp L0005E2F5 L0005E2EF: mov [esp+30h],eax mov ebp,eax L0005E2F5: mov eax,[esi+08h] mov edx,ebp imul edx,[ebx+000005D4h] shl edx,1 mov edi,edx mov edx,[esi+0Ch] shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L0005E344 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0005E344 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0005E344 push esi call [esi+10h] mov eax,[esi+08h] L0005E344: lea edx,[eax+edi*4] add eax,00000004h xor ecx,ecx cmp ebp,00000003h mov [esi+08h],edx mov [esp+28h],eax mov edi,eax jc L0005E469 mov dword ptr [esp+18h],00000003h L0005E366: mov eax,[esp+3Ch] test eax,eax jbe L0005E469 mov edx,eax mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005E39D mov eax,[esp+34h] mov edx,[esp+1Ch] mov ebp,[esp+38h] add eax,edx mov [esp+38h],eax mov dword ptr [esp+14h],00000000h jmp L0005E3B7 L0005E39D: mov eax,[esp+38h] mov edx,[esp+1Ch] mov ebp,[esp+34h] add eax,edx mov [esp+34h],eax mov dword ptr [esp+14h],00000001h L0005E3B7: mov eax,[esp+18h] push ebp push ebp inc ecx push edi inc eax push ebx mov [esp+30h],ecx mov [esp+28h],eax mov [esp+20h],ebp call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebp push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[ebx+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+18h] mov ebp,edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h cmp eax,edx lea edi,[edi+ecx*4] mov ecx,[esp+20h] jbe L0005E366 L0005E469: cmp ecx,ebp mov eax,[ebx+000005D4h] jz L0005E491 sub ebp,ecx mov edx,eax shr edx,02h imul ebp,edx shl ebp,1 test ecx,ecx jnz L0005E484 inc ebp L0005E484: mov edx,[esi+08h] neg ebp shl ebp,02h add edx,ebp mov [esi+08h],edx L0005E491: imul eax,ecx mov ecx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+3Ch] test eax,eax ja L0005E2D6 L0005E4B2: mov ebp,[ebx+000005D4h] mov eax,[esi+08h] mov ecx,[esi+0Ch] shl ebp,02h shr ebp,02h inc ebp mov edi,eax lea edx,[edi+ebp*4] cmp edx,ecx jc L0005E505 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov edi,eax jz L0005E505 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] mov edi,eax lea ecx,[edi+ebp*4] cmp ecx,edx jc L0005E505 push esi call [esi+10h] mov eax,[esi+08h] mov edi,eax L0005E505: mov ecx,[esp+34h] lea edx,[eax+ebp*4] mov eax,[esp+10h] push eax push ecx add edi,00000004h push edi push ebx mov [esi+08h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+34h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[ebx+000005D4h] shr edx,02h lea ebp,[edi+edx*4] push ebp push ebx call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+10h] push eax push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edx,[ebx+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push ebx call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov edx,[ebx+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push ebx call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push 00000000h push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edx,[ebx+000005D4h] shl edx,02h shr edx,02h dec edx or edx,7F140000h mov [edi-04h],edx call SUB_L000ABBE0 pop edi pop esi pop ebx L0005E660: pop ebp add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005E670: mov ecx,[esp+10h] sub esp,0000001Ch test ecx,ecx jz L0005EA42 mov edx,[esp+24h] push ebx push ebp mov ebp,[esp+28h] mov eax,[ebp+000005D0h] mov ebx,[ebp+00000148h] push esi push edi xor edi,edi mov di,[edx] mov edx,[esp+38h] mov [esp+1Ch],eax mov dword ptr [esp+14h],00000001h mov dword ptr [esp+10h],00000000h imul edi,eax add edi,edx add eax,edi test ecx,ecx mov [esp+38h],edi mov [esp+34h],eax jbe L0005E8A7 L0005E6CB: lea eax,[ecx+02h] cmp eax,00000666h jbe L0005E6E0 mov edi,00000666h mov [esp+30h],edi jmp L0005E6E6 L0005E6E0: mov [esp+30h],eax mov edi,eax L0005E6E6: mov eax,[ebx+08h] mov ecx,edi imul ecx,[ebp+000005D4h] shl ecx,1 mov esi,ecx mov ecx,[ebx+0Ch] shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx jc L0005E735 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0005E735 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005E735 push ebx call [ebx+10h] mov eax,[ebx+08h] L0005E735: lea edx,[eax+esi*4] add eax,00000004h xor ecx,ecx cmp edi,00000003h mov [ebx+08h],edx mov [esp+28h],eax mov esi,eax jc L0005E85A mov dword ptr [esp+18h],00000003h L0005E757: mov eax,[esp+3Ch] test eax,eax jbe L0005E85A mov edx,eax mov eax,[esp+14h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005E78E mov eax,[esp+34h] mov edx,[esp+1Ch] mov edi,[esp+38h] add eax,edx mov [esp+38h],eax mov dword ptr [esp+14h],00000000h jmp L0005E7A8 L0005E78E: mov eax,[esp+38h] mov edx,[esp+1Ch] mov edi,[esp+34h] add eax,edx mov [esp+34h],eax mov dword ptr [esp+14h],00000001h L0005E7A8: mov eax,[esp+18h] push edi push edi inc ecx push esi inc eax push ebp mov [esp+30h],ecx mov [esp+28h],eax mov [esp+20h],edi call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[ebp+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push ebp call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+18h] mov edi,edx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[ebp+000005D4h] shr ecx,02h cmp eax,edx lea esi,[esi+ecx*4] mov ecx,[esp+20h] jbe L0005E757 L0005E85A: cmp ecx,edi mov eax,[ebp+000005D4h] jz L0005E882 sub edi,ecx mov edx,eax shr edx,02h imul edi,edx shl edi,1 test ecx,ecx jnz L0005E875 inc edi L0005E875: mov edx,[ebx+08h] neg edi shl edi,02h add edx,edi mov [ebx+08h],edx L0005E882: imul eax,ecx mov ecx,[esp+28h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov ecx,[esp+3Ch] test ecx,ecx ja L0005E6CB mov edi,[esp+38h] L0005E8A7: mov esi,[ebp+000005D4h] mov eax,[ebx+08h] mov ecx,[ebx+0Ch] shl esi,02h shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ecx mov [esp+3Ch],esi jc L0005E900 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0005E8FC mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+3Ch] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005E900 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0005E900 L0005E8FC: mov esi,[esp+3Ch] L0005E900: mov ecx,[esp+34h] lea edx,[eax+esi*4] lea esi,[eax+04h] mov eax,[esp+10h] push eax push ecx push esi push ebp mov [ebx+08h],edx call SUB_L0003EC00 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+34h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[ebp+000005D4h] shr edx,02h lea ebx,[esi+edx*4] push ebx push ebp call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] mov eax,[esp+10h] push eax push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[ebp+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push ebp call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov edx,[esp+10h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[ebp+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push ebp call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] pop edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[ebp+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [esi-04h],eax pop esi pop ebp pop ebx L0005EA42: add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005EA50: mov ecx,[esp+10h] sub esp,0000001Ch test ecx,ecx push ebx push ebp push esi push edi jz L0005EED2 mov edx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov ebx,[esp+3Ch] xor esi,esi mov si,[edx] mov edx,[esp+38h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+14h],00000000h imul esi,eax add esi,edx add eax,esi test ecx,ecx mov [esp+10h],esi mov [esp+30h],eax jbe L0005EE11 jmp L0005EAB5 L0005EAB1: mov ecx,[esp+3Ch] L0005EAB5: lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005EACB mov [esp+34h],eax L0005EACB: mov esi,[esp+34h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+38h],esi jc L0005EB28 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005EB24 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+38h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005EB28 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005EB28 L0005EB24: mov esi,[esp+38h] L0005EB28: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+34h] xor ecx,ecx cmp eax,00000003h mov [ebp+08h],edx jc L0005EDC3 mov dword ptr [esp+38h],00000003h L0005EB4E: mov edx,[esp+3Ch] test edx,edx jbe L0005EDC3 mov eax,[esp+18h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005EB83 mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+10h] add edx,eax mov [esp+10h],edx mov dword ptr [esp+18h],00000000h jmp L0005EBA1 L0005EB83: mov edx,[esp+20h] mov eax,[esp+10h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+10h] mov [esp+30h],eax mov dword ptr [esp+18h],00000001h L0005EBA1: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005EC73 mov edx,[esp+38h] push ebx inc ecx push esi inc edx push edi mov [esp+28h],ecx mov [esp+44h],edx mov [esp+20h],ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] jmp L0005EDB9 L0005EC73: mov eax,[esp+14h] test eax,eax jz L0005EDAD add ecx,00000002h mov [esp+1Ch],ecx mov ecx,[esp+38h] push ebx push esi add ecx,00000002h push edi mov [esp+44h],ecx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] L0005EDAD: mov eax,[esp+34h] mov dword ptr [esp+14h],00000000h L0005EDB9: cmp [esp+38h],eax jbe L0005EB4E L0005EDC3: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005EDEB sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005EDDE inc eax L0005EDDE: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0005EDEB: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005EAB1 mov esi,[esp+10h] L0005EE11: mov eax,[esp+30h] fld dword ptr [esi+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [esi] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005EED2 mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+3Ch],ebx jc L0005EE99 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005EE95 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+3Ch] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0005EE99 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005EE99 L0005EE95: mov ebx,[esp+3Ch] L0005EE99: mov ecx,[esp+30h] lea edx,[eax+ebx*4] lea ebx,[eax+04h] mov eax,[esp+14h] push eax push ecx push ebx push edi mov [ebp+08h],edx call SUB_L0005EEE0 mov edx,[esp+14h] push edx push esi push eax push edi call SUB_L0005EEE0 mov eax,[edi+000005D4h] push eax push 00000002h push 00000002h push ebx push ebp call SUB_L00041CB0 L0005EED2: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 SUB_L0005EEE0: push ebp mov ebp,esp sub esp,00000010h push ebx mov ebx,[ebp+08h] mov eax,[ebx+00000A04h] push esi mov esi,[ebp+0Ch] push edi mov edi,[ebp+10h] mov ecx,[edi] mov [esi],ecx mov ecx,[edi+04h] add edi,00000004h add esi,00000004h mov [esi],ecx mov ecx,[edi+04h] add edi,00000004h add esi,00000004h mov [esi],ecx add esi,00000004h add edi,00000004h xor edx,edx test al,04h mov [ebp-10h],eax mov [ebp-0Ch],esi mov [ebp-08h],edi jz L0005EF37 mov ecx,[edi] mov [esi],ecx add esi,00000004h add edi,00000004h mov [ebp-0Ch],esi mov [ebp-08h],edi L0005EF37: test al,40h jz L0005F078 mov ecx,[ebx+00000A00h] test cl,80h jz L0005F05F cmp dword ptr [ebx+000001F4h],00000000h jz L0005F05F cmp dword ptr [L000B70A4],00000000h jz L0005F05F cmp dword ptr [ebx+000005E0h],00000001h jnz L0005EF7E cmp dword ptr [ebx+00000A0Ch],00000000h jz L0005F05F L0005EF7E: test cl,40h jz L0005F011 mov eax,[edi+04h] xor edx,edx mov dl,ah mov [ebp-04h],eax xor ebx,ebx mov bl,[ebp-02h] and eax,000000FFh mov [ebp-04h],eax mov ecx,edx and ecx,eax and ecx,ebx and ecx,000000FFh cmp ebx,ecx jnz L0005EFCC cmp edx,ecx jnz L0005EFCC cmp eax,ecx jnz L0005EFCC mov dword ptr [L000B3D90],FF000000h mov dword ptr [L000B3D94],FFFFFFFFh jmp L0005EFD9 L0005EFCC: or eax,FFFFFFFFh mov [L000B3D90],eax mov [L000B3D94],eax L0005EFD9: mov eax,[ebp-0Ch] mov ebx,[ebp-08h] movq mm2,[ebx] ; MMX movq mm3,mm2 ; MMX psrlq mm3,20h ; MMX pand mm3,[L000B3D50] ; MMX pand mm3,[L000B3D90] ; MMX paddusb mm2,mm3 ; MMX pand mm2,[L000B3D60] ; MMX movq [eax],mm2 ; MMX emms ; MMX mov ebx,[ebp+08h] add edi,00000008h add esi,00000008h jmp L0005F052 L0005F011: mov eax,[edi] mov ecx,eax shr ecx,10h mov edx,eax shr edx,08h and ecx,edx mov edx,[ebx+0000097Ch] and ecx,eax and ecx,000000FFh test edx,edx jz L0005F039 mov dword ptr [esi],FFFFFFFFh jmp L0005F040 L0005F039: and eax,00FFFFFFh mov [esi],eax L0005F040: mov eax,[edi] add esi,00000004h and eax,FF000000h mov [esi],eax add esi,00000004h add edi,00000004h L0005F052: or [esi-04h],ecx mov eax,[ebp-10h] mov edx,00000001h jmp L0005F084 L0005F05F: test cl,40h jz L0005F06D mov ecx,[edi] mov [esi],ecx add esi,00000004h jmp L0005F081 L0005F06D: mov dword ptr [esi],FFFFFFFFh add esi,00000004h jmp L0005F084 L0005F078: test byte ptr [ebx+00000A00h],40h jz L0005F084 L0005F081: add edi,00000004h L0005F084: test al,80h jz L0005F0A5 test edx,edx jnz L0005F0A5 test byte ptr [ebx+00000A00h],80h jnz L0005F09C mov [esi],edx add esi,00000004h jmp L0005F0B5 L0005F09C: mov edx,[edi] mov [esi],edx add esi,00000004h jmp L0005F0B2 L0005F0A5: test byte ptr [ebx+00000A00h],80h jz L0005F0B5 test edx,edx jnz L0005F0B5 L0005F0B2: add edi,00000004h L0005F0B5: mov eax,[ebx+000048ACh] test eax,eax jz L0005F0CB mov eax,[ebp+0Ch] push 00000001h push eax push ebx call SUB_L0003E580 L0005F0CB: mov eax,[ebx+00000A0Ch] dec eax cmp eax,00000004h ja L0005F164 jmp [CASE_PROCTABLE_0005F1F0+eax*4] CASE_0005F1F0_PROC0000: mov ecx,[ebx+00000988h] mov edx,[edi+ecx*4] lea edi,[edi+ecx*4] mov [esi],edx mov eax,[edi+04h] mov [esi+04h],eax jmp L0005F164 CASE_0005F1F0_PROC0001: mov ecx,[ebx+00000988h] mov edx,[edi+ecx*4] mov [esi],edx lea edi,[edi+ecx*4] mov eax,[edi+04h] add edi,00000004h mov [esi+04h],eax mov ecx,[ebx+0000098Ch] mov edx,[edi+ecx*4+04h] add esi,00000004h lea edi,[edi+ecx*4+04h] add esi,00000004h mov [esi],edx mov eax,[edi+04h] mov [esi+04h],eax jmp L0005F164 CASE_0005F1F0_PROC0003: mov dword ptr [esi],00000000h add esi,00000004h mov dword ptr [esi],00000000h jmp L0005F154 CASE_0005F1F0_PROC0004: mov ecx,[ebx+00000988h] mov edx,[edi+ecx*4] lea edi,[edi+ecx*4] mov [esi],edx mov eax,[edi+04h] add esi,00000004h mov [esi],eax L0005F154: add esi,00000004h CASE_0005F1F0_PROC0002: mov dword ptr [esi],00000000h mov dword ptr [esi+04h],00000000h L0005F164: mov ecx,[ebp+0Ch] fld dword ptr [ecx] call SUB_L000AF4EC mov esi,[ebp+0Ch] mov [ebp+08h],eax fild dword ptr [ebp+08h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [ebp+0Ch],eax fild dword ptr [ebp+0Ch] mov eax,[ebp+10h] push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[ebx+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [ebp+0Ch],eax fild dword ptr [ebp+0Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [ebp+0Ch],eax fild dword ptr [ebp+0Ch] pop edi fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea eax,[esi+ecx*4] pop esi pop ebx mov esp,ebp pop ebp retn 0010h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_0005F1F0: dd CASE_0005F1F0_PROC0000 dd CASE_0005F1F0_PROC0001 dd CASE_0005F1F0_PROC0002 dd CASE_0005F1F0_PROC0003 dd CASE_0005F1F0_PROC0004 Align 16 L0005F210: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax jz L0005F6AB push ebx push ebp push esi push edi mov edi,[esp+30h] mov ebp,[edi+0000017Ch] mov ebx,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+2Ch],ebx mov dword ptr [esp+24h],00000001h mov dword ptr [esp+20h],00000000h call SUB_L000ABBE0 mov eax,[esp+34h] mov ecx,[esp+38h] xor esi,esi mov si,[eax] mov eax,[esp+3Ch] imul esi,ebx add esi,ecx test eax,eax lea ecx,[esi+ebx] mov ebx,[esp+3Ch] mov [esp+10h],esi mov [esp+30h],ecx jbe L0005F5DD L0005F27D: mov edx,[esp+3Ch] lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005F297 mov [esp+34h],eax L0005F297: mov esi,[esp+34h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+38h],esi jc L0005F2F4 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005F2F0 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+38h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005F2F4 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005F2F4 L0005F2F0: mov esi,[esp+38h] L0005F2F4: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+34h] xor ecx,ecx cmp eax,00000003h mov [ebp+08h],edx jc L0005F58F mov dword ptr [esp+38h],00000003h L0005F31A: mov edx,[esp+3Ch] test edx,edx jbe L0005F58F mov eax,[esp+18h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005F34F mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+10h] add edx,eax mov [esp+10h],edx mov dword ptr [esp+18h],00000000h jmp L0005F36D L0005F34F: mov edx,[esp+20h] mov eax,[esp+10h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+10h] mov [esp+30h],eax mov dword ptr [esp+18h],00000001h L0005F36D: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005F43F mov edx,[esp+38h] push ebx inc ecx push esi inc edx push edi mov [esp+28h],ecx mov [esp+44h],edx mov [esp+20h],ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] jmp L0005F585 L0005F43F: mov eax,[esp+14h] test eax,eax jz L0005F579 add ecx,00000002h mov [esp+1Ch],ecx mov ecx,[esp+38h] push ebx push esi add ecx,00000002h push edi mov [esp+44h],ecx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] L0005F579: mov eax,[esp+34h] mov dword ptr [esp+14h],00000000h L0005F585: cmp [esp+38h],eax jbe L0005F31A L0005F58F: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005F5B7 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005F5AA inc eax L0005F5AA: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0005F5B7: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005F27D mov esi,[esp+10h] L0005F5DD: mov eax,[esp+30h] fld dword ptr [esi+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [esi] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005F69E mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+3Ch],ebx jc L0005F665 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005F661 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+3Ch] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0005F665 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005F665 L0005F661: mov ebx,[esp+3Ch] L0005F665: mov ecx,[esp+30h] lea edx,[eax+ebx*4] lea ebx,[eax+04h] mov eax,[esp+14h] push eax push ecx push ebx push edi mov [ebp+08h],edx call SUB_L0005EEE0 mov edx,[esp+14h] push edx push esi push eax push edi call SUB_L0005EEE0 mov eax,[edi+000005D4h] push eax push 00000002h push 00000002h push ebx push ebp call SUB_L00041CB0 L0005F69E: push 00000000h push ebp push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0005F6AB: add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0005F6C0: mov ecx,[esp+10h] sub esp,0000001Ch test ecx,ecx push ebx push ebp push esi push edi jz L0005FB42 mov edx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov ebx,[esp+3Ch] xor esi,esi mov si,[edx] mov edx,[esp+38h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+14h],00000000h imul esi,eax add esi,edx add eax,esi test ecx,ecx mov [esp+10h],esi mov [esp+30h],eax jbe L0005FA81 jmp L0005F725 L0005F721: mov ecx,[esp+3Ch] L0005F725: lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005F73B mov [esp+34h],eax L0005F73B: mov esi,[esp+34h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+38h],esi jc L0005F798 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005F794 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+38h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005F798 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005F798 L0005F794: mov esi,[esp+38h] L0005F798: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+34h] xor ecx,ecx cmp eax,00000003h mov [ebp+08h],edx jc L0005FA33 mov dword ptr [esp+38h],00000003h L0005F7BE: mov edx,[esp+3Ch] test edx,edx jbe L0005FA33 mov eax,[esp+18h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005F7F3 mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+10h] add edx,eax mov [esp+10h],edx mov dword ptr [esp+18h],00000000h jmp L0005F811 L0005F7F3: mov edx,[esp+20h] mov eax,[esp+10h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+10h] mov [esp+30h],eax mov dword ptr [esp+18h],00000001h L0005F811: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005F8E3 mov edx,[esp+38h] push ebx inc ecx push esi inc edx push edi mov [esp+28h],ecx mov [esp+44h],edx mov [esp+20h],ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] jmp L0005FA29 L0005F8E3: mov eax,[esp+14h] test eax,eax jz L0005FA1D add ecx,00000002h mov [esp+1Ch],ecx mov ecx,[esp+38h] push ebx push esi add ecx,00000002h push edi mov [esp+44h],ecx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] L0005FA1D: mov eax,[esp+34h] mov dword ptr [esp+14h],00000000h L0005FA29: cmp [esp+38h],eax jbe L0005F7BE L0005FA33: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005FA5B sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005FA4E inc eax L0005FA4E: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0005FA5B: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005F721 mov esi,[esp+10h] L0005FA81: mov eax,[esp+30h] fld dword ptr [esi+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [esi] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0005FB42 mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+3Ch],ebx jc L0005FB09 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005FB05 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+3Ch] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0005FB09 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005FB09 L0005FB05: mov ebx,[esp+3Ch] L0005FB09: mov ecx,[esp+30h] lea edx,[eax+ebx*4] lea ebx,[eax+04h] mov eax,[esp+14h] push eax push ecx push ebx push edi mov [ebp+08h],edx call SUB_L0005EEE0 mov edx,[esp+14h] push edx push esi push eax push edi call SUB_L0005EEE0 mov eax,[edi+000005D4h] push eax push 00000002h push 00000002h push ebx push ebp call SUB_L00041CB0 L0005FB42: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L0005FB50: mov ecx,[esp+10h] sub esp,0000001Ch test ecx,ecx push ebx push ebp push esi push edi jz L0005FFD2 mov edx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov ebx,[esp+3Ch] xor esi,esi mov si,[edx] mov edx,[esp+38h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+14h],00000000h imul esi,eax add esi,edx add eax,esi test ecx,ecx mov [esp+10h],esi mov [esp+30h],eax jbe L0005FF11 jmp L0005FBB5 L0005FBB1: mov ecx,[esp+3Ch] L0005FBB5: lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0005FBCB mov [esp+34h],eax L0005FBCB: mov esi,[esp+34h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+38h],esi jc L0005FC28 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005FC24 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+38h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0005FC28 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005FC28 L0005FC24: mov esi,[esp+38h] L0005FC28: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+34h] xor ecx,ecx cmp eax,00000003h mov [ebp+08h],edx jc L0005FEC3 mov dword ptr [esp+38h],00000003h L0005FC4E: mov edx,[esp+3Ch] test edx,edx jbe L0005FEC3 mov eax,[esp+18h] dec edx test eax,eax mov [esp+3Ch],edx jz L0005FC83 mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+10h] add edx,eax mov [esp+10h],edx mov dword ptr [esp+18h],00000000h jmp L0005FCA1 L0005FC83: mov edx,[esp+20h] mov eax,[esp+10h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+10h] mov [esp+30h],eax mov dword ptr [esp+18h],00000001h L0005FCA1: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005FD73 mov edx,[esp+38h] push ebx inc ecx push esi inc edx push edi mov [esp+28h],ecx mov [esp+44h],edx mov [esp+20h],ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] jmp L0005FEB9 L0005FD73: mov eax,[esp+14h] test eax,eax jz L0005FEAD add ecx,00000002h mov [esp+1Ch],ecx mov ecx,[esp+38h] push ebx push esi add ecx,00000002h push edi mov [esp+44h],ecx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] L0005FEAD: mov eax,[esp+34h] mov dword ptr [esp+14h],00000000h L0005FEB9: cmp [esp+38h],eax jbe L0005FC4E L0005FEC3: cmp ecx,eax mov edx,[edi+000005D4h] jz L0005FEEB sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0005FEDE inc eax L0005FEDE: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0005FEEB: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0005FBB1 mov esi,[esp+10h] L0005FF11: mov eax,[esp+30h] fld dword ptr [esi+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [esi] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0005FFD2 mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+3Ch],ebx jc L0005FF99 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0005FF95 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+3Ch] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0005FF99 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0005FF99 L0005FF95: mov ebx,[esp+3Ch] L0005FF99: mov ecx,[esp+30h] lea edx,[eax+ebx*4] lea ebx,[eax+04h] mov eax,[esp+14h] push eax push ecx push ebx push edi mov [ebp+08h],edx call SUB_L0005EEE0 mov edx,[esp+14h] push edx push esi push eax push edi call SUB_L0005EEE0 mov eax,[edi+000005D4h] push eax push 00000002h push 00000002h push ebx push ebp call SUB_L00041CB0 L0005FFD2: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L0005FFE0: mov eax,[esp+10h] sub esp,0000001Ch test eax,eax jz L0006047B push ebx push ebp push esi push edi mov edi,[esp+30h] mov ebp,[edi+0000017Ch] mov ebx,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+2Ch],ebx mov dword ptr [esp+24h],00000001h mov dword ptr [esp+20h],00000000h call SUB_L000ABBE0 mov eax,[esp+34h] mov ecx,[esp+38h] xor esi,esi mov si,[eax] mov eax,[esp+3Ch] imul esi,ebx add esi,ecx test eax,eax lea ecx,[esi+ebx] mov ebx,[esp+3Ch] mov [esp+10h],esi mov [esp+30h],ecx jbe L000603AD L0006004D: mov edx,[esp+3Ch] lea eax,[edx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L00060067 mov [esp+34h],eax L00060067: mov esi,[esp+34h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+38h],esi jc L000600C4 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000600C0 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+38h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L000600C4 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L000600C4 L000600C0: mov esi,[esp+38h] L000600C4: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+34h] xor ecx,ecx cmp eax,00000003h mov [ebp+08h],edx jc L0006035F mov dword ptr [esp+38h],00000003h L000600EA: mov edx,[esp+3Ch] test edx,edx jbe L0006035F mov eax,[esp+18h] dec edx test eax,eax mov [esp+3Ch],edx jz L0006011F mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+10h] add edx,eax mov [esp+10h],edx mov dword ptr [esp+18h],00000000h jmp L0006013D L0006011F: mov edx,[esp+20h] mov eax,[esp+10h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+10h] mov [esp+30h],eax mov dword ptr [esp+18h],00000001h L0006013D: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006020F mov edx,[esp+38h] push ebx inc ecx push esi inc edx push edi mov [esp+28h],ecx mov [esp+44h],edx mov [esp+20h],ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] jmp L00060355 L0006020F: mov eax,[esp+14h] test eax,eax jz L00060349 add ecx,00000002h mov [esp+1Ch],ecx mov ecx,[esp+38h] push ebx push esi add ecx,00000002h push edi mov [esp+44h],ecx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] L00060349: mov eax,[esp+34h] mov dword ptr [esp+14h],00000000h L00060355: cmp [esp+38h],eax jbe L000600EA L0006035F: cmp ecx,eax mov edx,[edi+000005D4h] jz L00060387 sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0006037A inc eax L0006037A: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L00060387: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L0006004D mov esi,[esp+10h] L000603AD: mov eax,[esp+30h] fld dword ptr [esi+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [esi] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006046E mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+3Ch],ebx jc L00060435 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00060431 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+3Ch] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00060435 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00060435 L00060431: mov ebx,[esp+3Ch] L00060435: mov ecx,[esp+30h] lea edx,[eax+ebx*4] lea ebx,[eax+04h] mov eax,[esp+14h] push eax push ecx push ebx push edi mov [ebp+08h],edx call SUB_L0005EEE0 mov edx,[esp+14h] push edx push esi push eax push edi call SUB_L0005EEE0 mov eax,[edi+000005D4h] push eax push 00000002h push 00000002h push ebx push ebp call SUB_L00041CB0 L0006046E: push 00000000h push ebp push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx L0006047B: add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00060490: mov ecx,[esp+10h] sub esp,0000001Ch test ecx,ecx push ebx push ebp push esi push edi jz L00060912 mov edx,[esp+34h] mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov ebx,[esp+3Ch] xor esi,esi mov si,[edx] mov edx,[esp+38h] mov [esp+20h],eax mov dword ptr [esp+18h],00000001h mov dword ptr [esp+14h],00000000h imul esi,eax add esi,edx add eax,esi test ecx,ecx mov [esp+10h],esi mov [esp+30h],eax jbe L00060851 jmp L000604F5 L000604F1: mov ecx,[esp+3Ch] L000604F5: lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0006050B mov [esp+34h],eax L0006050B: mov esi,[esp+34h] imul esi,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+38h],esi jc L00060568 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00060564 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov esi,[esp+38h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00060568 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00060568 L00060564: mov esi,[esp+38h] L00060568: lea edx,[eax+esi*4] add eax,00000004h mov [esp+28h],eax mov esi,eax mov eax,[esp+34h] xor ecx,ecx cmp eax,00000003h mov [ebp+08h],edx jc L00060803 mov dword ptr [esp+38h],00000003h L0006058E: mov edx,[esp+3Ch] test edx,edx jbe L00060803 mov eax,[esp+18h] dec edx test eax,eax mov [esp+3Ch],edx jz L000605C3 mov eax,[esp+30h] mov edx,[esp+20h] mov ebx,[esp+10h] add edx,eax mov [esp+10h],edx mov dword ptr [esp+18h],00000000h jmp L000605E1 L000605C3: mov edx,[esp+20h] mov eax,[esp+10h] mov ebx,[esp+30h] add eax,edx mov edx,[esp+10h] mov [esp+30h],eax mov dword ptr [esp+18h],00000001h L000605E1: fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000606B3 mov edx,[esp+38h] push ebx inc ecx push esi inc edx push edi mov [esp+28h],ecx mov [esp+44h],edx mov [esp+20h],ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] jmp L000607F9 L000606B3: mov eax,[esp+14h] test eax,eax jz L000607ED add ecx,00000002h mov [esp+1Ch],ecx mov ecx,[esp+38h] push ebx push esi add ecx,00000002h push edi mov [esp+44h],ecx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+30h] mov [esp+24h],eax fild dword ptr [esp+24h] push ecx fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[edi+000005D4h] shr eax,02h lea esi,[esi+eax*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] mov eax,[esp+30h] push eax fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[edi+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push edi call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+24h],eax fild dword ptr [esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] mov ecx,[esp+1Ch] L000607ED: mov eax,[esp+34h] mov dword ptr [esp+14h],00000000h L000607F9: cmp [esp+38h],eax jbe L0006058E L00060803: cmp ecx,eax mov edx,[edi+000005D4h] jz L0006082B sub eax,ecx mov esi,edx shr esi,02h imul eax,esi shl eax,1 test ecx,ecx jnz L0006081E inc eax L0006081E: mov esi,[ebp+08h] neg eax shl eax,02h add esi,eax mov [ebp+08h],esi L0006082B: mov eax,[esp+28h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+3Ch] test eax,eax ja L000604F1 mov esi,[esp+10h] L00060851: mov eax,[esp+30h] fld dword ptr [esi+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [esi] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00060912 mov ebx,[edi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+3Ch],ebx jc L000608D9 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000608D5 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+3Ch] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000608D9 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L000608D9 L000608D5: mov ebx,[esp+3Ch] L000608D9: mov ecx,[esp+30h] lea edx,[eax+ebx*4] lea ebx,[eax+04h] mov eax,[esp+14h] push eax push ecx push ebx push edi mov [ebp+08h],edx call SUB_L0005EEE0 mov edx,[esp+14h] push edx push esi push eax push edi call SUB_L0005EEE0 mov eax,[edi+000005D4h] push eax push 00000002h push 00000002h push ebx push ebp call SUB_L00041CB0 L00060912: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L00060920: mov ecx,[esp+10h] sub esp,00000018h test ecx,ecx jz L00060CD1 mov edx,[esp+20h] push ebx mov ebx,[esp+20h] mov eax,[ebx+000005D0h] push ebp xor ebp,ebp mov bp,[edx] mov edx,[esp+2Ch] push esi mov esi,[ebx+0000017Ch] mov [esp+14h],eax push edi mov dword ptr [esp+10h],00000001h imul ebp,eax add ebp,edx add eax,ebp test ecx,ecx mov [esp+34h],ebp mov [esp+30h],eax jbe L00060B49 L00060973: lea eax,[ecx+02h] cmp eax,00000666h jbe L00060988 mov ebp,00000666h mov [esp+2Ch],ebp jmp L0006098E L00060988: mov [esp+2Ch],eax mov ebp,eax L0006098E: mov eax,[esi+08h] mov ecx,ebp imul ecx,[ebx+000005D4h] shl ecx,1 mov edi,ecx mov ecx,[esi+0Ch] shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx jc L000609DD push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000609DD mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000609DD push esi call [esi+10h] mov eax,[esi+08h] L000609DD: lea edx,[eax+edi*4] add eax,00000004h xor ecx,ecx cmp ebp,00000003h mov [esi+08h],edx mov [esp+24h],eax mov edi,eax jc L00060AFC mov dword ptr [esp+14h],00000003h L000609FF: mov eax,[esp+38h] test eax,eax jbe L00060AFC mov edx,eax mov eax,[esp+10h] dec edx test eax,eax mov [esp+38h],edx jz L00060A36 mov eax,[esp+30h] mov edx,[esp+18h] mov ebp,[esp+34h] add eax,edx mov [esp+34h],eax mov dword ptr [esp+10h],00000000h jmp L00060A50 L00060A36: mov eax,[esp+34h] mov edx,[esp+18h] mov ebp,[esp+30h] add eax,edx mov [esp+30h],eax mov dword ptr [esp+10h],00000001h L00060A50: mov eax,[esp+14h] push ebp inc ecx push edi inc eax push ebx mov [esp+28h],ecx mov [esp+20h],eax call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[ebx+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+2Ch] mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] mov ebp,edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h cmp eax,edx lea edi,[edi+ecx*4] mov ecx,[esp+1Ch] jbe L000609FF L00060AFC: cmp ecx,ebp mov eax,[ebx+000005D4h] jz L00060B24 sub ebp,ecx mov edx,eax shr edx,02h imul ebp,edx shl ebp,1 test ecx,ecx jnz L00060B17 inc ebp L00060B17: mov edx,[esi+08h] neg ebp shl ebp,02h add edx,ebp mov [esi+08h],edx L00060B24: imul eax,ecx mov ecx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov ecx,[esp+38h] test ecx,ecx ja L00060973 mov ebp,[esp+34h] L00060B49: mov edi,[ebx+000005D4h] mov eax,[esi+08h] mov ecx,[esi+0Ch] shl edi,02h shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+38h],edi jc L00060BA2 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00060B9E mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edi,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00060BA2 push esi call [esi+10h] mov eax,[esi+08h] jmp L00060BA2 L00060B9E: mov edi,[esp+38h] L00060BA2: lea edx,[eax+edi*4] mov [esi+08h],edx lea esi,[eax+04h] mov eax,[esp+30h] push eax push esi push ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea edi,[esi+ecx*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[ebx+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[ebx+000005D4h] shl edx,02h shr edx,02h dec edx pop edi or edx,7F140000h mov [esi-04h],edx pop esi pop ebp pop ebx L00060CD1: add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00060CE0: sub esp,00000018h push ebp mov ebp,[esp+2Ch] test ebp,ebp jz L000610AE push ebx mov ebx,[esp+24h] push esi mov esi,[ebx+0000017Ch] push edi mov edi,[ebx+000005D0h] push 00000001h push esi push ebx mov [esp+24h],edi mov dword ptr [esp+1Ch],00000001h call SUB_L000ABBE0 mov ecx,[esp+30h] xor eax,eax mov ax,[ecx] mov ecx,[esp+34h] imul eax,edi add eax,ecx mov [esp+34h],eax add eax,edi test ebp,ebp mov [esp+30h],eax jbe L00060F14 jmp L00060D42 L00060D3E: mov ebp,[esp+38h] L00060D42: lea eax,[ebp+02h] cmp eax,00000666h jbe L00060D57 mov ebp,00000666h mov [esp+2Ch],ebp jmp L00060D5D L00060D57: mov [esp+2Ch],eax mov ebp,eax L00060D5D: mov eax,[esi+08h] mov edx,ebp imul edx,[ebx+000005D4h] shl edx,1 mov edi,edx mov edx,[esi+0Ch] shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L00060DAC push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00060DAC mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00060DAC push esi call [esi+10h] mov eax,[esi+08h] L00060DAC: lea edx,[eax+edi*4] add eax,00000004h xor ecx,ecx cmp ebp,00000003h mov [esi+08h],edx mov [esp+24h],eax mov edi,eax jc L00060ECB mov dword ptr [esp+14h],00000003h L00060DCE: mov eax,[esp+38h] test eax,eax jbe L00060ECB mov edx,eax mov eax,[esp+10h] dec edx test eax,eax mov [esp+38h],edx jz L00060E05 mov eax,[esp+30h] mov edx,[esp+18h] mov ebp,[esp+34h] add eax,edx mov [esp+34h],eax mov dword ptr [esp+10h],00000000h jmp L00060E1F L00060E05: mov eax,[esp+34h] mov edx,[esp+18h] mov ebp,[esp+30h] add eax,edx mov [esp+30h],eax mov dword ptr [esp+10h],00000001h L00060E1F: mov eax,[esp+14h] push ebp inc ecx push edi inc eax push ebx mov [esp+28h],ecx mov [esp+20h],eax call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[ebx+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+2Ch] mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] mov ebp,edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h cmp eax,edx lea edi,[edi+ecx*4] mov ecx,[esp+1Ch] jbe L00060DCE L00060ECB: cmp ecx,ebp mov eax,[ebx+000005D4h] jz L00060EF3 sub ebp,ecx mov edx,eax shr edx,02h imul ebp,edx shl ebp,1 test ecx,ecx jnz L00060EE6 inc ebp L00060EE6: mov edx,[esi+08h] neg ebp shl ebp,02h add edx,ebp mov [esi+08h],edx L00060EF3: imul eax,ecx mov ecx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+38h] test eax,eax ja L00060D3E L00060F14: mov ebp,[ebx+000005D4h] mov eax,[esi+08h] mov ecx,[esi+0Ch] shl ebp,02h shr ebp,02h inc ebp mov edi,eax lea edx,[edi+ebp*4] cmp edx,ecx jc L00060F67 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov edi,eax jz L00060F67 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] mov edi,eax lea ecx,[edi+ebp*4] cmp ecx,edx jc L00060F67 push esi call [esi+10h] mov eax,[esi+08h] mov edi,eax L00060F67: lea edx,[eax+ebp*4] mov eax,[esp+30h] push eax add edi,00000004h push edi push ebx mov [esi+08h],edx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea ebp,[edi+ecx*4] push ebp push ebx call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov ecx,[esp+34h] mov [esp+38h],eax fild dword ptr [esp+38h] push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[ebx+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] push ebp push ebx call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] mov eax,[esp+34h] push eax fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov edx,[ebx+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push ebx call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[ebx+000005D4h] shl ecx,02h shr ecx,02h push 00000000h dec ecx push esi or ecx,7F140000h push ebx mov [edi-04h],ecx call SUB_L000ABBE0 pop edi pop esi pop ebx L000610AE: pop ebp add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000610C0: mov ecx,[esp+10h] sub esp,00000018h test ecx,ecx jz L00061471 mov edx,[esp+20h] push ebx mov ebx,[esp+20h] mov eax,[ebx+000005D0h] push ebp xor ebp,ebp mov bp,[edx] mov edx,[esp+2Ch] push esi mov esi,[ebx+00000148h] mov [esp+14h],eax push edi mov dword ptr [esp+10h],00000001h imul ebp,eax add ebp,edx add eax,ebp test ecx,ecx mov [esp+34h],ebp mov [esp+30h],eax jbe L000612E9 L00061113: lea eax,[ecx+02h] cmp eax,00000666h jbe L00061128 mov ebp,00000666h mov [esp+2Ch],ebp jmp L0006112E L00061128: mov [esp+2Ch],eax mov ebp,eax L0006112E: mov eax,[esi+08h] mov ecx,ebp imul ecx,[ebx+000005D4h] shl ecx,1 mov edi,ecx mov ecx,[esi+0Ch] shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx jc L0006117D push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0006117D mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0006117D push esi call [esi+10h] mov eax,[esi+08h] L0006117D: lea edx,[eax+edi*4] add eax,00000004h xor ecx,ecx cmp ebp,00000003h mov [esi+08h],edx mov [esp+24h],eax mov edi,eax jc L0006129C mov dword ptr [esp+14h],00000003h L0006119F: mov eax,[esp+38h] test eax,eax jbe L0006129C mov edx,eax mov eax,[esp+10h] dec edx test eax,eax mov [esp+38h],edx jz L000611D6 mov eax,[esp+30h] mov edx,[esp+18h] mov ebp,[esp+34h] add eax,edx mov [esp+34h],eax mov dword ptr [esp+10h],00000000h jmp L000611F0 L000611D6: mov eax,[esp+34h] mov edx,[esp+18h] mov ebp,[esp+30h] add eax,edx mov [esp+30h],eax mov dword ptr [esp+10h],00000001h L000611F0: mov eax,[esp+14h] push ebp inc ecx push edi inc eax push ebx mov [esp+28h],ecx mov [esp+20h],eax call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[ebx+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+20h],eax fild dword ptr [esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+2Ch] mov [esp+20h],eax fild dword ptr [esp+20h] mov eax,[esp+14h] mov ebp,edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h cmp eax,edx lea edi,[edi+ecx*4] mov ecx,[esp+1Ch] jbe L0006119F L0006129C: cmp ecx,ebp mov eax,[ebx+000005D4h] jz L000612C4 sub ebp,ecx mov edx,eax shr edx,02h imul ebp,edx shl ebp,1 test ecx,ecx jnz L000612B7 inc ebp L000612B7: mov edx,[esi+08h] neg ebp shl ebp,02h add edx,ebp mov [esi+08h],edx L000612C4: imul eax,ecx mov ecx,[esp+24h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov ecx,[esp+38h] test ecx,ecx ja L00061113 mov ebp,[esp+34h] L000612E9: mov edi,[ebx+000005D4h] mov eax,[esi+08h] mov ecx,[esi+0Ch] shl edi,02h shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+38h],edi jc L00061342 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0006133E mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edi,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00061342 push esi call [esi+10h] mov eax,[esi+08h] jmp L00061342 L0006133E: mov edi,[esp+38h] L00061342: lea edx,[eax+edi*4] mov [esi+08h],edx lea esi,[eax+04h] mov eax,[esp+30h] push eax push esi push ebx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+38h],eax fild dword ptr [esp+38h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea edi,[esi+ecx*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[ebx+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[ebx+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+38h],eax fild dword ptr [esp+38h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[ebx+000005D4h] shl edx,02h shr edx,02h dec edx pop edi or edx,7F140000h mov [esi-04h],edx pop esi pop ebp pop ebx L00061471: add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00061480: mov eax,[esp+10h] sub esp,00000020h push ebx push ebp push esi push edi xor edi,edi cmp eax,edi jz L00061927 mov esi,[esp+34h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov ecx,[esi+00000148h] mov [esp+24h],ebx mov [esp+34h],ecx jnc L000614CC mov eax,[esp+38h] xor edx,edx mov dx,[eax] add eax,00000002h mov [esp+20h],edi mov [esp+1Ch],edx jmp L000614ED L000614CC: mov edx,[esi+00004860h] mov eax,[esp+3Ch] sub eax,edx cdq idiv [esi+00004858h] mov [esp+1Ch],edi mov edx,edi mov [esp+20h],eax mov eax,[esp+38h] L000614ED: xor edi,edi mov di,[eax] lea ebp,[edi+edx] mov edi,ebp imul edi,ebx add edi,[esp+3Ch] mov ebx,[esi+00004868h] add ebx,eax mov eax,[esp+40h] test eax,eax jbe L00061927 jmp L0006151C L00061514: mov ecx,[esp+34h] mov eax,[esp+40h] L0006151C: cmp eax,00000CCAh mov dword ptr [esp+10h],00000CCAh ja L0006152F mov [esp+10h],eax L0006152F: mov eax,[esp+10h] mov edx,[ecx+08h] add eax,00000002h imul eax,[esi+000005D4h] shr eax,02h inc eax mov [esp+14h],edx mov [esp+38h],edx lea edx,[edx+eax*4] cmp edx,[ecx+0Ch] mov [esp+18h],eax jc L000615B9 push ecx call [ecx+10h] mov eax,[esp+34h] mov edx,[eax+08h] mov ecx,[eax+18h] mov eax,[eax+1Ch] cmp [ecx+74h],eax mov [esp+38h],edx jz L000615AF mov [ecx+74h],eax mov eax,[esp+34h] mov ecx,[eax+1Ch] push ecx push eax call [eax+20h] mov edx,[esp+34h] mov edx,[edx+08h] mov ecx,[esp+18h] mov eax,edx mov [esp+38h],eax lea eax,[eax+ecx*4] mov ecx,[esp+34h] cmp eax,[ecx+0Ch] jc L000615AF mov eax,ecx push eax call [eax+10h] mov edx,[esp+34h] mov edx,[edx+08h] mov [esp+38h],edx L000615AF: mov eax,[esp+18h] mov ecx,[esp+10h] jmp L000615C1 L000615B9: mov ecx,[esp+10h] mov edx,[esp+14h] L000615C1: lea eax,[edx+eax*4] mov edx,[esp+34h] mov [edx+08h],eax mov eax,[esp+38h] add eax,00000004h mov [esp+2Ch],eax mov [esp+14h],eax cmp dword ptr [esp+40h],00000001h jbe L000615E8 mov eax,ecx and eax,FFFFFFFEh jmp L000615EE L000615E8: mov [esp+18h],ecx mov eax,ecx L000615EE: mov edx,[esp+40h] sub edx,eax add eax,00000002h mov [esp+18h],eax mov eax,00000000h mov [esp+40h],edx mov [esp+38h],eax jz L00061849 jmp L00061614 L00061610: mov ecx,[esp+10h] L00061614: mov edx,[esp+20h] add ebp,edx test ebp,ebp jl L000618FC cmp ebp,[esi+00000A34h] jge L000618FC mov eax,[esi+00000190h] test eax,eax jnz L0006163F mov dword ptr [edi+0Ch],3F800000h L0006163F: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[esi+00000A10h] lea eax,[eax+eax*2] push ecx mov ecx,[esp+18h] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] push edi lea eax,[edx+eax*8] push ecx call [L000B493C+eax*4] mov ebp,eax mov eax,[esi+000048ACh] test eax,eax jz L00061687 mov edx,[esp+14h] push 00000001h push edx push esi call SUB_L0003E580 L00061687: mov ecx,[esp+1Ch] mov edi,[esp+38h] mov edx,[esp+3Ch] xor eax,eax mov ax,[ebx] inc edi mov [esp+38h],edi add ebx,[esi+00004868h] add ecx,eax mov eax,ecx imul eax,[esp+24h] add eax,edx dec [esp+18h] jz L00061836 mov edx,[esp+20h] add ecx,edx test ecx,ecx jl L000618C3 cmp ecx,[esi+00000A34h] jge L000618C3 mov ecx,[esi+00000190h] test ecx,ecx jnz L000616E3 mov dword ptr [eax+0Ch],3F800000h L000616E3: mov ecx,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[ecx+ecx*2] lea ecx,[edx+ecx*2] mov edx,[esi+00000A08h] lea edx,[edx+ecx*8] lea ecx,[esi+00000A10h] push ecx push eax push ebp call [L000B493C+edx*4] mov [esp+28h],eax mov eax,[esi+000048ACh] test eax,eax jz L000617F7 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax jbe L000617F7 cmp eax,00000002h jbe L0006179F cmp eax,00000003h jnz L000617F7 fld dword ptr [L000B2380] fdiv dword ptr [ebp+0Ch] fst dword ptr [esp+14h] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L00061772 mov byte ptr [edi],FFh jmp L000617F7 L00061772: fld dword ptr [esp+14h] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L00061788 mov byte ptr [edi],00h jmp L000617F7 L00061788: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+14h] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC jmp L000617F5 L0006179F: fld dword ptr [L000B2380] fdiv dword ptr [ebp+0Ch] fst dword ptr [esp+14h] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L000617BE mov byte ptr [edi],FFh jmp L000617F7 L000617BE: fld dword ptr [esp+14h] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L000617D4 mov byte ptr [edi],00h jmp L000617F7 L000617D4: fld dword ptr [esp+14h] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov al,[eax+esi+000048D0h] L000617F5: mov [edi],al L000617F7: mov edi,[esp+38h] mov eax,[esp+1Ch] mov ecx,[esp+28h] xor edx,edx mov dx,[ebx] inc edi mov [esp+38h],edi mov [esp+14h],ecx add ebx,[esi+00004868h] lea ebp,[edx+eax] mov edx,[esp+3Ch] mov eax,[esp+18h] mov edi,ebp imul edi,[esp+24h] add edi,edx dec eax mov [esp+18h],eax jnz L00061610 L00061836: mov eax,[esp+38h] test eax,eax jz L00061845 sub eax,00000002h mov [esp+38h],eax L00061845: mov ecx,[esp+10h] L00061849: mov edi,[esp+1Ch] xor edx,edx mov dx,[ebx-06h] sub ebx,00000006h lea ebp,[edx+edi] mov edx,[esp+3Ch] mov edi,ebp imul edi,[esp+24h] add edi,edx add ebx,[esi+00004868h] cmp eax,ecx mov edx,[esi+000005D4h] mov [esp+38h],edx jz L00061897 sub ecx,eax imul ecx,edx shr ecx,02h test eax,eax jnz L00061887 inc ecx L00061887: mov edx,[esp+34h] neg ecx shl ecx,02h add [edx+08h],ecx mov edx,[esp+38h] L00061897: mov ecx,[esp+2Ch] add eax,00000002h imul eax,edx shr eax,02h dec eax or eax,7F040000h mov [ecx-04h],eax mov eax,[esp+40h] test eax,eax ja L00061514 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L000618C3: mov edx,[esp+10h] mov eax,[esp+34h] add edx,00000002h imul edx,[esi+000005D4h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L000618FC: mov eax,[esp+34h] add ecx,00000002h imul ecx,[esi+000005D4h] shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h L00061927: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00061940: sub esp,00000024h push ebx push ebp push esi push edi mov edi,[esp+44h] xor ebx,ebx cmp edi,ebx jz L00061D97 mov esi,[esp+38h] push esi call SUB_L00036580 cmp eax,ebx mov [esp+24h],eax jnz L00061989 mov eax,[esp+40h] mov ecx,[esp+3Ch] push edi push eax push ecx push esi call [esi+000009ECh] pop edi mov [esi+00000A38h],ebx pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00061989: cmp dword ptr [esi+00000138h],00000004h mov ebp,[esi+000005D0h] mov edx,[esi+00000148h] mov [esp+20h],ebp mov [esp+38h],edx jnc L000619B8 mov eax,[esp+3Ch] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+18h],ecx jmp L000619C2 L000619B8: mov eax,[esp+3Ch] mov [esp+18h],ebx mov ecx,ebx L000619C2: xor edi,edi mov di,[eax] lea ebx,[edi+ecx] mov edi,ebx imul edi,ebp add edi,[esp+40h] mov ebp,[esi+00004868h] add ebp,eax mov eax,[esp+44h] test eax,eax jbe L00061D97 L000619E7: cmp eax,0000FFFBh mov dword ptr [esp+14h],0000FFFBh ja L000619FA mov [esp+14h],eax L000619FA: mov eax,[esp+14h] lea ecx,[eax+eax+06h] mov eax,[edx+08h] shr ecx,02h inc ecx mov edx,eax mov [esp+1Ch],ecx lea ecx,[edx+ecx*4] mov [esp+3Ch],edx mov edx,[esp+38h] cmp ecx,[edx+0Ch] jc L00061A7A push edx call [edx+10h] mov ecx,[esp+38h] mov eax,[ecx+08h] mov edx,[ecx+18h] mov ecx,[ecx+1Ch] cmp [edx+74h],ecx mov [esp+3Ch],eax jz L00061A76 mov eax,[esp+38h] mov [edx+74h],ecx mov edx,[eax+1Ch] push edx push eax call [eax+20h] mov eax,[esp+38h] mov eax,[eax+08h] mov edx,[esp+1Ch] mov ecx,eax mov [esp+3Ch],ecx lea ecx,[ecx+edx*4] mov edx,[esp+38h] cmp ecx,[edx+0Ch] jc L00061A76 mov eax,edx push eax call [eax+10h] mov eax,[esp+38h] mov eax,[eax+08h] mov [esp+3Ch],eax L00061A76: mov edx,[esp+38h] L00061A7A: mov ecx,[esp+1Ch] lea eax,[eax+ecx*4] mov ecx,[esp+3Ch] mov [edx+08h],eax lea eax,[ecx+04h] cmp dword ptr [esp+44h],00000001h mov ecx,[esp+14h] mov [esp+30h],eax jbe L00061A9D and ecx,FFFFFFFEh L00061A9D: sub [esp+44h],ecx mov [esp+10h],ecx add ecx,00000002h mov [esp+10h],ecx mov dword ptr [esp+3Ch],00000000h jz L00061CB5 jmp L00061AC4 L00061ABC: mov eax,[esp+1Ch] mov edx,[esp+38h] L00061AC4: test ebx,ebx jl L00061D72 cmp ebx,[esi+00000A34h] jge L00061D72 mov [eax],bx add eax,00000002h mov [esp+1Ch],eax mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+28h],eax mov [esp+2Ch],ecx jnz L00061B7E mov edx,[esi+000005D4h] mov eax,[esp+24h] shr edx,02h imul edx,ebx lea ebx,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L00061B28 mov dword ptr [edi+0Ch],3F800000h L00061B28: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L00061B66 push 00000001h push ebx push esi call SUB_L0003E580 L00061B66: mov eax,[esp+2Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+28h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L00061B7E: mov eax,[esp+3Ch] mov ebx,[esp+40h] mov edi,[esi+00004868h] mov ecx,[esp+10h] xor edx,edx mov dx,[ebp+00h] inc eax mov [esp+3Ch],eax mov eax,[esp+18h] add ebp,edi add eax,edx mov edx,eax imul edx,[esp+20h] add edx,ebx dec ecx mov [esp+10h],ecx jz L00061CA2 test eax,eax jl L00061D3F cmp eax,[esi+00000A34h] jge L00061D3F mov ecx,[esp+1Ch] mov [ecx],ax add ecx,00000002h mov [esp+1Ch],ecx mov ecx,eax and ecx,0000001Fh mov ebx,00000001h shl ebx,cl mov edi,eax shr edi,05h test [esi+edi*4+00000A3Ch],ebx jnz L00061C68 mov ecx,[esi+000005D4h] shr ecx,02h imul ecx,eax mov eax,[esp+24h] lea ecx,[eax+ecx*4] mov eax,[esi+00000190h] test eax,eax mov [esp+28h],ecx jnz L00061C1B mov dword ptr [edx+0Ch],3F800000h L00061C1B: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ecx+eax*2] mov ecx,[esi+00000A08h] lea eax,[ecx+eax*8] lea ecx,[esi+00000A10h] push ecx push edx mov edx,[esp+30h] push edx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L00061C61 mov eax,[esp+28h] push 00000001h push eax push esi call SUB_L0003E580 L00061C61: or [esi+edi*4+00000A3Ch],ebx L00061C68: mov edi,[esp+3Ch] mov edx,[esp+18h] mov eax,[esp+10h] xor ecx,ecx mov cx,[ebp+00h] inc edi mov [esp+3Ch],edi lea ebx,[ecx+edx] mov edx,[esp+40h] mov ecx,[esi+00004868h] mov edi,ebx imul edi,[esp+20h] add edi,edx add ebp,ecx dec eax mov [esp+10h],eax jnz L00061ABC L00061CA2: mov eax,[esp+3Ch] test eax,eax jz L00061CB1 sub eax,00000002h mov [esp+3Ch],eax L00061CB1: mov edx,[esp+38h] L00061CB5: mov ecx,[esp+18h] xor eax,eax mov ax,[ebp-06h] sub ebp,00000006h lea ebx,[eax+ecx] mov ecx,[esp+40h] mov eax,[esi+00004868h] mov edi,ebx imul edi,[esp+20h] add edi,ecx mov ecx,[esp+14h] add ebp,eax mov eax,[esp+3Ch] cmp eax,ecx jz L00061D16 lea eax,[eax+eax+02h] shr eax,02h lea ecx,[ecx+ecx+02h] mov [esp+2Ch],eax mov eax,ecx mov ecx,[esp+2Ch] shr eax,02h sub eax,ecx mov ecx,[esp+3Ch] test ecx,ecx jnz L00061D09 inc eax L00061D09: mov ecx,[edx+08h] neg eax shl eax,02h add ecx,eax mov [edx+08h],ecx L00061D16: mov eax,[esp+3Ch] mov ecx,[esp+30h] add eax,00000002h or eax,7F860000h mov [ecx-04h],eax mov eax,[esp+44h] test eax,eax ja L000619E7 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00061D3F: mov edx,[esp+14h] lea eax,[edx+edx+06h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+38h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00061D72: mov eax,[esp+14h] lea ecx,[eax+eax+06h] shr ecx,02h or eax,FFFFFFFFh sub eax,ecx mov ecx,[edx+08h] shl eax,02h add ecx,eax mov [edx+08h],ecx mov dword ptr [esi+000005B0h],00000001h L00061D97: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00061DB0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L000622CD mov esi,[esp+40h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+2Ch],ebx mov [esp+40h],edi jnc L00061DFC mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+20h],ecx jmp L00061E1F L00061DFC: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx mov [esp+20h],edx cdq idiv [esi+00004858h] mov ecx,[esp+20h] mov [esp+10h],eax mov eax,[esp+44h] L00061E1F: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx add ebp,edx mov edx,[esi+00004868h] xor ebx,ebx mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+24h],eax mov eax,[esp+4Ch] add ebx,ecx mov ecx,[esp+48h] mov [esp+28h],ebx imul ebx,[esp+2Ch] add ebx,ecx test eax,eax jbe L000622CD L00061E65: mov eax,[esp+4Ch] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00061E79 mov eax,00000006h jmp L00061E88 L00061E79: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L00061E8C L00061E88: mov [esp+44h],eax L00061E8C: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],ecx lea ecx,[edx+ecx*4] mov [esp+1Ch],edx cmp ecx,[edi+0Ch] jc L00061EF3 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+1Ch],eax jz L00061EF3 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00061EF3 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+1Ch],eax L00061EF3: mov edx,[esp+18h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+1Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+14h],eax mov dword ptr [esp+18h],00000000h jc L00062249 mov dword ptr [esp+1Ch],00000006h jmp L00061F33 L00061F2B: mov edi,[esp+40h] mov ecx,[esp+44h] L00061F33: mov eax,[esp+4Ch] test eax,eax jbe L00062249 mov ecx,[esp+30h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L0006229F cmp eax,[esi+00000A34h] jge L0006229F mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L0006229F mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006229F mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L0006229F cmp edx,ecx jge L0006229F fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000620BF mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+18h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L000620BF: mov eax,[esp+4Ch] test eax,eax jbe L00062241 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L0006229F mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006229F mov eax,[esp+10h] add eax,edx test eax,eax jl L0006229F cmp eax,ecx jge L0006229F cmp [esp+34h],ecx jge L0006229F fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00062233 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+44h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00062233: mov eax,[esp+1Ch] cmp eax,[esp+44h] jbe L00061F2B L00062241: mov edi,[esp+40h] mov ecx,[esp+44h] L00062249: mov edx,[esp+18h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00062274 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+18h] shl ecx,1 test edx,edx jnz L0006226C inc ecx L0006226C: neg ecx shl ecx,02h add [edi+08h],ecx L00062274: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L00061E65 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0006229F: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000622CD: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L000622E0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ebp,ebp cmp eax,ebp push esi push edi jz L000627D1 mov esi,[esp+40h] mov edi,[esi+0000017Ch] mov ebx,[esi+000005D0h] push 00000001h push edi push esi mov [esp+38h],ebx mov [esp+4Ch],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00062335 mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],ebp mov [esp+20h],ecx jmp L00062356 L00062335: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+20h],ebp mov ecx,ebp mov [esp+10h],eax mov eax,[esp+44h] L00062356: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx xor ebx,ebx add ebp,edx mov edx,[esi+00004868h] mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+24h],eax mov eax,[esp+4Ch] add ecx,ebx mov ebx,ecx imul ebx,[esp+2Ch] mov [esp+28h],ecx add ebx,[esp+48h] test eax,eax jbe L000627C8 L0006239C: lea eax,[eax+eax+01h] cmp eax,00000006h ja L000623AC mov eax,00000006h jmp L000623BB L000623AC: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L000623BF L000623BB: mov [esp+44h],eax L000623BF: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],ecx lea ecx,[edx+ecx*4] mov [esp+1Ch],edx cmp ecx,[edi+0Ch] jc L00062426 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+1Ch],eax jz L00062426 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00062426 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+1Ch],eax L00062426: mov edx,[esp+18h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+1Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+14h],eax mov dword ptr [esp+18h],00000000h jc L0006277C mov dword ptr [esp+1Ch],00000006h jmp L00062466 L0006245E: mov edi,[esp+40h] mov ecx,[esp+44h] L00062466: mov eax,[esp+4Ch] test eax,eax jbe L0006277C mov ecx,[esp+30h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L000627DB cmp eax,[esi+00000A34h] jge L000627DB mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L000627DB mov ecx,[esi+00000A34h] cmp eax,ecx jge L000627DB mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L000627DB cmp edx,ecx jge L000627DB fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000625F2 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+18h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L000625F2: mov eax,[esp+4Ch] test eax,eax jbe L00062774 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L000627DB mov ecx,[esi+00000A34h] cmp eax,ecx jge L000627DB mov eax,[esp+10h] add eax,edx test eax,eax jl L000627DB cmp eax,ecx jge L000627DB cmp [esp+34h],ecx jge L000627DB fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00062766 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+44h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00062766: mov eax,[esp+1Ch] cmp eax,[esp+44h] jbe L0006245E L00062774: mov edi,[esp+40h] mov ecx,[esp+44h] L0006277C: mov edx,[esp+18h] cmp edx,ecx mov eax,[esi+000005D4h] jz L000627A7 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+18h] shl ecx,1 test edx,edx jnz L0006279F inc ecx L0006279F: neg ecx shl ecx,02h add [edi+08h],ecx L000627A7: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0006239C L000627C8: push 00000000h push edi push esi call SUB_L000ABBE0 L000627D1: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L000627DB: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00062820: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L00062D3D mov esi,[esp+40h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+2Ch],ebx mov [esp+40h],edi jnc L0006286C mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+20h],ecx jmp L0006288F L0006286C: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx mov [esp+20h],edx cdq idiv [esi+00004858h] mov ecx,[esp+20h] mov [esp+10h],eax mov eax,[esp+44h] L0006288F: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx add ebp,edx mov edx,[esi+00004868h] xor ebx,ebx mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+24h],eax mov eax,[esp+4Ch] add ebx,ecx mov ecx,[esp+48h] mov [esp+28h],ebx imul ebx,[esp+2Ch] add ebx,ecx test eax,eax jbe L00062D3D L000628D5: mov eax,[esp+4Ch] lea eax,[eax+eax+01h] cmp eax,00000006h ja L000628E9 mov eax,00000006h jmp L000628F8 L000628E9: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L000628FC L000628F8: mov [esp+44h],eax L000628FC: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],ecx lea ecx,[edx+ecx*4] mov [esp+1Ch],edx cmp ecx,[edi+0Ch] jc L00062963 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+1Ch],eax jz L00062963 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00062963 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+1Ch],eax L00062963: mov edx,[esp+18h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+1Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+14h],eax mov dword ptr [esp+18h],00000000h jc L00062CB9 mov dword ptr [esp+1Ch],00000006h jmp L000629A3 L0006299B: mov edi,[esp+40h] mov ecx,[esp+44h] L000629A3: mov eax,[esp+4Ch] test eax,eax jbe L00062CB9 mov ecx,[esp+30h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L00062D0F cmp eax,[esi+00000A34h] jge L00062D0F mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00062D0F mov ecx,[esi+00000A34h] cmp eax,ecx jge L00062D0F mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L00062D0F cmp edx,ecx jge L00062D0F fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00062B2F mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+18h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00062B2F: mov eax,[esp+4Ch] test eax,eax jbe L00062CB1 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L00062D0F mov ecx,[esi+00000A34h] cmp eax,ecx jge L00062D0F mov eax,[esp+10h] add eax,edx test eax,eax jl L00062D0F cmp eax,ecx jge L00062D0F cmp [esp+34h],ecx jge L00062D0F fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00062CA3 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+44h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00062CA3: mov eax,[esp+1Ch] cmp eax,[esp+44h] jbe L0006299B L00062CB1: mov edi,[esp+40h] mov ecx,[esp+44h] L00062CB9: mov edx,[esp+18h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00062CE4 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+18h] shl ecx,1 test edx,edx jnz L00062CDC inc ecx L00062CDC: neg ecx shl ecx,02h add [edi+08h],ecx L00062CE4: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L000628D5 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00062D0F: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00062D3D: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00062D50: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L0006326D mov esi,[esp+40h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+2Ch],ebx mov [esp+40h],edi jnc L00062D9C mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+20h],ecx jmp L00062DBF L00062D9C: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx mov [esp+20h],edx cdq idiv [esi+00004858h] mov ecx,[esp+20h] mov [esp+10h],eax mov eax,[esp+44h] L00062DBF: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx add ebp,edx mov edx,[esi+00004868h] xor ebx,ebx mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+24h],eax mov eax,[esp+4Ch] add ebx,ecx mov ecx,[esp+48h] mov [esp+28h],ebx imul ebx,[esp+2Ch] add ebx,ecx test eax,eax jbe L0006326D L00062E05: mov eax,[esp+4Ch] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00062E19 mov eax,00000006h jmp L00062E28 L00062E19: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L00062E2C L00062E28: mov [esp+44h],eax L00062E2C: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],ecx lea ecx,[edx+ecx*4] mov [esp+1Ch],edx cmp ecx,[edi+0Ch] jc L00062E93 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+1Ch],eax jz L00062E93 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00062E93 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+1Ch],eax L00062E93: mov edx,[esp+18h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+1Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+14h],eax mov dword ptr [esp+18h],00000000h jc L000631E9 mov dword ptr [esp+1Ch],00000006h jmp L00062ED3 L00062ECB: mov edi,[esp+40h] mov ecx,[esp+44h] L00062ED3: mov eax,[esp+4Ch] test eax,eax jbe L000631E9 mov ecx,[esp+30h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L0006323F cmp eax,[esi+00000A34h] jge L0006323F mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L0006323F mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006323F mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L0006323F cmp edx,ecx jge L0006323F fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006305F mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+18h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L0006305F: mov eax,[esp+4Ch] test eax,eax jbe L000631E1 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L0006323F mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006323F mov eax,[esp+10h] add eax,edx test eax,eax jl L0006323F cmp eax,ecx jge L0006323F cmp [esp+34h],ecx jge L0006323F fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000631D3 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+44h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L000631D3: mov eax,[esp+1Ch] cmp eax,[esp+44h] jbe L00062ECB L000631E1: mov edi,[esp+40h] mov ecx,[esp+44h] L000631E9: mov edx,[esp+18h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00063214 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+18h] shl ecx,1 test edx,edx jnz L0006320C inc ecx L0006320C: neg ecx shl ecx,02h add [edi+08h],ecx L00063214: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L00062E05 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0006323F: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0006326D: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00063280: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ebp,ebp cmp eax,ebp push esi push edi jz L00063771 mov esi,[esp+40h] mov edi,[esi+0000017Ch] mov ebx,[esi+000005D0h] push 00000001h push edi push esi mov [esp+38h],ebx mov [esp+4Ch],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L000632D5 mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],ebp mov [esp+20h],ecx jmp L000632F6 L000632D5: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+20h],ebp mov ecx,ebp mov [esp+10h],eax mov eax,[esp+44h] L000632F6: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx xor ebx,ebx add ebp,edx mov edx,[esi+00004868h] mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+24h],eax mov eax,[esp+4Ch] add ecx,ebx mov ebx,ecx imul ebx,[esp+2Ch] mov [esp+28h],ecx add ebx,[esp+48h] test eax,eax jbe L00063768 L0006333C: lea eax,[eax+eax+01h] cmp eax,00000006h ja L0006334C mov eax,00000006h jmp L0006335B L0006334C: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L0006335F L0006335B: mov [esp+44h],eax L0006335F: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],ecx lea ecx,[edx+ecx*4] mov [esp+1Ch],edx cmp ecx,[edi+0Ch] jc L000633C6 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+1Ch],eax jz L000633C6 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L000633C6 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+1Ch],eax L000633C6: mov edx,[esp+18h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+1Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+14h],eax mov dword ptr [esp+18h],00000000h jc L0006371C mov dword ptr [esp+1Ch],00000006h jmp L00063406 L000633FE: mov edi,[esp+40h] mov ecx,[esp+44h] L00063406: mov eax,[esp+4Ch] test eax,eax jbe L0006371C mov ecx,[esp+30h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L0006377B cmp eax,[esi+00000A34h] jge L0006377B mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L0006377B mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006377B mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L0006377B cmp edx,ecx jge L0006377B fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00063592 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+18h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00063592: mov eax,[esp+4Ch] test eax,eax jbe L00063714 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L0006377B mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006377B mov eax,[esp+10h] add eax,edx test eax,eax jl L0006377B cmp eax,ecx jge L0006377B cmp [esp+34h],ecx jge L0006377B fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00063706 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+44h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00063706: mov eax,[esp+1Ch] cmp eax,[esp+44h] jbe L000633FE L00063714: mov edi,[esp+40h] mov ecx,[esp+44h] L0006371C: mov edx,[esp+18h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00063747 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+18h] shl ecx,1 test edx,edx jnz L0006373F inc ecx L0006373F: neg ecx shl ecx,02h add [edi+08h],ecx L00063747: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0006333C L00063768: push 00000000h push edi push esi call SUB_L000ABBE0 L00063771: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0006377B: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L000637C0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L00063CDD mov esi,[esp+40h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+2Ch],ebx mov [esp+40h],edi jnc L0006380C mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+20h],ecx jmp L0006382F L0006380C: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx mov [esp+20h],edx cdq idiv [esi+00004858h] mov ecx,[esp+20h] mov [esp+10h],eax mov eax,[esp+44h] L0006382F: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx add ebp,edx mov edx,[esi+00004868h] xor ebx,ebx mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+24h],eax mov eax,[esp+4Ch] add ebx,ecx mov ecx,[esp+48h] mov [esp+28h],ebx imul ebx,[esp+2Ch] add ebx,ecx test eax,eax jbe L00063CDD L00063875: mov eax,[esp+4Ch] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00063889 mov eax,00000006h jmp L00063898 L00063889: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L0006389C L00063898: mov [esp+44h],eax L0006389C: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],ecx lea ecx,[edx+ecx*4] mov [esp+1Ch],edx cmp ecx,[edi+0Ch] jc L00063903 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+1Ch],eax jz L00063903 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00063903 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+1Ch],eax L00063903: mov edx,[esp+18h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+1Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+14h],eax mov dword ptr [esp+18h],00000000h jc L00063C59 mov dword ptr [esp+1Ch],00000006h jmp L00063943 L0006393B: mov edi,[esp+40h] mov ecx,[esp+44h] L00063943: mov eax,[esp+4Ch] test eax,eax jbe L00063C59 mov ecx,[esp+30h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L00063CAF cmp eax,[esi+00000A34h] jge L00063CAF mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00063CAF mov ecx,[esi+00000A34h] cmp eax,ecx jge L00063CAF mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L00063CAF cmp edx,ecx jge L00063CAF fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00063ACF mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+18h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00063ACF: mov eax,[esp+4Ch] test eax,eax jbe L00063C51 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+24h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+20h] mov [esp+24h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L00063CAF mov ecx,[esi+00000A34h] cmp eax,ecx jge L00063CAF mov eax,[esp+10h] add eax,edx test eax,eax jl L00063CAF cmp eax,ecx jge L00063CAF cmp [esp+34h],ecx jge L00063CAF fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00063C43 mov ecx,[esp+14h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+44h],eax call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+1Ch],ecx mov ecx,[esi+000005D4h] push edi mov [esp+1Ch],edx mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+24h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h lea edx,[ecx+eax*4] mov [esp+14h],edx L00063C43: mov eax,[esp+1Ch] cmp eax,[esp+44h] jbe L0006393B L00063C51: mov edi,[esp+40h] mov ecx,[esp+44h] L00063C59: mov edx,[esp+18h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00063C84 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+18h] shl ecx,1 test edx,edx jnz L00063C7C inc ecx L00063C7C: neg ecx shl ecx,02h add [edi+08h],ecx L00063C84: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L00063875 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00063CAF: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00063CDD: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00063CF0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L000641B1 mov esi,[esp+40h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+2Ch],ebx mov [esp+40h],edi jnc L00063D3C mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+1Ch],ecx jmp L00063D5F L00063D3C: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx mov [esp+1Ch],edx cdq idiv [esi+00004858h] mov ecx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+44h] L00063D5F: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx add ebp,edx mov edx,[esi+00004868h] xor ebx,ebx mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+4Ch] add ebx,ecx mov ecx,[esp+48h] mov [esp+28h],ebx imul ebx,[esp+2Ch] add ebx,ecx test eax,eax jbe L000641B1 L00063DA5: mov eax,[esp+4Ch] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00063DB9 mov eax,00000006h jmp L00063DC8 L00063DB9: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L00063DCC L00063DC8: mov [esp+44h],eax L00063DCC: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+24h],ecx lea ecx,[edx+ecx*4] mov [esp+18h],edx cmp ecx,[edi+0Ch] jc L00063E33 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+18h],eax jz L00063E33 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00063E33 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+18h],eax L00063E33: mov edx,[esp+24h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+18h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov dword ptr [esp+14h],00000000h jc L0006412D mov dword ptr [esp+18h],00000006h jmp L00063E73 L00063E6B: mov edi,[esp+40h] mov ecx,[esp+44h] L00063E73: mov eax,[esp+4Ch] test eax,eax jbe L0006412D mov ecx,[esp+30h] mov edx,eax mov eax,[esp+20h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+1Ch] mov [esp+20h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L00064183 cmp eax,[esi+00000A34h] jge L00064183 mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00064183 mov ecx,[esi+00000A34h] cmp eax,ecx jge L00064183 mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L00064183 cmp edx,ecx jge L00064183 mov ecx,[esp+24h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] push edi mov [esp+18h],edx mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esp+4Ch] test eax,eax jbe L00064125 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+20h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+1Ch] mov [esp+20h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L00064183 mov ecx,[esi+00000A34h] cmp eax,ecx jge L00064183 mov eax,[esp+10h] add eax,edx test eax,eax jl L00064183 cmp eax,ecx jge L00064183 cmp [esp+34h],ecx jge L00064183 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+28h],ecx mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] shr ecx,02h lea eax,[edx+ecx*4] mov ecx,[esp+44h] mov [esp+24h],eax cmp [esp+18h],ecx jbe L00063E6B L00064125: mov edi,[esp+40h] mov ecx,[esp+44h] L0006412D: mov edx,[esp+14h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00064158 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+14h] shl ecx,1 test edx,edx jnz L00064150 inc ecx L00064150: neg ecx shl ecx,02h add [edi+08h],ecx L00064158: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L00063DA5 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00064183: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000641B1: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L000641C0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor ebp,ebp cmp eax,ebp push esi push edi jz L00064655 mov esi,[esp+40h] mov edi,[esi+0000017Ch] mov ebx,[esi+000005D0h] push 00000001h push edi push esi mov [esp+38h],ebx mov [esp+4Ch],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00064215 mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],ebp mov [esp+1Ch],ecx jmp L00064236 L00064215: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+1Ch],ebp mov ecx,ebp mov [esp+10h],eax mov eax,[esp+44h] L00064236: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx xor ebx,ebx add ebp,edx mov edx,[esi+00004868h] mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+4Ch] add ecx,ebx mov ebx,ecx imul ebx,[esp+2Ch] mov [esp+28h],ecx add ebx,[esp+48h] test eax,eax jbe L0006464C L0006427C: lea eax,[eax+eax+01h] cmp eax,00000006h ja L0006428C mov eax,00000006h jmp L0006429B L0006428C: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L0006429F L0006429B: mov [esp+44h],eax L0006429F: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+24h],ecx lea ecx,[edx+ecx*4] mov [esp+18h],edx cmp ecx,[edi+0Ch] jc L00064306 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+18h],eax jz L00064306 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L00064306 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+18h],eax L00064306: mov edx,[esp+24h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+18h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov dword ptr [esp+14h],00000000h jc L00064600 mov dword ptr [esp+18h],00000006h jmp L00064346 L0006433E: mov edi,[esp+40h] mov ecx,[esp+44h] L00064346: mov eax,[esp+4Ch] test eax,eax jbe L00064600 mov ecx,[esp+30h] mov edx,eax mov eax,[esp+20h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+1Ch] mov [esp+20h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L0006465F cmp eax,[esi+00000A34h] jge L0006465F mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L0006465F mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006465F mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L0006465F cmp edx,ecx jge L0006465F mov ecx,[esp+24h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] push edi mov [esp+18h],edx mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esp+4Ch] test eax,eax jbe L000645F8 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+20h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+1Ch] mov [esp+20h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L0006465F mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006465F mov eax,[esp+10h] add eax,edx test eax,eax jl L0006465F cmp eax,ecx jge L0006465F cmp [esp+34h],ecx jge L0006465F mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+28h],ecx mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] shr ecx,02h lea eax,[edx+ecx*4] mov ecx,[esp+44h] mov [esp+24h],eax cmp [esp+18h],ecx jbe L0006433E L000645F8: mov edi,[esp+40h] mov ecx,[esp+44h] L00064600: mov edx,[esp+14h] cmp edx,ecx mov eax,[esi+000005D4h] jz L0006462B sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+14h] shl ecx,1 test edx,edx jnz L00064623 inc ecx L00064623: neg ecx shl ecx,02h add [edi+08h],ecx L0006462B: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0006427C L0006464C: push 00000000h push edi push esi call SUB_L000ABBE0 L00064655: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0006465F: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L000646A0: mov eax,[esp+10h] sub esp,0000002Ch push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L00064B61 mov esi,[esp+40h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+2Ch],ebx mov [esp+40h],edi jnc L000646EC mov eax,[esp+44h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+1Ch],ecx jmp L0006470F L000646EC: mov ecx,[esi+00004860h] mov eax,[esp+48h] sub eax,ecx mov [esp+1Ch],edx cdq idiv [esi+00004858h] mov ecx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+44h] L0006470F: xor edx,edx mov dx,[eax] lea ebp,[edx+ecx] mov edx,[esp+48h] mov [esp+30h],ebp imul ebp,ebx add ebp,edx mov edx,[esi+00004868h] xor ebx,ebx mov bx,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+4Ch] add ebx,ecx mov ecx,[esp+48h] mov [esp+28h],ebx imul ebx,[esp+2Ch] add ebx,ecx test eax,eax jbe L00064B61 L00064755: mov eax,[esp+4Ch] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00064769 mov eax,00000006h jmp L00064778 L00064769: cmp eax,00000666h mov dword ptr [esp+44h],00000666h ja L0006477C L00064778: mov [esp+44h],eax L0006477C: mov ecx,[esi+000005D4h] imul ecx,[esp+44h] mov eax,[edi+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+24h],ecx lea ecx,[edx+ecx*4] mov [esp+18h],edx cmp ecx,[edi+0Ch] jc L000647E3 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+18h],eax jz L000647E3 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L000647E3 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+18h],eax L000647E3: mov edx,[esp+24h] mov ecx,[esp+44h] cmp ecx,00000006h lea eax,[eax+edx*4] mov edx,[esp+18h] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov dword ptr [esp+14h],00000000h jc L00064ADD mov dword ptr [esp+18h],00000006h jmp L00064823 L0006481B: mov edi,[esp+40h] mov ecx,[esp+44h] L00064823: mov eax,[esp+4Ch] test eax,eax jbe L00064ADD mov ecx,[esp+30h] mov edx,eax mov eax,[esp+20h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebp mov ebp,[esp+1Ch] mov [esp+20h],eax mov eax,[esp+10h] add eax,ecx add edx,ebp mov ebp,edx imul ebp,[esp+2Ch] add ebp,[esp+48h] test eax,eax mov [esp+30h],edx jl L00064B33 cmp eax,[esi+00000A34h] jge L00064B33 mov ecx,[esp+28h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00064B33 mov ecx,[esi+00000A34h] cmp eax,ecx jge L00064B33 mov eax,[esp+10h] add edx,eax test edx,edx mov [esp+34h],edx jl L00064B33 cmp edx,ecx jge L00064B33 mov ecx,[esp+24h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] push edi mov [esp+18h],edx mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esp+4Ch] test eax,eax jbe L00064AD5 mov ecx,[esp+28h] mov edx,eax mov eax,[esp+20h] dec edx mov [esp+4Ch],edx xor edx,edx mov dx,[eax] add eax,[esi+00004868h] mov edi,ebx mov ebx,[esp+1Ch] mov [esp+20h],eax mov eax,[esp+10h] add eax,ecx add edx,ebx mov ebx,edx imul ebx,[esp+2Ch] add ebx,[esp+48h] test eax,eax mov [esp+28h],edx jl L00064B33 mov ecx,[esi+00000A34h] cmp eax,ecx jge L00064B33 mov eax,[esp+10h] add eax,edx test eax,eax jl L00064B33 cmp eax,ecx jge L00064B33 cmp [esp+34h],ecx jge L00064B33 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push edi push eax push esi mov [esp+28h],ecx mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+24h] push edi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+24h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+24h] shr ecx,02h lea eax,[edx+ecx*4] mov ecx,[esp+44h] mov [esp+24h],eax cmp [esp+18h],ecx jbe L0006481B L00064AD5: mov edi,[esp+40h] mov ecx,[esp+44h] L00064ADD: mov edx,[esp+14h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00064B08 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+14h] shl ecx,1 test edx,edx jnz L00064B00 inc ecx L00064B00: neg ecx shl ecx,02h add [edi+08h],ecx L00064B08: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L00064755 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00064B33: mov edx,[esi+000005D4h] imul edx,[esp+44h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00064B61: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L00064B70: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L0006508F mov esi,[esp+44h] cmp dword ptr [esi+00000138h],00000004h mov edi,[esi+000005D0h] mov ebp,[esi+0000017Ch] mov [esp+30h],edi mov [esp+44h],ebp jnc L00064BBC mov eax,[esp+48h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+1Ch],ecx jmp L00064BDF L00064BBC: mov ecx,[esi+00004860h] mov eax,[esp+4Ch] sub eax,ecx mov [esp+1Ch],edx cdq idiv [esi+00004858h] mov ecx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+48h] L00064BDF: xor edx,edx mov dx,[eax] lea ebx,[edx+ecx] mov edx,[esp+4Ch] mov [esp+2Ch],ebx imul ebx,edi add ebx,edx mov edx,[esi+00004868h] xor edi,edi mov di,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+50h] add edi,ecx mov ecx,[esp+4Ch] mov [esp+24h],edi imul edi,[esp+30h] add edi,ecx test eax,eax jbe L0006508F jmp L00064C2B L00064C27: mov ebp,[esp+44h] L00064C2B: mov eax,[esp+50h] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00064C3F mov eax,00000006h jmp L00064C4E L00064C3F: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L00064C52 L00064C4E: mov [esp+48h],eax L00064C52: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00064CB5 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+18h],eax jz L00064CB1 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00064CB5 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L00064CB5 L00064CB1: mov ecx,[esp+18h] L00064CB5: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+48h] add ecx,00000004h xor edx,edx cmp eax,00000006h mov [esp+3Ch],ecx mov ebp,ecx mov [esp+14h],edx jc L00064FBF mov dword ptr [esp+18h],00000006h jmp L00064CED L00064CE5: mov edx,[esp+14h] mov eax,[esp+48h] L00064CED: mov ecx,[esp+50h] test ecx,ecx jbe L00064FBF xor edx,edx mov eax,ecx mov ecx,[esp+20h] mov dx,[ecx] dec eax mov [esp+28h],ebx mov ebx,[esp+1Ch] mov [esp+50h],eax mov eax,[esp+2Ch] add edx,ebx mov ebx,[esp+4Ch] mov [esp+2Ch],edx imul edx,[esp+30h] add ebx,edx add ecx,[esi+00004868h] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+20h],ecx jl L00065061 cmp eax,[esi+00000A34h] jge L00065061 mov eax,[esp+10h] mov edx,[esp+24h] add eax,edx test eax,eax jl L00065061 cmp eax,[esi+00000A34h] jge L00065061 mov eax,[esp+2Ch] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+38h],eax jl L00065061 cmp eax,[esi+00000A34h] jge L00065061 mov edx,[esp+28h] fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00064E58 push edx push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] mov [esp+14h],edx mov edx,[esp+28h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+20h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00064E58: mov eax,[esp+50h] test eax,eax jbe L00064FB7 dec eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+34h],eax xor eax,eax mov ax,[ecx] mov edx,edi mov edi,[esp+1Ch] mov [esp+28h],edx add eax,edi mov edi,[esp+4Ch] mov [esp+24h],eax imul eax,[esp+30h] add edi,eax add ecx,[esi+00004868h] mov eax,[esp+10h] mov [esp+20h],ecx mov ecx,[esp+34h] add eax,ecx test eax,eax jl L00065061 cmp eax,[esi+00000A34h] jge L00065061 mov ecx,[esp+24h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L0006504A mov ecx,[esi+00000A34h] cmp eax,ecx jge L0006504A cmp [esp+38h],ecx jge L00065012 fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00064FA9 push edx push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+28h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi mov [esp+24h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] L00064FA9: mov edx,[esp+48h] cmp [esp+18h],edx jbe L00064CE5 L00064FB7: mov edx,[esp+14h] mov eax,[esp+48h] L00064FBF: cmp edx,eax mov ecx,[esi+000005D4h] jz L00064FE6 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00064FDA inc eax L00064FDA: mov ebp,[esp+44h] neg eax shl eax,02h add [ebp+08h],eax L00064FE6: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L00064C27 pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00065012: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+44h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0006504A: mov eax,[esi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00065076 L00065061: mov edx,[esi+000005D4h] imul edx,[esp+48h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00065076: mov eax,[esp+44h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0006508F: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000650A0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L00065546 mov esi,[esp+44h] mov ebp,[esi+0000017Ch] mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+3Ch],edi mov [esp+50h],ebp call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L000650F5 mov eax,[esp+48h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],ebx mov [esp+1Ch],ecx jmp L00065116 L000650F5: mov ecx,[esi+00004860h] mov eax,[esp+4Ch] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+1Ch],ebx mov ecx,ebx mov [esp+10h],eax mov eax,[esp+48h] L00065116: xor edx,edx mov dx,[eax] lea ebx,[edx+ecx] mov edx,[esp+4Ch] mov [esp+2Ch],ebx imul ebx,edi add ebx,edx mov edx,[esi+00004868h] xor edi,edi mov di,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+50h] add edi,ecx mov ecx,[esp+4Ch] mov [esp+24h],edi imul edi,[esp+30h] add edi,ecx test eax,eax jbe L0006553D L0006515C: mov eax,[esp+50h] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00065170 mov eax,00000006h jmp L0006517F L00065170: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L00065183 L0006517F: mov [esp+48h],eax L00065183: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L000651E6 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+18h],eax jz L000651E2 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L000651E6 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L000651E6 L000651E2: mov ecx,[esp+18h] L000651E6: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+48h] add ecx,00000004h xor edx,edx cmp eax,00000006h mov [esp+3Ch],ecx mov ebp,ecx mov [esp+14h],edx jc L000654F0 mov dword ptr [esp+18h],00000006h jmp L0006521E L00065216: mov edx,[esp+14h] mov eax,[esp+48h] L0006521E: mov ecx,[esp+50h] test ecx,ecx jbe L000654F0 xor edx,edx mov eax,ecx mov ecx,[esp+20h] mov dx,[ecx] dec eax mov [esp+28h],ebx mov ebx,[esp+1Ch] mov [esp+50h],eax mov eax,[esp+2Ch] add edx,ebx mov ebx,[esp+4Ch] mov [esp+2Ch],edx imul edx,[esp+30h] add ebx,edx add ecx,[esi+00004868h] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+20h],ecx jl L000655C0 cmp eax,[esi+00000A34h] jge L000655C0 mov eax,[esp+10h] mov edx,[esp+24h] add eax,edx test eax,eax jl L000655C0 cmp eax,[esi+00000A34h] jge L000655C0 mov eax,[esp+2Ch] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+38h],eax jl L000655C0 cmp eax,[esi+00000A34h] jge L000655C0 mov edx,[esp+28h] fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00065389 push edx push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] mov [esp+14h],edx mov edx,[esp+28h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+20h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00065389: mov eax,[esp+50h] test eax,eax jbe L000654E8 dec eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+34h],eax xor eax,eax mov ax,[ecx] mov edx,edi mov edi,[esp+1Ch] mov [esp+28h],edx add eax,edi mov edi,[esp+4Ch] mov [esp+24h],eax imul eax,[esp+30h] add edi,eax add ecx,[esi+00004868h] mov eax,[esp+10h] mov [esp+20h],ecx mov ecx,[esp+34h] add eax,ecx test eax,eax jl L000655C0 cmp eax,[esi+00000A34h] jge L000655C0 mov ecx,[esp+24h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00065588 mov ecx,[esi+00000A34h] cmp eax,ecx jge L00065588 cmp [esp+38h],ecx jge L00065550 fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000654DA push edx push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+28h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi mov [esp+24h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] L000654DA: mov edx,[esp+48h] cmp [esp+18h],edx jbe L00065216 L000654E8: mov edx,[esp+14h] mov eax,[esp+48h] L000654F0: cmp edx,eax mov ecx,[esi+000005D4h] jz L00065517 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L0006550B inc eax L0006550B: mov ebp,[esp+44h] neg eax shl eax,02h add [ebp+08h],eax L00065517: mov eax,[esp+3Ch] imul ecx,edx mov ebp,[esp+44h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L0006515C L0006553D: push 00000000h push ebp push esi call SUB_L000ABBE0 L00065546: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00065550: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+44h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00065588: mov eax,[esi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0006559D: mov eax,[esp+44h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000655C0: mov edx,[esi+000005D4h] imul edx,[esp+48h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0006559D Align 16 L000655E0: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L00065AFF mov esi,[esp+44h] cmp dword ptr [esi+00000138h],00000004h mov edi,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+30h],edi mov [esp+44h],ebp jnc L0006562C mov eax,[esp+48h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+1Ch],ecx jmp L0006564F L0006562C: mov ecx,[esi+00004860h] mov eax,[esp+4Ch] sub eax,ecx mov [esp+1Ch],edx cdq idiv [esi+00004858h] mov ecx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+48h] L0006564F: xor edx,edx mov dx,[eax] lea ebx,[edx+ecx] mov edx,[esp+4Ch] mov [esp+2Ch],ebx imul ebx,edi add ebx,edx mov edx,[esi+00004868h] xor edi,edi mov di,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+50h] add edi,ecx mov ecx,[esp+4Ch] mov [esp+24h],edi imul edi,[esp+30h] add edi,ecx test eax,eax jbe L00065AFF jmp L0006569B L00065697: mov ebp,[esp+44h] L0006569B: mov eax,[esp+50h] lea eax,[eax+eax+01h] cmp eax,00000006h ja L000656AF mov eax,00000006h jmp L000656BE L000656AF: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L000656C2 L000656BE: mov [esp+48h],eax L000656C2: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00065725 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+18h],eax jz L00065721 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00065725 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L00065725 L00065721: mov ecx,[esp+18h] L00065725: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+48h] add ecx,00000004h xor edx,edx cmp eax,00000006h mov [esp+3Ch],ecx mov ebp,ecx mov [esp+14h],edx jc L00065A2F mov dword ptr [esp+18h],00000006h jmp L0006575D L00065755: mov edx,[esp+14h] mov eax,[esp+48h] L0006575D: mov ecx,[esp+50h] test ecx,ecx jbe L00065A2F xor edx,edx mov eax,ecx mov ecx,[esp+20h] mov dx,[ecx] dec eax mov [esp+28h],ebx mov ebx,[esp+1Ch] mov [esp+50h],eax mov eax,[esp+2Ch] add edx,ebx mov ebx,[esp+4Ch] mov [esp+2Ch],edx imul edx,[esp+30h] add ebx,edx add ecx,[esi+00004868h] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+20h],ecx jl L00065AD1 cmp eax,[esi+00000A34h] jge L00065AD1 mov eax,[esp+10h] mov edx,[esp+24h] add eax,edx test eax,eax jl L00065AD1 cmp eax,[esi+00000A34h] jge L00065AD1 mov eax,[esp+2Ch] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+38h],eax jl L00065AD1 cmp eax,[esi+00000A34h] jge L00065AD1 mov edx,[esp+28h] fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000658C8 push edx push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] mov [esp+14h],edx mov edx,[esp+28h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+20h] shr eax,02h lea ebp,[ebp+eax*4+00h] L000658C8: mov eax,[esp+50h] test eax,eax jbe L00065A27 dec eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+34h],eax xor eax,eax mov ax,[ecx] mov edx,edi mov edi,[esp+1Ch] mov [esp+28h],edx add eax,edi mov edi,[esp+4Ch] mov [esp+24h],eax imul eax,[esp+30h] add edi,eax add ecx,[esi+00004868h] mov eax,[esp+10h] mov [esp+20h],ecx mov ecx,[esp+34h] add eax,ecx test eax,eax jl L00065AD1 cmp eax,[esi+00000A34h] jge L00065AD1 mov ecx,[esp+24h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00065ABA mov ecx,[esi+00000A34h] cmp eax,ecx jge L00065ABA cmp [esp+38h],ecx jge L00065A82 fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00065A19 push edx push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+28h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi mov [esp+24h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] L00065A19: mov edx,[esp+48h] cmp [esp+18h],edx jbe L00065755 L00065A27: mov edx,[esp+14h] mov eax,[esp+48h] L00065A2F: cmp edx,eax mov ecx,[esi+000005D4h] jz L00065A56 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00065A4A inc eax L00065A4A: mov ebp,[esp+44h] neg eax shl eax,02h add [ebp+08h],eax L00065A56: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L00065697 pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00065A82: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+44h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00065ABA: mov eax,[esi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00065AE6 L00065AD1: mov edx,[esi+000005D4h] imul edx,[esp+48h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00065AE6: mov eax,[esp+44h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00065AFF: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00065B10: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L0006602F mov esi,[esp+44h] cmp dword ptr [esi+00000138h],00000004h mov edi,[esi+000005D0h] mov ebp,[esi+0000017Ch] mov [esp+30h],edi mov [esp+44h],ebp jnc L00065B5C mov eax,[esp+48h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+1Ch],ecx jmp L00065B7F L00065B5C: mov ecx,[esi+00004860h] mov eax,[esp+4Ch] sub eax,ecx mov [esp+1Ch],edx cdq idiv [esi+00004858h] mov ecx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+48h] L00065B7F: xor edx,edx mov dx,[eax] lea ebx,[edx+ecx] mov edx,[esp+4Ch] mov [esp+2Ch],ebx imul ebx,edi add ebx,edx mov edx,[esi+00004868h] xor edi,edi mov di,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+50h] add edi,ecx mov ecx,[esp+4Ch] mov [esp+24h],edi imul edi,[esp+30h] add edi,ecx test eax,eax jbe L0006602F jmp L00065BCB L00065BC7: mov ebp,[esp+44h] L00065BCB: mov eax,[esp+50h] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00065BDF mov eax,00000006h jmp L00065BEE L00065BDF: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L00065BF2 L00065BEE: mov [esp+48h],eax L00065BF2: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00065C55 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+18h],eax jz L00065C51 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00065C55 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L00065C55 L00065C51: mov ecx,[esp+18h] L00065C55: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+48h] add ecx,00000004h xor edx,edx cmp eax,00000006h mov [esp+3Ch],ecx mov ebp,ecx mov [esp+14h],edx jc L00065F5F mov dword ptr [esp+18h],00000006h jmp L00065C8D L00065C85: mov edx,[esp+14h] mov eax,[esp+48h] L00065C8D: mov ecx,[esp+50h] test ecx,ecx jbe L00065F5F xor edx,edx mov eax,ecx mov ecx,[esp+20h] mov dx,[ecx] dec eax mov [esp+28h],ebx mov ebx,[esp+1Ch] mov [esp+50h],eax mov eax,[esp+2Ch] add edx,ebx mov ebx,[esp+4Ch] mov [esp+2Ch],edx imul edx,[esp+30h] add ebx,edx add ecx,[esi+00004868h] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+20h],ecx jl L00066001 cmp eax,[esi+00000A34h] jge L00066001 mov eax,[esp+10h] mov edx,[esp+24h] add eax,edx test eax,eax jl L00066001 cmp eax,[esi+00000A34h] jge L00066001 mov eax,[esp+2Ch] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+38h],eax jl L00066001 cmp eax,[esi+00000A34h] jge L00066001 mov edx,[esp+28h] fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00065DF8 push edx push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] mov [esp+14h],edx mov edx,[esp+28h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+20h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00065DF8: mov eax,[esp+50h] test eax,eax jbe L00065F57 dec eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+34h],eax xor eax,eax mov ax,[ecx] mov edx,edi mov edi,[esp+1Ch] mov [esp+28h],edx add eax,edi mov edi,[esp+4Ch] mov [esp+24h],eax imul eax,[esp+30h] add edi,eax add ecx,[esi+00004868h] mov eax,[esp+10h] mov [esp+20h],ecx mov ecx,[esp+34h] add eax,ecx test eax,eax jl L00066001 cmp eax,[esi+00000A34h] jge L00066001 mov ecx,[esp+24h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00065FEA mov ecx,[esi+00000A34h] cmp eax,ecx jge L00065FEA cmp [esp+38h],ecx jge L00065FB2 fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00065F49 push edx push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+28h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi mov [esp+24h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] L00065F49: mov edx,[esp+48h] cmp [esp+18h],edx jbe L00065C85 L00065F57: mov edx,[esp+14h] mov eax,[esp+48h] L00065F5F: cmp edx,eax mov ecx,[esi+000005D4h] jz L00065F86 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L00065F7A inc eax L00065F7A: mov ebp,[esp+44h] neg eax shl eax,02h add [ebp+08h],eax L00065F86: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L00065BC7 pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00065FB2: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+44h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00065FEA: mov eax,[esi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00066016 L00066001: mov edx,[esi+000005D4h] imul edx,[esp+48h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00066016: mov eax,[esp+44h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0006602F: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00066040: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L000664E6 mov esi,[esp+44h] mov ebp,[esi+0000017Ch] mov edi,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+3Ch],edi mov [esp+50h],ebp call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00066095 mov eax,[esp+48h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],ebx mov [esp+1Ch],ecx jmp L000660B6 L00066095: mov ecx,[esi+00004860h] mov eax,[esp+4Ch] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+1Ch],ebx mov ecx,ebx mov [esp+10h],eax mov eax,[esp+48h] L000660B6: xor edx,edx mov dx,[eax] lea ebx,[edx+ecx] mov edx,[esp+4Ch] mov [esp+2Ch],ebx imul ebx,edi add ebx,edx mov edx,[esi+00004868h] xor edi,edi mov di,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+50h] add edi,ecx mov ecx,[esp+4Ch] mov [esp+24h],edi imul edi,[esp+30h] add edi,ecx test eax,eax jbe L000664DD L000660FC: mov eax,[esp+50h] lea eax,[eax+eax+01h] cmp eax,00000006h ja L00066110 mov eax,00000006h jmp L0006611F L00066110: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L00066123 L0006611F: mov [esp+48h],eax L00066123: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00066186 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+18h],eax jz L00066182 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L00066186 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L00066186 L00066182: mov ecx,[esp+18h] L00066186: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+48h] add ecx,00000004h xor edx,edx cmp eax,00000006h mov [esp+3Ch],ecx mov ebp,ecx mov [esp+14h],edx jc L00066490 mov dword ptr [esp+18h],00000006h jmp L000661BE L000661B6: mov edx,[esp+14h] mov eax,[esp+48h] L000661BE: mov ecx,[esp+50h] test ecx,ecx jbe L00066490 xor edx,edx mov eax,ecx mov ecx,[esp+20h] mov dx,[ecx] dec eax mov [esp+28h],ebx mov ebx,[esp+1Ch] mov [esp+50h],eax mov eax,[esp+2Ch] add edx,ebx mov ebx,[esp+4Ch] mov [esp+2Ch],edx imul edx,[esp+30h] add ebx,edx add ecx,[esi+00004868h] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+20h],ecx jl L00066560 cmp eax,[esi+00000A34h] jge L00066560 mov eax,[esp+10h] mov edx,[esp+24h] add eax,edx test eax,eax jl L00066560 cmp eax,[esi+00000A34h] jge L00066560 mov eax,[esp+2Ch] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+38h],eax jl L00066560 cmp eax,[esi+00000A34h] jge L00066560 mov edx,[esp+28h] fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00066329 push edx push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] mov [esp+14h],edx mov edx,[esp+28h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+20h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00066329: mov eax,[esp+50h] test eax,eax jbe L00066488 dec eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+34h],eax xor eax,eax mov ax,[ecx] mov edx,edi mov edi,[esp+1Ch] mov [esp+28h],edx add eax,edi mov edi,[esp+4Ch] mov [esp+24h],eax imul eax,[esp+30h] add edi,eax add ecx,[esi+00004868h] mov eax,[esp+10h] mov [esp+20h],ecx mov ecx,[esp+34h] add eax,ecx test eax,eax jl L00066560 cmp eax,[esi+00000A34h] jge L00066560 mov ecx,[esp+24h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00066528 mov ecx,[esi+00000A34h] cmp eax,ecx jge L00066528 cmp [esp+38h],ecx jge L000664F0 fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006647A push edx push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+28h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi mov [esp+24h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] L0006647A: mov edx,[esp+48h] cmp [esp+18h],edx jbe L000661B6 L00066488: mov edx,[esp+14h] mov eax,[esp+48h] L00066490: cmp edx,eax mov ecx,[esi+000005D4h] jz L000664B7 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L000664AB inc eax L000664AB: mov ebp,[esp+44h] neg eax shl eax,02h add [ebp+08h],eax L000664B7: mov eax,[esp+3Ch] imul ecx,edx mov ebp,[esp+44h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L000660FC L000664DD: push 00000000h push ebp push esi call SUB_L000ABBE0 L000664E6: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000664F0: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+44h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00066528: mov eax,[esi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0006653D: mov eax,[esp+44h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00066560: mov edx,[esi+000005D4h] imul edx,[esp+48h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0006653D Align 16 L00066580: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor edx,edx cmp eax,edx push esi push edi jz L00066A9F mov esi,[esp+44h] cmp dword ptr [esi+00000138h],00000004h mov edi,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+30h],edi mov [esp+44h],ebp jnc L000665CC mov eax,[esp+48h] xor ecx,ecx mov cx,[eax] add eax,00000002h mov [esp+10h],edx mov [esp+1Ch],ecx jmp L000665EF L000665CC: mov ecx,[esi+00004860h] mov eax,[esp+4Ch] sub eax,ecx mov [esp+1Ch],edx cdq idiv [esi+00004858h] mov ecx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+48h] L000665EF: xor edx,edx mov dx,[eax] lea ebx,[edx+ecx] mov edx,[esp+4Ch] mov [esp+2Ch],ebx imul ebx,edi add ebx,edx mov edx,[esi+00004868h] xor edi,edi mov di,[eax+edx] add eax,edx add eax,edx mov [esp+20h],eax mov eax,[esp+50h] add edi,ecx mov ecx,[esp+4Ch] mov [esp+24h],edi imul edi,[esp+30h] add edi,ecx test eax,eax jbe L00066A9F jmp L0006663B L00066637: mov ebp,[esp+44h] L0006663B: mov eax,[esp+50h] lea eax,[eax+eax+01h] cmp eax,00000006h ja L0006664F mov eax,00000006h jmp L0006665E L0006664F: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L00066662 L0006665E: mov [esp+48h],eax L00066662: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[ebp+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+28h],edx lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L000666C5 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+18h],eax jz L000666C1 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+28h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebp+0Ch] jc L000666C5 push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,eax jmp L000666C5 L000666C1: mov ecx,[esp+18h] L000666C5: mov edx,[esp+28h] lea eax,[eax+edx*4] mov [ebp+08h],eax mov eax,[esp+48h] add ecx,00000004h xor edx,edx cmp eax,00000006h mov [esp+3Ch],ecx mov ebp,ecx mov [esp+14h],edx jc L000669CF mov dword ptr [esp+18h],00000006h jmp L000666FD L000666F5: mov edx,[esp+14h] mov eax,[esp+48h] L000666FD: mov ecx,[esp+50h] test ecx,ecx jbe L000669CF xor edx,edx mov eax,ecx mov ecx,[esp+20h] mov dx,[ecx] dec eax mov [esp+28h],ebx mov ebx,[esp+1Ch] mov [esp+50h],eax mov eax,[esp+2Ch] add edx,ebx mov ebx,[esp+4Ch] mov [esp+2Ch],edx imul edx,[esp+30h] add ebx,edx add ecx,[esi+00004868h] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+20h],ecx jl L00066A71 cmp eax,[esi+00000A34h] jge L00066A71 mov eax,[esp+10h] mov edx,[esp+24h] add eax,edx test eax,eax jl L00066A71 cmp eax,[esi+00000A34h] jge L00066A71 mov eax,[esp+2Ch] mov edx,[esp+10h] add eax,edx test eax,eax mov [esp+38h],eax jl L00066A71 cmp eax,[esi+00000A34h] jge L00066A71 mov edx,[esp+28h] fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00066868 push edx push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,00000003h add ecx,eax add edx,eax mov [esp+18h],ecx mov ecx,[esi+000005D4h] mov [esp+14h],edx mov edx,[esp+28h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+20h] shr eax,02h lea ebp,[ebp+eax*4+00h] L00066868: mov eax,[esp+50h] test eax,eax jbe L000669C7 dec eax mov [esp+50h],eax mov eax,[esp+24h] mov [esp+34h],eax xor eax,eax mov ax,[ecx] mov edx,edi mov edi,[esp+1Ch] mov [esp+28h],edx add eax,edi mov edi,[esp+4Ch] mov [esp+24h],eax imul eax,[esp+30h] add edi,eax add ecx,[esi+00004868h] mov eax,[esp+10h] mov [esp+20h],ecx mov ecx,[esp+34h] add eax,ecx test eax,eax jl L00066A71 cmp eax,[esi+00000A34h] jge L00066A71 mov ecx,[esp+24h] mov eax,[esp+10h] add eax,ecx test eax,eax jl L00066A5A mov ecx,[esi+00000A34h] cmp eax,ecx jge L00066A5A cmp [esp+38h],ecx jge L00066A22 fld dword ptr [ebx+04h] fsub dword ptr [edx+04h] fld dword ptr [edi] fsub dword ptr [edx] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [edx+04h] fld dword ptr [ebx] fsub dword ptr [edx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000669B9 push edx push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esp+14h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax mov [esp+14h],edx mov edx,[esi+000005D4h] add ecx,eax mov eax,[esp+28h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi mov [esp+24h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] L000669B9: mov edx,[esp+48h] cmp [esp+18h],edx jbe L000666F5 L000669C7: mov edx,[esp+14h] mov eax,[esp+48h] L000669CF: cmp edx,eax mov ecx,[esi+000005D4h] jz L000669F6 sub eax,edx mov ebp,ecx shr ebp,02h imul eax,ebp shl eax,1 test edx,edx jnz L000669EA inc eax L000669EA: mov ebp,[esp+44h] neg eax shl eax,02h add [ebp+08h],eax L000669F6: mov eax,[esp+3Ch] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+50h] test eax,eax ja L00066637 pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00066A22: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+44h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00066A5A: mov eax,[esi+000005D4h] imul eax,[esp+48h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00066A86 L00066A71: mov edx,[esi+000005D4h] imul edx,[esp+48h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00066A86: mov eax,[esp+44h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00066A9F: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00066AB0: mov ecx,[esp+10h] sub esp,00000030h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L00066F63 mov esi,[esp+44h] mov ecx,[esi+0000017Ch] mov ebp,[esi+000005D0h] mov [esp+44h],ecx cmp dword ptr [esi+00000138h],00000004h mov [esp+2Ch],ebp jnc L00066B00 mov edi,[esp+48h] mov ecx,[esp+4Ch] xor edx,edx mov dx,[edi] add edi,00000002h mov [esp+14h],eax mov [esp+1Ch],edx jmp L00066B25 L00066B00: mov ecx,[esp+4Ch] mov edx,[esi+00004860h] mov [esp+1Ch],eax mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+48h] mov edx,[esp+1Ch] mov [esp+14h],eax L00066B25: xor eax,eax mov ax,[edi] lea ebx,[eax+edx] mov eax,[esi+00004868h] mov [esp+30h],ebx imul ebx,ebp lea ebp,[eax+edi] xor edi,edi mov di,[ebp+00h] add ebp,eax mov eax,[esp+50h] add ebx,ecx add edx,edi mov edi,edx imul edi,[esp+2Ch] add edi,ecx test eax,eax mov [esp+28h],edx jbe L00066F63 L00066B62: mov ecx,[esp+50h] lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L00066B76 mov eax,00000006h jmp L00066B85 L00066B76: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L00066B89 L00066B85: mov [esp+48h],eax L00066B89: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov edx,[esp+44h] mov eax,[edx+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],edx lea edx,[edx+ecx*4] mov [esp+24h],ecx mov ecx,[esp+44h] cmp edx,[ecx+0Ch] jc L00066C0E push ecx call [ecx+10h] mov ecx,[esp+44h] mov eax,[ecx+08h] mov edx,[ecx+18h] mov ecx,[ecx+1Ch] cmp [edx+74h],ecx mov [esp+18h],eax jz L00066C0E mov eax,[esp+44h] mov [edx+74h],ecx mov ecx,[eax+1Ch] push ecx push eax call [eax+20h] mov edx,[esp+44h] mov eax,[edx+08h] mov edx,[esp+24h] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edx*4] mov edx,[esp+44h] cmp ecx,[edx+0Ch] jc L00066C0E mov eax,edx push eax call [eax+10h] mov eax,[esp+44h] mov eax,[eax+08h] mov [esp+18h],eax L00066C0E: mov edx,[esp+24h] mov ecx,[esp+48h] lea eax,[eax+edx*4] mov edx,[esp+44h] mov [edx+08h],eax mov eax,[esp+18h] add eax,00000004h cmp ecx,00000006h mov [esp+3Ch],eax mov [esp+24h],eax mov dword ptr [esp+10h],00000000h jc L00066ED9 mov dword ptr [esp+18h],00000006h jmp L00066C4E L00066C4A: mov ecx,[esp+48h] L00066C4E: mov eax,[esp+50h] test eax,eax jbe L00066ED9 mov edx,[esp+1Ch] xor ecx,ecx mov cx,[ebp+00h] mov [esp+20h],ebx mov ebx,[esp+4Ch] dec eax mov [esp+50h],eax mov eax,[esp+30h] add edx,ecx mov ecx,edx imul ecx,[esp+2Ch] add ebx,ecx add ebp,[esi+00004868h] mov ecx,[esp+14h] add eax,ecx test eax,eax mov [esp+30h],edx jl L00066F35 cmp eax,[esi+00000A34h] jge L00066F35 mov eax,[esp+28h] mov ecx,[esp+14h] add eax,ecx test eax,eax jl L00066F35 mov ecx,[esi+00000A34h] cmp eax,ecx jge L00066F35 mov eax,[esp+14h] add edx,eax test edx,edx mov [esp+38h],edx jl L00066F35 cmp edx,ecx jge L00066F35 mov ecx,[esp+20h] mov edx,[esp+24h] push ecx push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h lea eax,[ecx+eax*4] push edi push eax push esi mov [esp+40h],eax call SUB_L00040370 mov edx,[esp+10h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax add ecx,eax mov eax,[esp+34h] mov [esp+10h],edx mov edx,[esi+000005D4h] mov [esp+18h],ecx mov ecx,[esp+20h] shr edx,02h lea eax,[eax+edx*4] push ecx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+24h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+24h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+30h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov eax,[esp+50h] test eax,eax jbe L00066ED5 mov ecx,[esp+28h] dec eax mov [esp+50h],eax xor eax,eax mov ax,[ebp+00h] add ebp,[esi+00004868h] mov edx,edi mov edi,[esp+1Ch] mov [esp+34h],ebp mov ebp,[esp+14h] add ecx,ebp add eax,edi mov edi,eax imul edi,[esp+2Ch] nop add edi,[esp+4Ch] test ecx,ecx mov [esp+20h],edx mov [esp+28h],eax jl L00066F35 mov ebp,[esi+00000A34h] cmp ecx,ebp jge L00066F35 mov ecx,[esp+14h] add eax,ecx test eax,eax jl L00066F35 cmp eax,ebp jge L00066F35 cmp [esp+38h],ebp jge L00066F35 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+10h] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] mov [esp+10h],ecx mov ecx,[esp+20h] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+24h],edx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+18h] shr edx,02h lea eax,[ebp+edx*4+00h] mov ebp,[esp+34h] mov [esp+24h],eax cmp ecx,[esp+48h] jbe L00066C4A L00066ED5: mov ecx,[esp+48h] L00066ED9: mov edx,[esp+10h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00066F08 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+10h] shl ecx,1 test edx,edx jnz L00066EFC inc ecx L00066EFC: mov edx,[esp+44h] neg ecx shl ecx,02h add [edx+08h],ecx L00066F08: imul eax,[esp+10h] mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L00066B62 pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00066F35: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[esp+44h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00066F63: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00066F70: mov eax,[esp+10h] sub esp,00000030h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L000673F9 mov esi,[esp+44h] mov eax,[esi+0000017Ch] mov ebp,[esi+000005D0h] push 00000001h push eax push esi mov [esp+38h],ebp mov [esp+50h],eax call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00066FC9 mov edi,[esp+48h] mov ecx,[esp+4Ch] xor eax,eax mov ax,[edi] add edi,00000002h mov [esp+14h],ebx mov [esp+1Ch],eax jmp L00066FEC L00066FC9: mov ecx,[esp+4Ch] mov edx,[esi+00004860h] mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+48h] mov [esp+1Ch],ebx mov [esp+14h],eax mov eax,ebx L00066FEC: xor edx,edx mov dx,[edi] lea ebx,[edx+eax] mov edx,[esi+00004868h] mov [esp+30h],ebx imul ebx,ebp lea ebp,[edx+edi] xor edi,edi mov di,[ebp+00h] add ebx,ecx add ebp,edx add edi,eax mov eax,[esp+50h] mov [esp+28h],edi imul edi,[esp+2Ch] add edi,ecx test eax,eax jbe L000673EC L00067027: lea eax,[eax+eax+01h] cmp eax,00000006h ja L00067037 mov eax,00000006h jmp L00067046 L00067037: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L0006704A L00067046: mov [esp+48h],eax L0006704A: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov eax,[esp+44h] mov eax,[eax+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],edx lea edx,[edx+ecx*4] mov [esp+24h],ecx mov ecx,[esp+44h] cmp edx,[ecx+0Ch] jc L000670CF push ecx call [ecx+10h] mov ecx,[esp+44h] mov eax,[ecx+08h] mov edx,[ecx+18h] mov ecx,[ecx+1Ch] cmp [edx+74h],ecx mov [esp+18h],eax jz L000670CF mov eax,[esp+44h] mov [edx+74h],ecx mov ecx,[eax+1Ch] push ecx push eax call [eax+20h] mov edx,[esp+44h] mov eax,[edx+08h] mov edx,[esp+24h] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edx*4] mov edx,[esp+44h] cmp ecx,[edx+0Ch] jc L000670CF mov eax,edx push eax call [eax+10h] mov eax,[esp+44h] mov eax,[eax+08h] mov [esp+18h],eax L000670CF: mov edx,[esp+24h] mov ecx,[esp+48h] lea eax,[eax+edx*4] mov edx,[esp+44h] mov [edx+08h],eax mov eax,[esp+18h] add eax,00000004h cmp ecx,00000006h mov [esp+3Ch],eax mov [esp+24h],eax mov dword ptr [esp+10h],00000000h jc L0006739A mov dword ptr [esp+18h],00000006h jmp L0006710F L0006710B: mov ecx,[esp+48h] L0006710F: mov eax,[esp+50h] test eax,eax jbe L0006739A mov edx,[esp+1Ch] xor ecx,ecx mov cx,[ebp+00h] mov [esp+20h],ebx mov ebx,[esp+4Ch] dec eax mov [esp+50h],eax mov eax,[esp+30h] add ecx,edx mov edx,ecx imul edx,[esp+2Ch] add ebx,edx add ebp,[esi+00004868h] mov edx,[esp+14h] add eax,edx test eax,eax mov [esp+30h],ecx jl L00067403 cmp eax,[esi+00000A34h] jge L00067403 mov eax,[esp+28h] mov edx,[esp+14h] add eax,edx test eax,eax jl L00067403 mov edx,[esi+00000A34h] cmp eax,edx jge L00067403 mov eax,[esp+14h] add ecx,eax test ecx,ecx mov [esp+38h],ecx jl L00067403 cmp ecx,edx jge L00067403 mov ecx,[esp+20h] mov edx,[esp+24h] push ecx push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h lea eax,[ecx+eax*4] push edi push eax push esi mov [esp+40h],eax call SUB_L00040370 mov edx,[esp+10h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax add ecx,eax mov eax,[esp+34h] mov [esp+10h],edx mov edx,[esi+000005D4h] mov [esp+18h],ecx mov ecx,[esp+20h] shr edx,02h lea eax,[eax+edx*4] push ecx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+24h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+24h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+30h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov eax,[esp+50h] test eax,eax jbe L00067396 mov ecx,[esp+28h] dec eax mov [esp+50h],eax xor eax,eax mov ax,[ebp+00h] add ebp,[esi+00004868h] mov edx,edi mov edi,[esp+1Ch] mov [esp+34h],ebp mov ebp,[esp+14h] add ecx,ebp add eax,edi mov edi,eax imul edi,[esp+2Ch] nop add edi,[esp+4Ch] test ecx,ecx mov [esp+20h],edx mov [esp+28h],eax jl L00067403 mov ebp,[esi+00000A34h] cmp ecx,ebp jge L00067403 mov ecx,[esp+14h] add eax,ecx test eax,eax jl L00067403 cmp eax,ebp jge L00067403 cmp [esp+38h],ebp jge L00067403 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+10h] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] mov [esp+10h],ecx mov ecx,[esp+20h] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+24h],edx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+18h] shr edx,02h lea eax,[ebp+edx*4+00h] mov ebp,[esp+34h] mov [esp+24h],eax cmp ecx,[esp+48h] jbe L0006710B L00067396: mov ecx,[esp+48h] L0006739A: mov edx,[esp+10h] cmp edx,ecx mov eax,[esi+000005D4h] jz L000673C9 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+10h] shl ecx,1 test edx,edx jnz L000673BD inc ecx L000673BD: mov edx,[esp+44h] neg ecx shl ecx,02h add [edx+08h],ecx L000673C9: imul eax,[esp+10h] mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L00067027 L000673EC: mov edx,[esp+44h] push 00000000h push edx push esi call SUB_L000ABBE0 L000673F9: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00067403: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[esp+44h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00067440: mov ecx,[esp+10h] sub esp,00000030h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L000678F3 mov esi,[esp+44h] mov ecx,[esi+00000148h] mov ebp,[esi+000005D0h] mov [esp+44h],ecx cmp dword ptr [esi+00000138h],00000004h mov [esp+2Ch],ebp jnc L00067490 mov edi,[esp+48h] mov ecx,[esp+4Ch] xor edx,edx mov dx,[edi] add edi,00000002h mov [esp+14h],eax mov [esp+1Ch],edx jmp L000674B5 L00067490: mov ecx,[esp+4Ch] mov edx,[esi+00004860h] mov [esp+1Ch],eax mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+48h] mov edx,[esp+1Ch] mov [esp+14h],eax L000674B5: xor eax,eax mov ax,[edi] lea ebx,[eax+edx] mov eax,[esi+00004868h] mov [esp+30h],ebx imul ebx,ebp lea ebp,[eax+edi] xor edi,edi mov di,[ebp+00h] add ebp,eax mov eax,[esp+50h] add ebx,ecx add edx,edi mov edi,edx imul edi,[esp+2Ch] add edi,ecx test eax,eax mov [esp+28h],edx jbe L000678F3 L000674F2: mov ecx,[esp+50h] lea eax,[ecx+ecx+01h] cmp eax,00000006h ja L00067506 mov eax,00000006h jmp L00067515 L00067506: cmp eax,00000666h mov dword ptr [esp+48h],00000666h ja L00067519 L00067515: mov [esp+48h],eax L00067519: mov ecx,[esi+000005D4h] imul ecx,[esp+48h] mov edx,[esp+44h] mov eax,[edx+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],edx lea edx,[edx+ecx*4] mov [esp+24h],ecx mov ecx,[esp+44h] cmp edx,[ecx+0Ch] jc L0006759E push ecx call [ecx+10h] mov ecx,[esp+44h] mov eax,[ecx+08h] mov edx,[ecx+18h] mov ecx,[ecx+1Ch] cmp [edx+74h],ecx mov [esp+18h],eax jz L0006759E mov eax,[esp+44h] mov [edx+74h],ecx mov ecx,[eax+1Ch] push ecx push eax call [eax+20h] mov edx,[esp+44h] mov eax,[edx+08h] mov edx,[esp+24h] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edx*4] mov edx,[esp+44h] cmp ecx,[edx+0Ch] jc L0006759E mov eax,edx push eax call [eax+10h] mov eax,[esp+44h] mov eax,[eax+08h] mov [esp+18h],eax L0006759E: mov edx,[esp+24h] mov ecx,[esp+48h] lea eax,[eax+edx*4] mov edx,[esp+44h] mov [edx+08h],eax mov eax,[esp+18h] add eax,00000004h cmp ecx,00000006h mov [esp+3Ch],eax mov [esp+24h],eax mov dword ptr [esp+10h],00000000h jc L00067869 mov dword ptr [esp+18h],00000006h jmp L000675DE L000675DA: mov ecx,[esp+48h] L000675DE: mov eax,[esp+50h] test eax,eax jbe L00067869 mov edx,[esp+1Ch] xor ecx,ecx mov cx,[ebp+00h] mov [esp+20h],ebx mov ebx,[esp+4Ch] dec eax mov [esp+50h],eax mov eax,[esp+30h] add edx,ecx mov ecx,edx imul ecx,[esp+2Ch] add ebx,ecx add ebp,[esi+00004868h] mov ecx,[esp+14h] add eax,ecx test eax,eax mov [esp+30h],edx jl L000678C5 cmp eax,[esi+00000A34h] jge L000678C5 mov eax,[esp+28h] mov ecx,[esp+14h] add eax,ecx test eax,eax jl L000678C5 mov ecx,[esi+00000A34h] cmp eax,ecx jge L000678C5 mov eax,[esp+14h] add edx,eax test edx,edx mov [esp+38h],edx jl L000678C5 cmp edx,ecx jge L000678C5 mov ecx,[esp+20h] mov edx,[esp+24h] push ecx push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h lea eax,[ecx+eax*4] push edi push eax push esi mov [esp+40h],eax call SUB_L00040370 mov edx,[esp+10h] mov ecx,[esp+18h] mov eax,00000003h add edx,eax add ecx,eax mov eax,[esp+34h] mov [esp+10h],edx mov edx,[esi+000005D4h] mov [esp+18h],ecx mov ecx,[esp+20h] shr edx,02h lea eax,[eax+edx*4] push ecx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+24h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+24h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push esi mov [esp+30h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+30h],eax call SUB_L00040370 mov eax,[esp+50h] test eax,eax jbe L00067865 mov ecx,[esp+28h] dec eax mov [esp+50h],eax xor eax,eax mov ax,[ebp+00h] add ebp,[esi+00004868h] mov edx,edi mov edi,[esp+1Ch] mov [esp+34h],ebp mov ebp,[esp+14h] add ecx,ebp add eax,edi mov edi,eax imul edi,[esp+2Ch] nop add edi,[esp+4Ch] test ecx,ecx mov [esp+20h],edx mov [esp+28h],eax jl L000678C5 mov ebp,[esi+00000A34h] cmp ecx,ebp jge L000678C5 mov ecx,[esp+14h] add eax,ecx test eax,eax jl L000678C5 cmp eax,ebp jge L000678C5 cmp [esp+38h],ebp jge L000678C5 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esp+10h] mov edx,[esp+18h] mov eax,00000003h add ecx,eax add edx,eax mov eax,[esi+000005D4h] mov [esp+10h],ecx mov ecx,[esp+20h] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi mov [esp+24h],edx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ecx,[esp+18h] shr edx,02h lea eax,[ebp+edx*4+00h] mov ebp,[esp+34h] mov [esp+24h],eax cmp ecx,[esp+48h] jbe L000675DA L00067865: mov ecx,[esp+48h] L00067869: mov edx,[esp+10h] cmp edx,ecx mov eax,[esi+000005D4h] jz L00067898 sub ecx,edx mov edx,eax shr edx,02h imul ecx,edx mov edx,[esp+10h] shl ecx,1 test edx,edx jnz L0006788C inc ecx L0006788C: mov edx,[esp+44h] neg ecx shl ecx,02h add [edx+08h],ecx L00067898: imul eax,[esp+10h] mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L000674F2 pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000678C5: mov edx,[esi+000005D4h] imul edx,[esp+48h] mov eax,[esp+44h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000678F3: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00067900: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006803B mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+34h],ebx mov dword ptr [esp+38h],00000001h mov [esp+10h],eax mov [esp+18h],edi jnc L00067958 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+1Ch],eax mov [esp+28h],ecx jmp L0006797B L00067958: mov ecx,[esi+00004860h] mov [esp+28h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+28h] mov [esp+1Ch],eax L0006797B: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+30h],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+2Ch],edx imul edx,[esp+34h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L00067DF4 L000679C7: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L000679E1 mov [esp+50h],eax L000679E1: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00067A44 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00067A40 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00067A44 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00067A44 L00067A40: mov ecx,[esp+14h] L00067A44: mov edx,[esp+24h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+14h],00000000h jc L00067D94 mov dword ptr [esp+24h],00000003h L00067A74: mov ecx,[esp+58h] test ecx,ecx jbe L00067D94 mov eax,[esp+38h] dec ecx test eax,eax mov [esp+58h],ecx jz L00067ACC mov eax,[esp+28h] mov ecx,[esp+30h] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+38h],00000000h add eax,edx mov [esp+30h],eax imul eax,[esp+34h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+2Ch] jmp L00067B09 L00067ACC: mov ecx,[esp+2Ch] mov eax,[esp+28h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+38h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+34h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+2Ch],eax add ebp,ecx L00067B09: mov edx,[esp+1Ch] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L00068045 mov edx,[esi+00000A34h] cmp ecx,edx jge L00068045 mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0006800D cmp eax,edx jge L0006800D mov eax,[esp+30h] add eax,ecx test eax,eax jl L00068045 cmp eax,edx jge L00068045 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00067C31 mov edx,[esp+14h] mov ecx,[esp+24h] push ebx push ebx inc edx push edi inc ecx push esi mov [esp+24h],edx mov [esp+34h],ecx mov [esp+20h],ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L00067D8A L00067C31: mov eax,[esp+10h] test eax,eax jz L00067D7E mov edx,[esp+14h] mov ecx,00000002h add edx,ecx push eax mov [esp+18h],edx mov edx,[esp+28h] push ebx push edi add edx,ecx push esi mov [esp+34h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L00067D7E: mov eax,[esp+50h] mov dword ptr [esp+10h],00000000h L00067D8A: cmp [esp+24h],eax jbe L00067A74 L00067D94: mov edx,[esp+14h] cmp edx,eax mov ecx,[esi+000005D4h] jz L00067DC4 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00067DB3 inc eax L00067DB3: mov edx,[esp+18h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L00067DC4: imul ecx,[esp+14h] mov eax,[esp+44h] mov edi,[esp+18h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L000679C7 mov eax,[esp+20h] mov edx,[esp+4Ch] L00067DF4: mov ecx,[esp+3Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L00068031 cmp ecx,[esi+00000A34h] jge L00068031 mov ecx,[esp+2Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L00068031 cmp ecx,[esi+00000A34h] jge L00068031 mov ecx,[esp+30h] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L00068031 cmp ecx,[esi+00000A34h] jge L00068031 fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006803B mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L00067EC8 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00067EC4 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00067EC4 push edi call [edi+10h] mov eax,[edi+08h] L00067EC4: mov edx,[esp+4Ch] L00067EC8: lea ecx,[eax+ebx*4] mov [edi+08h],ecx lea edi,[eax+04h] mov eax,[esp+10h] push eax push edx push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebp,[esp+10h] mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[edi+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [edi-04h],ecx pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006800D: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L00068031: mov dword ptr [esi+000005B0h],00000001h L0006803B: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00068045: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00068080: mov eax,[esp+10h] sub esp,00000038h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L000687E7 mov esi,[esp+4Ch] mov edi,[esi+0000017Ch] mov ebp,[esi+000005D0h] push 00000001h push edi push esi mov [esp+40h],ebp mov dword ptr [esp+44h],00000001h mov [esp+58h],ebx mov [esp+24h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L000680E5 mov ebx,[esp+50h] xor ecx,ecx mov cx,[ebx] add ebx,00000002h mov dword ptr [esp+1Ch],00000000h mov [esp+28h],ecx jmp L00068108 L000680E5: mov ecx,[esi+00004860h] mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+28h],ebx mov ebx,[esp+50h] mov ecx,[esp+28h] mov [esp+1Ch],eax L00068108: mov edx,[esi+00004868h] xor eax,eax mov ax,[ebx] add eax,ecx mov [esp+30h],eax imul eax,ebp add eax,[esp+54h] lea ebp,[edx+ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,edx mov edx,[esp+58h] mov [esp+20h],eax add ecx,ebx mov ebx,[esp+54h] mov [esp+2Ch],ecx imul ecx,[esp+34h] add ecx,ebx test edx,edx mov ebx,[esp+58h] mov [esp+10h],ecx jbe L00068581 L00068154: mov ecx,[esp+58h] lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006816E mov [esp+50h],eax L0006816E: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000681D1 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L000681CD mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000681D1 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L000681D1 L000681CD: mov ecx,[esp+14h] L000681D1: mov edx,[esp+24h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+14h],00000000h jc L00068521 mov dword ptr [esp+24h],00000003h L00068201: mov ecx,[esp+58h] test ecx,ecx jbe L00068521 mov eax,[esp+38h] dec ecx test eax,eax mov [esp+58h],ecx jz L00068259 mov eax,[esp+28h] mov ecx,[esp+30h] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+38h],00000000h add eax,edx mov [esp+30h],eax imul eax,[esp+34h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+2Ch] jmp L00068296 L00068259: mov ecx,[esp+2Ch] mov eax,[esp+28h] mov ebx,[esp+10h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+38h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+34h] add ecx,edx mov [esp+10h],ecx mov ecx,[esi+00004868h] mov [esp+2Ch],eax add ebp,ecx L00068296: mov edx,[esp+1Ch] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L000687F1 mov edx,[esi+00000A34h] cmp ecx,edx jge L000687F1 mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L000687B9 cmp eax,edx jge L000687B9 mov eax,[esp+30h] add eax,ecx test eax,eax jl L000687F1 cmp eax,edx jge L000687F1 mov ecx,[esp+20h] mov eax,[esp+10h] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000683BE mov edx,[esp+14h] mov ecx,[esp+24h] push ebx push ebx inc edx push edi inc ecx push esi mov [esp+24h],edx mov [esp+34h],ecx mov [esp+5Ch],ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L00068517 L000683BE: mov eax,[esp+4Ch] test eax,eax jz L0006850B mov edx,[esp+14h] mov ecx,00000002h add edx,ecx push eax mov [esp+18h],edx mov edx,[esp+28h] push ebx push edi add edx,ecx push esi mov [esp+34h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+4Ch] push eax push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+4Ch] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+4Ch],eax fild dword ptr [esp+4Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+4Ch],eax fild dword ptr [esp+4Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006850B: mov eax,[esp+50h] mov dword ptr [esp+4Ch],00000000h L00068517: cmp [esp+24h],eax jbe L00068201 L00068521: mov edx,[esp+14h] cmp edx,eax mov ecx,[esi+000005D4h] jz L00068551 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00068540 inc eax L00068540: mov edx,[esp+18h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L00068551: imul ecx,[esp+14h] mov eax,[esp+44h] mov edi,[esp+18h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L00068154 mov eax,[esp+20h] mov ecx,[esp+10h] L00068581: mov edx,[esp+3Ch] mov ebp,[esp+1Ch] add edx,ebp test edx,edx jl L000687DD cmp edx,[esi+00000A34h] jge L000687DD mov edx,[esp+2Ch] mov ebp,[esp+1Ch] add edx,ebp test edx,edx jl L000687DD cmp edx,[esi+00000A34h] jge L000687DD mov edx,[esp+30h] mov ebp,[esp+1Ch] add edx,ebp test edx,edx jl L000687DD cmp edx,[esi+00000A34h] jge L000687DD fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000687A6 mov ebp,[esi+000005D4h] mov eax,[edi+08h] shl ebp,02h shr ebp,02h inc ebp mov ebx,eax lea edx,[ebx+ebp*4] cmp edx,[edi+0Ch] jc L0006865B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov ebx,eax jz L00068657 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] mov ebx,eax lea ecx,[ebx+ebp*4] cmp ecx,edx jc L00068657 push edi call [edi+10h] mov eax,[edi+08h] mov ebx,eax L00068657: mov ecx,[esp+10h] L0006865B: lea edx,[eax+ebp*4] mov eax,[esp+4Ch] push eax push ecx add ebx,00000004h push ebx push esi mov [edi+08h],edx call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+10h] push edx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebx+ecx*4] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push edx push eax fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push edx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [ebx-04h],ecx L000687A6: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L000687B9: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L000687DD: mov dword ptr [esi+000005B0h],00000001h L000687E7: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L000687F1: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00068830: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L00068F6B mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+34h],ebx mov dword ptr [esp+38h],00000001h mov [esp+10h],eax mov [esp+18h],edi jnc L00068888 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+1Ch],eax mov [esp+28h],ecx jmp L000688AB L00068888: mov ecx,[esi+00004860h] mov [esp+28h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+28h] mov [esp+1Ch],eax L000688AB: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+30h],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+2Ch],edx imul edx,[esp+34h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L00068D24 L000688F7: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L00068911 mov [esp+50h],eax L00068911: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00068974 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00068970 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00068974 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00068974 L00068970: mov ecx,[esp+14h] L00068974: mov edx,[esp+24h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+14h],00000000h jc L00068CC4 mov dword ptr [esp+24h],00000003h L000689A4: mov ecx,[esp+58h] test ecx,ecx jbe L00068CC4 mov eax,[esp+38h] dec ecx test eax,eax mov [esp+58h],ecx jz L000689FC mov eax,[esp+28h] mov ecx,[esp+30h] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+38h],00000000h add eax,edx mov [esp+30h],eax imul eax,[esp+34h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+2Ch] jmp L00068A39 L000689FC: mov ecx,[esp+2Ch] mov eax,[esp+28h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+38h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+34h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+2Ch],eax add ebp,ecx L00068A39: mov edx,[esp+1Ch] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L00068F75 mov edx,[esi+00000A34h] cmp ecx,edx jge L00068F75 mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L00068F3D cmp eax,edx jge L00068F3D mov eax,[esp+30h] add eax,ecx test eax,eax jl L00068F75 cmp eax,edx jge L00068F75 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00068B61 mov edx,[esp+14h] mov ecx,[esp+24h] push ebx push ebx inc edx push edi inc ecx push esi mov [esp+24h],edx mov [esp+34h],ecx mov [esp+20h],ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L00068CBA L00068B61: mov eax,[esp+10h] test eax,eax jz L00068CAE mov edx,[esp+14h] mov ecx,00000002h add edx,ecx push eax mov [esp+18h],edx mov edx,[esp+28h] push ebx push edi add edx,ecx push esi mov [esp+34h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L00068CAE: mov eax,[esp+50h] mov dword ptr [esp+10h],00000000h L00068CBA: cmp [esp+24h],eax jbe L000689A4 L00068CC4: mov edx,[esp+14h] cmp edx,eax mov ecx,[esi+000005D4h] jz L00068CF4 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00068CE3 inc eax L00068CE3: mov edx,[esp+18h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L00068CF4: imul ecx,[esp+14h] mov eax,[esp+44h] mov edi,[esp+18h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L000688F7 mov eax,[esp+20h] mov edx,[esp+4Ch] L00068D24: mov ecx,[esp+3Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L00068F61 cmp ecx,[esi+00000A34h] jge L00068F61 mov ecx,[esp+2Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L00068F61 cmp ecx,[esi+00000A34h] jge L00068F61 mov ecx,[esp+30h] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L00068F61 cmp ecx,[esi+00000A34h] jge L00068F61 fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00068F6B mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L00068DF8 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00068DF4 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00068DF4 push edi call [edi+10h] mov eax,[edi+08h] L00068DF4: mov edx,[esp+4Ch] L00068DF8: lea ecx,[eax+ebx*4] mov [edi+08h],ecx lea edi,[eax+04h] mov eax,[esp+10h] push eax push edx push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebp,[esp+10h] mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[edi+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [edi-04h],ecx pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00068F3D: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L00068F61: mov dword ptr [esi+000005B0h],00000001h L00068F6B: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00068F75: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00068FB0: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L000696EB mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+34h],ebx mov dword ptr [esp+38h],00000001h mov [esp+10h],eax mov [esp+18h],edi jnc L00069008 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+1Ch],eax mov [esp+28h],ecx jmp L0006902B L00069008: mov ecx,[esi+00004860h] mov [esp+28h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+28h] mov [esp+1Ch],eax L0006902B: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+30h],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+2Ch],edx imul edx,[esp+34h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L000694A4 L00069077: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L00069091 mov [esp+50h],eax L00069091: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000690F4 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L000690F0 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000690F4 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L000690F4 L000690F0: mov ecx,[esp+14h] L000690F4: mov edx,[esp+24h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+14h],00000000h jc L00069444 mov dword ptr [esp+24h],00000003h L00069124: mov ecx,[esp+58h] test ecx,ecx jbe L00069444 mov eax,[esp+38h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006917C mov eax,[esp+28h] mov ecx,[esp+30h] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+38h],00000000h add eax,edx mov [esp+30h],eax imul eax,[esp+34h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+2Ch] jmp L000691B9 L0006917C: mov ecx,[esp+2Ch] mov eax,[esp+28h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+38h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+34h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+2Ch],eax add ebp,ecx L000691B9: mov edx,[esp+1Ch] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L000696F5 mov edx,[esi+00000A34h] cmp ecx,edx jge L000696F5 mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L000696BD cmp eax,edx jge L000696BD mov eax,[esp+30h] add eax,ecx test eax,eax jl L000696F5 cmp eax,edx jge L000696F5 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000692E1 mov edx,[esp+14h] mov ecx,[esp+24h] push ebx push ebx inc edx push edi inc ecx push esi mov [esp+24h],edx mov [esp+34h],ecx mov [esp+20h],ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006943A L000692E1: mov eax,[esp+10h] test eax,eax jz L0006942E mov edx,[esp+14h] mov ecx,00000002h add edx,ecx push eax mov [esp+18h],edx mov edx,[esp+28h] push ebx push edi add edx,ecx push esi mov [esp+34h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006942E: mov eax,[esp+50h] mov dword ptr [esp+10h],00000000h L0006943A: cmp [esp+24h],eax jbe L00069124 L00069444: mov edx,[esp+14h] cmp edx,eax mov ecx,[esi+000005D4h] jz L00069474 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00069463 inc eax L00069463: mov edx,[esp+18h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L00069474: imul ecx,[esp+14h] mov eax,[esp+44h] mov edi,[esp+18h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L00069077 mov eax,[esp+20h] mov edx,[esp+4Ch] L000694A4: mov ecx,[esp+3Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L000696E1 cmp ecx,[esi+00000A34h] jge L000696E1 mov ecx,[esp+2Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L000696E1 cmp ecx,[esi+00000A34h] jge L000696E1 mov ecx,[esp+30h] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L000696E1 cmp ecx,[esi+00000A34h] jge L000696E1 fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000696EB mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L00069578 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00069574 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00069574 push edi call [edi+10h] mov eax,[edi+08h] L00069574: mov edx,[esp+4Ch] L00069578: lea ecx,[eax+ebx*4] mov [edi+08h],ecx lea edi,[eax+04h] mov eax,[esp+10h] push eax push edx push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebp,[esp+10h] mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[edi+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [edi-04h],ecx pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L000696BD: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L000696E1: mov dword ptr [esi+000005B0h],00000001h L000696EB: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L000696F5: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00069730: mov eax,[esp+10h] sub esp,00000038h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L00069E97 mov esi,[esp+4Ch] mov edi,[esi+0000017Ch] mov ebp,[esi+000005D0h] push 00000001h push edi push esi mov [esp+40h],ebp mov dword ptr [esp+44h],00000001h mov [esp+58h],ebx mov [esp+24h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00069795 mov ebx,[esp+50h] xor ecx,ecx mov cx,[ebx] add ebx,00000002h mov dword ptr [esp+1Ch],00000000h mov [esp+28h],ecx jmp L000697B8 L00069795: mov ecx,[esi+00004860h] mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+28h],ebx mov ebx,[esp+50h] mov ecx,[esp+28h] mov [esp+1Ch],eax L000697B8: mov edx,[esi+00004868h] xor eax,eax mov ax,[ebx] add eax,ecx mov [esp+30h],eax imul eax,ebp add eax,[esp+54h] lea ebp,[edx+ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,edx mov edx,[esp+58h] mov [esp+20h],eax add ecx,ebx mov ebx,[esp+54h] mov [esp+2Ch],ecx imul ecx,[esp+34h] add ecx,ebx test edx,edx mov ebx,[esp+58h] mov [esp+10h],ecx jbe L00069C31 L00069804: mov ecx,[esp+58h] lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006981E mov [esp+50h],eax L0006981E: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00069881 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L0006987D mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00069881 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00069881 L0006987D: mov ecx,[esp+14h] L00069881: mov edx,[esp+24h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+14h],00000000h jc L00069BD1 mov dword ptr [esp+24h],00000003h L000698B1: mov ecx,[esp+58h] test ecx,ecx jbe L00069BD1 mov eax,[esp+38h] dec ecx test eax,eax mov [esp+58h],ecx jz L00069909 mov eax,[esp+28h] mov ecx,[esp+30h] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+38h],00000000h add eax,edx mov [esp+30h],eax imul eax,[esp+34h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+2Ch] jmp L00069946 L00069909: mov ecx,[esp+2Ch] mov eax,[esp+28h] mov ebx,[esp+10h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+38h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+34h] add ecx,edx mov [esp+10h],ecx mov ecx,[esi+00004868h] mov [esp+2Ch],eax add ebp,ecx L00069946: mov edx,[esp+1Ch] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L00069EA1 mov edx,[esi+00000A34h] cmp ecx,edx jge L00069EA1 mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L00069E69 cmp eax,edx jge L00069E69 mov eax,[esp+30h] add eax,ecx test eax,eax jl L00069EA1 cmp eax,edx jge L00069EA1 mov ecx,[esp+20h] mov eax,[esp+10h] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00069A6E mov edx,[esp+14h] mov ecx,[esp+24h] push ebx push ebx inc edx push edi inc ecx push esi mov [esp+24h],edx mov [esp+34h],ecx mov [esp+5Ch],ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L00069BC7 L00069A6E: mov eax,[esp+4Ch] test eax,eax jz L00069BBB mov edx,[esp+14h] mov ecx,00000002h add edx,ecx push eax mov [esp+18h],edx mov edx,[esp+28h] push ebx push edi add edx,ecx push esi mov [esp+34h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+4Ch] push eax push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+4Ch] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+4Ch],eax fild dword ptr [esp+4Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+4Ch],eax fild dword ptr [esp+4Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L00069BBB: mov eax,[esp+50h] mov dword ptr [esp+4Ch],00000000h L00069BC7: cmp [esp+24h],eax jbe L000698B1 L00069BD1: mov edx,[esp+14h] cmp edx,eax mov ecx,[esi+000005D4h] jz L00069C01 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00069BF0 inc eax L00069BF0: mov edx,[esp+18h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L00069C01: imul ecx,[esp+14h] mov eax,[esp+44h] mov edi,[esp+18h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L00069804 mov eax,[esp+20h] mov ecx,[esp+10h] L00069C31: mov edx,[esp+3Ch] mov ebp,[esp+1Ch] add edx,ebp test edx,edx jl L00069E8D cmp edx,[esi+00000A34h] jge L00069E8D mov edx,[esp+2Ch] mov ebp,[esp+1Ch] add edx,ebp test edx,edx jl L00069E8D cmp edx,[esi+00000A34h] jge L00069E8D mov edx,[esp+30h] mov ebp,[esp+1Ch] add edx,ebp test edx,edx jl L00069E8D cmp edx,[esi+00000A34h] jge L00069E8D fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00069E56 mov ebp,[esi+000005D4h] mov eax,[edi+08h] shl ebp,02h shr ebp,02h inc ebp mov ebx,eax lea edx,[ebx+ebp*4] cmp edx,[edi+0Ch] jc L00069D0B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov ebx,eax jz L00069D07 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] mov ebx,eax lea ecx,[ebx+ebp*4] cmp ecx,edx jc L00069D07 push edi call [edi+10h] mov eax,[edi+08h] mov ebx,eax L00069D07: mov ecx,[esp+10h] L00069D0B: lea edx,[eax+ebp*4] mov eax,[esp+4Ch] push eax push ecx add ebx,00000004h push ebx push esi mov [edi+08h],edx call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+10h] push edx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebx+ecx*4] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push edx push eax fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push edx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [ebx-04h],ecx L00069E56: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00069E69: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L00069E8D: mov dword ptr [esi+000005B0h],00000001h L00069E97: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00069EA1: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00069EE0: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006A61B mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+34h],ebx mov dword ptr [esp+38h],00000001h mov [esp+10h],eax mov [esp+18h],edi jnc L00069F38 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+1Ch],eax mov [esp+28h],ecx jmp L00069F5B L00069F38: mov ecx,[esi+00004860h] mov [esp+28h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+28h] mov [esp+1Ch],eax L00069F5B: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+30h],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+2Ch],edx imul edx,[esp+34h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L0006A3D4 L00069FA7: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L00069FC1 mov [esp+50h],eax L00069FC1: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+24h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006A024 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L0006A020 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+24h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006A024 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006A024 L0006A020: mov ecx,[esp+14h] L0006A024: mov edx,[esp+24h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+14h],00000000h jc L0006A374 mov dword ptr [esp+24h],00000003h L0006A054: mov ecx,[esp+58h] test ecx,ecx jbe L0006A374 mov eax,[esp+38h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006A0AC mov eax,[esp+28h] mov ecx,[esp+30h] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+38h],00000000h add eax,edx mov [esp+30h],eax imul eax,[esp+34h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+2Ch] jmp L0006A0E9 L0006A0AC: mov ecx,[esp+2Ch] mov eax,[esp+28h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+38h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+34h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+2Ch],eax add ebp,ecx L0006A0E9: mov edx,[esp+1Ch] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L0006A625 mov edx,[esi+00000A34h] cmp ecx,edx jge L0006A625 mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0006A5ED cmp eax,edx jge L0006A5ED mov eax,[esp+30h] add eax,ecx test eax,eax jl L0006A625 cmp eax,edx jge L0006A625 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006A211 mov edx,[esp+14h] mov ecx,[esp+24h] push ebx push ebx inc edx push edi inc ecx push esi mov [esp+24h],edx mov [esp+34h],ecx mov [esp+20h],ebx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006A36A L0006A211: mov eax,[esp+10h] test eax,eax jz L0006A35E mov edx,[esp+14h] mov ecx,00000002h add edx,ecx push eax mov [esp+18h],edx mov edx,[esp+28h] push ebx push edi add edx,ecx push esi mov [esp+34h],edx call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+10h] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+10h] push eax push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006A35E: mov eax,[esp+50h] mov dword ptr [esp+10h],00000000h L0006A36A: cmp [esp+24h],eax jbe L0006A054 L0006A374: mov edx,[esp+14h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0006A3A4 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0006A393 inc eax L0006A393: mov edx,[esp+18h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L0006A3A4: imul ecx,[esp+14h] mov eax,[esp+44h] mov edi,[esp+18h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L00069FA7 mov eax,[esp+20h] mov edx,[esp+4Ch] L0006A3D4: mov ecx,[esp+3Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L0006A611 cmp ecx,[esi+00000A34h] jge L0006A611 mov ecx,[esp+2Ch] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L0006A611 cmp ecx,[esi+00000A34h] jge L0006A611 mov ecx,[esp+30h] mov ebp,[esp+1Ch] add ecx,ebp test ecx,ecx jl L0006A611 cmp ecx,[esi+00000A34h] jge L0006A611 fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006A61B mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L0006A4A8 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006A4A4 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006A4A4 push edi call [edi+10h] mov eax,[edi+08h] L0006A4A4: mov edx,[esp+4Ch] L0006A4A8: lea ecx,[eax+ebx*4] mov [edi+08h],ecx lea edi,[eax+04h] mov eax,[esp+10h] push eax push edx push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebp,[esp+10h] mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[edi+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push ebp push eax fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [edi-04h],ecx pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006A5ED: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0006A611: mov dword ptr [esi+000005B0h],00000001h L0006A61B: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006A625: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0006A660: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006AA84 mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebp,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+24h],ebp mov dword ptr [esp+28h],00000001h mov [esp+1Ch],eax mov [esp+40h],edi jnc L0006A6BC mov ebx,[esp+50h] mov ecx,[esp+54h] xor edx,edx mov dx,[ebx] add ebx,00000002h mov [esp+3Ch],eax mov [esp+4Ch],edx jmp L0006A6E1 L0006A6BC: mov ecx,[esp+54h] mov edx,[esi+00004860h] mov [esp+4Ch],eax mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov ebx,[esp+50h] mov edx,[esp+4Ch] mov [esp+3Ch],eax L0006A6E1: xor eax,eax mov ax,[ebx] add eax,edx mov [esp+18h],eax imul eax,ebp add eax,ecx mov [esp+20h],eax mov eax,[esi+00004868h] lea ebp,[eax+ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,eax mov eax,[esp+58h] add edx,ebx mov ebx,edx imul ebx,[esp+24h] add ebx,ecx test eax,eax mov [esp+14h],edx mov [esp+34h],ebx jbe L0006A9BD L0006A725: mov ecx,[esp+58h] lea eax,[ecx+02h] cmp eax,00000666h jbe L0006A73E mov ecx,00000666h mov [esp+50h],ecx jmp L0006A744 L0006A73E: mov [esp+50h],eax mov ecx,eax L0006A744: mov eax,[edi+08h] mov edx,ecx imul edx,[esi+000005D4h] shl edx,1 mov ebx,edx shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,[edi+0Ch] mov [esp+30h],ebx jc L0006A7A3 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006A79B mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+30h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006A79F push edi call [edi+10h] mov eax,[edi+08h] jmp L0006A79F L0006A79B: mov ebx,[esp+30h] L0006A79F: mov ecx,[esp+50h] L0006A7A3: lea edx,[eax+ebx*4] add eax,00000004h mov [edi+08h],edx xor edx,edx cmp ecx,00000003h mov [esp+44h],eax mov [esp+2Ch],eax mov [esp+10h],edx jc L0006A970 mov dword ptr [esp+30h],00000003h L0006A7CB: mov eax,[esp+58h] test eax,eax jbe L0006A970 mov ecx,eax mov eax,[esp+28h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006A822 mov eax,[esp+18h] mov edx,[esp+4Ch] mov ebx,[esp+20h] xor ecx,ecx mov cx,[ebp+00h] mov [esp+38h],eax mov dword ptr [esp+28h],00000000h lea eax,[ecx+edx] mov ecx,[esp+54h] mov [esp+18h],eax imul eax,[esp+24h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] jmp L0006A85C L0006A822: mov eax,[esp+14h] mov edx,[esp+4Ch] mov ebx,[esp+34h] xor ecx,ecx mov cx,[ebp+00h] mov [esp+38h],eax mov dword ptr [esp+28h],00000001h lea eax,[ecx+edx] mov ecx,[esp+54h] mov [esp+14h],eax imul eax,[esp+24h] add eax,ecx mov [esp+34h],eax add ebp,[esi+00004868h] L0006A85C: mov ecx,[esp+3Ch] mov eax,[esp+38h] add eax,ecx test eax,eax jl L0006AA8E mov edx,[esi+00000A34h] cmp eax,edx jge L0006AA8E mov eax,[esp+14h] add eax,ecx test eax,eax jl L0006AA5A cmp eax,edx jge L0006AA5A mov eax,[esp+18h] add eax,ecx test eax,eax jl L0006AA8E cmp eax,edx jge L0006AA8E mov edx,[esp+10h] mov ecx,[esp+30h] inc edx inc ecx push ebx mov [esp+34h],ecx mov ecx,[esp+30h] push ebx push ecx push esi mov [esp+20h],edx mov [esp+2Ch],ebx call SUB_L0003EC00 mov edi,[esp+2Ch] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+50h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+30h] mov edi,[esp+40h] mov [esp+2Ch],ecx mov ecx,[esp+50h] cmp eax,edx mov edx,[esp+10h] jbe L0006A7CB L0006A970: cmp edx,ecx mov eax,[esi+000005D4h] jz L0006A998 sub ecx,edx mov ebx,eax shr ebx,02h imul ecx,ebx shl ecx,1 test edx,edx jnz L0006A98B inc ecx L0006A98B: mov ebx,[edi+08h] neg ecx shl ecx,02h add ebx,ecx mov [edi+08h],ebx L0006A998: mov ecx,[esp+44h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0006A725 mov ebx,[esp+34h] L0006A9BD: mov eax,[esp+38h] mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L0006AA7A mov edx,[esi+00000A34h] cmp eax,edx jge L0006AA7A mov eax,[esp+14h] add eax,ecx test eax,eax jl L0006AA7A cmp eax,edx jge L0006AA7A mov eax,[esp+18h] add eax,ecx test eax,eax jl L0006AA7A cmp eax,edx jge L0006AA7A mov ebp,[esi+000005D4h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,02h shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+58h],ebp jc L0006AAB1 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006AAAD mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+58h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0006AAB1 push edi call [edi+10h] mov eax,[edi+08h] jmp L0006AAB1 L0006AA5A: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[edi+08h] shl ecx,02h add eax,ecx L0006AA77: mov [edi+08h],eax L0006AA7A: mov dword ptr [esi+000005B0h],00000001h L0006AA84: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006AA8E: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[edi+08h] shl edx,02h add eax,edx jmp L0006AA77 L0006AAAD: mov ebp,[esp+58h] L0006AAB1: lea edx,[eax+ebp*4] mov [edi+08h],edx lea edi,[eax+04h] mov eax,[esp+1Ch] push eax push ebx push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push edx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[edi+ecx*4] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov ecx,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebx push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push ebx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [edi-04h],ecx pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0006AC00: mov eax,[esp+10h] sub esp,00000038h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L0006B037 mov esi,[esp+4Ch] mov edi,[esi+0000017Ch] mov ebp,[esi+000005D0h] push 00000001h push edi push esi mov [esp+34h],ebp mov dword ptr [esp+38h],00000001h mov [esp+58h],ebx mov [esp+4Ch],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0006AC69 mov ebx,[esp+50h] mov ecx,[esp+54h] xor edx,edx mov dx,[ebx] add ebx,00000002h mov dword ptr [esp+3Ch],00000000h mov [esp+10h],edx jmp L0006AC8E L0006AC69: mov ecx,[esp+54h] mov edx,[esi+00004860h] mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov [esp+10h],ebx mov ebx,[esp+50h] mov edx,[esp+10h] mov [esp+3Ch],eax L0006AC8E: xor eax,eax mov ax,[ebx] add eax,edx mov [esp+1Ch],eax imul eax,ebp add eax,ecx mov [esp+24h],eax mov eax,[esi+00004868h] lea ebp,[eax+ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,eax mov eax,[esp+58h] add edx,ebx mov ebx,edx imul ebx,[esp+28h] add ebx,ecx test eax,eax mov [esp+18h],edx mov [esp+20h],ebx jbe L0006AF72 L0006ACD2: mov ecx,[esp+58h] lea eax,[ecx+02h] cmp eax,00000666h jbe L0006ACEB mov ecx,00000666h mov [esp+50h],ecx jmp L0006ACF1 L0006ACEB: mov [esp+50h],eax mov ecx,eax L0006ACF1: mov eax,[edi+08h] mov edx,ecx imul edx,[esi+000005D4h] shl edx,1 mov ebx,edx shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,[edi+0Ch] mov [esp+34h],ebx jc L0006AD54 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006AD4C mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+34h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006AD46 push edi call [edi+10h] mov eax,[edi+08h] L0006AD46: mov ecx,[esp+50h] jmp L0006AD54 L0006AD4C: mov ecx,[esp+50h] mov ebx,[esp+34h] L0006AD54: lea edx,[eax+ebx*4] add eax,00000004h mov [edi+08h],edx xor edx,edx cmp ecx,00000003h mov [esp+44h],eax mov [esp+30h],eax mov [esp+14h],edx jc L0006AF21 mov dword ptr [esp+34h],00000003h L0006AD7C: mov eax,[esp+58h] test eax,eax jbe L0006AF21 mov ecx,eax mov eax,[esp+2Ch] dec ecx test eax,eax mov [esp+58h],ecx jz L0006ADD3 mov eax,[esp+1Ch] mov edx,[esp+10h] mov ebx,[esp+24h] xor ecx,ecx mov cx,[ebp+00h] mov [esp+38h],eax mov dword ptr [esp+2Ch],00000000h lea eax,[ecx+edx] mov ecx,[esp+54h] mov [esp+1Ch],eax imul eax,[esp+28h] add eax,ecx mov [esp+24h],eax add ebp,[esi+00004868h] jmp L0006AE0D L0006ADD3: mov eax,[esp+18h] mov edx,[esp+10h] mov ebx,[esp+20h] xor ecx,ecx mov cx,[ebp+00h] mov [esp+38h],eax mov dword ptr [esp+2Ch],00000001h lea eax,[ecx+edx] mov ecx,[esp+54h] mov [esp+18h],eax imul eax,[esp+28h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] L0006AE0D: mov ecx,[esp+3Ch] mov eax,[esp+38h] add eax,ecx test eax,eax jl L0006B041 mov edx,[esi+00000A34h] cmp eax,edx jge L0006B041 mov eax,[esp+18h] add eax,ecx test eax,eax jl L0006B00D cmp eax,edx jge L0006B00D mov eax,[esp+1Ch] add eax,ecx test eax,eax jl L0006B041 cmp eax,edx jge L0006B041 mov edx,[esp+14h] mov ecx,[esp+34h] inc edx inc ecx push ebx mov [esp+38h],ecx mov ecx,[esp+34h] push ebx push ecx push esi mov [esp+24h],edx mov [esp+5Ch],ebx call SUB_L0003EC00 mov edi,[esp+30h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+50h] mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+34h] mov edi,[esp+40h] mov [esp+30h],ecx mov ecx,[esp+50h] cmp eax,edx mov edx,[esp+14h] jbe L0006AD7C L0006AF21: cmp edx,ecx mov eax,[esi+000005D4h] jz L0006AF49 sub ecx,edx mov ebx,eax shr ebx,02h imul ecx,ebx shl ecx,1 test edx,edx jnz L0006AF3C inc ecx L0006AF3C: mov ebx,[edi+08h] neg ecx shl ecx,02h add ebx,ecx mov [edi+08h],ebx L0006AF49: mov ecx,[esp+44h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0006ACD2 mov ebx,[esp+20h] mov edx,[esp+18h] L0006AF72: mov eax,[esp+38h] mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L0006B02D mov ebp,[esi+00000A34h] cmp eax,ebp jge L0006B02D lea eax,[edx+ecx] test eax,eax jl L0006B02D cmp eax,ebp jge L0006B02D mov edx,[esp+1Ch] lea eax,[edx+ecx] test eax,eax jl L0006B02D cmp eax,ebp jge L0006B02D mov ebp,[esi+000005D4h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,02h shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+58h],ebp jc L0006B064 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006B060 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+58h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0006B064 push edi call [edi+10h] mov eax,[edi+08h] jmp L0006B064 L0006B00D: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[edi+08h] shl ecx,02h add eax,ecx L0006B02A: mov [edi+08h],eax L0006B02D: mov dword ptr [esi+000005B0h],00000001h L0006B037: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006B041: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[edi+08h] shl edx,02h add eax,edx jmp L0006B02A L0006B060: mov ebp,[esp+58h] L0006B064: lea edx,[eax+ebp*4] lea ebp,[eax+04h] mov eax,[esp+4Ch] push eax push ebx push ebp push esi mov [edi+08h],edx call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push edx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+24h] push edx push eax fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+24h] push edx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] push 00000000h push edi push esi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [ebp-04h],ecx call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0006B1C0: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006B5E4 mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebp,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+24h],ebp mov dword ptr [esp+28h],00000001h mov [esp+1Ch],eax mov [esp+40h],edi jnc L0006B21C mov ebx,[esp+50h] mov ecx,[esp+54h] xor edx,edx mov dx,[ebx] add ebx,00000002h mov [esp+3Ch],eax mov [esp+4Ch],edx jmp L0006B241 L0006B21C: mov ecx,[esp+54h] mov edx,[esi+00004860h] mov [esp+4Ch],eax mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov ebx,[esp+50h] mov edx,[esp+4Ch] mov [esp+3Ch],eax L0006B241: xor eax,eax mov ax,[ebx] add eax,edx mov [esp+18h],eax imul eax,ebp add eax,ecx mov [esp+20h],eax mov eax,[esi+00004868h] lea ebp,[eax+ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,eax mov eax,[esp+58h] add edx,ebx mov ebx,edx imul ebx,[esp+24h] add ebx,ecx test eax,eax mov [esp+14h],edx mov [esp+34h],ebx jbe L0006B51D L0006B285: mov ecx,[esp+58h] lea eax,[ecx+02h] cmp eax,00000666h jbe L0006B29E mov ecx,00000666h mov [esp+50h],ecx jmp L0006B2A4 L0006B29E: mov [esp+50h],eax mov ecx,eax L0006B2A4: mov eax,[edi+08h] mov edx,ecx imul edx,[esi+000005D4h] shl edx,1 mov ebx,edx shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,[edi+0Ch] mov [esp+30h],ebx jc L0006B303 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006B2FB mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+30h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006B2FF push edi call [edi+10h] mov eax,[edi+08h] jmp L0006B2FF L0006B2FB: mov ebx,[esp+30h] L0006B2FF: mov ecx,[esp+50h] L0006B303: lea edx,[eax+ebx*4] add eax,00000004h mov [edi+08h],edx xor edx,edx cmp ecx,00000003h mov [esp+44h],eax mov [esp+2Ch],eax mov [esp+10h],edx jc L0006B4D0 mov dword ptr [esp+30h],00000003h L0006B32B: mov eax,[esp+58h] test eax,eax jbe L0006B4D0 mov ecx,eax mov eax,[esp+28h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006B382 mov eax,[esp+18h] mov edx,[esp+4Ch] mov ebx,[esp+20h] xor ecx,ecx mov cx,[ebp+00h] mov [esp+38h],eax mov dword ptr [esp+28h],00000000h lea eax,[ecx+edx] mov ecx,[esp+54h] mov [esp+18h],eax imul eax,[esp+24h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] jmp L0006B3BC L0006B382: mov eax,[esp+14h] mov edx,[esp+4Ch] mov ebx,[esp+34h] xor ecx,ecx mov cx,[ebp+00h] mov [esp+38h],eax mov dword ptr [esp+28h],00000001h lea eax,[ecx+edx] mov ecx,[esp+54h] mov [esp+14h],eax imul eax,[esp+24h] add eax,ecx mov [esp+34h],eax add ebp,[esi+00004868h] L0006B3BC: mov ecx,[esp+3Ch] mov eax,[esp+38h] add eax,ecx test eax,eax jl L0006B5EE mov edx,[esi+00000A34h] cmp eax,edx jge L0006B5EE mov eax,[esp+14h] add eax,ecx test eax,eax jl L0006B5BA cmp eax,edx jge L0006B5BA mov eax,[esp+18h] add eax,ecx test eax,eax jl L0006B5EE cmp eax,edx jge L0006B5EE mov edx,[esp+10h] mov ecx,[esp+30h] inc edx inc ecx push ebx mov [esp+34h],ecx mov ecx,[esp+30h] push ebx push ecx push esi mov [esp+20h],edx mov [esp+2Ch],ebx call SUB_L0003EC00 mov edi,[esp+2Ch] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push ebx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+50h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+30h] mov edi,[esp+40h] mov [esp+2Ch],ecx mov ecx,[esp+50h] cmp eax,edx mov edx,[esp+10h] jbe L0006B32B L0006B4D0: cmp edx,ecx mov eax,[esi+000005D4h] jz L0006B4F8 sub ecx,edx mov ebx,eax shr ebx,02h imul ecx,ebx shl ecx,1 test edx,edx jnz L0006B4EB inc ecx L0006B4EB: mov ebx,[edi+08h] neg ecx shl ecx,02h add ebx,ecx mov [edi+08h],ebx L0006B4F8: mov ecx,[esp+44h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0006B285 mov ebx,[esp+34h] L0006B51D: mov eax,[esp+38h] mov ecx,[esp+3Ch] add eax,ecx test eax,eax jl L0006B5DA mov edx,[esi+00000A34h] cmp eax,edx jge L0006B5DA mov eax,[esp+14h] add eax,ecx test eax,eax jl L0006B5DA cmp eax,edx jge L0006B5DA mov eax,[esp+18h] add eax,ecx test eax,eax jl L0006B5DA cmp eax,edx jge L0006B5DA mov ebp,[esi+000005D4h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,02h shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+58h],ebp jc L0006B611 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006B60D mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+58h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0006B611 push edi call [edi+10h] mov eax,[edi+08h] jmp L0006B611 L0006B5BA: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[edi+08h] shl ecx,02h add eax,ecx L0006B5D7: mov [edi+08h],eax L0006B5DA: mov dword ptr [esi+000005B0h],00000001h L0006B5E4: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006B5EE: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[edi+08h] shl edx,02h add eax,edx jmp L0006B5D7 L0006B60D: mov ebp,[esp+58h] L0006B611: lea edx,[eax+ebp*4] mov [edi+08h],edx lea edi,[eax+04h] mov eax,[esp+1Ch] push eax push ebx push edi push esi call SUB_L0003EC00 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push edx push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[edi+ecx*4] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov ecx,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebx push ecx fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+20h] push ebx push eax fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shl ecx,02h shr ecx,02h dec ecx or ecx,7F140000h mov [edi-04h],ecx pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0006B760: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006BE78 mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+30h],ebx mov dword ptr [esp+34h],00000001h mov [esp+38h],eax mov [esp+14h],edi jnc L0006B7B8 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+18h],eax mov [esp+24h],ecx jmp L0006B7DB L0006B7B8: mov ecx,[esi+00004860h] mov [esp+24h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+24h] mov [esp+18h],eax L0006B7DB: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+2Ch],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+28h],edx imul edx,[esp+30h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L0006BC42 L0006B827: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006B841 mov [esp+50h],eax L0006B841: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+1Ch],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006B8A4 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0006B8A0 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+1Ch] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006B8A4 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006B8A4 L0006B8A0: mov ecx,[esp+10h] L0006B8A4: mov edx,[esp+1Ch] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+10h],00000000h jc L0006BBE2 mov dword ptr [esp+1Ch],00000003h L0006B8D4: mov ecx,[esp+58h] test ecx,ecx jbe L0006BBE2 mov eax,[esp+34h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006B92C mov eax,[esp+24h] mov ecx,[esp+2Ch] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+34h],00000000h add eax,edx mov [esp+2Ch],eax imul eax,[esp+30h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+28h] jmp L0006B969 L0006B92C: mov ecx,[esp+28h] mov eax,[esp+24h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+34h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+30h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+28h],eax add ebp,ecx L0006B969: mov edx,[esp+18h] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L0006BE82 mov edx,[esi+00000A34h] cmp ecx,edx jge L0006BE82 mov ecx,[esp+18h] add eax,ecx test eax,eax jl L0006BE4A cmp eax,edx jge L0006BE4A mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L0006BE82 cmp eax,edx jge L0006BE82 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006BA8F mov ecx,[esp+10h] mov eax,[esp+1Ch] push ebx inc ecx push edi inc eax push esi mov [esp+1Ch],ecx mov [esp+28h],eax mov [esp+44h],ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006BBD8 L0006BA8F: mov eax,[esp+38h] test eax,eax jz L0006BBCC mov ecx,[esp+10h] mov edx,[esp+1Ch] push ebx mov eax,00000002h push edi add ecx,eax add edx,eax push esi mov [esp+1Ch],ecx mov [esp+28h],edx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006BBCC: mov eax,[esp+50h] mov dword ptr [esp+38h],00000000h L0006BBD8: cmp [esp+1Ch],eax jbe L0006B8D4 L0006BBE2: mov edx,[esp+10h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0006BC12 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0006BC01 inc eax L0006BC01: mov edx,[esp+14h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L0006BC12: imul ecx,[esp+10h] mov eax,[esp+44h] mov edi,[esp+14h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L0006B827 mov eax,[esp+20h] mov edx,[esp+4Ch] L0006BC42: mov ecx,[esp+3Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006BE6E cmp ecx,[esi+00000A34h] jge L0006BE6E mov ecx,[esp+28h] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006BE6E cmp ecx,[esi+00000A34h] jge L0006BE6E mov ecx,[esp+2Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006BE6E cmp ecx,[esi+00000A34h] jge L0006BE6E fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006BE78 mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L0006BD16 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006BD12 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006BD12 push edi call [edi+10h] mov eax,[edi+08h] L0006BD12: mov edx,[esp+4Ch] L0006BD16: lea ecx,[eax+ebx*4] mov [edi+08h],ecx push edx lea edi,[eax+04h] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+4Ch] push eax fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[edi+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006BE4A: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0006BE6E: mov dword ptr [esi+000005B0h],00000001h L0006BE78: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006BE82: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0006BEC0: mov eax,[esp+10h] sub esp,00000038h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L0006C600 mov esi,[esp+4Ch] mov edi,[esi+0000017Ch] mov ebp,[esi+000005D0h] push 00000001h push edi push esi mov [esp+3Ch],ebp mov dword ptr [esp+40h],00000001h mov [esp+44h],ebx mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0006BF25 mov ebx,[esp+50h] xor ecx,ecx mov cx,[ebx] add ebx,00000002h mov dword ptr [esp+18h],00000000h mov [esp+24h],ecx jmp L0006BF48 L0006BF25: mov ecx,[esi+00004860h] mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+24h],ebx mov ebx,[esp+50h] mov ecx,[esp+24h] mov [esp+18h],eax L0006BF48: mov edx,[esi+00004868h] xor eax,eax mov ax,[ebx] add eax,ecx mov [esp+2Ch],eax imul eax,ebp add eax,[esp+54h] lea ebp,[edx+ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,edx mov edx,[esp+58h] mov [esp+1Ch],eax add ecx,ebx mov ebx,[esp+54h] mov [esp+28h],ecx imul ecx,[esp+30h] add ecx,ebx test edx,edx mov ebx,[esp+58h] mov [esp+4Ch],ecx jbe L0006C3AF L0006BF94: mov ecx,[esp+58h] lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006BFAE mov [esp+50h],eax L0006BFAE: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+20h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006C011 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0006C00D mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+20h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006C011 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006C011 L0006C00D: mov ecx,[esp+10h] L0006C011: mov edx,[esp+20h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+10h],00000000h jc L0006C34F mov dword ptr [esp+20h],00000003h L0006C041: mov ecx,[esp+58h] test ecx,ecx jbe L0006C34F mov eax,[esp+34h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006C099 mov eax,[esp+24h] mov ecx,[esp+2Ch] mov ebx,[esp+1Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+34h],00000000h add eax,edx mov [esp+2Ch],eax imul eax,[esp+30h] add eax,ecx mov [esp+1Ch],eax add ebp,[esi+00004868h] mov eax,[esp+28h] jmp L0006C0D6 L0006C099: mov ecx,[esp+28h] mov eax,[esp+24h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+34h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+30h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+28h],eax add ebp,ecx L0006C0D6: mov edx,[esp+18h] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L0006C60A mov edx,[esi+00000A34h] cmp ecx,edx jge L0006C60A mov ecx,[esp+18h] add eax,ecx test eax,eax jl L0006C5D2 cmp eax,edx jge L0006C5D2 mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L0006C60A cmp eax,edx jge L0006C60A mov ecx,[esp+1Ch] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006C1FC mov ecx,[esp+10h] mov eax,[esp+20h] push ebx inc ecx push edi inc eax push esi mov [esp+1Ch],ecx mov [esp+2Ch],eax mov [esp+44h],ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006C345 L0006C1FC: mov eax,[esp+38h] test eax,eax jz L0006C339 mov ecx,[esp+10h] mov edx,[esp+20h] push ebx mov eax,00000002h push edi add ecx,eax add edx,eax push esi mov [esp+1Ch],ecx mov [esp+2Ch],edx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006C339: mov eax,[esp+50h] mov dword ptr [esp+38h],00000000h L0006C345: cmp [esp+20h],eax jbe L0006C041 L0006C34F: mov edx,[esp+10h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0006C37F sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0006C36E inc eax L0006C36E: mov edx,[esp+14h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L0006C37F: imul ecx,[esp+10h] mov eax,[esp+44h] mov edi,[esp+14h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L0006BF94 mov eax,[esp+1Ch] mov ecx,[esp+4Ch] L0006C3AF: mov edx,[esp+3Ch] mov ebp,[esp+18h] add edx,ebp test edx,edx jl L0006C5F6 cmp edx,[esi+00000A34h] jge L0006C5F6 mov edx,[esp+28h] mov ebp,[esp+18h] add edx,ebp test edx,edx jl L0006C5F6 cmp edx,[esi+00000A34h] jge L0006C5F6 mov edx,[esp+2Ch] mov ebp,[esp+18h] add edx,ebp test edx,edx jl L0006C5F6 cmp edx,[esi+00000A34h] jge L0006C5F6 fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006C5BF mov ebp,[esi+000005D4h] mov eax,[edi+08h] shl ebp,02h shr ebp,02h inc ebp mov ebx,eax lea edx,[ebx+ebp*4] cmp edx,[edi+0Ch] jc L0006C489 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov ebx,eax jz L0006C485 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] mov ebx,eax lea ecx,[ebx+ebp*4] cmp ecx,edx jc L0006C485 push edi call [edi+10h] mov eax,[edi+08h] mov ebx,eax L0006C485: mov ecx,[esp+4Ch] L0006C489: push ecx add ebx,00000004h push ebx lea edx,[eax+ebp*4] push esi mov [edi+08h],edx call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebx+eax*4] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+1Ch] push eax fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push edx fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax L0006C5BF: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006C5D2: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0006C5F6: mov dword ptr [esi+000005B0h],00000001h L0006C600: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006C60A: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0006C650: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006CD68 mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+30h],ebx mov dword ptr [esp+34h],00000001h mov [esp+38h],eax mov [esp+14h],edi jnc L0006C6A8 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+18h],eax mov [esp+24h],ecx jmp L0006C6CB L0006C6A8: mov ecx,[esi+00004860h] mov [esp+24h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+24h] mov [esp+18h],eax L0006C6CB: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+2Ch],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+28h],edx imul edx,[esp+30h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L0006CB32 L0006C717: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006C731 mov [esp+50h],eax L0006C731: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+1Ch],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006C794 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0006C790 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+1Ch] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006C794 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006C794 L0006C790: mov ecx,[esp+10h] L0006C794: mov edx,[esp+1Ch] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+10h],00000000h jc L0006CAD2 mov dword ptr [esp+1Ch],00000003h L0006C7C4: mov ecx,[esp+58h] test ecx,ecx jbe L0006CAD2 mov eax,[esp+34h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006C81C mov eax,[esp+24h] mov ecx,[esp+2Ch] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+34h],00000000h add eax,edx mov [esp+2Ch],eax imul eax,[esp+30h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+28h] jmp L0006C859 L0006C81C: mov ecx,[esp+28h] mov eax,[esp+24h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+34h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+30h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+28h],eax add ebp,ecx L0006C859: mov edx,[esp+18h] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L0006CD72 mov edx,[esi+00000A34h] cmp ecx,edx jge L0006CD72 mov ecx,[esp+18h] add eax,ecx test eax,eax jl L0006CD3A cmp eax,edx jge L0006CD3A mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L0006CD72 cmp eax,edx jge L0006CD72 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006C97F mov ecx,[esp+10h] mov eax,[esp+1Ch] push ebx inc ecx push edi inc eax push esi mov [esp+1Ch],ecx mov [esp+28h],eax mov [esp+44h],ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006CAC8 L0006C97F: mov eax,[esp+38h] test eax,eax jz L0006CABC mov ecx,[esp+10h] mov edx,[esp+1Ch] push ebx mov eax,00000002h push edi add ecx,eax add edx,eax push esi mov [esp+1Ch],ecx mov [esp+28h],edx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006CABC: mov eax,[esp+50h] mov dword ptr [esp+38h],00000000h L0006CAC8: cmp [esp+1Ch],eax jbe L0006C7C4 L0006CAD2: mov edx,[esp+10h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0006CB02 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0006CAF1 inc eax L0006CAF1: mov edx,[esp+14h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L0006CB02: imul ecx,[esp+10h] mov eax,[esp+44h] mov edi,[esp+14h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L0006C717 mov eax,[esp+20h] mov edx,[esp+4Ch] L0006CB32: mov ecx,[esp+3Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006CD5E cmp ecx,[esi+00000A34h] jge L0006CD5E mov ecx,[esp+28h] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006CD5E cmp ecx,[esi+00000A34h] jge L0006CD5E mov ecx,[esp+2Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006CD5E cmp ecx,[esi+00000A34h] jge L0006CD5E fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006CD68 mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L0006CC06 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006CC02 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006CC02 push edi call [edi+10h] mov eax,[edi+08h] L0006CC02: mov edx,[esp+4Ch] L0006CC06: lea ecx,[eax+ebx*4] mov [edi+08h],ecx push edx lea edi,[eax+04h] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+4Ch] push eax fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[edi+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006CD3A: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0006CD5E: mov dword ptr [esi+000005B0h],00000001h L0006CD68: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006CD72: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0006CDB0: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006D4C8 mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+0000017Ch] mov [esp+30h],ebx mov dword ptr [esp+34h],00000001h mov [esp+38h],eax mov [esp+14h],edi jnc L0006CE08 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+18h],eax mov [esp+24h],ecx jmp L0006CE2B L0006CE08: mov ecx,[esi+00004860h] mov [esp+24h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+24h] mov [esp+18h],eax L0006CE2B: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+2Ch],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+28h],edx imul edx,[esp+30h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L0006D292 L0006CE77: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006CE91 mov [esp+50h],eax L0006CE91: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+1Ch],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006CEF4 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0006CEF0 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+1Ch] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006CEF4 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006CEF4 L0006CEF0: mov ecx,[esp+10h] L0006CEF4: mov edx,[esp+1Ch] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+10h],00000000h jc L0006D232 mov dword ptr [esp+1Ch],00000003h L0006CF24: mov ecx,[esp+58h] test ecx,ecx jbe L0006D232 mov eax,[esp+34h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006CF7C mov eax,[esp+24h] mov ecx,[esp+2Ch] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+34h],00000000h add eax,edx mov [esp+2Ch],eax imul eax,[esp+30h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+28h] jmp L0006CFB9 L0006CF7C: mov ecx,[esp+28h] mov eax,[esp+24h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+34h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+30h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+28h],eax add ebp,ecx L0006CFB9: mov edx,[esp+18h] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L0006D4D2 mov edx,[esi+00000A34h] cmp ecx,edx jge L0006D4D2 mov ecx,[esp+18h] add eax,ecx test eax,eax jl L0006D49A cmp eax,edx jge L0006D49A mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L0006D4D2 cmp eax,edx jge L0006D4D2 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006D0DF mov ecx,[esp+10h] mov eax,[esp+1Ch] push ebx inc ecx push edi inc eax push esi mov [esp+1Ch],ecx mov [esp+28h],eax mov [esp+44h],ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006D228 L0006D0DF: mov eax,[esp+38h] test eax,eax jz L0006D21C mov ecx,[esp+10h] mov edx,[esp+1Ch] push ebx mov eax,00000002h push edi add ecx,eax add edx,eax push esi mov [esp+1Ch],ecx mov [esp+28h],edx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006D21C: mov eax,[esp+50h] mov dword ptr [esp+38h],00000000h L0006D228: cmp [esp+1Ch],eax jbe L0006CF24 L0006D232: mov edx,[esp+10h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0006D262 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0006D251 inc eax L0006D251: mov edx,[esp+14h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L0006D262: imul ecx,[esp+10h] mov eax,[esp+44h] mov edi,[esp+14h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L0006CE77 mov eax,[esp+20h] mov edx,[esp+4Ch] L0006D292: mov ecx,[esp+3Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006D4BE cmp ecx,[esi+00000A34h] jge L0006D4BE mov ecx,[esp+28h] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006D4BE cmp ecx,[esi+00000A34h] jge L0006D4BE mov ecx,[esp+2Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006D4BE cmp ecx,[esi+00000A34h] jge L0006D4BE fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006D4C8 mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L0006D366 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006D362 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006D362 push edi call [edi+10h] mov eax,[edi+08h] L0006D362: mov edx,[esp+4Ch] L0006D366: lea ecx,[eax+ebx*4] mov [edi+08h],ecx push edx lea edi,[eax+04h] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+4Ch] push eax fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[edi+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006D49A: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0006D4BE: mov dword ptr [esi+000005B0h],00000001h L0006D4C8: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006D4D2: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0006D510: mov eax,[esp+10h] sub esp,00000038h push ebx push ebp xor ebx,ebx cmp eax,ebx push esi push edi jz L0006DC50 mov esi,[esp+4Ch] mov edi,[esi+0000017Ch] mov ebp,[esi+000005D0h] push 00000001h push edi push esi mov [esp+3Ch],ebp mov dword ptr [esp+40h],00000001h mov [esp+44h],ebx mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0006D575 mov ebx,[esp+50h] xor ecx,ecx mov cx,[ebx] add ebx,00000002h mov dword ptr [esp+18h],00000000h mov [esp+24h],ecx jmp L0006D598 L0006D575: mov ecx,[esi+00004860h] mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov [esp+24h],ebx mov ebx,[esp+50h] mov ecx,[esp+24h] mov [esp+18h],eax L0006D598: mov edx,[esi+00004868h] xor eax,eax mov ax,[ebx] add eax,ecx mov [esp+2Ch],eax imul eax,ebp add eax,[esp+54h] lea ebp,[edx+ebx] xor ebx,ebx mov bx,[ebp+00h] add ebp,edx mov edx,[esp+58h] mov [esp+1Ch],eax add ecx,ebx mov ebx,[esp+54h] mov [esp+28h],ecx imul ecx,[esp+30h] add ecx,ebx test edx,edx mov ebx,[esp+58h] mov [esp+4Ch],ecx jbe L0006D9FF L0006D5E4: mov ecx,[esp+58h] lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006D5FE mov [esp+50h],eax L0006D5FE: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+20h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006D661 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0006D65D mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+20h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006D661 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006D661 L0006D65D: mov ecx,[esp+10h] L0006D661: mov edx,[esp+20h] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+10h],00000000h jc L0006D99F mov dword ptr [esp+20h],00000003h L0006D691: mov ecx,[esp+58h] test ecx,ecx jbe L0006D99F mov eax,[esp+34h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006D6E9 mov eax,[esp+24h] mov ecx,[esp+2Ch] mov ebx,[esp+1Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+34h],00000000h add eax,edx mov [esp+2Ch],eax imul eax,[esp+30h] add eax,ecx mov [esp+1Ch],eax add ebp,[esi+00004868h] mov eax,[esp+28h] jmp L0006D726 L0006D6E9: mov ecx,[esp+28h] mov eax,[esp+24h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+34h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+30h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+28h],eax add ebp,ecx L0006D726: mov edx,[esp+18h] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L0006DC5A mov edx,[esi+00000A34h] cmp ecx,edx jge L0006DC5A mov ecx,[esp+18h] add eax,ecx test eax,eax jl L0006DC22 cmp eax,edx jge L0006DC22 mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L0006DC5A cmp eax,edx jge L0006DC5A mov ecx,[esp+1Ch] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006D84C mov ecx,[esp+10h] mov eax,[esp+20h] push ebx inc ecx push edi inc eax push esi mov [esp+1Ch],ecx mov [esp+2Ch],eax mov [esp+44h],ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006D995 L0006D84C: mov eax,[esp+38h] test eax,eax jz L0006D989 mov ecx,[esp+10h] mov edx,[esp+20h] push ebx mov eax,00000002h push edi add ecx,eax add edx,eax push esi mov [esp+1Ch],ecx mov [esp+2Ch],edx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006D989: mov eax,[esp+50h] mov dword ptr [esp+38h],00000000h L0006D995: cmp [esp+20h],eax jbe L0006D691 L0006D99F: mov edx,[esp+10h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0006D9CF sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0006D9BE inc eax L0006D9BE: mov edx,[esp+14h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L0006D9CF: imul ecx,[esp+10h] mov eax,[esp+44h] mov edi,[esp+14h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L0006D5E4 mov eax,[esp+1Ch] mov ecx,[esp+4Ch] L0006D9FF: mov edx,[esp+3Ch] mov ebp,[esp+18h] add edx,ebp test edx,edx jl L0006DC46 cmp edx,[esi+00000A34h] jge L0006DC46 mov edx,[esp+28h] mov ebp,[esp+18h] add edx,ebp test edx,edx jl L0006DC46 cmp edx,[esi+00000A34h] jge L0006DC46 mov edx,[esp+2Ch] mov ebp,[esp+18h] add edx,ebp test edx,edx jl L0006DC46 cmp edx,[esi+00000A34h] jge L0006DC46 fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006DC0F mov ebp,[esi+000005D4h] mov eax,[edi+08h] shl ebp,02h shr ebp,02h inc ebp mov ebx,eax lea edx,[ebx+ebp*4] cmp edx,[edi+0Ch] jc L0006DAD9 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov ebx,eax jz L0006DAD5 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] mov ebx,eax lea ecx,[ebx+ebp*4] cmp ecx,edx jc L0006DAD5 push edi call [edi+10h] mov eax,[edi+08h] mov ebx,eax L0006DAD5: mov ecx,[esp+4Ch] L0006DAD9: push ecx add ebx,00000004h push ebx lea edx,[eax+ebp*4] push esi mov [edi+08h],edx call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebx+eax*4] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+1Ch] push eax fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edx,[esp+1Ch] mov [esp+58h],eax fild dword ptr [esp+58h] push edx fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax L0006DC0F: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006DC22: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0006DC46: mov dword ptr [esi+000005B0h],00000001h L0006DC50: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006DC5A: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0006DCA0: mov ecx,[esp+10h] sub esp,00000038h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006E3B8 mov esi,[esp+4Ch] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+30h],ebx mov dword ptr [esp+34h],00000001h mov [esp+38h],eax mov [esp+14h],edi jnc L0006DCF8 mov edx,[esp+50h] xor ecx,ecx mov cx,[edx] add edx,00000002h mov [esp+18h],eax mov [esp+24h],ecx jmp L0006DD1B L0006DCF8: mov ecx,[esi+00004860h] mov [esp+24h],eax mov eax,[esp+54h] sub eax,ecx cdq idiv [esi+00004858h] mov edx,[esp+50h] mov ecx,[esp+24h] mov [esp+18h],eax L0006DD1B: xor eax,eax mov ax,[edx] add eax,ecx mov [esp+2Ch],eax imul eax,ebx add eax,[esp+54h] mov ebx,[esi+00004868h] lea ebp,[ebx+edx] xor edx,edx mov dx,[ebp+00h] add ebp,ebx mov ebx,[esp+58h] mov [esp+20h],eax add edx,ecx mov ecx,[esp+54h] mov [esp+28h],edx imul edx,[esp+30h] add edx,ecx mov ecx,[esp+58h] test ecx,ecx mov [esp+4Ch],edx jbe L0006E182 L0006DD67: mov eax,[esp+58h] add eax,00000002h cmp eax,00000666h mov dword ptr [esp+50h],00000666h ja L0006DD81 mov [esp+50h],eax L0006DD81: mov edx,[esp+50h] imul edx,[esi+000005D4h] mov eax,[edi+08h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+1Ch],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006DDE4 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0006DDE0 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+1Ch] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L0006DDE4 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006DDE4 L0006DDE0: mov ecx,[esp+10h] L0006DDE4: mov edx,[esp+1Ch] lea eax,[eax+edx*4] mov [edi+08h],eax mov eax,[esp+50h] add ecx,00000004h cmp eax,00000003h mov [esp+44h],ecx mov edi,ecx mov dword ptr [esp+10h],00000000h jc L0006E122 mov dword ptr [esp+1Ch],00000003h L0006DE14: mov ecx,[esp+58h] test ecx,ecx jbe L0006E122 mov eax,[esp+34h] dec ecx test eax,eax mov [esp+58h],ecx jz L0006DE6C mov eax,[esp+24h] mov ecx,[esp+2Ch] mov ebx,[esp+20h] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov ecx,[esp+54h] mov dword ptr [esp+34h],00000000h add eax,edx mov [esp+2Ch],eax imul eax,[esp+30h] add eax,ecx mov [esp+20h],eax add ebp,[esi+00004868h] mov eax,[esp+28h] jmp L0006DEA9 L0006DE6C: mov ecx,[esp+28h] mov eax,[esp+24h] mov ebx,[esp+4Ch] xor edx,edx mov dx,[ebp+00h] mov [esp+3Ch],ecx mov dword ptr [esp+34h],00000001h add eax,edx mov edx,[esp+54h] mov ecx,eax imul ecx,[esp+30h] add ecx,edx mov [esp+4Ch],ecx mov ecx,[esi+00004868h] mov [esp+28h],eax add ebp,ecx L0006DEA9: mov edx,[esp+18h] mov ecx,[esp+3Ch] add ecx,edx test ecx,ecx jl L0006E3C2 mov edx,[esi+00000A34h] cmp ecx,edx jge L0006E3C2 mov ecx,[esp+18h] add eax,ecx test eax,eax jl L0006E38A cmp eax,edx jge L0006E38A mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L0006E3C2 cmp eax,edx jge L0006E3C2 mov ecx,[esp+20h] mov eax,[esp+4Ch] fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006DFCF mov ecx,[esp+10h] mov eax,[esp+1Ch] push ebx inc ecx push edi inc eax push esi mov [esp+1Ch],ecx mov [esp+28h],eax mov [esp+44h],ebx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+50h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] jmp L0006E118 L0006DFCF: mov eax,[esp+38h] test eax,eax jz L0006E10C mov ecx,[esp+10h] mov edx,[esp+1Ch] push ebx mov eax,00000002h push edi add ecx,eax add edx,eax push esi mov [esp+1Ch],ecx mov [esp+28h],edx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push edx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov [esp+40h],eax fild dword ptr [esp+40h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] L0006E10C: mov eax,[esp+50h] mov dword ptr [esp+38h],00000000h L0006E118: cmp [esp+1Ch],eax jbe L0006DE14 L0006E122: mov edx,[esp+10h] cmp edx,eax mov ecx,[esi+000005D4h] jz L0006E152 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L0006E141 inc eax L0006E141: mov edx,[esp+14h] mov edi,[edx+08h] neg eax shl eax,02h add edi,eax mov [edx+08h],edi L0006E152: imul ecx,[esp+10h] mov eax,[esp+44h] mov edi,[esp+14h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+58h] test eax,eax ja L0006DD67 mov eax,[esp+20h] mov edx,[esp+4Ch] L0006E182: mov ecx,[esp+3Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006E3AE cmp ecx,[esi+00000A34h] jge L0006E3AE mov ecx,[esp+28h] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006E3AE cmp ecx,[esi+00000A34h] jge L0006E3AE mov ecx,[esp+2Ch] mov ebp,[esp+18h] add ecx,ebp test ecx,ecx jl L0006E3AE cmp ecx,[esi+00000A34h] jge L0006E3AE fld dword ptr [eax+04h] fsub dword ptr [ebx+04h] fld dword ptr [edx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0006E3B8 mov ebx,[esi+000005D4h] mov eax,[edi+08h] mov ebp,[edi+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,ebp jc L0006E256 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0006E252 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006E252 push edi call [edi+10h] mov eax,[edi+08h] L0006E252: mov edx,[esp+4Ch] L0006E256: lea ecx,[eax+ebx*4] mov [edi+08h],ecx push edx lea edi,[eax+04h] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] mov eax,[esp+4Ch] push eax fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[edi+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+58h],eax fild dword ptr [esp+58h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006E38A: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L0006E3AE: mov dword ptr [esi+000005B0h],00000001h L0006E3B8: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0006E3C2: mov eax,[esp+50h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0006E400: mov ecx,[esp+10h] sub esp,00000034h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006E815 mov esi,[esp+48h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov ebp,[esi+0000017Ch] mov [esp+20h],ebx mov dword ptr [esp+24h],00000001h jnc L0006E454 mov edi,[esp+4Ch] mov ecx,[esp+50h] xor edx,edx mov dx,[edi] add edi,00000002h mov [esp+48h],eax mov [esp+10h],edx jmp L0006E479 L0006E454: mov ecx,[esp+50h] mov edx,[esi+00004860h] mov [esp+10h],eax mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+4Ch] mov edx,[esp+10h] mov [esp+48h],eax L0006E479: xor eax,eax mov ax,[edi] add eax,edx mov [esp+1Ch],eax imul eax,ebx add eax,ecx mov [esp+38h],eax mov eax,[esi+00004868h] lea ebx,[eax+edi] xor edi,edi mov di,[ebx] add ebx,eax mov eax,[esp+54h] add edx,edi mov edi,edx imul edi,[esp+20h] add edi,ecx test eax,eax mov [esp+18h],edx mov [esp+30h],edi jbe L0006E74D L0006E4BC: mov ecx,[esp+54h] lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+4Ch],00000666h ja L0006E4D6 mov [esp+4Ch],eax L0006E4D6: mov edi,[esp+4Ch] imul edi,[esi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+2Ch],edi jc L0006E533 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0006E52F mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+2Ch] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0006E533 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0006E533 L0006E52F: mov edi,[esp+2Ch] L0006E533: mov ecx,[esp+4Ch] lea edx,[eax+edi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ecx,00000003h mov [esp+40h],eax mov edi,eax mov [esp+14h],edx jc L0006E700 mov dword ptr [esp+2Ch],00000003h L0006E55D: mov eax,[esp+54h] test eax,eax jbe L0006E700 mov edx,eax mov eax,[esp+24h] dec edx test eax,eax mov [esp+54h],edx jz L0006E5B6 mov eax,[esp+38h] mov edx,[esp+1Ch] mov [esp+28h],eax xor eax,eax mov ax,[ebx] mov [esp+34h],edx mov edx,[esp+10h] mov dword ptr [esp+24h],00000000h add eax,edx mov edx,[esp+50h] mov [esp+1Ch],eax imul eax,[esp+20h] add eax,edx mov [esp+38h],eax add ebx,[esi+00004868h] jmp L0006E5F2 L0006E5B6: mov eax,[esp+30h] mov edx,[esp+18h] mov [esp+28h],eax xor eax,eax mov ax,[ebx] mov [esp+34h],edx mov edx,[esp+10h] mov dword ptr [esp+24h],00000001h add eax,edx mov edx,[esp+50h] mov [esp+18h],eax imul eax,[esp+20h] add eax,edx mov [esp+30h],eax add ebx,[esi+00004868h] L0006E5F2: mov eax,[esp+48h] mov edx,[esp+34h] add eax,edx test eax,eax jl L0006E81F cmp eax,[esi+00000A34h] jge L0006E81F mov eax,[esp+18h] mov edx,[esp+48h] add eax,edx test eax,eax jl L0006E7EF cmp eax,[esi+00000A34h] jge L0006E7EF mov eax,[esp+1Ch] mov edx,[esp+48h] add eax,edx test eax,eax jl L0006E81F cmp eax,[esi+00000A34h] jge L0006E81F mov ecx,[esp+14h] mov eax,[esp+2Ch] inc ecx inc eax mov [esp+2Ch],eax mov eax,[esp+28h] push eax push edi push esi mov [esp+20h],ecx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+28h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov edx,[esp+14h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] cmp [esp+2Ch],ecx jbe L0006E55D L0006E700: cmp edx,ecx mov eax,[esi+000005D4h] jz L0006E728 sub ecx,edx mov edi,eax shr edi,02h imul ecx,edi shl ecx,1 test edx,edx jnz L0006E71B inc ecx L0006E71B: mov edi,[ebp+08h] neg ecx shl ecx,02h add edi,ecx mov [ebp+08h],edi L0006E728: imul eax,edx mov edx,[esp+40h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+54h] test eax,eax ja L0006E4BC mov edi,[esp+30h] L0006E74D: mov edx,[esp+34h] mov ecx,[esp+48h] lea eax,[edx+ecx] test eax,eax jl L0006E80B mov edx,[esi+00000A34h] cmp eax,edx jge L0006E80B mov eax,[esp+18h] add eax,ecx test eax,eax jl L0006E80B cmp eax,edx jge L0006E80B mov eax,[esp+1Ch] add eax,ecx test eax,eax jl L0006E80B cmp eax,edx jge L0006E80B mov ebx,[esi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+54h],ebx jc L0006E853 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0006E84F mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+54h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006E853 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0006E853 L0006E7EF: imul ecx,[esi+000005D4h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx shl edx,02h add eax,edx mov [ebp+08h],eax L0006E80B: mov dword ptr [esi+000005B0h],00000001h L0006E815: pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0006E81F: imul ecx,[esi+000005D4h] shl ecx,1 shr ecx,02h or eax,FFFFFFFFh sub eax,ecx mov ecx,[ebp+08h] shl eax,02h add ecx,eax pop edi mov [ebp+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0006E84F: mov ebx,[esp+54h] L0006E853: lea edx,[eax+ebx*4] push edi lea ebx,[eax+04h] push ebx push esi mov [ebp+08h],edx call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebx+eax*4] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edi,[esp+38h] mov [esp+54h],eax fild dword ptr [esp+54h] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] push edi fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax pop edi pop esi or eax,7F140000h pop ebp mov [ebx-04h],eax pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0006E990: mov eax,[esp+10h] sub esp,00000034h test eax,eax push ebx push ebp push esi push edi jz L0006EDB5 mov esi,[esp+48h] mov ebp,[esi+0000017Ch] mov ebx,[esi+000005D0h] push 00000001h push ebp push esi mov [esp+34h],ebx mov dword ptr [esp+38h],00000001h call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0006E9EF mov edi,[esp+4Ch] mov ecx,[esp+50h] xor edx,edx mov dx,[edi] add edi,00000002h mov dword ptr [esp+48h],00000000h mov [esp+10h],edx jmp L0006EA18 L0006E9EF: mov ecx,[esp+50h] mov edx,[esi+00004860h] mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+4Ch] mov dword ptr [esp+10h],00000000h mov edx,[esp+10h] mov [esp+48h],eax L0006EA18: xor eax,eax mov ax,[edi] add eax,edx mov [esp+1Ch],eax imul eax,ebx add eax,ecx mov [esp+24h],eax mov eax,[esi+00004868h] lea ebx,[eax+edi] xor edi,edi mov di,[ebx] add ebx,eax mov eax,[esp+54h] add edx,edi mov edi,edx imul edi,[esp+28h] add edi,ecx test eax,eax mov [esp+18h],edx mov [esp+20h],edi jbe L0006ECF0 L0006EA5B: mov ecx,[esp+54h] lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+4Ch],00000666h ja L0006EA75 mov [esp+4Ch],eax L0006EA75: mov edi,[esp+4Ch] imul edi,[esi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+34h],edi jc L0006EAD2 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0006EACE mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+34h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0006EAD2 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0006EAD2 L0006EACE: mov edi,[esp+34h] L0006EAD2: mov ecx,[esp+4Ch] lea edx,[eax+edi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ecx,00000003h mov [esp+40h],eax mov edi,eax mov [esp+14h],edx jc L0006EC9F mov dword ptr [esp+34h],00000003h L0006EAFC: mov eax,[esp+54h] test eax,eax jbe L0006EC9F mov edx,eax mov eax,[esp+2Ch] dec edx test eax,eax mov [esp+54h],edx jz L0006EB55 mov eax,[esp+24h] mov edx,[esp+1Ch] mov [esp+30h],eax xor eax,eax mov ax,[ebx] mov [esp+38h],edx mov edx,[esp+10h] mov dword ptr [esp+2Ch],00000000h add eax,edx mov edx,[esp+50h] mov [esp+1Ch],eax imul eax,[esp+28h] add eax,edx mov [esp+24h],eax add ebx,[esi+00004868h] jmp L0006EB91 L0006EB55: mov eax,[esp+20h] mov edx,[esp+18h] mov [esp+30h],eax xor eax,eax mov ax,[ebx] mov [esp+38h],edx mov edx,[esp+10h] mov dword ptr [esp+2Ch],00000001h add eax,edx mov edx,[esp+50h] mov [esp+18h],eax imul eax,[esp+28h] add eax,edx mov [esp+20h],eax add ebx,[esi+00004868h] L0006EB91: mov eax,[esp+38h] mov edx,[esp+48h] add eax,edx test eax,eax jl L0006EDBF cmp eax,[esi+00000A34h] jge L0006EDBF mov eax,[esp+18h] mov edx,[esp+48h] add eax,edx test eax,eax jl L0006ED8F cmp eax,[esi+00000A34h] jge L0006ED8F mov eax,[esp+1Ch] mov edx,[esp+48h] add eax,edx test eax,eax jl L0006EDBF cmp eax,[esi+00000A34h] jge L0006EDBF mov ecx,[esp+14h] mov eax,[esp+34h] inc ecx inc eax mov [esp+34h],eax mov eax,[esp+30h] push eax push edi push esi mov [esp+20h],ecx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+30h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov edx,[esp+14h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] cmp [esp+34h],ecx jbe L0006EAFC L0006EC9F: cmp edx,ecx mov eax,[esi+000005D4h] jz L0006ECC7 sub ecx,edx mov edi,eax shr edi,02h imul ecx,edi shl ecx,1 test edx,edx jnz L0006ECBA inc ecx L0006ECBA: mov edi,[ebp+08h] neg ecx shl ecx,02h add edi,ecx mov [ebp+08h],edi L0006ECC7: imul eax,edx mov edx,[esp+40h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+54h] test eax,eax ja L0006EA5B mov edx,[esp+18h] mov edi,[esp+20h] L0006ECF0: mov eax,[esp+38h] mov ecx,[esp+48h] add eax,ecx test eax,eax jl L0006EDAB mov ebx,[esi+00000A34h] cmp eax,ebx jge L0006EDAB lea eax,[edx+ecx] test eax,eax jl L0006EDAB cmp eax,ebx jge L0006EDAB mov edx,[esp+1Ch] lea eax,[edx+ecx] test eax,eax jl L0006EDAB cmp eax,ebx jge L0006EDAB mov ebx,[esi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+54h],ebx jc L0006EDF3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0006EDEF mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+54h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006EDF3 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0006EDF3 L0006ED8F: imul ecx,[esi+000005D4h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx shl edx,02h add eax,edx mov [ebp+08h],eax L0006EDAB: mov dword ptr [esi+000005B0h],00000001h L0006EDB5: pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0006EDBF: imul ecx,[esi+000005D4h] shl ecx,1 shr ecx,02h or eax,FFFFFFFFh sub eax,ecx mov ecx,[ebp+08h] shl eax,02h add ecx,eax pop edi mov [ebp+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0006EDEF: mov ebx,[esp+54h] L0006EDF3: lea edx,[eax+ebx*4] push edi lea ebx,[eax+04h] push ebx push esi mov [ebp+08h],edx call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+20h] mov [esp+54h],eax fild dword ptr [esp+54h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[ebx+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] mov eax,[esp+24h] push eax fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+24h] mov [esp+54h],eax fild dword ptr [esp+54h] push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h push 00000000h dec eax push ebp or eax,7F140000h push esi mov [ebx-04h],eax call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0006EF40: mov ecx,[esp+10h] sub esp,00000034h push ebx push ebp xor eax,eax cmp ecx,eax push esi push edi jz L0006F355 mov esi,[esp+48h] cmp dword ptr [esi+00000138h],00000004h mov ebx,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+20h],ebx mov dword ptr [esp+24h],00000001h jnc L0006EF94 mov edi,[esp+4Ch] mov ecx,[esp+50h] xor edx,edx mov dx,[edi] add edi,00000002h mov [esp+48h],eax mov [esp+10h],edx jmp L0006EFB9 L0006EF94: mov ecx,[esp+50h] mov edx,[esi+00004860h] mov [esp+10h],eax mov eax,ecx sub eax,edx cdq idiv [esi+00004858h] mov edi,[esp+4Ch] mov edx,[esp+10h] mov [esp+48h],eax L0006EFB9: xor eax,eax mov ax,[edi] add eax,edx mov [esp+1Ch],eax imul eax,ebx add eax,ecx mov [esp+38h],eax mov eax,[esi+00004868h] lea ebx,[eax+edi] xor edi,edi mov di,[ebx] add ebx,eax mov eax,[esp+54h] add edx,edi mov edi,edx imul edi,[esp+20h] add edi,ecx test eax,eax mov [esp+18h],edx mov [esp+30h],edi jbe L0006F28D L0006EFFC: mov ecx,[esp+54h] lea eax,[ecx+02h] cmp eax,00000666h mov dword ptr [esp+4Ch],00000666h ja L0006F016 mov [esp+4Ch],eax L0006F016: mov edi,[esp+4Ch] imul edi,[esi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+2Ch],edi jc L0006F073 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0006F06F mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+2Ch] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0006F073 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0006F073 L0006F06F: mov edi,[esp+2Ch] L0006F073: mov ecx,[esp+4Ch] lea edx,[eax+edi*4] add eax,00000004h mov [ebp+08h],edx xor edx,edx cmp ecx,00000003h mov [esp+40h],eax mov edi,eax mov [esp+14h],edx jc L0006F240 mov dword ptr [esp+2Ch],00000003h L0006F09D: mov eax,[esp+54h] test eax,eax jbe L0006F240 mov edx,eax mov eax,[esp+24h] dec edx test eax,eax mov [esp+54h],edx jz L0006F0F6 mov eax,[esp+38h] mov edx,[esp+1Ch] mov [esp+28h],eax xor eax,eax mov ax,[ebx] mov [esp+34h],edx mov edx,[esp+10h] mov dword ptr [esp+24h],00000000h add eax,edx mov edx,[esp+50h] mov [esp+1Ch],eax imul eax,[esp+20h] add eax,edx mov [esp+38h],eax add ebx,[esi+00004868h] jmp L0006F132 L0006F0F6: mov eax,[esp+30h] mov edx,[esp+18h] mov [esp+28h],eax xor eax,eax mov ax,[ebx] mov [esp+34h],edx mov edx,[esp+10h] mov dword ptr [esp+24h],00000001h add eax,edx mov edx,[esp+50h] mov [esp+18h],eax imul eax,[esp+20h] add eax,edx mov [esp+30h],eax add ebx,[esi+00004868h] L0006F132: mov eax,[esp+48h] mov edx,[esp+34h] add eax,edx test eax,eax jl L0006F35F cmp eax,[esi+00000A34h] jge L0006F35F mov eax,[esp+18h] mov edx,[esp+48h] add eax,edx test eax,eax jl L0006F32F cmp eax,[esi+00000A34h] jge L0006F32F mov eax,[esp+1Ch] mov edx,[esp+48h] add eax,edx test eax,eax jl L0006F35F cmp eax,[esi+00000A34h] jge L0006F35F mov ecx,[esp+14h] mov eax,[esp+2Ch] inc ecx inc eax mov [esp+2Ch],eax mov eax,[esp+28h] push eax push edi push esi mov [esp+20h],ecx call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov edx,[esp+28h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+4Ch] mov edx,[esp+14h] mov [esp+3Ch],eax fild dword ptr [esp+3Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] cmp [esp+2Ch],ecx jbe L0006F09D L0006F240: cmp edx,ecx mov eax,[esi+000005D4h] jz L0006F268 sub ecx,edx mov edi,eax shr edi,02h imul ecx,edi shl ecx,1 test edx,edx jnz L0006F25B inc ecx L0006F25B: mov edi,[ebp+08h] neg ecx shl ecx,02h add edi,ecx mov [ebp+08h],edi L0006F268: imul eax,edx mov edx,[esp+40h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+54h] test eax,eax ja L0006EFFC mov edi,[esp+30h] L0006F28D: mov edx,[esp+34h] mov ecx,[esp+48h] lea eax,[edx+ecx] test eax,eax jl L0006F34B mov edx,[esi+00000A34h] cmp eax,edx jge L0006F34B mov eax,[esp+18h] add eax,ecx test eax,eax jl L0006F34B cmp eax,edx jge L0006F34B mov eax,[esp+1Ch] add eax,ecx test eax,eax jl L0006F34B cmp eax,edx jge L0006F34B mov ebx,[esi+000005D4h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl ebx,02h shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+54h],ebx jc L0006F393 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0006F38F mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+54h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0006F393 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0006F393 L0006F32F: imul ecx,[esi+000005D4h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx shl edx,02h add eax,edx mov [ebp+08h],eax L0006F34B: mov dword ptr [esi+000005B0h],00000001h L0006F355: pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0006F35F: imul ecx,[esi+000005D4h] shl ecx,1 shr ecx,02h or eax,FFFFFFFFh sub eax,ecx mov ecx,[ebp+08h] shl eax,02h add ecx,eax pop edi mov [ebp+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0006F38F: mov ebx,[esp+54h] L0006F393: lea edx,[eax+ebx*4] push edi lea ebx,[eax+04h] push ebx push esi mov [ebp+08h],edx call SUB_L00040370 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebx+eax*4] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov edi,[esp+38h] mov [esp+54h],eax fild dword ptr [esp+54h] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fsub dword ptr [L000B2488] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] push edi fsub dword ptr [L000B2488] fstp dword ptr [ebp+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 fld dword ptr [ebp+00h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+00h] fld dword ptr [ebp+04h] call SUB_L000AF4EC mov [esp+54h],eax fild dword ptr [esp+54h] fadd dword ptr [L000B2484] fstp dword ptr [ebp+04h] mov eax,[esi+000005D4h] shl eax,02h shr eax,02h dec eax pop edi pop esi or eax,7F140000h pop ebp mov [ebx-04h],eax pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0006F4D0: sub esp,00000024h mov edx,[esp+2Ch] xor eax,eax mov ax,[edx] mov edx,[esp+30h] push ebx push esi mov esi,[esp+30h] mov ecx,[esi+000005D0h] mov ebx,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+08h],eax mov eax,[esp+3Ch] test eax,eax push edi mov edi,[esi+00000148h] mov [esp+14h],ecx mov [esp+20h],edi mov [esp+24h],ebx jbe L0006F83C push ebp jmp L0006F522 L0006F51E: mov eax,[esp+44h] L0006F522: cmp eax,00000444h mov dword ptr [esp+38h],00000444h ja L0006F535 mov [esp+38h],eax L0006F535: mov eax,[esi+000005D4h] imul eax,[esp+38h] lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0006F591 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L0006F58D mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0006F591 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006F591 L0006F58D: mov ecx,[esp+3Ch] L0006F591: lea eax,[eax+ebp*4] mov [edi+08h],eax mov eax,[esp+44h] add ecx,00000004h lea eax,[eax+eax*2] cmp eax,00000666h mov [esp+2Ch],ecx mov [esp+40h],ecx mov dword ptr [esp+3Ch],00000666h ja L0006F5BC mov [esp+3Ch],eax L0006F5BC: mov ebp,[esi+000005D4h] imul ebp,[esp+3Ch] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+14h],ebp jc L0006F619 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0006F615 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+14h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0006F619 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0006F619 L0006F615: mov ebp,[esp+14h] L0006F619: mov ecx,[esp+3Ch] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+30h],eax mov ebp,eax mov [ebx+08h],edx mov eax,AAAAAAABh mul ecx mov eax,[esp+38h] shr edx,1 cmp eax,edx jc L0006F643 mov [esp+38h],edx mov eax,edx L0006F643: xor edx,edx test eax,eax jbe L0006F7AC mov [esp+14h],eax L0006F651: mov eax,[esp+18h] mov ecx,[esp+10h] lea edi,[ecx+eax] lea ebx,[edi+eax] fld dword ptr [ebx+eax+04h] lea ecx,[ebx+eax] fsub dword ptr [edi+04h] mov [esp+10h],ecx fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006F792 mov eax,[esi+00000190h] inc edx test eax,eax mov [esp+20h],edx jnz L0006F6AF mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ecx+0Ch],eax L0006F6AF: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8-30h] lea eax,[esi+00000A10h] push eax push ecx mov ecx,[esp+48h] push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+1Ch],eax mov eax,[esi+000048ACh] test eax,eax jz L0006F705 mov edx,[esp+40h] push 00000003h push edx push esi call SUB_L0003E580 L0006F705: mov eax,[esp+1Ch] push edi push ebp push esi mov [esp+4Ch],eax call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ebx,[esp+10h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebp+edx*4+00h] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+20h] shr eax,02h lea ebp,[ebx+eax*4] L0006F792: dec [esp+14h] jnz L0006F651 mov edi,[esp+24h] mov ebx,[esp+28h] mov ecx,[esp+3Ch] mov eax,[esp+38h] L0006F7AC: mov ebp,[esp+44h] sub ebp,eax cmp edx,eax mov [esp+44h],ebp mov ebp,[esi+000005D4h] jz L0006F7D8 sub eax,edx imul eax,ebp lea eax,[eax+eax*2] shr eax,02h test edx,edx jnz L0006F7D0 inc eax L0006F7D0: neg eax shl eax,02h add [edi+08h],eax L0006F7D8: imul ebp,edx lea eax,[ebp+ebp*2+00h] mov ebp,[esp+2Ch] shr eax,02h dec eax or eax,7F000000h mov [ebp-04h],eax mov ebp,[esi+000005D4h] lea eax,[edx+edx*2] cmp eax,ecx jz L0006F81A sub ecx,eax mov edx,ebp shr edx,02h imul ecx,edx shl ecx,1 test eax,eax jnz L0006F80D inc ecx L0006F80D: mov edx,[ebx+08h] neg ecx shl ecx,02h add edx,ecx mov [ebx+08h],edx L0006F81A: mov ecx,[esp+30h] imul eax,ebp shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+44h] test eax,eax ja L0006F51E pop ebp L0006F83C: pop edi pop esi pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0006F850: sub esp,00000024h mov edx,[esp+2Ch] xor eax,eax mov ax,[edx] mov edx,[esp+30h] push ebx push ebp push esi mov esi,[esp+34h] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+10h],eax mov eax,[esp+40h] push edi mov edi,[esi+0000017Ch] xor ebx,ebx cmp eax,ebx mov [esp+18h],ecx mov [esp+24h],ebp mov [esp+28h],edi jbe L0006FBE4 jmp L0006F8A4 L0006F8A0: mov eax,[esp+44h] L0006F8A4: cmp eax,00000444h jbe L0006F8B6 mov ecx,00000444h mov [esp+38h],ecx jmp L0006F8BC L0006F8B6: mov [esp+38h],eax mov ecx,eax L0006F8BC: mov eax,[esi+000005D4h] imul eax,ecx lea ebx,[eax+eax*2] mov eax,[ebp+08h] shr ebx,02h mov edx,eax inc ebx mov [esp+3Ch],edx lea edx,[edx+ebx*4] cmp edx,[ebp+0Ch] jc L0006F924 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+3Ch],eax jz L0006F91A mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,eax lea ecx,[edx+ebx*4] cmp ecx,[ebp+0Ch] jc L0006F91E push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,[esp+38h] mov edx,eax jmp L0006F928 L0006F91A: mov edx,[esp+3Ch] L0006F91E: mov ecx,[esp+38h] jmp L0006F928 L0006F924: mov edx,[esp+3Ch] L0006F928: lea eax,[eax+ebx*4] mov [ebp+08h],eax lea eax,[edx+04h] mov [esp+2Ch],eax mov [esp+10h],eax mov eax,[esp+44h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+3Ch],00000666h ja L0006F953 mov [esp+3Ch],eax L0006F953: mov ebx,[esi+000005D4h] imul ebx,[esp+3Ch] mov eax,[edi+08h] shl ebx,1 shr ebx,02h mov edx,eax inc ebx mov [esp+40h],edx lea edx,[edx+ebx*4] cmp edx,[edi+0Ch] jc L0006F9BC push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+40h],eax jz L0006F9B2 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebx*4] cmp ecx,[edi+0Ch] jc L0006F9B6 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+38h] mov edx,eax jmp L0006F9C0 L0006F9B2: mov edx,[esp+40h] L0006F9B6: mov ecx,[esp+38h] jmp L0006F9C0 L0006F9BC: mov edx,[esp+40h] L0006F9C0: lea eax,[eax+ebx*4] mov ebx,[esp+3Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+30h],eax mov [esp+40h],eax mov eax,AAAAAAABh mul ebx shr edx,1 cmp ecx,edx jc L0006F9E8 mov [esp+38h],edx mov ecx,edx L0006F9E8: xor edx,edx test ecx,ecx jbe L0006FB53 mov [esp+1Ch],ecx L0006F9F6: mov eax,[esp+18h] mov ecx,[esp+14h] lea edi,[ecx+eax] lea ebx,[edi+eax] fld dword ptr [ebx+eax+04h] lea ecx,[ebx+eax] fsub dword ptr [edi+04h] mov [esp+14h],ecx fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006FB3D mov eax,[esi+00000190h] inc edx test eax,eax mov [esp+20h],edx jnz L0006FA54 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ecx+0Ch],eax L0006FA54: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8-30h] lea eax,[esi+00000A10h] push eax push ecx mov ecx,[esp+18h] push ebx push edi push ecx call [L000B463C+edx*4] mov ebp,eax mov eax,[esi+000048ACh] test eax,eax jz L0006FAA8 mov edx,[esp+10h] push 00000003h push edx push esi call SUB_L0003E580 L0006FAA8: push edi mov [esp+14h],ebp mov ebp,[esp+44h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ebx,[esp+14h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ebp,[esp+24h] shr edx,02h lea eax,[ebx+edx*4] mov edx,[esp+20h] mov [esp+40h],eax L0006FB3D: dec [esp+1Ch] jnz L0006F9F6 mov edi,[esp+28h] mov ebx,[esp+3Ch] mov ecx,[esp+38h] L0006FB53: mov eax,[esp+44h] sub eax,ecx cmp edx,ecx mov [esp+44h],eax mov eax,[esi+000005D4h] jz L0006FB7F sub ecx,edx imul ecx,eax lea ecx,[ecx+ecx*2] shr ecx,02h test edx,edx jnz L0006FB77 inc ecx L0006FB77: neg ecx shl ecx,02h add [ebp+08h],ecx L0006FB7F: imul eax,edx lea ecx,[eax+eax*2] mov eax,[esp+2Ch] shr ecx,02h dec ecx or ecx,7F000000h mov [eax-04h],ecx mov ecx,[esi+000005D4h] lea eax,[edx+edx*2] cmp eax,ebx jz L0006FBC1 sub ebx,eax mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test eax,eax jnz L0006FBB4 inc ebx L0006FBB4: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L0006FBC1: imul eax,ecx mov ecx,[esp+30h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+44h] test eax,eax ja L0006F8A0 xor ebx,ebx L0006FBE4: push 00000001h push ebp push esi call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] push ebx push edi push esi mov [ebp+0Ch],ebx mov [ebp+08h],ebx mov [ebp+04h],ebx call SUB_L000ABBE0 push 00000002h push edi call SUB_L000377C0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0006FC20: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+2Ch],eax mov eax,[esp+30h] test eax,eax mov [esp+0Ch],ecx mov [esp+10h],edi jbe L0006FF20 push ebx push ebp jmp L0006FC68 L0006FC64: mov eax,[esp+38h] L0006FC68: cmp eax,00000444h jbe L0006FC7A mov ebx,00000444h mov [esp+30h],ebx jmp L0006FC80 L0006FC7A: mov [esp+30h],eax mov ebx,eax L0006FC80: mov eax,[esi+000005D4h] imul eax,ebx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0006FCDA push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+2Ch],eax jz L0006FCD6 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0006FCDA push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006FCDA L0006FCD6: mov ecx,[esp+2Ch] L0006FCDA: add ecx,00000004h lea eax,[eax+ebp*4] xor edx,edx test ebx,ebx mov [edi+08h],eax mov [esp+24h],ecx mov ebp,ecx mov [esp+10h],edx jbe L0006FECE mov [esp+1Ch],ebx L0006FCFB: mov eax,[esp+14h] mov ecx,[esp+34h] add ecx,eax lea edx,[ecx+eax] fld dword ptr [eax+edx+04h] add eax,edx fsub dword ptr [ecx+04h] mov [esp+34h],eax fld dword ptr [edx] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ecx+04h] fld dword ptr [eax] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0006FEBC mov ebx,[esp+10h] mov eax,[esi+00000190h] inc ebx test eax,eax mov [esp+10h],ebx jnz L0006FD5F mov ebx,[esp+34h] mov eax,3F800000h mov [ecx+0Ch],eax mov [edx+0Ch],eax mov [ebx+0Ch],eax L0006FD5F: mov ebx,[esi+000001A4h] mov eax,[esi+00000A30h] lea eax,[ebx+eax*2] mov ebx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] lea eax,[ebx+eax*8-30h] lea ebx,[esi+00000A10h] push ebx mov ebx,[esp+38h] push ebx push edx push ecx push ebp call [L000B463C+eax*4] mov [esp+20h],eax mov eax,[esi+000048ACh] test eax,eax jz L0006FEB4 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L0006FEB0 cmp eax,00000002h jbe L0006FE41 cmp eax,00000003h jnz L0006FEB0 mov ebp,eax L0006FDE1: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L0006FDFF mov byte ptr [edi],FFh jmp L0006FE2C L0006FDFF: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L0006FE15 mov byte ptr [edi],00h jmp L0006FE2C L0006FE15: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+2Ch] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L0006FE2C: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0006FDE1 jmp L0006FEB0 L0006FE41: mov ebp,00000003h L0006FE46: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L0006FE64 mov byte ptr [edi],FFh jmp L0006FE9D L0006FE64: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L0006FE7A mov byte ptr [edi],00h jmp L0006FE9D L0006FE7A: fld dword ptr [esp+2Ch] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L0006FE9D: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0006FE46 L0006FEB0: mov edi,[esp+18h] L0006FEB4: mov ebx,[esp+30h] mov ebp,[esp+20h] L0006FEBC: dec [esp+1Ch] jnz L0006FCFB mov edx,[esp+10h] mov ecx,[esp+24h] L0006FECE: mov eax,[esp+38h] sub eax,ebx cmp edx,ebx mov [esp+38h],eax mov eax,[esi+000005D4h] jz L0006FEFF sub ebx,edx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test edx,edx jnz L0006FEF2 inc ebx L0006FEF2: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0006FEFF: imul eax,edx lea edx,[eax+eax*2] mov eax,[esp+38h] shr edx,02h dec edx or edx,7F000000h test eax,eax mov [ecx-04h],edx ja L0006FC64 pop ebp pop ebx L0006FF20: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0006FF30: sub esp,00000024h mov edx,[esp+2Ch] xor eax,eax mov ax,[edx] mov edx,[esp+30h] push ebx push esi mov esi,[esp+30h] mov ecx,[esi+000005D0h] mov ebx,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+08h],eax mov eax,[esp+3Ch] test eax,eax push edi mov edi,[esi+00000148h] mov [esp+14h],ecx mov [esp+20h],edi mov [esp+24h],ebx jbe L0007029C push ebp jmp L0006FF82 mov eax,[esp+44h] L0006FF82: cmp eax,00000444h mov dword ptr [esp+38h],00000444h ja L0006FF95 mov [esp+38h],eax L0006FF95: mov eax,[esi+000005D4h] imul eax,[esp+38h] lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0006FFF1 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L0006FFED mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0006FFF1 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0006FFF1 L0006FFED: mov ecx,[esp+3Ch] L0006FFF1: lea eax,[eax+ebp*4] mov [edi+08h],eax mov eax,[esp+44h] add ecx,00000004h lea eax,[eax+eax*2] cmp eax,00000666h db 89h; '%' db 4Ch; 'L' L00070008: dd 4C892C24h L0007000C: db 24h; '$' db 40h; '@' db C7h; '‡' db 44h; 'D' db 24h; '$' db 3Ch; '<' db 66h; 'f' db 06h; db 00h; db 00h; db 77h; 'w' db 04h; L00070018: dd 3C244489h db 8Bh; '<' db AEh; 'R' db D4h; '”' db 05h; db 00h; db 00h; db 0Fh; db AFh; 'ô' db 6Ch; 'l' db 24h; '$' db 3Ch; '<' db 8Bh; '<' db 43h; 'C' db 08h; db 8Bh; '<' db 53h; 'S' db 0Ch; db D1h; '‘' db E5h; '¥' db C1h; '' db EDh; '­' db 02h; db 45h; 'E' db 8Dh; '?' db 0Ch; db A8h; 'ð' db 3Bh; ';' db CAh; 'Š' db 89h; '%' db 6Ch; 'l' db 24h; '$' db 14h; db 72h; 'r' db 3Bh; ';' db 53h; 'S' db FFh; 'ï' db 53h; 'S' db 10h; db 8Bh; '<' db 4Bh; 'K' db 18h; db 8Bh; '<' db 53h; 'S' db 1Ch; db 39h; '9' db 51h; 'Q' db 74h; 't' db 8Bh; '<' db 43h; 'C' db 08h; db 74h; 't' db 25h; '%' db 89h; '%' db 51h; 'Q' db 74h; 't' db 8Bh; '<' db 53h; 'S' db 1Ch; db 52h; 'R' db 53h; 'S' db FFh; 'ï' db 53h; 'S' db 20h; ' ' db 8Bh; '<' db 43h; 'C' db 08h; db 8Bh; '<' db 6Ch; 'l' db 24h; '$' db 14h; db 8Bh; '<' db 53h; 'S' db 0Ch; db 8Dh; '?' db 0Ch; db A8h; 'ð' db 3Bh; ';' db CAh; 'Š' db 72h; 'r' db 0Dh; db 53h; 'S' db FFh; 'ï' db 53h; 'S' db 10h; db 8Bh; '<' db 43h; 'C' db 08h; db EBh; '«' db 04h; db 8Bh; '<' db 6Ch; 'l' db 24h; '$' db 14h; db 8Bh; '<' db 4Ch; 'L' db 24h; '$' db 3Ch; '<' db 8Dh; '?' db 14h; db A8h; 'ð' L00070080: db 83h; '?' db C0h; '€' db 04h; db 89h; '%' L00070084: db 44h; 'D' db 24h; '$' db 30h; '0' db 8Bh; '<' L00070088: db E8h; '¨' db 89h; '%' db 53h; 'S' db 08h; db B8h; 'ñ' db ABh; '<' db AAh; 'ò' db AAh; 'ò' db AAh; 'ò' db F7h; 'ç' db E1h; '¡' db 8Bh; '<' db 44h; 'D' db 24h; '$' db 38h; '8' db D1h; '‘' db EAh; 'ª' db 3Bh; ';' db C2h; '‚' db 72h; 'r' db 06h; db 89h; '%' db 54h; 'T' db 24h; '$' db 38h; '8' db 8Bh; '<' db C2h; '‚' db 33h; '3' db D2h; '’' db 85h; ':' db C0h; '€' db 0Fh; db 86h; 'Å' db 5Fh; '_' db 01h; db 00h; db 00h; db 89h; '%' db 44h; 'D' db 24h; '$' db 14h; db 8Bh; '<' db 44h; 'D' db 24h; '$' db 18h; db 8Bh; '<' db 4Ch; 'L' db 24h; '$' db 10h; db 8Dh; '?' db 3Ch; '<' db 01h; db 8Dh; '?' db 1Ch; db 07h; db D9h; '™' db 44h; 'D' db 03h; db 04h; db 8Dh; '?' db 0Ch; db 03h; db D8h; '˜' db 67h; 'g' db 04h; db 89h; '%' db 4Ch; 'L' db 24h; '$' db 10h; db D9h; '™' db 03h; db D8h; '˜' db 27h; ''' db DEh; 'ž' db C9h; '‰' db D9h; '™' db 43h; 'C' db 04h; db D8h; '˜' db 67h; 'g' db 04h; db D9h; '™' db 01h; db D8h; '˜' db 27h; ''' db DEh; 'ž' db C9h; '‰' db DEh; 'ž' db E9h; '©' db D8h; '˜' db 1Dh; dd L000B23F0 db DFh; 'Ÿ' db E0h; ' ' db F6h; 'æ' db C4h; '„' db 01h; db 0Fh; db 84h; '"' db 00h; db 01h; db 00h; db 00h; db 8Bh; '<' db 86h; 'Å' db 90h; '?' db 01h; db 00h; db 00h; db 42h; 'B' db 85h; ':' db C0h; '€' db 89h; '%' db 54h; 'T' db 24h; '$' db 20h; ' ' db 75h; 'u' db 0Eh; db B8h; 'ñ' db 00h; db 00h; db 80h; '?' db 3Fh; '?' db 89h; '%' db 47h; 'G' db 0Ch; db 89h; '%' db 43h; 'C' db 0Ch; db 89h; '%' db 41h; 'A' db 0Ch; db 8Bh; '<' db 96h; '-' db 30h; '0' db 0Ah; db 00h; db 00h; db 8Bh; '<' db 86h; 'Å' db A4h; 'ý' db 01h; db 00h; db 00h; db 8Dh; '?' db 04h; db 50h; 'P' db 8Dh; '?' db 14h; db 40h; '@' db 8Bh; '<' db 86h; 'Å' db 0Ch; db 0Ah; db 00h; db 00h; db 8Dh; '?' db 14h; db 50h; 'P' db 8Bh; '<' db 86h; 'Å' db 08h; db 0Ah; db 00h; db 00h; db 8Dh; '?' db 54h; 'T' db D0h; '' db D0h; '' db 8Dh; '?' db 86h; 'Å' db 10h; db 0Ah; db 00h; db 00h; db 50h; 'P' db 51h; 'Q' db 8Bh; '<' db 4Ch; 'L' db 24h; '$' db 48h; 'H' db 53h; 'S' db 57h; 'W' db 51h; 'Q' db FFh; 'ï' db 14h; db 95h; dd L000B463C db 89h; '%' db 44h; 'D' db 24h; '$' db 1Ch; db 8Bh; '<' db 86h; 'Å' db ACh; '¿' db 48h; 'H' db 00h; db 00h; db 85h; ':' db C0h; '€' db 74h; 't' db 0Dh; db 8Bh; '<' db 54h; 'T' db 24h; '$' db 40h; '@' db 6Ah; 'j' db 03h; db 52h; 'R' db 56h; 'V' db E8h; '¨' db 1Bh; db E4h; '¤' db FCh; 'ì' db FFh; 'ï' db 8Bh; '<' db 44h; 'D' db 24h; '$' db 1Ch; db 57h; 'W' db 55h; 'U' db 56h; 'V' db 89h; '%' db 44h; 'D' db 24h; '$' db 4Ch; 'L' db E8h; '¨' db FBh; 'ë' db 01h; db FDh; 'í' db FFh; 'ï' db 8Bh; '<' db 8Eh; '?' db D4h; '”' db 05h; db 00h; db 00h; db C1h; '' db E9h; '©' db 02h; db 53h; 'S' db 8Dh; '?' db 6Ch; 'l' db 8Dh; '?' db 00h; db 55h; 'U' db 56h; 'V' db E8h; '¨' db E6h; '¦' db 01h; db FDh; 'í' db FFh; 'ï' db 8Bh; '<' db 96h; '-' db D4h; '”' db 05h; db 00h; db 00h; db C1h; '' db EAh; 'ª' db 02h; db 53h; 'S' db 8Dh; '?' db 6Ch; 'l' db 95h; db 00h; db 55h; 'U' db 56h; 'V' db E8h; '¨' db D1h; '‘' db 01h; db FDh; 'í' db FFh; 'ï' db 8Bh; '<' db 86h; 'Å' db D4h; '”' db 05h; db 00h; db 00h; db 8Bh; '<' db 5Ch; '\' db 24h; '$' db 10h; db C1h; '' db E8h; '¨' db 02h; db 53h; 'S' db 8Dh; '?' db 6Ch; 'l' db 85h; ':' db 00h; db 55h; 'U' db 56h; 'V' db E8h; '¨' db B8h; 'ñ' db 01h; db FDh; 'í' db FFh; 'ï' db 8Bh; '<' db 8Eh; '?' db D4h; '”' db 05h; db 00h; db 00h; db C1h; '' db E9h; '©' db 02h; db 53h; 'S' db 8Dh; '?' db 6Ch; 'l' db 8Dh; '?' db 00h; db 55h; 'U' db 56h; 'V' db E8h; '¨' db A3h; '?' db 01h; db FDh; 'í' db FFh; 'ï' db 8Bh; '<' db 96h; '-' db D4h; '”' db 05h; db 00h; db 00h; db C1h; '' db EAh; 'ª' db 02h; db 57h; 'W' db 8Dh; '?' db 5Ch; '\' db 95h; db 00h; db 53h; 'S' db 56h; 'V' db E8h; '¨' db 8Eh; '?' db 01h; db FDh; 'í' db FFh; 'ï' db 8Bh; '<' db 86h; 'Å' db D4h; '”' db 05h; db 00h; db 00h; db 8Bh; '<' db 54h; 'T' db 24h; '$' db 20h; ' ' db C1h; '' db E8h; '¨' db 02h; db 8Dh; '?' db 2Ch; ',' db 83h; '?' db FFh; 'ï' db 4Ch; 'L' db 24h; '$' db 14h; db 0Fh; db 85h; ':' db B5h; 'ç' db FEh; 'î' db FFh; 'ï' db FFh; 'ï' db 8Bh; '<' db 7Ch; '|' db 24h; '$' db 24h; '$' db 8Bh; '<' db 5Ch; '\' db 24h; '$' db 28h; '(' db 8Bh; '<' db 4Ch; 'L' db 24h; '$' db 3Ch; '<' db 8Bh; '<' db 44h; 'D' db 24h; '$' db 38h; '8' db 8Bh; '<' db 6Ch; 'l' db 24h; '$' db 44h; 'D' db 2Bh; '+' db E8h; '¨' db 3Bh; ';' db D0h; '' db 89h; '%' db 6Ch; 'l' db 24h; '$' db 44h; 'D' db 8Bh; '<' db AEh; 'R' db D4h; '”' db 05h; db 00h; db 00h; db 74h; 't' db 18h; db 2Bh; '+' db C2h; '‚' db 0Fh; db AFh; 'ô' db C5h; '…' db 8Dh; '?' db 04h; db 40h; '@' db C1h; '' db E8h; '¨' db 02h; db 85h; ':' db D2h; '’' db 75h; 'u' db 01h; db 40h; '@' db F7h; 'ç' db D8h; '˜' db C1h; '' db E0h; ' ' db 02h; db 01h; db 47h; 'G' db 08h; db 0Fh; db AFh; 'ô' db EAh; 'ª' db 8Dh; '?' db 44h; 'D' db 6Dh; 'm' db 00h; db 8Bh; '<' db 6Ch; 'l' db 24h; '$' db 2Ch; ',' db C1h; '' db E8h; '¨' db 02h; db 48h; 'H' db 0Dh; db 00h; db 00h; db 00h; db 7Fh; '' db 89h; '%' db 45h; 'E' db FCh; 'ì' db 8Bh; '<' db AEh; 'R' db D4h; '”' db 05h; db 00h; db 00h; db 8Dh; '?' db 04h; db 52h; 'R' db 3Bh; ';' db C1h; '' db 74h; 't' db 1Eh; db 2Bh; '+' db C8h; 'ˆ' db 8Bh; '<' db D5h; '•' db C1h; '' db EAh; 'ª' db 02h; db 0Fh; db AFh; 'ô' db CAh; 'Š' db D1h; '‘' db E1h; '¡' db 85h; ':' db C0h; '€' db 75h; 'u' db 01h; db 41h; 'A' db 8Bh; '<' db 53h; 'S' db 08h; db F7h; 'ç' db D9h; '™' db C1h; '' db E1h; '¡' db 02h; db 03h; db D1h; '‘' db 89h; '%' db 53h; 'S' db 08h; db 8Bh; '<' db 4Ch; 'L' db 24h; '$' db 30h; '0' db 0Fh; db AFh; 'ô' db C5h; '…' db D1h; '‘' db E0h; ' ' db C1h; '' db E8h; '¨' db 02h; db 48h; 'H' db 0Dh; db 00h; db 00h; db 14h; db 7Fh; '' db 89h; '%' db 41h; 'A' db FCh; 'ì' db 8Bh; '<' db 44h; 'D' db 24h; '$' db 44h; 'D' db 85h; ':' db C0h; '€' db 0Fh; db 87h; 'Ø' db E3h; '£' db FCh; 'ì' db FFh; 'ï' db FFh; 'ï' db 5Dh; ']' L0007029C: pop edi pop esi pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000702B0: sub esp,00000024h mov edx,[esp+2Ch] xor eax,eax mov ax,[edx] mov edx,[esp+30h] push ebx push ebp push esi mov esi,[esp+34h] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+10h],eax mov eax,[esp+40h] push edi mov edi,[esi+0000017Ch] xor ebx,ebx cmp eax,ebx mov [esp+18h],ecx mov [esp+24h],ebp mov [esp+28h],edi jbe L00070644 jmp L00070304 L00070300: mov eax,[esp+44h] L00070304: cmp eax,00000444h jbe L00070316 mov ecx,00000444h mov [esp+38h],ecx jmp L0007031C L00070316: mov [esp+38h],eax mov ecx,eax L0007031C: mov eax,[esi+000005D4h] imul eax,ecx lea ebx,[eax+eax*2] mov eax,[ebp+08h] shr ebx,02h mov edx,eax inc ebx mov [esp+3Ch],edx lea edx,[edx+ebx*4] cmp edx,[ebp+0Ch] jc L00070384 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+3Ch],eax jz L0007037A mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,eax lea ecx,[edx+ebx*4] cmp ecx,[ebp+0Ch] jc L0007037E push ebp call [ebp+10h] mov eax,[ebp+08h] mov ecx,[esp+38h] mov edx,eax jmp L00070388 L0007037A: mov edx,[esp+3Ch] L0007037E: mov ecx,[esp+38h] jmp L00070388 L00070384: mov edx,[esp+3Ch] L00070388: lea eax,[eax+ebx*4] mov [ebp+08h],eax lea eax,[edx+04h] mov [esp+2Ch],eax mov [esp+10h],eax mov eax,[esp+44h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+3Ch],00000666h ja L000703B3 mov [esp+3Ch],eax L000703B3: mov ebx,[esi+000005D4h] imul ebx,[esp+3Ch] mov eax,[edi+08h] shl ebx,1 shr ebx,02h mov edx,eax inc ebx mov [esp+40h],edx lea edx,[edx+ebx*4] cmp edx,[edi+0Ch] jc L0007041C push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+40h],eax jz L00070412 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebx*4] cmp ecx,[edi+0Ch] jc L00070416 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+38h] mov edx,eax jmp L00070420 L00070412: mov edx,[esp+40h] L00070416: mov ecx,[esp+38h] jmp L00070420 L0007041C: mov edx,[esp+40h] L00070420: lea eax,[eax+ebx*4] mov ebx,[esp+3Ch] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+30h],eax mov [esp+40h],eax mov eax,AAAAAAABh mul ebx shr edx,1 cmp ecx,edx jc L00070448 mov [esp+38h],edx mov ecx,edx L00070448: xor edx,edx test ecx,ecx jbe L000705B3 mov [esp+1Ch],ecx L00070456: mov eax,[esp+18h] mov ecx,[esp+14h] lea edi,[ecx+eax] lea ebx,[edi+eax] fld dword ptr [ebx+eax+04h] lea ecx,[ebx+eax] fsub dword ptr [edi+04h] mov [esp+14h],ecx fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007059D mov eax,[esi+00000190h] inc edx test eax,eax mov [esp+20h],edx jnz L000704B4 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ecx+0Ch],eax L000704B4: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8-30h] lea eax,[esi+00000A10h] push eax push ecx mov ecx,[esp+18h] push ebx push edi push ecx call [L000B463C+edx*4] mov ebp,eax mov eax,[esi+000048ACh] test eax,eax jz L00070508 mov edx,[esp+10h] push 00000003h push edx push esi call SUB_L0003E580 L00070508: push edi mov [esp+14h],ebp mov ebp,[esp+44h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ebx,[esp+14h] shr edx,02h push ebx lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebp+ecx*4+00h] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ebp,[esp+24h] shr edx,02h lea eax,[ebx+edx*4] mov edx,[esp+20h] mov [esp+40h],eax L0007059D: dec [esp+1Ch] jnz L00070456 mov edi,[esp+28h] mov ebx,[esp+3Ch] mov ecx,[esp+38h] L000705B3: mov eax,[esp+44h] sub eax,ecx cmp edx,ecx mov [esp+44h],eax mov eax,[esi+000005D4h] jz L000705DF sub ecx,edx imul ecx,eax lea ecx,[ecx+ecx*2] shr ecx,02h test edx,edx jnz L000705D7 inc ecx L000705D7: neg ecx shl ecx,02h add [ebp+08h],ecx L000705DF: imul eax,edx lea ecx,[eax+eax*2] mov eax,[esp+2Ch] shr ecx,02h dec ecx or ecx,7F000000h mov [eax-04h],ecx mov ecx,[esi+000005D4h] lea eax,[edx+edx*2] cmp eax,ebx jz L00070621 sub ebx,eax mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test eax,eax jnz L00070614 inc ebx L00070614: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L00070621: imul eax,ecx mov ecx,[esp+30h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+44h] test eax,eax ja L00070300 xor ebx,ebx L00070644: push 00000001h push ebp push esi call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] push ebx push edi push esi mov [ebp+0Ch],ebx mov [ebp+08h],ebx mov [ebp+04h],ebx call SUB_L000ABBE0 push 00000002h push edi call SUB_L000377C0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00070680: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+2Ch],eax mov eax,[esp+30h] test eax,eax mov [esp+0Ch],ecx mov [esp+10h],edi jbe L00070980 push ebx push ebp jmp L000706C8 L000706C4: mov eax,[esp+38h] L000706C8: cmp eax,00000444h jbe L000706DA mov ebx,00000444h mov [esp+30h],ebx jmp L000706E0 L000706DA: mov [esp+30h],eax mov ebx,eax L000706E0: mov eax,[esi+000005D4h] imul eax,ebx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0007073A push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] L00070707: cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+2Ch],eax jz L00070736 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0007073A push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0007073A L00070736: mov ecx,[esp+2Ch] L0007073A: add ecx,00000004h lea eax,[eax+ebp*4] xor edx,edx test ebx,ebx mov [edi+08h],eax mov [esp+24h],ecx mov ebp,ecx mov [esp+10h],edx jbe L0007092E mov [esp+1Ch],ebx L0007075B: mov eax,[esp+14h] mov ecx,[esp+34h] add ecx,eax lea edx,[ecx+eax] fld dword ptr [eax+edx+04h] add eax,edx fsub dword ptr [ecx+04h] mov [esp+34h],eax fld dword ptr [edx] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ecx+04h] fld dword ptr [eax] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007091C mov ebx,[esp+10h] mov eax,[esi+00000190h] inc ebx test eax,eax mov [esp+10h],ebx jnz L000707BF mov ebx,[esp+34h] mov eax,3F800000h mov [ecx+0Ch],eax mov [edx+0Ch],eax mov [ebx+0Ch],eax L000707BF: mov ebx,[esi+000001A4h] mov eax,[esi+00000A30h] lea eax,[ebx+eax*2] mov ebx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] lea eax,[ebx+eax*8-30h] lea ebx,[esi+00000A10h] push ebx mov ebx,[esp+38h] push ebx push edx push ecx push ebp call [L000B463C+eax*4] mov [esp+20h],eax mov eax,[esi+000048ACh] test eax,eax jz L00070914 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L00070910 cmp eax,00000002h jbe L000708A1 cmp eax,00000003h jnz L00070910 mov ebp,eax L00070841: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L0007085F mov byte ptr [edi],FFh jmp L0007088C L0007085F: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L00070875 mov byte ptr [edi],00h jmp L0007088C L00070875: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+2Ch] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L0007088C: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L00070841 jmp L00070910 L000708A1: mov ebp,00000003h L000708A6: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L000708C4 mov byte ptr [edi],FFh jmp L000708FD L000708C4: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L000708DA mov byte ptr [edi],00h jmp L000708FD L000708DA: fld dword ptr [esp+2Ch] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L000708FD: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L000708A6 L00070910: mov edi,[esp+18h] L00070914: mov ebx,[esp+30h] mov ebp,[esp+20h] L0007091C: dec [esp+1Ch] jnz L0007075B mov edx,[esp+10h] mov ecx,[esp+24h] L0007092E: mov eax,[esp+38h] sub eax,ebx cmp edx,ebx mov [esp+38h],eax mov eax,[esi+000005D4h] jz L0007095F sub ebx,edx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test edx,edx jnz L00070952 inc ebx L00070952: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0007095F: imul eax,edx lea edx,[eax+eax*2] mov eax,[esp+38h] shr edx,02h dec edx or edx,7F000000h test eax,eax mov [ecx-04h],edx ja L000706C4 pop ebp pop ebx L00070980: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00070990: sub esp,00000024h mov edx,[esp+2Ch] xor eax,eax mov ax,[edx] mov edx,[esp+30h] push ebx push esi mov esi,[esp+30h] mov ecx,[esi+000005D0h] mov ebx,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+08h],eax mov eax,[esp+3Ch] test eax,eax push edi mov edi,[esi+00000148h] mov [esp+14h],ecx mov [esp+20h],edi mov [esp+1Ch],ebx jbe L00070CD4 push ebp jmp L000709E2 L000709DE: mov eax,[esp+44h] L000709E2: cmp eax,00000444h mov dword ptr [esp+38h],00000444h ja L000709F5 mov [esp+38h],eax L000709F5: mov eax,[esi+000005D4h] imul eax,[esp+38h] lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L00070A51 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L00070A4D mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L00070A51 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00070A51 L00070A4D: mov ecx,[esp+3Ch] L00070A51: lea eax,[eax+ebp*4] mov [edi+08h],eax mov eax,[esp+44h] add ecx,00000004h lea eax,[eax+eax*2] cmp eax,00000666h mov [esp+2Ch],ecx mov [esp+40h],ecx mov dword ptr [esp+3Ch],00000666h ja L00070A7C mov [esp+3Ch],eax L00070A7C: mov ebp,[esi+000005D4h] imul ebp,[esp+3Ch] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+14h],ebp jc L00070AD9 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00070AD5 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+14h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00070AD9 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00070AD9 L00070AD5: mov ebp,[esp+14h] L00070AD9: mov ecx,[esp+3Ch] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+30h],eax mov ebp,eax mov [ebx+08h],edx mov eax,AAAAAAABh mul ecx mov eax,[esp+38h] shr edx,1 cmp eax,edx jc L00070B03 mov [esp+38h],edx mov eax,edx L00070B03: xor edx,edx test eax,eax jbe L00070C44 mov [esp+14h],eax mov [esp+28h],eax L00070B15: mov eax,[esp+18h] mov ecx,[esp+10h] lea edi,[ecx+eax] lea ebx,[edi+eax] mov edx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[ebx+edx] mov [esp+10h],ecx jnz L00070B44 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ecx+0Ch],eax L00070B44: mov edx,[esi+000001A4h] mov eax,[esi+00000A30h] lea eax,[edx+eax*2] mov edx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] lea edx,[edx+eax*8-30h] lea eax,[esi+00000A10h] push eax mov eax,[esp+44h] push ecx push ebx push edi push eax call [L000B463C+edx*4] mov [esp+1Ch],eax mov eax,[esi+000048ACh] test eax,eax jz L00070B9A mov ecx,[esp+40h] push 00000003h push ecx push esi call SUB_L0003E580 L00070B9A: mov edx,[esp+1Ch] push edi push ebp push esi mov [esp+4Ch],edx call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebp+edx*4+00h] mov ebp,[esp+10h] push ebp push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h dec eax lea ebp,[ebx+edx*4] mov [esp+14h],eax jnz L00070B15 mov ebx,[esp+20h] mov edi,[esp+24h] mov edx,[esp+28h] mov ecx,[esp+3Ch] mov eax,[esp+38h] L00070C44: mov ebp,[esp+44h] sub ebp,eax cmp edx,eax mov [esp+44h],ebp mov ebp,[esi+000005D4h] jz L00070C70 sub eax,edx imul eax,ebp lea eax,[eax+eax*2] shr eax,02h test edx,edx jnz L00070C68 inc eax L00070C68: neg eax shl eax,02h add [edi+08h],eax L00070C70: imul ebp,edx lea eax,[ebp+ebp*2+00h] mov ebp,[esp+2Ch] shr eax,02h dec eax or eax,7F000000h mov [ebp-04h],eax mov ebp,[esi+000005D4h] lea eax,[edx+edx*2] cmp eax,ecx jz L00070CB2 sub ecx,eax mov edx,ebp shr edx,02h imul ecx,edx shl ecx,1 test eax,eax jnz L00070CA5 inc ecx L00070CA5: mov edx,[ebx+08h] neg ecx shl ecx,02h add edx,ecx mov [ebx+08h],edx L00070CB2: mov ecx,[esp+30h] imul eax,ebp shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+44h] test eax,eax ja L000709DE pop ebp L00070CD4: pop edi pop esi pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00070CE0: sub esp,00000024h mov edx,[esp+2Ch] xor eax,eax mov ax,[edx] mov edx,[esp+30h] push ebx push ebp push esi mov esi,[esp+34h] mov ecx,[esi+000005D0h] mov ebx,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+0Ch],eax mov eax,[esp+40h] push edi mov edi,[esi+0000017Ch] xor ebp,ebp cmp eax,ebp mov [esp+18h],ecx mov [esp+24h],ebx mov [esp+20h],edi jbe L00071025 jmp L00070D34 L00070D30: mov eax,[esp+44h] L00070D34: cmp eax,00000444h mov dword ptr [esp+38h],00000444h ja L00070D47 mov [esp+38h],eax L00070D47: mov eax,[esi+000005D4h] imul eax,[esp+38h] lea ebp,[eax+eax*2] mov eax,[ebx+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[ebx+0Ch] jc L00070DA3 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L00070D9F mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[ebx+0Ch] jc L00070DA3 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L00070DA3 L00070D9F: mov ecx,[esp+3Ch] L00070DA3: lea eax,[eax+ebp*4] mov [ebx+08h],eax mov eax,[esp+44h] add ecx,00000004h lea eax,[eax+eax*2] cmp eax,00000666h mov [esp+2Ch],ecx mov [esp+40h],ecx mov dword ptr [esp+3Ch],00000666h ja L00070DCE mov [esp+3Ch],eax L00070DCE: mov ebp,[esi+000005D4h] imul ebp,[esp+3Ch] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+14h],ebp jc L00070E2B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00070E27 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+14h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00070E2B push edi call [edi+10h] mov eax,[edi+08h] jmp L00070E2B L00070E27: mov ebp,[esp+14h] L00070E2B: mov ecx,[esp+3Ch] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+30h],eax mov ebp,eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx mov eax,[esp+38h] shr edx,1 cmp eax,edx jc L00070E55 mov [esp+38h],edx mov eax,edx L00070E55: xor edx,edx test eax,eax jbe L00070F94 mov [esp+14h],eax mov [esp+28h],eax L00070E67: mov eax,[esp+18h] mov ecx,[esp+10h] lea edi,[ecx+eax] lea ebx,[edi+eax] lea ecx,[ebx+eax] mov eax,[esi+00000190h] test eax,eax mov [esp+10h],ecx jnz L00070E94 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ecx+0Ch],eax L00070E94: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8-30h] lea eax,[esi+00000A10h] push eax mov eax,[esp+44h] push ecx push ebx push edi push eax call [L000B463C+edx*4] mov [esp+1Ch],eax mov eax,[esi+000048ACh] test eax,eax jz L00070EEA mov ecx,[esp+40h] push 00000003h push ecx push esi call SUB_L0003E580 L00070EEA: mov edx,[esp+1Ch] push edi push ebp push esi mov [esp+4Ch],edx call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebp+edx*4+00h] mov ebp,[esp+10h] push ebp push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h dec eax lea ebp,[ebx+edx*4] mov [esp+14h],eax jnz L00070E67 mov edi,[esp+20h] mov ebx,[esp+24h] mov edx,[esp+28h] mov eax,[esp+38h] mov ecx,[esp+3Ch] L00070F94: mov ebp,[esp+44h] sub ebp,eax cmp edx,eax mov [esp+44h],ebp mov ebp,[esi+000005D4h] jz L00070FC0 sub eax,edx imul eax,ebp lea eax,[eax+eax*2] shr eax,02h test edx,edx jnz L00070FB8 inc eax L00070FB8: neg eax shl eax,02h add [ebx+08h],eax L00070FC0: imul ebp,edx lea eax,[ebp+ebp*2+00h] mov ebp,[esp+2Ch] shr eax,02h dec eax or eax,7F000000h mov [ebp-04h],eax mov ebp,[esi+000005D4h] lea eax,[edx+edx*2] cmp eax,ecx jz L00071002 sub ecx,eax mov edx,ebp shr edx,02h imul ecx,edx shl ecx,1 test eax,eax jnz L00070FF5 inc ecx L00070FF5: mov edx,[edi+08h] neg ecx shl ecx,02h add edx,ecx mov [edi+08h],edx L00071002: mov ecx,[esp+30h] imul eax,ebp shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+44h] test eax,eax ja L00070D30 xor ebp,ebp L00071025: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00071060: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+2Ch],eax mov eax,[esp+30h] test eax,eax mov [esp+10h],ecx mov [esp+08h],edi jbe L0007132C push ebx push ebp jmp L000710A8 L000710A4: mov eax,[esp+38h] L000710A8: cmp eax,00000444h jbe L000710BA mov ebx,00000444h mov [esp+30h],ebx jmp L000710C0 L000710BA: mov [esp+30h],eax mov ebx,eax L000710C0: mov eax,[esi+000005D4h] imul eax,ebx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0007111A push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+2Ch],eax jz L00071116 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0007111A push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L0007111A L00071116: mov ecx,[esp+2Ch] L0007111A: add ecx,00000004h lea eax,[eax+ebp*4] mov [esp+24h],ecx mov ebp,ecx xor ecx,ecx test ebx,ebx mov [edi+08h],eax jbe L000712D6 mov [esp+14h],ebx mov [esp+20h],ebx L0007113B: mov eax,[esp+18h] mov ecx,[esp+34h] mov ebx,[esi+00000190h] add ecx,eax lea edx,[ecx+eax] add eax,edx test ebx,ebx mov [esp+34h],eax jnz L00071166 mov ebx,3F800000h mov [ecx+0Ch],ebx mov [edx+0Ch],ebx mov [eax+0Ch],ebx L00071166: mov ebx,[esi+000001A4h] mov eax,[esi+00000A30h] lea eax,[ebx+eax*2] mov ebx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] lea ebx,[ebx+eax*8-30h] lea eax,[esi+00000A10h] push eax mov eax,[esp+38h] push eax push edx push ecx push ebp call [L000B463C+ebx*4] mov [esp+1Ch],eax mov eax,[esi+000048ACh] test eax,eax jz L000712BB mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L000712B7 cmp eax,00000002h jbe L00071248 cmp eax,00000003h jnz L000712B7 mov ebp,eax L000711E8: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L00071206 mov byte ptr [edi],FFh jmp L00071233 L00071206: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L0007121C mov byte ptr [edi],00h jmp L00071233 L0007121C: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+2Ch] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L00071233: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L000711E8 jmp L000712B7 L00071248: mov ebp,00000003h L0007124D: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L0007126B mov byte ptr [edi],FFh jmp L000712A4 L0007126B: fld dword ptr [esp+2Ch] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L00071281 mov byte ptr [edi],00h jmp L000712A4 L00071281: fld dword ptr [esp+2Ch] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L000712A4: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0007124D L000712B7: mov edi,[esp+10h] L000712BB: mov eax,[esp+14h] mov ebx,[esp+30h] mov ebp,[esp+1Ch] dec eax mov [esp+14h],eax jnz L0007113B mov ecx,[esp+20h] L000712D6: mov ebp,[esp+38h] mov eax,[esi+000005D4h] sub ebp,ebx cmp ecx,ebx mov [esp+38h],ebp jz L00071307 sub ebx,ecx imul ebx,eax lea edx,[ebx+ebx*2] shr edx,02h test ecx,ecx jnz L000712FA inc edx L000712FA: mov ebx,[edi+08h] neg edx shl edx,02h add ebx,edx mov [edi+08h],ebx L00071307: imul eax,ecx lea edx,[eax+eax*2] mov eax,[esp+24h] shr edx,02h dec edx or edx,7F000000h mov [eax-04h],edx mov eax,[esp+38h] test eax,eax ja L000710A4 pop ebp pop ebx L0007132C: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00071340: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00071593 push ebx push ebp jmp L0007138F L0007138B: mov eax,[esp+30h] L0007138F: cmp eax,00000666h jbe L000713A1 mov ebp,00000666h mov [esp+34h],ebp jmp L000713A7 L000713A1: mov [esp+34h],eax mov ebp,eax L000713A7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00071402 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000713FE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00071402 push edi call [edi+10h] mov eax,[edi+08h] jmp L00071402 L000713FE: mov ebx,[esp+28h] L00071402: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00071540 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00071431: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007151E mov ecx,[esp+28h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+38h],eax inc ebx call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L0007151E: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00071431 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00071540: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00071574 sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00071567 inc ebp L00071567: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00071574: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0007138B pop ebp pop ebx L00071593: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000715A0: sub esp,00000014h push ebx push esi mov esi,[esp+20h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+18h],ebx mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] mov edx,[esp+2Ch] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+2Ch],eax jbe L000717FB push ebp jmp L000715F8 L000715F4: mov eax,[esp+30h] L000715F8: cmp eax,00000666h jbe L0007160A mov ebp,00000666h mov [esp+34h],ebp jmp L00071610 L0007160A: mov [esp+34h],eax mov ebp,eax L00071610: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+28h],ebx jc L0007166B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00071667 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007166B push edi call [edi+10h] mov eax,[edi+08h] jmp L0007166B L00071667: mov ebx,[esp+28h] L0007166B: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L000717A9 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L0007169A: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00071787 mov ecx,[esp+28h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+38h],eax inc ebx call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00071787: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L0007169A mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L000717A9: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L000717DD sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L000717D0 inc ebp L000717D0: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L000717DD: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L000715F4 pop ebp L000717FB: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00071810: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00071A63 push ebx push ebp jmp L0007185F L0007185B: mov eax,[esp+30h] L0007185F: cmp eax,00000666h jbe L00071871 mov ebp,00000666h mov [esp+34h],ebp jmp L00071877 L00071871: mov [esp+34h],eax mov ebp,eax L00071877: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L000718D2 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000718CE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000718D2 push edi call [edi+10h] mov eax,[edi+08h] jmp L000718D2 L000718CE: mov ebx,[esp+28h] L000718D2: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00071A10 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00071901: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000719EE mov ecx,[esp+28h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+38h],eax inc ebx call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L000719EE: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00071901 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00071A10: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00071A44 sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00071A37 inc ebp L00071A37: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00071A44: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0007185B pop ebp pop ebx L00071A63: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00071A70: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00071CC3 push ebx push ebp jmp L00071ABF L00071ABB: mov eax,[esp+30h] L00071ABF: cmp eax,00000666h jbe L00071AD1 mov ebp,00000666h mov [esp+34h],ebp jmp L00071AD7 L00071AD1: mov [esp+34h],eax mov ebp,eax L00071AD7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00071B32 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00071B2E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00071B32 push edi call [edi+10h] mov eax,[edi+08h] jmp L00071B32 L00071B2E: mov ebx,[esp+28h] L00071B32: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00071C70 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00071B61: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00071C4E mov ecx,[esp+28h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+38h],eax inc ebx call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00071C4E: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00071B61 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00071C70: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00071CA4 sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00071C97 inc ebp L00071C97: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00071CA4: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00071ABB pop ebp pop ebx L00071CC3: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00071CD0: sub esp,00000014h push ebx push esi mov esi,[esp+20h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+18h],ebx mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] mov edx,[esp+2Ch] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+2Ch],eax jbe L00071F2B push ebp jmp L00071D28 L00071D24: mov eax,[esp+30h] L00071D28: cmp eax,00000666h jbe L00071D3A mov ebp,00000666h mov [esp+34h],ebp jmp L00071D40 L00071D3A: mov [esp+34h],eax mov ebp,eax L00071D40: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+28h],ebx jc L00071D9B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00071D97 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00071D9B push edi call [edi+10h] mov eax,[edi+08h] jmp L00071D9B L00071D97: mov ebx,[esp+28h] L00071D9B: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00071ED9 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00071DCA: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00071EB7 mov ecx,[esp+28h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+38h],eax inc ebx call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00071EB7: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00071DCA mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00071ED9: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00071F0D sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00071F00 inc ebp L00071F00: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00071F0D: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00071D24 pop ebp L00071F2B: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00071F40: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00072193 push ebx push ebp jmp L00071F8F L00071F8B: mov eax,[esp+30h] L00071F8F: cmp eax,00000666h jbe L00071FA1 mov ebp,00000666h mov [esp+34h],ebp jmp L00071FA7 L00071FA1: mov [esp+34h],eax mov ebp,eax L00071FA7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00072002 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00071FFE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00072002 push edi call [edi+10h] mov eax,[edi+08h] jmp L00072002 L00071FFE: mov ebx,[esp+28h] L00072002: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00072140 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00072031: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007211E mov ecx,[esp+28h] push edi push edi push ecx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+38h],eax inc ebx call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L0007211E: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00072031 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00072140: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00072174 sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00072167 inc ebp L00072167: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00072174: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00071F8B pop ebp pop ebx L00072193: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000721A0: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+0Ch],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L000723C7 push ebx push ebp jmp L000721EF L000721EB: mov eax,[esp+30h] L000721EF: cmp eax,00000666h jbe L00072201 mov ebx,00000666h mov [esp+10h],ebx jmp L00072207 L00072201: mov [esp+10h],eax mov ebx,eax L00072207: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+28h],ebp jc L00072262 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007225E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00072262 push edi call [edi+10h] mov eax,[edi+08h] jmp L00072262 L0007225E: mov ebp,[esp+28h] L00072262: lea edx,[eax+ebp*4] add eax,00000004h xor ebp,ebp cmp ebx,00000002h mov ecx,ebx mov [edi+08h],edx mov [esp+20h],eax mov [esp+28h],eax mov [esp+34h],ecx jbe L00072373 mov eax,AAAAAAABh mul ebx shr edx,1 mov [esp+18h],edx L00072291: mov eax,[esp+14h] mov ecx,[esp+2Ch] lea edi,[ecx+eax] mov ecx,[esp+28h] push edi push edi lea ebx,[edi+eax] mov edx,eax push ecx lea eax,[ebx+edx] push esi mov [esp+3Ch],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+38h],eax inc ebp call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi inc ebp call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+18h] mov [esp+28h],ecx mov ecx,[esp+34h] sub ecx,00000003h inc ebp dec eax mov [esp+34h],ecx mov [esp+18h],eax jnz L00072291 mov edi,[esp+1Ch] mov eax,[esp+20h] mov ebx,[esp+10h] L00072373: mov edx,[esp+30h] sub ecx,ebx add edx,ecx cmp ebp,ebx mov ecx,[esi+000005D4h] mov [esp+30h],edx jz L000723A7 sub ebx,ebp mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test ebp,ebp jnz L0007239A inc ebx L0007239A: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L000723A7: imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L000721EB pop ebp pop ebx L000723C7: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000723D0: sub esp,00000014h push ebx push esi mov esi,[esp+20h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+1Ch],ebx mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] mov edx,[esp+2Ch] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+2Ch],eax jbe L000725FF push ebp jmp L00072428 L00072424: mov eax,[esp+30h] L00072428: cmp eax,00000666h jbe L0007243A mov ebx,00000666h mov [esp+10h],ebx jmp L00072440 L0007243A: mov [esp+10h],eax mov ebx,eax L00072440: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx mov ecx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,ecx mov [esp+28h],ebp jc L0007249B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00072497 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007249B push edi call [edi+10h] mov eax,[edi+08h] jmp L0007249B L00072497: mov ebp,[esp+28h] L0007249B: lea edx,[eax+ebp*4] add eax,00000004h xor ebp,ebp cmp ebx,00000002h mov ecx,ebx mov [edi+08h],edx mov [esp+20h],eax mov [esp+28h],eax mov [esp+34h],ecx jbe L000725AC mov eax,AAAAAAABh mul ebx shr edx,1 mov [esp+18h],edx L000724CA: mov eax,[esp+14h] mov ecx,[esp+2Ch] lea edi,[ecx+eax] mov ecx,[esp+28h] push edi push edi lea ebx,[edi+eax] mov edx,eax push ecx lea eax,[ebx+edx] push esi mov [esp+3Ch],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+38h],eax inc ebp call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi inc ebp call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+18h] mov [esp+28h],ecx mov ecx,[esp+34h] sub ecx,00000003h inc ebp dec eax mov [esp+34h],ecx mov [esp+18h],eax jnz L000724CA mov edi,[esp+1Ch] mov eax,[esp+20h] mov ebx,[esp+10h] L000725AC: mov edx,[esp+30h] sub ecx,ebx add edx,ecx cmp ebp,ebx mov ecx,[esi+000005D4h] mov [esp+30h],edx jz L000725E0 sub ebx,ebp mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test ebp,ebp jnz L000725D3 inc ebx L000725D3: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L000725E0: imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L00072424 pop ebp L000725FF: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00072620: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+0Ch],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00072847 push ebx push ebp jmp L0007266F L0007266B: mov eax,[esp+30h] L0007266F: cmp eax,00000666h jbe L00072681 mov ebx,00000666h mov [esp+10h],ebx jmp L00072687 L00072681: mov [esp+10h],eax mov ebx,eax L00072687: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+28h],ebp jc L000726E2 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000726DE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L000726E2 push edi call [edi+10h] mov eax,[edi+08h] jmp L000726E2 L000726DE: mov ebp,[esp+28h] L000726E2: lea edx,[eax+ebp*4] add eax,00000004h xor ebp,ebp cmp ebx,00000002h mov ecx,ebx mov [edi+08h],edx mov [esp+20h],eax mov [esp+28h],eax mov [esp+34h],ecx jbe L000727F3 mov eax,AAAAAAABh mul ebx shr edx,1 mov [esp+18h],edx L00072711: mov eax,[esp+14h] mov ecx,[esp+2Ch] lea edi,[ecx+eax] mov ecx,[esp+28h] push edi push edi lea ebx,[edi+eax] mov edx,eax push ecx lea eax,[ebx+edx] push esi mov [esp+3Ch],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+38h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+28h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+38h],eax inc ebp call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] push edi shr eax,02h push edx lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] push edi shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi inc ebp call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+18h] mov [esp+28h],ecx mov ecx,[esp+34h] sub ecx,00000003h inc ebp dec eax mov [esp+34h],ecx mov [esp+18h],eax jnz L00072711 mov edi,[esp+1Ch] mov eax,[esp+20h] mov ebx,[esp+10h] L000727F3: mov edx,[esp+30h] sub ecx,ebx add edx,ecx cmp ebp,ebx mov ecx,[esi+000005D4h] mov [esp+30h],edx jz L00072827 sub ebx,ebp mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test ebp,ebp jnz L0007281A inc ebx L0007281A: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L00072827: imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L0007266B pop ebp pop ebx L00072847: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00072850: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00072A9D push ebx push ebp jmp L0007289F L0007289B: mov eax,[esp+30h] L0007289F: cmp eax,00000666h jbe L000728B1 mov ebp,00000666h mov [esp+34h],ebp jmp L000728B7 L000728B1: mov [esp+34h],eax mov ebp,eax L000728B7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00072912 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007290E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00072912 push edi call [edi+10h] mov eax,[edi+08h] jmp L00072912 L0007290E: mov ebx,[esp+28h] L00072912: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00072A4A mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00072941: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00072A28 mov ecx,[esp+28h] push edi push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax inc ebx call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00072A28: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00072941 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00072A4A: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00072A7E sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00072A71 inc ebp L00072A71: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00072A7E: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0007289B pop ebp pop ebx L00072A9D: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00072AB0: sub esp,00000014h push ebx push esi mov esi,[esp+20h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+18h],ebx mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] mov edx,[esp+2Ch] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+2Ch],eax jbe L00072D05 push ebp jmp L00072B08 L00072B04: mov eax,[esp+30h] L00072B08: cmp eax,00000666h jbe L00072B1A mov ebp,00000666h mov [esp+34h],ebp jmp L00072B20 L00072B1A: mov [esp+34h],eax mov ebp,eax L00072B20: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+28h],ebx jc L00072B7B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00072B77 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00072B7B push edi call [edi+10h] mov eax,[edi+08h] jmp L00072B7B L00072B77: mov ebx,[esp+28h] L00072B7B: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00072CB3 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00072BAA: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00072C91 mov ecx,[esp+28h] push edi push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax inc ebx call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00072C91: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00072BAA mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00072CB3: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00072CE7 sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00072CDA inc ebp L00072CDA: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00072CE7: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00072B04 pop ebp L00072D05: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00072D20: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00072F6D push ebx push ebp jmp L00072D6F L00072D6B: mov eax,[esp+30h] L00072D6F: cmp eax,00000666h jbe L00072D81 mov ebp,00000666h mov [esp+34h],ebp jmp L00072D87 L00072D81: mov [esp+34h],eax mov ebp,eax L00072D87: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00072DE2 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00072DDE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00072DE2 push edi call [edi+10h] mov eax,[edi+08h] jmp L00072DE2 L00072DDE: mov ebx,[esp+28h] L00072DE2: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L00072F1A mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00072E11: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00072EF8 mov ecx,[esp+28h] push edi push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax inc ebx call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00072EF8: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00072E11 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L00072F1A: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00072F4E sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00072F41 inc ebp L00072F41: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00072F4E: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00072D6B pop ebp pop ebx L00072F6D: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00072F80: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L000731CD push ebx push ebp jmp L00072FCF L00072FCB: mov eax,[esp+30h] L00072FCF: cmp eax,00000666h jbe L00072FE1 mov ebp,00000666h mov [esp+34h],ebp jmp L00072FE7 L00072FE1: mov [esp+34h],eax mov ebp,eax L00072FE7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00073042 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007303E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00073042 push edi call [edi+10h] mov eax,[edi+08h] jmp L00073042 L0007303E: mov ebx,[esp+28h] L00073042: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L0007317A mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00073071: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00073158 mov ecx,[esp+28h] push edi push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax inc ebx call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00073158: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00073071 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L0007317A: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L000731AE sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L000731A1 inc ebp L000731A1: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L000731AE: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00072FCB pop ebp pop ebx L000731CD: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000731E0: sub esp,00000014h push ebx push esi mov esi,[esp+20h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+18h],ebx mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] mov edx,[esp+2Ch] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+2Ch],eax jbe L00073435 push ebp jmp L00073238 L00073234: mov eax,[esp+30h] L00073238: cmp eax,00000666h jbe L0007324A mov ebp,00000666h mov [esp+34h],ebp jmp L00073250 L0007324A: mov [esp+34h],eax mov ebp,eax L00073250: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+28h],ebx jc L000732AB push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000732A7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000732AB push edi call [edi+10h] mov eax,[edi+08h] jmp L000732AB L000732A7: mov ebx,[esp+28h] L000732AB: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L000733E3 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L000732DA: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000733C1 mov ecx,[esp+28h] push edi push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax inc ebx call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L000733C1: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L000732DA mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L000733E3: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L00073417 sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L0007340A inc ebp L0007340A: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00073417: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L00073234 pop ebp L00073435: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00073450: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L0007369D push ebx push ebp jmp L0007349F L0007349B: mov eax,[esp+30h] L0007349F: cmp eax,00000666h jbe L000734B1 mov ebp,00000666h mov [esp+34h],ebp jmp L000734B7 L000734B1: mov [esp+34h],eax mov ebp,eax L000734B7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+28h],ebx jc L00073512 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007350E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00073512 push edi call [edi+10h] mov eax,[edi+08h] jmp L00073512 L0007350E: mov ebx,[esp+28h] L00073512: lea edx,[eax+ebx*4] mov [edi+08h],edx lea edx,[eax+04h] xor ebx,ebx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],edx mov [esp+28h],edx mov [esp+14h],ecx jbe L0007364A mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00073541: mov eax,[esp+10h] mov edx,[esp+2Ch] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+2Ch],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00073628 mov ecx,[esp+28h] push edi push ecx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebp push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebp push eax push esi mov [esp+34h],eax inc ebx call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi inc ebx call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov [esp+28h],ecx mov ecx,[esp+14h] inc ebx L00073628: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00073541 mov edi,[esp+1Ch] mov ebp,[esp+34h] mov edx,[esp+20h] L0007364A: mov eax,[esp+30h] sub ecx,ebp add eax,ecx cmp ebx,ebp mov [esp+30h],eax mov eax,[esi+000005D4h] jz L0007367E sub ebp,ebx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test ebx,ebx jnz L00073671 inc ebp L00073671: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L0007367E: imul eax,ebx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edx-04h],eax mov eax,[esp+30h] test eax,eax ja L0007349B pop ebp pop ebx L0007369D: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000736B0: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+0Ch],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L000738D1 push ebx push ebp jmp L000736FF L000736FB: mov eax,[esp+30h] L000736FF: cmp eax,00000666h jbe L00073711 mov ebx,00000666h mov [esp+10h],ebx jmp L00073717 L00073711: mov [esp+10h],eax mov ebx,eax L00073717: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+28h],ebp jc L00073772 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007376E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00073772 push edi call [edi+10h] mov eax,[edi+08h] jmp L00073772 L0007376E: mov ebp,[esp+28h] L00073772: lea edx,[eax+ebp*4] add eax,00000004h xor ebp,ebp cmp ebx,00000002h mov ecx,ebx mov [edi+08h],edx mov [esp+20h],eax mov [esp+28h],eax mov [esp+34h],ecx jbe L0007387D mov eax,AAAAAAABh mul ebx shr edx,1 mov [esp+18h],edx L000737A1: mov eax,[esp+14h] mov ecx,[esp+2Ch] lea edi,[ecx+eax] mov ecx,[esp+28h] push edi lea ebx,[edi+eax] mov edx,eax push ecx lea eax,[ebx+edx] push esi mov [esp+38h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+34h],eax inc ebp call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi inc ebp call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+18h] mov [esp+28h],ecx mov ecx,[esp+34h] sub ecx,00000003h inc ebp dec eax mov [esp+34h],ecx mov [esp+18h],eax jnz L000737A1 mov edi,[esp+1Ch] mov eax,[esp+20h] mov ebx,[esp+10h] L0007387D: mov edx,[esp+30h] sub ecx,ebx add edx,ecx cmp ebp,ebx mov ecx,[esi+000005D4h] mov [esp+30h],edx jz L000738B1 sub ebx,ebp mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test ebp,ebp jnz L000738A4 inc ebx L000738A4: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L000738B1: imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L000736FB pop ebp pop ebx L000738D1: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000738E0: sub esp,00000014h push ebx push esi mov esi,[esp+20h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+1Ch],ebx mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+28h] mov edx,[esp+2Ch] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+2Ch],eax jbe L00073B09 push ebp jmp L00073938 L00073934: mov eax,[esp+30h] L00073938: cmp eax,00000666h jbe L0007394A mov ebx,00000666h mov [esp+10h],ebx jmp L00073950 L0007394A: mov [esp+10h],eax mov ebx,eax L00073950: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx mov ecx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,ecx mov [esp+28h],ebp jc L000739AB push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000739A7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L000739AB push edi call [edi+10h] mov eax,[edi+08h] jmp L000739AB L000739A7: mov ebp,[esp+28h] L000739AB: lea edx,[eax+ebp*4] add eax,00000004h xor ebp,ebp cmp ebx,00000002h mov ecx,ebx mov [edi+08h],edx mov [esp+20h],eax mov [esp+28h],eax mov [esp+34h],ecx jbe L00073AB6 mov eax,AAAAAAABh mul ebx shr edx,1 mov [esp+18h],edx L000739DA: mov eax,[esp+14h] mov ecx,[esp+2Ch] lea edi,[ecx+eax] mov ecx,[esp+28h] push edi lea ebx,[edi+eax] mov edx,eax push ecx lea eax,[ebx+edx] push esi mov [esp+38h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+34h],eax inc ebp call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi inc ebp call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+18h] mov [esp+28h],ecx mov ecx,[esp+34h] sub ecx,00000003h inc ebp dec eax mov [esp+34h],ecx mov [esp+18h],eax jnz L000739DA mov edi,[esp+1Ch] mov eax,[esp+20h] mov ebx,[esp+10h] L00073AB6: mov edx,[esp+30h] sub ecx,ebx add edx,ecx cmp ebp,ebx mov ecx,[esi+000005D4h] mov [esp+30h],edx jz L00073AEA sub ebx,ebp mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test ebp,ebp jnz L00073ADD inc ebx L00073ADD: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L00073AEA: imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L00073934 pop ebp L00073B09: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00073B20: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+24h],eax mov eax,[esp+2Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+0Ch],ecx mov [esp+14h],edi mov [esp+28h],eax jbe L00073D41 push ebx push ebp jmp L00073B6F L00073B6B: mov eax,[esp+30h] L00073B6F: cmp eax,00000666h jbe L00073B81 mov ebx,00000666h mov [esp+10h],ebx jmp L00073B87 L00073B81: mov [esp+10h],eax mov ebx,eax L00073B87: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx mov edx,[edi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+28h],ebp jc L00073BE2 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00073BDE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+28h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00073BE2 push edi call [edi+10h] mov eax,[edi+08h] jmp L00073BE2 L00073BDE: mov ebp,[esp+28h] L00073BE2: lea edx,[eax+ebp*4] add eax,00000004h xor ebp,ebp cmp ebx,00000002h mov ecx,ebx mov [edi+08h],edx mov [esp+20h],eax mov [esp+28h],eax mov [esp+34h],ecx jbe L00073CED mov eax,AAAAAAABh mul ebx shr edx,1 mov [esp+18h],edx L00073C11: mov eax,[esp+14h] mov ecx,[esp+2Ch] lea edi,[ecx+eax] mov ecx,[esp+28h] push edi lea ebx,[edi+eax] mov edx,eax push ecx lea eax,[ebx+edx] push esi mov [esp+38h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+34h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+28h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+34h],eax inc ebp call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+28h] mov edx,[esp+2Ch] shr eax,02h push edx lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi inc ebp call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push edi lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+18h] mov [esp+28h],ecx mov ecx,[esp+34h] sub ecx,00000003h inc ebp dec eax mov [esp+34h],ecx mov [esp+18h],eax jnz L00073C11 mov edi,[esp+1Ch] mov eax,[esp+20h] mov ebx,[esp+10h] L00073CED: mov edx,[esp+30h] sub ecx,ebx add edx,ecx cmp ebp,ebx mov ecx,[esi+000005D4h] mov [esp+30h],edx jz L00073D21 sub ebx,ebp mov edx,ecx shr edx,02h imul ebx,edx shl ebx,1 test ebp,ebp jnz L00073D14 inc ebx L00073D14: mov edx,[edi+08h] neg ebx shl ebx,02h add edx,ebx mov [edi+08h],edx L00073D21: imul ecx,ebp shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+30h] test eax,eax ja L00073B6B pop ebp pop ebx L00073D41: pop edi pop esi add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00073D50: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],edi mov [esp+24h],eax jbe L000740A6 push ebx push ebp jmp L00073D9F L00073D9B: mov eax,[esp+2Ch] L00073D9F: cmp eax,00000666h jbe L00073DB1 mov ebp,00000666h mov [esp+34h],ebp jmp L00073DB7 L00073DB1: mov [esp+34h],eax mov ebp,eax L00073DB7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L00073E12 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00073E0E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00073E12 push edi call [edi+10h] mov eax,[edi+08h] jmp L00073E12 L00073E0E: mov ebx,[esp+38h] L00073E12: lea edx,[eax+ebx*4] mov [edi+08h],edx xor edx,edx cmp ebp,00000002h lea ebx,[eax+04h] mov ecx,ebp mov [esp+24h],ebx mov [esp+38h],edx mov [esp+14h],ecx jbe L00074053 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00073E41: mov eax,[esp+10h] mov edx,[esp+30h] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007402D push edi push edi push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+34h] push ebp push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] add dword ptr [esp+38h],00000003h L0007402D: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00073E41 mov edi,[esp+20h] mov ebp,[esp+34h] mov ebx,[esp+24h] mov edx,[esp+38h] L00074053: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00074087 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L0007407A inc ebp L0007407A: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00074087: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00073D9B pop ebp pop ebx L000740A6: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000740B0: sub esp,00000018h push ebx push esi mov esi,[esp+24h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+18h],ebx mov [esp+28h],edi call SUB_L000ABBE0 mov ecx,[esp+2Ch] mov edx,[esp+30h] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+2Ch],eax mov eax,[esp+34h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007440E push ebp jmp L00074108 L00074104: mov eax,[esp+2Ch] L00074108: cmp eax,00000666h jbe L0007411A mov ebp,00000666h mov [esp+34h],ebp jmp L00074120 L0007411A: mov [esp+34h],eax mov ebp,eax L00074120: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+38h],ebx jc L0007417B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00074177 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007417B push edi call [edi+10h] mov eax,[edi+08h] jmp L0007417B L00074177: mov ebx,[esp+38h] L0007417B: lea edx,[eax+ebx*4] mov [edi+08h],edx xor edx,edx cmp ebp,00000002h lea ebx,[eax+04h] mov ecx,ebp mov [esp+24h],ebx mov [esp+38h],edx mov [esp+14h],ecx jbe L000743BC mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L000741AA: mov eax,[esp+10h] mov edx,[esp+30h] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00074396 push edi push edi push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+34h] push ebp push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] add dword ptr [esp+38h],00000003h L00074396: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L000741AA mov edi,[esp+20h] mov ebp,[esp+34h] mov ebx,[esp+24h] mov edx,[esp+38h] L000743BC: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L000743F0 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000743E3 inc ebp L000743E3: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L000743F0: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00074104 pop ebp L0007440E: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00074420: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],edi mov [esp+24h],eax jbe L00074776 push ebx push ebp jmp L0007446F L0007446B: mov eax,[esp+2Ch] L0007446F: cmp eax,00000666h jbe L00074481 mov ebp,00000666h mov [esp+34h],ebp jmp L00074487 L00074481: mov [esp+34h],eax mov ebp,eax L00074487: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L000744E2 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000744DE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000744E2 push edi call [edi+10h] mov eax,[edi+08h] jmp L000744E2 L000744DE: mov ebx,[esp+38h] L000744E2: lea edx,[eax+ebx*4] mov [edi+08h],edx xor edx,edx cmp ebp,00000002h lea ebx,[eax+04h] mov ecx,ebp mov [esp+24h],ebx mov [esp+38h],edx mov [esp+14h],ecx jbe L00074723 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00074511: mov eax,[esp+10h] mov edx,[esp+30h] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000746FD push edi push edi push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+34h] push ebp push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] add dword ptr [esp+38h],00000003h L000746FD: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00074511 mov edi,[esp+20h] mov ebp,[esp+34h] mov ebx,[esp+24h] mov edx,[esp+38h] L00074723: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00074757 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L0007474A inc ebp L0007474A: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00074757: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax mov eax,[esp+2Ch] test eax,eax ja L0007446B pop ebp pop ebx L00074776: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00074780: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],edi mov [esp+24h],eax jbe L00074AD6 push ebx push ebp jmp L000747CF L000747CB: mov eax,[esp+2Ch] L000747CF: cmp eax,00000666h jbe L000747E1 mov ebp,00000666h mov [esp+34h],ebp jmp L000747E7 L000747E1: mov [esp+34h],eax mov ebp,eax L000747E7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L00074842 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007483E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00074842 push edi call [edi+10h] mov eax,[edi+08h] jmp L00074842 L0007483E: mov ebx,[esp+38h] L00074842: lea edx,[eax+ebx*4] mov [edi+08h],edx xor edx,edx cmp ebp,00000002h lea ebx,[eax+04h] mov ecx,ebp mov [esp+24h],ebx mov [esp+38h],edx mov [esp+14h],ecx jbe L00074A83 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00074871: mov eax,[esp+10h] mov edx,[esp+30h] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00074A5D push edi push edi push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+34h] push ebp push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] add dword ptr [esp+38h],00000003h L00074A5D: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00074871 mov edi,[esp+20h] mov ebp,[esp+34h] mov ebx,[esp+24h] mov edx,[esp+38h] L00074A83: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00074AB7 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00074AAA inc ebp L00074AAA: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00074AB7: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax mov eax,[esp+2Ch] test eax,eax ja L000747CB pop ebp pop ebx L00074AD6: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00074AE0: sub esp,00000018h push ebx push esi mov esi,[esp+24h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+18h],ebx mov [esp+28h],edi call SUB_L000ABBE0 mov ecx,[esp+2Ch] mov edx,[esp+30h] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+2Ch],eax mov eax,[esp+34h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L00074E3E push ebp jmp L00074B38 L00074B34: mov eax,[esp+2Ch] L00074B38: cmp eax,00000666h jbe L00074B4A mov ebp,00000666h mov [esp+34h],ebp jmp L00074B50 L00074B4A: mov [esp+34h],eax mov ebp,eax L00074B50: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+38h],ebx jc L00074BAB push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00074BA7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00074BAB push edi call [edi+10h] mov eax,[edi+08h] jmp L00074BAB L00074BA7: mov ebx,[esp+38h] L00074BAB: lea edx,[eax+ebx*4] mov [edi+08h],edx xor edx,edx cmp ebp,00000002h lea ebx,[eax+04h] mov ecx,ebp mov [esp+24h],ebx mov [esp+38h],edx mov [esp+14h],ecx jbe L00074DEC mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00074BDA: mov eax,[esp+10h] mov edx,[esp+30h] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00074DC6 push edi push edi push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+34h] push ebp push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] add dword ptr [esp+38h],00000003h L00074DC6: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00074BDA mov edi,[esp+20h] mov ebp,[esp+34h] mov ebx,[esp+24h] mov edx,[esp+38h] L00074DEC: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00074E20 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00074E13 inc ebp L00074E13: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00074E20: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00074B34 pop ebp L00074E3E: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00074E50: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],edi mov [esp+24h],eax jbe L000751A6 push ebx push ebp jmp L00074E9F L00074E9B: mov eax,[esp+2Ch] L00074E9F: cmp eax,00000666h jbe L00074EB1 mov ebp,00000666h mov [esp+34h],ebp jmp L00074EB7 L00074EB1: mov [esp+34h],eax mov ebp,eax L00074EB7: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L00074F12 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00074F0E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00074F12 push edi call [edi+10h] mov eax,[edi+08h] jmp L00074F12 L00074F0E: mov ebx,[esp+38h] L00074F12: lea edx,[eax+ebx*4] mov [edi+08h],edx xor edx,edx cmp ebp,00000002h lea ebx,[eax+04h] mov ecx,ebp mov [esp+24h],ebx mov [esp+38h],edx mov [esp+14h],ecx jbe L00075153 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00074F41: mov eax,[esp+10h] mov edx,[esp+30h] lea edi,[edx+eax] lea ebp,[edi+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [edi+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007512D push edi push edi push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+34h] push ebp push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] add dword ptr [esp+38h],00000003h L0007512D: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00074F41 mov edi,[esp+20h] mov ebp,[esp+34h] mov ebx,[esp+24h] mov edx,[esp+38h] L00075153: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00075187 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L0007517A inc ebp L0007517A: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L00075187: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00074E9B pop ebp pop ebx L000751A6: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000751B0: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+24h],eax jbe L000754D8 push ebx push ebp jmp L000751FF L000751FB: mov eax,[esp+2Ch] L000751FF: cmp eax,00000666h jbe L00075211 mov ebp,00000666h mov [esp+34h],ebp jmp L00075217 L00075211: mov [esp+34h],eax mov ebp,eax L00075217: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L00075272 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007526E mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00075272 push edi call [edi+10h] mov eax,[edi+08h] jmp L00075272 L0007526E: mov ebx,[esp+38h] L00075272: lea edx,[eax+ebx*4] add eax,00000004h mov [edi+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],eax mov ebx,eax mov [esp+38h],ecx jbe L00075484 mov eax,AAAAAAABh mul ebp shr edx,1 lea eax,[edx+edx*2] mov [esp+14h],edx mov [esp+24h],eax L000752A6: mov eax,[esp+10h] mov ecx,[esp+30h] lea edi,[ecx+eax] push edi push edi lea ebp,[edi+eax] mov edx,eax push ebx lea eax,[edx+ebp] push esi mov [esp+40h],eax call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] mov ebp,[esp+30h] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+18h],eax fild dword ptr [esp+18h] sub ecx,00000003h mov [esp+38h],ecx fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] dec [esp+14h] jnz L000752A6 mov edi,[esp+1Ch] mov eax,[esp+20h] mov edx,[esp+24h] mov ebp,[esp+34h] L00075484: mov ebx,[esp+2Ch] sub ecx,ebp add ebx,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+2Ch],ebx jz L000754B8 sub ebp,edx mov ebx,ecx shr ebx,02h imul ebp,ebx shl ebp,1 test edx,edx jnz L000754AB inc ebp L000754AB: mov ebx,[edi+08h] neg ebp shl ebp,02h add ebx,ebp mov [edi+08h],ebx L000754B8: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+2Ch] test eax,eax ja L000751FB pop ebp pop ebx L000754D8: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L000754E0: sub esp,00000018h push ebx push esi mov esi,[esp+24h] mov ebx,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+18h],ebx mov [esp+24h],edi call SUB_L000ABBE0 mov ecx,[esp+2Ch] mov edx,[esp+30h] xor eax,eax mov ax,[ecx] dec eax imul eax,ebx add eax,edx mov [esp+2Ch],eax mov eax,[esp+34h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L00075810 push ebp jmp L00075538 L00075534: mov eax,[esp+2Ch] L00075538: cmp eax,00000666h jbe L0007554A mov ebp,00000666h mov [esp+34h],ebp jmp L00075550 L0007554A: mov [esp+34h],eax mov ebp,eax L00075550: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov ecx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+38h],ebx jc L000755AB push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000755A7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000755AB push edi call [edi+10h] mov eax,[edi+08h] jmp L000755AB L000755A7: mov ebx,[esp+38h] L000755AB: lea edx,[eax+ebx*4] add eax,00000004h mov [edi+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],eax mov ebx,eax mov [esp+38h],ecx jbe L000757BD mov eax,AAAAAAABh mul ebp shr edx,1 lea eax,[edx+edx*2] mov [esp+14h],edx mov [esp+24h],eax L000755DF: mov eax,[esp+10h] mov ecx,[esp+30h] lea edi,[ecx+eax] push edi push edi lea ebp,[edi+eax] mov edx,eax push ebx lea eax,[edx+ebp] push esi mov [esp+40h],eax call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] mov ebp,[esp+30h] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+18h],eax fild dword ptr [esp+18h] sub ecx,00000003h mov [esp+38h],ecx fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] dec [esp+14h] jnz L000755DF mov edi,[esp+1Ch] mov eax,[esp+20h] mov edx,[esp+24h] mov ebp,[esp+34h] L000757BD: mov ebx,[esp+2Ch] sub ecx,ebp add ebx,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+2Ch],ebx jz L000757F1 sub ebp,edx mov ebx,ecx shr ebx,02h imul ebp,ebx shl ebp,1 test edx,edx jnz L000757E4 inc ebp L000757E4: mov ebx,[edi+08h] neg ebp shl ebp,02h add ebx,ebp mov [edi+08h],ebx L000757F1: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+2Ch] test eax,eax ja L00075534 pop ebp L00075810: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00075830: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] push edi mov edi,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],edi mov [esp+24h],eax jbe L00075B58 push ebx push ebp jmp L0007587F L0007587B: mov eax,[esp+2Ch] L0007587F: cmp eax,00000666h jbe L00075891 mov ebp,00000666h mov [esp+34h],ebp jmp L00075897 L00075891: mov [esp+34h],eax mov ebp,eax L00075897: mov ebx,[esi+000005D4h] mov eax,[edi+08h] imul ebx,ebp mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L000758F2 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000758EE mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+38h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000758F2 push edi call [edi+10h] mov eax,[edi+08h] jmp L000758F2 L000758EE: mov ebx,[esp+38h] L000758F2: lea edx,[eax+ebx*4] add eax,00000004h mov [edi+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],eax mov ebx,eax mov [esp+38h],ecx jbe L00075B04 mov eax,AAAAAAABh mul ebp shr edx,1 lea eax,[edx+edx*2] mov [esp+14h],edx mov [esp+24h],eax L00075926: mov eax,[esp+10h] mov ecx,[esp+30h] lea edi,[ecx+eax] push edi push edi lea ebp,[edi+eax] mov edx,eax push ebx lea eax,[edx+ebp] push esi mov [esp+40h],eax call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push edi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] mov ebp,[esp+30h] push edi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push edi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[esi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+18h],eax fild dword ptr [esp+18h] sub ecx,00000003h mov [esp+38h],ecx fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] dec [esp+14h] jnz L00075926 mov edi,[esp+1Ch] mov eax,[esp+20h] mov edx,[esp+24h] mov ebp,[esp+34h] L00075B04: mov ebx,[esp+2Ch] sub ecx,ebp add ebx,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+2Ch],ebx jz L00075B38 sub ebp,edx mov ebx,ecx shr ebx,02h imul ebp,ebx shl ebp,1 test edx,edx jnz L00075B2B inc ebp L00075B2B: mov ebx,[edi+08h] neg ebp shl ebp,02h add ebx,ebp mov [edi+08h],ebx L00075B38: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+2Ch] test eax,eax ja L0007587B pop ebp pop ebx L00075B58: pop edi pop esi add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ L00075B60: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebx push esi mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov ebx,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],ebx mov [esp+24h],eax jbe L00075EB0 push ebp push edi jmp L00075BAF L00075BAB: mov eax,[esp+2Ch] L00075BAF: cmp eax,00000666h jbe L00075BC1 mov ebp,00000666h mov [esp+34h],ebp jmp L00075BC7 L00075BC1: mov [esp+34h],eax mov ebp,eax L00075BC7: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+38h],edi jc L00075C22 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00075C1E mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00075C22 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00075C22 L00075C1E: mov edi,[esp+38h] L00075C22: lea edx,[eax+edi*4] mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h lea edi,[eax+04h] mov ecx,ebp mov [esp+24h],edi mov [esp+38h],edx mov [esp+14h],ecx jbe L00075E5D mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00075C51: mov eax,[esp+10h] mov edx,[esp+30h] lea ebx,[edx+eax] lea ebp,[ebx+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [ebx+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00075E37 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+30h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] add dword ptr [esp+38h],00000003h L00075E37: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00075C51 mov ebx,[esp+20h] mov ebp,[esp+34h] mov edi,[esp+24h] mov edx,[esp+38h] L00075E5D: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00075E91 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00075E84 inc ebp L00075E84: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00075E91: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00075BAB pop edi pop ebp L00075EB0: pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00075EC0: sub esp,00000018h push ebx push esi mov esi,[esp+24h] mov ebx,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebx push esi mov [esp+18h],edi mov [esp+28h],ebx call SUB_L000ABBE0 mov ecx,[esp+2Ch] mov edx,[esp+30h] xor eax,eax mov ax,[ecx] dec eax imul eax,edi add eax,edx mov [esp+2Ch],eax mov eax,[esp+34h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L00076218 push ebp jmp L00075F18 L00075F14: mov eax,[esp+2Ch] L00075F18: cmp eax,00000666h jbe L00075F2A mov ebp,00000666h mov [esp+34h],ebp jmp L00075F30 L00075F2A: mov [esp+34h],eax mov ebp,eax L00075F30: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov ecx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+38h],edi jc L00075F8B push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00075F87 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00075F8B push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00075F8B L00075F87: mov edi,[esp+38h] L00075F8B: lea edx,[eax+edi*4] mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h lea edi,[eax+04h] mov ecx,ebp mov [esp+24h],edi mov [esp+38h],edx mov [esp+14h],ecx jbe L000761C6 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00075FBA: mov eax,[esp+10h] mov edx,[esp+30h] lea ebx,[edx+eax] lea ebp,[ebx+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [ebx+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000761A0 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+30h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] add dword ptr [esp+38h],00000003h L000761A0: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00075FBA mov ebx,[esp+20h] mov ebp,[esp+34h] mov edi,[esp+24h] mov edx,[esp+38h] L000761C6: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L000761FA sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000761ED inc ebp L000761ED: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000761FA: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00075F14 pop ebp L00076218: push 00000000h push ebx push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00076230: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebx push esi mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov ebx,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],ebx mov [esp+24h],eax jbe L00076580 push ebp push edi jmp L0007627F L0007627B: mov eax,[esp+2Ch] L0007627F: cmp eax,00000666h jbe L00076291 mov ebp,00000666h mov [esp+34h],ebp jmp L00076297 L00076291: mov [esp+34h],eax mov ebp,eax L00076297: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+38h],edi jc L000762F2 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000762EE mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000762F2 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L000762F2 L000762EE: mov edi,[esp+38h] L000762F2: lea edx,[eax+edi*4] mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h lea edi,[eax+04h] mov ecx,ebp mov [esp+24h],edi mov [esp+38h],edx mov [esp+14h],ecx jbe L0007652D mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00076321: mov eax,[esp+10h] mov edx,[esp+30h] lea ebx,[edx+eax] lea ebp,[ebx+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [ebx+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00076507 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+30h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] add dword ptr [esp+38h],00000003h L00076507: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00076321 mov ebx,[esp+20h] mov ebp,[esp+34h] mov edi,[esp+24h] mov edx,[esp+38h] L0007652D: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00076561 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00076554 inc ebp L00076554: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00076561: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax mov eax,[esp+2Ch] test eax,eax ja L0007627B pop edi pop ebp L00076580: pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00076590: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebx push esi mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov ebx,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],ebx mov [esp+24h],eax jbe L000768E0 push ebp push edi jmp L000765DF L000765DB: mov eax,[esp+2Ch] L000765DF: cmp eax,00000666h jbe L000765F1 mov ebp,00000666h mov [esp+34h],ebp jmp L000765F7 L000765F1: mov [esp+34h],eax mov ebp,eax L000765F7: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+38h],edi jc L00076652 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007664E mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00076652 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00076652 L0007664E: mov edi,[esp+38h] L00076652: lea edx,[eax+edi*4] mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h lea edi,[eax+04h] mov ecx,ebp mov [esp+24h],edi mov [esp+38h],edx mov [esp+14h],ecx jbe L0007688D mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00076681: mov eax,[esp+10h] mov edx,[esp+30h] lea ebx,[edx+eax] lea ebp,[ebx+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [ebx+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00076867 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+30h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] add dword ptr [esp+38h],00000003h L00076867: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00076681 mov ebx,[esp+20h] mov ebp,[esp+34h] mov edi,[esp+24h] mov edx,[esp+38h] L0007688D: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L000768C1 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000768B4 inc ebp L000768B4: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L000768C1: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax mov eax,[esp+2Ch] test eax,eax ja L000765DB pop edi pop ebp L000768E0: pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000768F0: sub esp,00000018h push ebx push esi mov esi,[esp+24h] mov ebx,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebx push esi mov [esp+18h],edi mov [esp+28h],ebx call SUB_L000ABBE0 mov ecx,[esp+2Ch] mov edx,[esp+30h] xor eax,eax mov ax,[ecx] dec eax imul eax,edi add eax,edx mov [esp+2Ch],eax mov eax,[esp+34h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L00076C48 push ebp jmp L00076948 L00076944: mov eax,[esp+2Ch] L00076948: cmp eax,00000666h jbe L0007695A mov ebp,00000666h mov [esp+34h],ebp jmp L00076960 L0007695A: mov [esp+34h],eax mov ebp,eax L00076960: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov ecx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+38h],edi jc L000769BB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000769B7 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000769BB push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L000769BB L000769B7: mov edi,[esp+38h] L000769BB: lea edx,[eax+edi*4] mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h lea edi,[eax+04h] mov ecx,ebp mov [esp+24h],edi mov [esp+38h],edx mov [esp+14h],ecx jbe L00076BF6 mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L000769EA: mov eax,[esp+10h] mov edx,[esp+30h] lea ebx,[edx+eax] lea ebp,[ebx+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [ebx+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00076BD0 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+30h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] add dword ptr [esp+38h],00000003h L00076BD0: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L000769EA mov ebx,[esp+20h] mov ebp,[esp+34h] mov edi,[esp+24h] mov edx,[esp+38h] L00076BF6: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00076C2A sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00076C1D inc ebp L00076C1D: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00076C2A: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00076944 pop ebp L00076C48: push 00000000h push ebx push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00076C60: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebx push esi mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov ebx,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+18h],ebx mov [esp+24h],eax jbe L00076FB0 push ebp push edi jmp L00076CAF L00076CAB: mov eax,[esp+2Ch] L00076CAF: cmp eax,00000666h jbe L00076CC1 mov ebp,00000666h mov [esp+34h],ebp jmp L00076CC7 L00076CC1: mov [esp+34h],eax mov ebp,eax L00076CC7: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+38h],edi jc L00076D22 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00076D1E mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00076D22 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00076D22 L00076D1E: mov edi,[esp+38h] L00076D22: lea edx,[eax+edi*4] mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h lea edi,[eax+04h] mov ecx,ebp mov [esp+24h],edi mov [esp+38h],edx mov [esp+14h],ecx jbe L00076F5D mov eax,AAAAAAABh mul ebp shr edx,1 mov [esp+18h],edx L00076D51: mov eax,[esp+10h] mov edx,[esp+30h] lea ebx,[edx+eax] lea ebp,[ebx+eax] fld dword ptr [eax+ebp+04h] add eax,ebp fsub dword ptr [ebx+04h] mov [esp+30h],eax fld dword ptr [ebp+00h] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ebp+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00076F37 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+30h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+14h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] add dword ptr [esp+38h],00000003h L00076F37: mov eax,[esp+18h] sub ecx,00000003h dec eax mov [esp+14h],ecx mov [esp+18h],eax jnz L00076D51 mov ebx,[esp+20h] mov ebp,[esp+34h] mov edi,[esp+24h] mov edx,[esp+38h] L00076F5D: mov eax,[esp+2Ch] sub ecx,ebp add eax,ecx cmp edx,ebp mov [esp+2Ch],eax mov eax,[esi+000005D4h] jz L00076F91 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00076F84 inc ebp L00076F84: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx L00076F91: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [edi-04h],eax mov eax,[esp+2Ch] test eax,eax ja L00076CAB pop edi pop ebp L00076FB0: pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00076FC0: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebx push esi mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov ebx,[esi+0000017Ch] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],ebx mov [esp+24h],eax jbe L000772E2 push ebp push edi jmp L0007700F L0007700B: mov eax,[esp+2Ch] L0007700F: cmp eax,00000666h jbe L00077021 mov ebp,00000666h mov [esp+34h],ebp jmp L00077027 L00077021: mov [esp+34h],eax mov ebp,eax L00077027: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+38h],edi jc L00077082 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007707E mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00077082 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00077082 L0007707E: mov edi,[esp+38h] L00077082: lea edx,[eax+edi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],eax mov edi,eax mov [esp+38h],ecx jbe L0007728E mov eax,AAAAAAABh mul ebp shr edx,1 lea eax,[edx+edx*2] mov [esp+14h],edx mov [esp+24h],eax L000770B6: mov eax,[esp+10h] mov ecx,[esp+30h] lea ebx,[ecx+eax] push ebx lea ebp,[ebx+eax] mov edx,eax push edi lea eax,[edx+ebp] push esi mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] mov ebx,[esp+30h] shr ecx,02h push ebx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+18h],eax fild dword ptr [esp+18h] sub ecx,00000003h mov [esp+38h],ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] dec [esp+14h] jnz L000770B6 mov ebx,[esp+1Ch] mov eax,[esp+20h] mov edx,[esp+24h] mov ebp,[esp+34h] L0007728E: mov edi,[esp+2Ch] sub ecx,ebp add edi,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+2Ch],edi jz L000772C2 sub ebp,edx mov edi,ecx shr edi,02h imul ebp,edi shl ebp,1 test edx,edx jnz L000772B5 inc ebp L000772B5: mov edi,[ebx+08h] neg ebp shl ebp,02h add edi,ebp mov [ebx+08h],edi L000772C2: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+2Ch] test eax,eax ja L0007700B pop edi pop ebp L000772E2: pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000772F0: sub esp,00000018h push ebx push esi mov esi,[esp+24h] mov ebx,[esi+0000017Ch] push edi mov edi,[esi+000005D0h] push 00000001h push ebx push esi mov [esp+18h],edi mov [esp+24h],ebx call SUB_L000ABBE0 mov ecx,[esp+2Ch] mov edx,[esp+30h] xor eax,eax mov ax,[ecx] dec eax imul eax,edi add eax,edx mov [esp+2Ch],eax mov eax,[esp+34h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007761A push ebp jmp L00077348 L00077344: mov eax,[esp+2Ch] L00077348: cmp eax,00000666h jbe L0007735A mov ebp,00000666h mov [esp+34h],ebp jmp L00077360 L0007735A: mov [esp+34h],eax mov ebp,eax L00077360: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov ecx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+38h],edi jc L000773BB push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000773B7 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000773BB push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L000773BB L000773B7: mov edi,[esp+38h] L000773BB: lea edx,[eax+edi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],eax mov edi,eax mov [esp+38h],ecx jbe L000775C7 mov eax,AAAAAAABh mul ebp shr edx,1 lea eax,[edx+edx*2] mov [esp+14h],edx mov [esp+24h],eax L000773EF: mov eax,[esp+10h] mov ecx,[esp+30h] lea ebx,[ecx+eax] push ebx lea ebp,[ebx+eax] mov edx,eax push edi lea eax,[edx+ebp] push esi mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] mov ebx,[esp+30h] shr ecx,02h push ebx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+18h],eax fild dword ptr [esp+18h] sub ecx,00000003h mov [esp+38h],ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] dec [esp+14h] jnz L000773EF mov ebx,[esp+1Ch] mov eax,[esp+20h] mov edx,[esp+24h] mov ebp,[esp+34h] L000775C7: mov edi,[esp+2Ch] sub ecx,ebp add edi,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+2Ch],edi jz L000775FB sub ebp,edx mov edi,ecx shr edi,02h imul ebp,edi shl ebp,1 test edx,edx jnz L000775EE inc ebp L000775EE: mov edi,[ebx+08h] neg ebp shl ebp,02h add edi,ebp mov [ebx+08h],edi L000775FB: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+2Ch] test eax,eax ja L00077344 pop ebp L0007761A: push 00000000h push ebx push esi call SUB_L000ABBE0 pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00077630: sub esp,00000018h mov edx,[esp+20h] xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebx push esi mov esi,[esp+24h] mov ecx,[esi+000005D0h] mov ebx,[esi+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+28h],eax mov eax,[esp+30h] lea eax,[eax+eax*2] test eax,eax mov [esp+08h],ecx mov [esp+14h],ebx mov [esp+24h],eax jbe L00077952 push ebp push edi jmp L0007767F L0007767B: mov eax,[esp+2Ch] L0007767F: cmp eax,00000666h jbe L00077691 mov ebp,00000666h mov [esp+34h],ebp jmp L00077697 L00077691: mov [esp+34h],eax mov ebp,eax L00077697: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+38h],edi jc L000776F2 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000776EE mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+38h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000776F2 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L000776F2 L000776EE: mov edi,[esp+38h] L000776F2: lea edx,[eax+edi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+20h],eax mov edi,eax mov [esp+38h],ecx jbe L000778FE mov eax,AAAAAAABh mul ebp shr edx,1 lea eax,[edx+edx*2] mov [esp+14h],edx mov [esp+24h],eax L00077726: mov eax,[esp+10h] mov ecx,[esp+30h] lea ebx,[ecx+eax] push ebx lea ebp,[ebx+eax] mov edx,eax push edi lea eax,[edx+ebp] push esi mov [esp+3Ch],eax call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] mov ebx,[esp+30h] shr ecx,02h push ebx lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+18h],eax fild dword ptr [esp+18h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ecx,[esp+38h] mov [esp+18h],eax fild dword ptr [esp+18h] sub ecx,00000003h mov [esp+38h],ecx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] dec [esp+14h] jnz L00077726 mov ebx,[esp+1Ch] mov eax,[esp+20h] mov edx,[esp+24h] mov ebp,[esp+34h] L000778FE: mov edi,[esp+2Ch] sub ecx,ebp add edi,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+2Ch],edi jz L00077932 sub ebp,edx mov edi,ecx shr edi,02h imul ebp,edi shl ebp,1 test edx,edx jnz L00077925 inc ebp L00077925: mov edi,[ebx+08h] neg ebp shl ebp,02h add edi,ebp mov [ebx+08h],edi L00077932: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+2Ch] test eax,eax ja L0007767B pop edi pop ebp L00077952: pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00077960: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+20h],00000000h mov [esp+18h],edi mov [esp+34h],ebx jc L000779AF mov eax,[esp+4Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L000779AF: mov eax,[esp+50h] test eax,eax jbe L00077DC8 jmp L000779C1 L000779BD: mov eax,[esp+50h] L000779C1: cmp eax,00000444h jbe L000779D3 mov ecx,00000444h mov [esp+44h],ecx jmp L000779D9 L000779D3: mov [esp+44h],eax mov ecx,eax L000779D9: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00077A41 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00077A37 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00077A3B push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+44h] mov edx,eax jmp L00077A45 L00077A37: mov edx,[esp+14h] L00077A3B: mov ecx,[esp+44h] jmp L00077A45 L00077A41: mov edx,[esp+14h] L00077A45: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov eax,[esp+50h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L00077A70 mov [esp+14h],eax L00077A70: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00077AD9 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00077ACF mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00077AD3 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+44h] mov edx,eax jmp L00077ADD L00077ACF: mov edx,[esp+10h] L00077AD3: mov ecx,[esp+44h] jmp L00077ADD L00077AD9: mov edx,[esp+10h] L00077ADD: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+3Ch],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00077B05 mov [esp+44h],edx mov ecx,edx L00077B05: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+2Ch],ecx jbe L00077D00 L00077B17: mov edx,[esp+48h] mov ebx,[esp+4Ch] xor eax,eax mov ax,[edx] xor ebp,ebp mov bp,[edx+04h] xor ecx,ecx mov cx,[edx+02h] mov edx,[esp+4Ch] mov edi,eax imul edi,[esp+1Ch] add edi,ebx mov [esp+30h],ebp imul ebp,[esp+1Ch] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx add ebp,edx add dword ptr [esp+48h],00000008h mov edx,[esp+20h] add eax,edx test eax,eax jl L00077D99 mov edx,[esi+00000A34h] cmp eax,edx jge L00077D99 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00077D99 cmp ecx,edx jge L00077D99 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00077D99 cmp eax,edx jge L00077D99 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00077CDD mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L00077BEB mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00077BEB: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L00077C41 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00077C41: mov ecx,[esp+28h] mov eax,[esp+30h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+30h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+30h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx L00077CDD: mov ecx,[esp+2Ch] mov eax,[esp+10h] dec ecx mov [esp+2Ch],ecx jnz L00077B17 mov ebp,[esp+14h] mov ebx,[esp+34h] mov edi,[esp+18h] mov ecx,[esp+44h] L00077D00: mov edx,[esp+50h] sub edx,ecx cmp eax,ecx mov [esp+50h],edx mov edx,[esi+000005D4h] jz L00077D2C sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00077D24 inc ecx L00077D24: neg ecx shl ecx,02h add [edi+08h],ecx L00077D2C: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+38h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00077D6E sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00077D61 inc ebp L00077D61: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00077D6E: imul eax,ecx mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L000779BD pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00077D99: mov eax,[esi+000005D4h] imul eax,[esp+44h] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00077DC8: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00077DE0: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax mov eax,[esi+00000138h] push edi mov edi,[esi+00000148h] xor ebp,ebp cmp eax,00000004h mov [esp+20h],ebp mov [esp+18h],edi mov [esp+34h],ebx jc L00077E2F mov eax,[esp+4Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L00077E2F: mov eax,[esp+50h] cmp eax,ebp jbe L00078211 jmp L00077E41 L00077E3D: mov eax,[esp+50h] L00077E41: cmp eax,00000444h jbe L00077E53 mov ecx,00000444h mov [esp+44h],ecx jmp L00077E59 L00077E53: mov [esp+44h],eax mov ecx,eax L00077E59: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00077EC1 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00077EB7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00077EBB push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+44h] mov edx,eax jmp L00077EC5 L00077EB7: mov edx,[esp+14h] L00077EBB: mov ecx,[esp+44h] jmp L00077EC5 L00077EC1: mov edx,[esp+14h] L00077EC5: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov eax,[esp+50h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L00077EF0 mov [esp+14h],eax L00077EF0: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00077F59 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00077F4F mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00077F53 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+44h] mov edx,eax jmp L00077F5D L00077F4F: mov edx,[esp+10h] L00077F53: mov ecx,[esp+44h] jmp L00077F5D L00077F59: mov edx,[esp+10h] L00077F5D: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+3Ch],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00077F85 mov [esp+44h],edx mov ecx,edx L00077F85: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+2Ch],ecx jbe L00078180 L00077F97: mov edx,[esp+48h] mov ebx,[esp+4Ch] xor eax,eax mov ax,[edx] xor ebp,ebp mov bp,[edx+04h] xor ecx,ecx mov cx,[edx+02h] mov edx,[esp+4Ch] mov edi,eax imul edi,[esp+1Ch] add edi,ebx mov [esp+30h],ebp imul ebp,[esp+1Ch] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx add ebp,edx add dword ptr [esp+48h],00000008h mov edx,[esp+20h] add eax,edx test eax,eax jl L0007824A mov edx,[esi+00000A34h] cmp eax,edx jge L0007824A mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L0007824A cmp ecx,edx jge L0007824A mov ecx,[esp+30h] add eax,ecx test eax,eax jl L0007824A cmp eax,edx jge L0007824A fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007815D mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L0007806B mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L0007806B: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L000780C1 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L000780C1: mov ecx,[esp+28h] mov eax,[esp+30h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+30h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+30h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx L0007815D: mov ecx,[esp+2Ch] mov eax,[esp+10h] dec ecx mov [esp+2Ch],ecx jnz L00077F97 mov ebp,[esp+14h] mov ebx,[esp+34h] mov edi,[esp+18h] mov ecx,[esp+44h] L00078180: mov edx,[esp+50h] sub edx,ecx cmp eax,ecx mov [esp+50h],edx mov edx,[esi+000005D4h] jz L000781AC sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L000781A4 inc ecx L000781A4: neg ecx shl ecx,02h add [edi+08h],ecx L000781AC: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+38h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L000781EE sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L000781E1 inc ebp L000781E1: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L000781EE: imul eax,ecx mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L00077E3D xor ebp,ebp L00078211: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0007824A: mov eax,[esi+000005D4h] imul eax,[esp+44h] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00078290: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov [esp+1Ch],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+18h],00000000h mov [esp+14h],edi jc L000782D5 mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+18h],eax L000782D5: mov ebx,[esp+40h] test ebx,ebx jbe L00078694 jmp L000782E7 L000782E3: mov ebx,[esp+40h] L000782E7: cmp ebx,00000444h jbe L000782F4 mov ebx,00000444h L000782F4: mov eax,ebx imul eax,[esi+000005D4h] lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] mov [esp+10h],ebx jc L00078352 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+34h],eax jz L0007834E mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L00078352 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00078352 L0007834E: mov ecx,[esp+34h] L00078352: add ecx,00000004h xor edx,edx test ebx,ebx lea eax,[eax+ebp*4] mov [edi+08h],eax mov [esp+2Ch],ecx mov [esp+34h],ecx mov [esp+1Ch],edx mov [esp+24h],ebx jbe L000785BB L00078375: mov ecx,[esp+38h] mov ebp,[esp+20h] mov edx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+04h] xor ebx,ebx mov bx,[ecx+02h] mov ecx,eax imul ecx,ebp add ecx,edx mov [esp+28h],edi imul edi,[esp+20h] mov edx,ebx imul edx,ebp mov ebp,[esp+3Ch] add edx,ebp add edi,ebp add dword ptr [esp+38h],00000008h mov ebp,[esp+18h] add eax,ebp test eax,eax jl L00078665 mov ebp,[esi+00000A34h] cmp eax,ebp jge L00078665 mov eax,[esp+18h] add ebx,eax test ebx,ebx jl L0007864D cmp ebx,ebp jge L0007864D mov ebx,[esp+28h] add eax,ebx test eax,eax jl L00078614 cmp eax,ebp jge L00078614 fld dword ptr [edi+04h] fsub dword ptr [ecx+04h] fld dword ptr [edx] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000785A1 mov ebx,[esp+1Ch] mov eax,[esi+00000190h] inc ebx test eax,eax mov [esp+1Ch],ebx jnz L00078448 mov eax,3F800000h mov [ecx+0Ch],eax mov [edx+0Ch],eax mov [edi+0Ch],eax L00078448: mov ebx,[esi+000001A4h] mov eax,[esi+00000A30h] mov ebp,[esp+34h] lea eax,[ebx+eax*2] mov ebx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] lea eax,[ebx+eax*8-30h] lea ebx,[esi+00000A10h] push ebx push edi push edx push ecx push ebp call [L000B463C+eax*4] mov [esp+28h],eax mov eax,[esi+000048ACh] test eax,eax jz L00078599 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L00078599 cmp eax,00000002h jbe L0007852A cmp eax,00000003h jnz L00078599 mov ebp,eax L000784CA: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+34h] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L000784E8 mov byte ptr [edi],FFh jmp L00078515 L000784E8: fld dword ptr [esp+34h] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L000784FE mov byte ptr [edi],00h jmp L00078515 L000784FE: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+34h] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L00078515: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L000784CA jmp L00078599 L0007852A: mov ebp,00000003h L0007852F: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+34h] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L0007854D mov byte ptr [edi],FFh jmp L00078586 L0007854D: fld dword ptr [esp+34h] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L00078563 mov byte ptr [edi],00h jmp L00078586 L00078563: fld dword ptr [esp+34h] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L00078586: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0007852F L00078599: mov edx,[esp+28h] mov [esp+34h],edx L000785A1: dec [esp+24h] jnz L00078375 mov edi,[esp+14h] mov ecx,[esp+2Ch] mov ebx,[esp+10h] mov edx,[esp+1Ch] L000785BB: mov eax,[esp+40h] sub eax,ebx cmp edx,ebx mov [esp+40h],eax mov eax,[esi+000005D4h] jz L000785EC sub ebx,edx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test edx,edx jnz L000785DF inc ebx L000785DF: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L000785EC: imul eax,edx lea eax,[eax+eax*2] shr eax,02h dec eax or eax,7F000000h mov [ecx-04h],eax mov eax,[esp+40h] test eax,eax ja L000782E3 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00078614: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea ecx,[eax+eax*2] mov eax,[esp+14h] shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0007864D: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea eax,[eax+eax*2] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007867B L00078665: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea edx,[eax+eax*2] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007867B: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00078694: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000786A0: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+20h],00000000h mov [esp+18h],edi mov [esp+34h],ebx jc L000786EF mov eax,[esp+4Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L000786EF: mov eax,[esp+50h] test eax,eax jbe L00078B08 jmp L00078701 L000786FD: mov eax,[esp+50h] L00078701: cmp eax,00000444h jbe L00078713 mov ecx,00000444h mov [esp+44h],ecx jmp L00078719 L00078713: mov [esp+44h],eax mov ecx,eax L00078719: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00078781 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00078777 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L0007877B push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+44h] mov edx,eax jmp L00078785 L00078777: mov edx,[esp+14h] L0007877B: mov ecx,[esp+44h] jmp L00078785 L00078781: mov edx,[esp+14h] L00078785: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov eax,[esp+50h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L000787B0 mov [esp+14h],eax L000787B0: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00078819 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L0007880F mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00078813 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+44h] mov edx,eax jmp L0007881D L0007880F: mov edx,[esp+10h] L00078813: mov ecx,[esp+44h] jmp L0007881D L00078819: mov edx,[esp+10h] L0007881D: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+3Ch],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00078845 mov [esp+44h],edx mov ecx,edx L00078845: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+2Ch],ecx jbe L00078A40 L00078857: mov edx,[esp+48h] mov ebx,[esp+4Ch] xor eax,eax mov ax,[edx] xor ebp,ebp mov bp,[edx+04h] xor ecx,ecx mov cx,[edx+02h] mov edx,[esp+4Ch] mov edi,eax imul edi,[esp+1Ch] add edi,ebx mov [esp+30h],ebp imul ebp,[esp+1Ch] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx add ebp,edx add dword ptr [esp+48h],00000008h mov edx,[esp+20h] add eax,edx test eax,eax jl L00078AD9 mov edx,[esi+00000A34h] cmp eax,edx jge L00078AD9 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00078AD9 cmp ecx,edx jge L00078AD9 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00078AD9 cmp eax,edx jge L00078AD9 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00078A1D mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L0007892B mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L0007892B: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L00078981 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00078981: mov ecx,[esp+28h] mov eax,[esp+30h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+30h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+30h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx L00078A1D: mov ecx,[esp+2Ch] mov eax,[esp+10h] dec ecx mov [esp+2Ch],ecx jnz L00078857 mov ebp,[esp+14h] mov ebx,[esp+34h] mov edi,[esp+18h] mov ecx,[esp+44h] L00078A40: mov edx,[esp+50h] sub edx,ecx cmp eax,ecx mov [esp+50h],edx mov edx,[esi+000005D4h] jz L00078A6C sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00078A64 inc ecx L00078A64: neg ecx shl ecx,02h add [edi+08h],ecx L00078A6C: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+38h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00078AAE sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00078AA1 inc ebp L00078AA1: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00078AAE: imul eax,ecx mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L000786FD pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00078AD9: mov eax,[esi+000005D4h] imul eax,[esp+44h] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00078B08: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00078B20: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax mov eax,[esi+00000138h] push edi mov edi,[esi+00000148h] xor ebp,ebp cmp eax,00000004h mov [esp+20h],ebp mov [esp+18h],edi mov [esp+34h],ebx jc L00078B6F mov eax,[esp+4Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L00078B6F: mov eax,[esp+50h] cmp eax,ebp jbe L00078F51 jmp L00078B81 L00078B7D: mov eax,[esp+50h] L00078B81: cmp eax,00000444h jbe L00078B93 mov ecx,00000444h mov [esp+44h],ecx jmp L00078B99 L00078B93: mov [esp+44h],eax mov ecx,eax L00078B99: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00078C01 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00078BF7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00078BFB push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+44h] mov edx,eax jmp L00078C05 L00078BF7: mov edx,[esp+14h] L00078BFB: mov ecx,[esp+44h] jmp L00078C05 L00078C01: mov edx,[esp+14h] L00078C05: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov eax,[esp+50h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L00078C30 mov [esp+14h],eax L00078C30: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00078C99 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00078C8F mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00078C93 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+44h] mov edx,eax jmp L00078C9D L00078C8F: mov edx,[esp+10h] L00078C93: mov ecx,[esp+44h] jmp L00078C9D L00078C99: mov edx,[esp+10h] L00078C9D: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+3Ch],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00078CC5 mov [esp+44h],edx mov ecx,edx L00078CC5: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+2Ch],ecx jbe L00078EC0 L00078CD7: mov edx,[esp+48h] mov ebx,[esp+4Ch] xor eax,eax mov ax,[edx] xor ebp,ebp mov bp,[edx+04h] xor ecx,ecx mov cx,[edx+02h] mov edx,[esp+4Ch] mov edi,eax imul edi,[esp+1Ch] add edi,ebx mov [esp+30h],ebp imul ebp,[esp+1Ch] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx add ebp,edx add dword ptr [esp+48h],00000008h mov edx,[esp+20h] add eax,edx test eax,eax jl L00078F8A mov edx,[esi+00000A34h] cmp eax,edx jge L00078F8A mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00078F8A cmp ecx,edx jge L00078F8A mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00078F8A cmp eax,edx jge L00078F8A fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00078E9D mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L00078DAB mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00078DAB: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L00078E01 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00078E01: mov ecx,[esp+28h] mov eax,[esp+30h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+30h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+30h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx L00078E9D: mov ecx,[esp+2Ch] mov eax,[esp+10h] dec ecx mov [esp+2Ch],ecx jnz L00078CD7 mov ebp,[esp+14h] mov ebx,[esp+34h] mov edi,[esp+18h] mov ecx,[esp+44h] L00078EC0: mov edx,[esp+50h] sub edx,ecx cmp eax,ecx mov [esp+50h],edx mov edx,[esi+000005D4h] jz L00078EEC sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00078EE4 inc ecx L00078EE4: neg ecx shl ecx,02h add [edi+08h],ecx L00078EEC: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+38h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00078F2E sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00078F21 inc ebp L00078F21: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00078F2E: imul eax,ecx mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L00078B7D xor ebp,ebp L00078F51: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00078F8A: mov eax,[esi+000005D4h] imul eax,[esp+44h] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00078FD0: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov [esp+1Ch],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+18h],00000000h mov [esp+14h],edi jc L00079015 mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+18h],eax L00079015: mov ebx,[esp+40h] test ebx,ebx jbe L000793D4 jmp L00079027 L00079023: mov ebx,[esp+40h] L00079027: cmp ebx,00000444h jbe L00079034 mov ebx,00000444h L00079034: mov eax,ebx imul eax,[esi+000005D4h] lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] mov [esp+10h],ebx jc L00079092 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+34h],eax jz L0007908E mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L00079092 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00079092 L0007908E: mov ecx,[esp+34h] L00079092: add ecx,00000004h xor edx,edx test ebx,ebx lea eax,[eax+ebp*4] mov [edi+08h],eax mov [esp+2Ch],ecx mov [esp+34h],ecx mov [esp+1Ch],edx mov [esp+24h],ebx jbe L000792FB L000790B5: mov ecx,[esp+38h] mov ebp,[esp+20h] mov edx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+04h] xor ebx,ebx mov bx,[ecx+02h] mov ecx,eax imul ecx,ebp add ecx,edx mov [esp+28h],edi imul edi,[esp+20h] mov edx,ebx imul edx,ebp mov ebp,[esp+3Ch] add edx,ebp add edi,ebp add dword ptr [esp+38h],00000008h mov ebp,[esp+18h] add eax,ebp test eax,eax jl L000793A5 mov ebp,[esi+00000A34h] cmp eax,ebp jge L000793A5 mov eax,[esp+18h] add ebx,eax test ebx,ebx jl L0007938D cmp ebx,ebp jge L0007938D mov ebx,[esp+28h] add eax,ebx test eax,eax jl L00079354 cmp eax,ebp jge L00079354 fld dword ptr [edi+04h] fsub dword ptr [ecx+04h] fld dword ptr [edx] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000792E1 mov ebx,[esp+1Ch] mov eax,[esi+00000190h] inc ebx test eax,eax mov [esp+1Ch],ebx jnz L00079188 mov eax,3F800000h mov [ecx+0Ch],eax mov [edx+0Ch],eax mov [edi+0Ch],eax L00079188: mov ebx,[esi+000001A4h] mov eax,[esi+00000A30h] mov ebp,[esp+34h] lea eax,[ebx+eax*2] mov ebx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] lea eax,[ebx+eax*8-30h] lea ebx,[esi+00000A10h] push ebx push edi push edx push ecx push ebp call [L000B463C+eax*4] mov [esp+28h],eax mov eax,[esi+000048ACh] test eax,eax jz L000792D9 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L000792D9 cmp eax,00000002h jbe L0007926A cmp eax,00000003h jnz L000792D9 mov ebp,eax L0007920A: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+34h] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L00079228 mov byte ptr [edi],FFh jmp L00079255 L00079228: fld dword ptr [esp+34h] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L0007923E mov byte ptr [edi],00h jmp L00079255 L0007923E: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+34h] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L00079255: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0007920A jmp L000792D9 L0007926A: mov ebp,00000003h L0007926F: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+34h] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L0007928D mov byte ptr [edi],FFh jmp L000792C6 L0007928D: fld dword ptr [esp+34h] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L000792A3 mov byte ptr [edi],00h jmp L000792C6 L000792A3: fld dword ptr [esp+34h] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L000792C6: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0007926F L000792D9: mov edx,[esp+28h] mov [esp+34h],edx L000792E1: dec [esp+24h] jnz L000790B5 mov edi,[esp+14h] mov ecx,[esp+2Ch] mov ebx,[esp+10h] mov edx,[esp+1Ch] L000792FB: mov eax,[esp+40h] sub eax,ebx cmp edx,ebx mov [esp+40h],eax mov eax,[esi+000005D4h] jz L0007932C sub ebx,edx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test edx,edx jnz L0007931F inc ebx L0007931F: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0007932C: imul eax,edx lea eax,[eax+eax*2] shr eax,02h dec eax or eax,7F000000h mov [ecx-04h],eax mov eax,[esp+40h] test eax,eax ja L00079023 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00079354: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea ecx,[eax+eax*2] mov eax,[esp+14h] shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0007938D: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea eax,[eax+eax*2] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000793BB L000793A5: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea edx,[eax+eax*2] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000793BB: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000793D4: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000793E0: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+20h],00000000h mov [esp+14h],edi mov [esp+34h],ebx jc L0007942F mov eax,[esp+4Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L0007942F: mov eax,[esp+50h] test eax,eax jbe L00079816 jmp L00079441 L0007943D: mov eax,[esp+50h] L00079441: cmp eax,00000444h jbe L00079453 mov ecx,00000444h mov [esp+44h],ecx jmp L00079459 L00079453: mov [esp+44h],eax mov ecx,eax L00079459: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L000794BB push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L000794B7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L000794B1 push edi call [edi+10h] mov eax,[edi+08h] mov edx,eax L000794B1: mov ecx,[esp+44h] jmp L000794BF L000794B7: mov ecx,[esp+44h] L000794BB: mov edx,[esp+10h] L000794BF: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov eax,[esp+50h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+10h],00000666h ja L000794EA mov [esp+10h],eax L000794EA: mov ebp,[esi+000005D4h] imul ebp,[esp+10h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+18h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00079553 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L00079549 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L0007954D push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+44h] mov edx,eax jmp L00079557 L00079549: mov edx,[esp+18h] L0007954D: mov ecx,[esp+44h] jmp L00079557 L00079553: mov edx,[esp+18h] L00079557: lea eax,[eax+ebp*4] mov ebp,[esp+10h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+3Ch],eax mov [esp+18h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L0007957F mov [esp+44h],edx mov ecx,edx L0007957F: xor eax,eax test ecx,ecx mov [esp+28h],eax mov [esp+2Ch],ecx jbe L0007974E L00079591: mov edx,[esp+48h] mov ebx,[esp+4Ch] xor eax,eax mov ax,[edx] xor ebp,ebp mov bp,[edx+04h] xor ecx,ecx mov cx,[edx+02h] mov edx,[esp+4Ch] mov edi,eax imul edi,[esp+1Ch] add edi,ebx mov [esp+30h],ebp imul ebp,[esp+1Ch] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx add ebp,edx add dword ptr [esp+48h],00000008h mov edx,[esp+20h] add eax,edx test eax,eax jl L000797E7 mov edx,[esi+00000A34h] cmp eax,edx jge L000797E7 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L000797E7 cmp ecx,edx jge L000797E7 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L000797E7 cmp eax,edx jge L000797E7 mov ecx,[esp+28h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+28h],ecx jnz L00079639 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00079639: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L0007968F mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L0007968F: mov ecx,[esp+18h] mov eax,[esp+30h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+30h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+30h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h lea edx,[ebx+ecx*4] dec eax mov [esp+18h],edx mov [esp+2Ch],eax jnz L00079591 mov ebp,[esp+10h] mov ebx,[esp+34h] mov edi,[esp+14h] mov eax,[esp+28h] mov ecx,[esp+44h] L0007974E: mov edx,[esp+50h] sub edx,ecx cmp eax,ecx mov [esp+50h],edx mov edx,[esi+000005D4h] jz L0007977A sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00079772 inc ecx L00079772: neg ecx shl ecx,02h add [edi+08h],ecx L0007977A: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+38h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L000797BC sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L000797AF inc ebp L000797AF: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L000797BC: imul eax,ecx mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L0007943D pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L000797E7: mov eax,[esi+000005D4h] imul eax,[esp+44h] lea edx,[eax+eax*2] mov eax,[esp+14h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00079816: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00079820: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax mov eax,[esi+00000138h] push edi mov edi,[esi+00000148h] xor ebp,ebp cmp eax,00000004h mov [esp+20h],ebp mov [esp+14h],edi mov [esp+34h],ebx jc L0007986F mov eax,[esp+4Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L0007986F: mov eax,[esp+50h] cmp eax,ebp jbe L00079C25 jmp L00079881 L0007987D: mov eax,[esp+50h] L00079881: cmp eax,00000444h jbe L00079893 mov ecx,00000444h mov [esp+44h],ecx jmp L00079899 L00079893: mov [esp+44h],eax mov ecx,eax L00079899: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00079901 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L000798F7 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L000798FB push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+44h] mov edx,eax jmp L00079905 L000798F7: mov edx,[esp+10h] L000798FB: mov ecx,[esp+44h] jmp L00079905 L00079901: mov edx,[esp+10h] L00079905: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+38h],eax mov [esp+24h],eax mov eax,[esp+50h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+10h],00000666h ja L00079930 mov [esp+10h],eax L00079930: mov ebp,[esi+000005D4h] imul ebp,[esp+10h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+18h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00079999 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L0007998F mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00079993 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+44h] mov edx,eax jmp L0007999D L0007998F: mov edx,[esp+18h] L00079993: mov ecx,[esp+44h] jmp L0007999D L00079999: mov edx,[esp+18h] L0007999D: lea eax,[eax+ebp*4] mov ebp,[esp+10h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+3Ch],eax mov [esp+18h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L000799C5 mov [esp+44h],edx mov ecx,edx L000799C5: xor eax,eax test ecx,ecx mov [esp+28h],eax mov [esp+2Ch],ecx jbe L00079B94 L000799D7: mov edx,[esp+48h] mov ebx,[esp+4Ch] xor eax,eax mov ax,[edx] xor ebp,ebp mov bp,[edx+04h] xor ecx,ecx mov cx,[edx+02h] mov edx,[esp+4Ch] mov edi,eax imul edi,[esp+1Ch] add edi,ebx mov [esp+30h],ebp imul ebp,[esp+1Ch] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx add ebp,edx add dword ptr [esp+48h],00000008h mov edx,[esp+20h] add eax,edx test eax,eax jl L00079C5E mov edx,[esi+00000A34h] cmp eax,edx jge L00079C5E mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00079C5E cmp ecx,edx jge L00079C5E mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00079C5E cmp eax,edx jge L00079C5E mov ecx,[esp+28h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+28h],ecx jnz L00079A7F mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00079A7F: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L00079AD5 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00079AD5: mov ecx,[esp+18h] mov eax,[esp+30h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+30h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+30h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+2Ch] shr ecx,02h lea edx,[ebx+ecx*4] dec eax mov [esp+18h],edx mov [esp+2Ch],eax jnz L000799D7 mov ebp,[esp+10h] mov ebx,[esp+34h] mov edi,[esp+14h] mov eax,[esp+28h] mov ecx,[esp+44h] L00079B94: mov edx,[esp+50h] sub edx,ecx cmp eax,ecx mov [esp+50h],edx mov edx,[esi+000005D4h] jz L00079BC0 sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00079BB8 inc ecx L00079BB8: neg ecx shl ecx,02h add [edi+08h],ecx L00079BC0: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+38h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00079C02 sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00079BF5 inc ebp L00079BF5: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00079C02: imul eax,ecx mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L0007987D xor ebp,ebp L00079C25: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00079C5E: mov eax,[esi+000005D4h] imul eax,[esp+44h] lea edx,[eax+eax*2] mov eax,[esp+14h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00079CA0: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov [esp+14h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+1Ch],00000000h mov [esp+14h],edi jc L00079CE5 mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+1Ch],eax L00079CE5: mov ebx,[esp+40h] test ebx,ebx jbe L0007A07E jmp L00079CF7 L00079CF3: mov ebx,[esp+40h] L00079CF7: cmp ebx,00000444h jbe L00079D04 mov ebx,00000444h L00079D04: mov eax,ebx imul eax,[esi+000005D4h] lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] mov [esp+10h],ebx jc L00079D62 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+34h],eax jz L00079D5E mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L00079D62 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00079D62 L00079D5E: mov ecx,[esp+34h] L00079D62: add ecx,00000004h xor edx,edx test ebx,ebx lea eax,[eax+ebp*4] mov [edi+08h],eax mov [esp+2Ch],ecx mov [esp+34h],ecx mov [esp+20h],edx mov [esp+24h],ebx jbe L00079FA5 L00079D85: mov eax,[esp+38h] mov ecx,[esp+3Ch] xor edi,edi mov di,[eax] mov ebp,[esp+3Ch] xor edx,edx mov dx,[eax+04h] xor ebx,ebx mov bx,[eax+02h] mov eax,edi imul eax,[esp+18h] add eax,ecx mov [esp+28h],edx imul edx,[esp+18h] mov ecx,ebx imul ecx,[esp+18h] add ecx,ebp add edx,ebp add dword ptr [esp+38h],00000008h mov ebp,[esp+1Ch] add edi,ebp test edi,edi jl L0007A04F mov ebp,[esi+00000A34h] cmp edi,ebp jge L0007A04F mov edi,[esp+1Ch] add ebx,edi test ebx,ebx jl L0007A037 cmp ebx,ebp jge L0007A037 mov ebx,[esp+28h] add edi,ebx test edi,edi jl L00079FFE cmp edi,ebp jge L00079FFE mov ebx,[esp+20h] mov edi,[esi+00000190h] inc ebx test edi,edi mov [esp+20h],ebx jnz L00079E2D mov edi,3F800000h mov [eax+0Ch],edi mov [ecx+0Ch],edi mov [edx+0Ch],edi L00079E2D: mov ebx,[esi+000001A4h] mov edi,[esi+00000A30h] mov ebp,[esp+34h] lea edi,[ebx+edi*2] mov ebx,[esi+00000A0Ch] lea edi,[edi+edi*2] lea edi,[ebx+edi*2] mov ebx,[esi+00000A08h] lea edi,[ebx+edi*8-30h] lea ebx,[esi+00000A10h] push ebx push edx push ecx push eax push ebp call [L000B463C+edi*4] mov [esp+28h],eax mov eax,[esi+000048ACh] test eax,eax jz L00079F7E mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L00079F7E cmp eax,00000002h jbe L00079F0F cmp eax,00000003h jnz L00079F7E mov ebp,eax L00079EAF: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+34h] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L00079ECD mov byte ptr [edi],FFh jmp L00079EFA L00079ECD: fld dword ptr [esp+34h] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L00079EE3 mov byte ptr [edi],00h jmp L00079EFA L00079EE3: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+34h] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L00079EFA: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L00079EAF jmp L00079F7E L00079F0F: mov ebp,00000003h L00079F14: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+34h] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L00079F32 mov byte ptr [edi],FFh jmp L00079F6B L00079F32: fld dword ptr [esp+34h] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L00079F48 mov byte ptr [edi],00h jmp L00079F6B L00079F48: fld dword ptr [esp+34h] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L00079F6B: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L00079F14 L00079F7E: mov eax,[esp+24h] mov edx,[esp+28h] dec eax mov [esp+34h],edx mov [esp+24h],eax jnz L00079D85 mov ecx,[esp+2Ch] mov ebx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+20h] L00079FA5: mov eax,[esp+40h] sub eax,ebx cmp edx,ebx mov [esp+40h],eax mov eax,[esi+000005D4h] jz L00079FD6 sub ebx,edx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test edx,edx jnz L00079FC9 inc ebx L00079FC9: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L00079FD6: imul eax,edx lea eax,[eax+eax*2] shr eax,02h dec eax or eax,7F000000h mov [ecx-04h],eax mov eax,[esp+40h] test eax,eax ja L00079CF3 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00079FFE: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea ecx,[eax+eax*2] mov eax,[esp+14h] shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0007A037: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea eax,[eax+eax*2] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007A065 L0007A04F: mov eax,[esp+10h] imul eax,[esi+000005D4h] lea edx,[eax+eax*2] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007A065: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0007A07E: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0007A090: sub esp,00000040h push ebx push ebp push esi mov esi,[esp+50h] push edi push esi call SUB_L00036580 test eax,eax mov [esp+1Ch],eax jnz L0007A0D3 mov eax,[esp+60h] mov ecx,[esp+5Ch] mov edx,[esp+58h] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov dword ptr [esi+00000A38h],00000000h pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007A0D3: mov ecx,[esp+60h] test ecx,ecx mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+28h],eax mov [esp+18h],ebx mov [esp+44h],edi jbe L0007A673 jmp L0007A103 L0007A0FF: mov ecx,[esp+60h] L0007A103: cmp ecx,00005552h jbe L0007A116 mov eax,00005552h mov [esp+54h],eax jmp L0007A11C L0007A116: mov [esp+54h],ecx mov eax,ecx L0007A11C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0007A175 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007A16D mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007A171 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0007A171 L0007A16D: mov ebp,[esp+24h] L0007A171: mov ecx,[esp+60h] L0007A175: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+48h],eax mov [esp+2Ch],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0007A19B mov ecx,00000666h mov [esp+14h],ecx jmp L0007A1A1 L0007A19B: mov [esp+14h],eax mov ecx,eax L0007A1A1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0007A1FE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007A1F6 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007A1FA push edi call [edi+10h] mov eax,[edi+08h] jmp L0007A1FA L0007A1F6: mov ebp,[esp+24h] L0007A1FA: mov ecx,[esp+14h] L0007A1FE: lea edx,[eax+ebp*4] mov ebp,[esp+54h] add eax,00000004h mov [esp+4Ch],eax mov [esp+30h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0007A226 mov [esp+54h],edx mov ebp,edx L0007A226: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+34h],ebp jbe L0007A5AB L0007A238: mov eax,[esp+58h] mov ecx,[esp+28h] xor edx,edx mov dx,[eax] xor edi,edi mov di,[eax+02h] xor ebp,ebp mov bp,[eax+04h] mov eax,[esp+5Ch] mov ebx,edx imul ebx,ecx add ebx,eax mov eax,edi imul eax,ecx mov ecx,[esp+5Ch] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+28h] add eax,ecx mov ecx,[esp+58h] add ecx,00000008h test edx,edx mov [esp+20h],eax mov [esp+58h],ecx jl L0007A647 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0007A647 test edi,edi jl L0007A647 cmp edi,ecx jge L0007A647 test ebp,ebp jl L0007A647 cmp ebp,ecx jge L0007A647 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007A58D inc [esp+24h] mov eax,[esp+2Ch] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+2Ch],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+40h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+3Ch],eax jnz L0007A3AE mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+38h],ecx jnz L0007A354 mov dword ptr [ebx+0Ch],3F800000h L0007A354: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007A396 mov ecx,[esp+38h] push 00000001h push ecx push esi call SUB_L0003E580 L0007A396: mov eax,[esp+40h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+3Ch] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0007A3AE: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007A456 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0007A3FC mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0007A3FC: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007A43E push 00000001h push edi push esi call SUB_L0003E580 L0007A43E: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007A456: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007A4FC mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007A4A4 mov dword ptr [edi+0Ch],3F800000h L0007A4A4: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007A4E2 push 00000001h push ebp push esi call SUB_L0003E580 L0007A4E2: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0007A500 L0007A4FC: mov edi,[esp+20h] L0007A500: mov ebp,[esp+30h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+30h],ecx L0007A58D: dec [esp+34h] jnz L0007A238 mov ecx,[esp+14h] mov edi,[esp+44h] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+54h] L0007A5AB: mov edx,[esp+60h] sub edx,ebp cmp eax,ebp mov [esp+60h],edx jz L0007A5E2 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0007A5D5 inc edx L0007A5D5: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0007A5E2: mov ebp,[esp+48h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0007A61C sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0007A60F inc ecx L0007A60F: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0007A61C: mov ecx,[esp+4Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+60h] test eax,eax ja L0007A0FF pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007A647: mov eax,[esp+54h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0007A673: pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007A680: sub esp,00000040h push ebx push ebp push esi mov esi,[esp+50h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0007A6C1 mov eax,[esp+60h] mov ecx,[esp+5Ch] mov edx,[esp+58h] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007A6C1: mov ecx,[esp+60h] cmp ecx,ebp mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+28h],eax mov [esp+18h],ebx mov [esp+44h],edi jbe L0007AC2D jmp L0007A6F1 L0007A6ED: mov ecx,[esp+60h] L0007A6F1: cmp ecx,00005552h jbe L0007A704 mov eax,00005552h mov [esp+54h],eax jmp L0007A70A L0007A704: mov [esp+54h],ecx mov eax,ecx L0007A70A: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0007A763 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007A75B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007A75F push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0007A75F L0007A75B: mov ebp,[esp+24h] L0007A75F: mov ecx,[esp+60h] L0007A763: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+48h],eax mov [esp+2Ch],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0007A789 mov ecx,00000666h mov [esp+14h],ecx jmp L0007A78F L0007A789: mov [esp+14h],eax mov ecx,eax L0007A78F: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0007A7EC push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007A7E4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007A7E8 push edi call [edi+10h] mov eax,[edi+08h] jmp L0007A7E8 L0007A7E4: mov ebp,[esp+24h] L0007A7E8: mov ecx,[esp+14h] L0007A7EC: lea edx,[eax+ebp*4] mov ebp,[esp+54h] add eax,00000004h mov [esp+4Ch],eax mov [esp+30h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0007A814 mov [esp+54h],edx mov ebp,edx L0007A814: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+34h],ebp jbe L0007AB99 L0007A826: mov eax,[esp+58h] mov ecx,[esp+28h] xor edx,edx mov dx,[eax] xor edi,edi mov di,[eax+02h] xor ebp,ebp mov bp,[eax+04h] mov eax,[esp+5Ch] mov ebx,edx imul ebx,ecx add ebx,eax mov eax,edi imul eax,ecx mov ecx,[esp+5Ch] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+28h] add eax,ecx mov ecx,[esp+58h] add ecx,00000008h test edx,edx mov [esp+20h],eax mov [esp+58h],ecx jl L0007AC66 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0007AC66 test edi,edi jl L0007AC66 cmp edi,ecx jge L0007AC66 test ebp,ebp jl L0007AC66 cmp ebp,ecx jge L0007AC66 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007AB7B inc [esp+24h] mov eax,[esp+2Ch] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+2Ch],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+40h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+3Ch],eax jnz L0007A99C mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+38h],ecx jnz L0007A942 mov dword ptr [ebx+0Ch],3F800000h L0007A942: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007A984 mov ecx,[esp+38h] push 00000001h push ecx push esi call SUB_L0003E580 L0007A984: mov eax,[esp+40h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+3Ch] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0007A99C: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007AA44 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0007A9EA mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0007A9EA: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007AA2C push 00000001h push edi push esi call SUB_L0003E580 L0007AA2C: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007AA44: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007AAEA mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007AA92 mov dword ptr [edi+0Ch],3F800000h L0007AA92: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007AAD0 push 00000001h push ebp push esi call SUB_L0003E580 L0007AAD0: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0007AAEE L0007AAEA: mov edi,[esp+20h] L0007AAEE: mov ebp,[esp+30h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+30h],ecx L0007AB7B: dec [esp+34h] jnz L0007A826 mov ecx,[esp+14h] mov edi,[esp+44h] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+54h] L0007AB99: mov edx,[esp+60h] sub edx,ebp cmp eax,ebp mov [esp+60h],edx jz L0007ABD0 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0007ABC3 inc edx L0007ABC3: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0007ABD0: mov ebp,[esp+48h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0007AC0A sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0007ABFD inc ecx L0007ABFD: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0007AC0A: mov ecx,[esp+4Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+60h] test eax,eax ja L0007A6ED xor ebp,ebp L0007AC2D: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007AC66: mov eax,[esp+54h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0007ACA0: sub esp,00000034h push ebx push ebp push esi mov esi,[esp+44h] push edi push esi call SUB_L00036580 test eax,eax mov [esp+18h],eax jnz L0007ACE3 mov eax,[esp+54h] mov ecx,[esp+50h] mov edx,[esp+4Ch] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov dword ptr [esi+00000A38h],00000000h pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0007ACE3: mov edx,[esp+54h] test edx,edx mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+20h],eax mov [esp+10h],edi jbe L0007B0D4 L0007AD03: cmp edx,00005552h jbe L0007AD16 mov ebp,00005552h mov [esp+48h],ebp jmp L0007AD1C L0007AD16: mov [esp+48h],edx mov ebp,edx L0007AD1C: mov eax,[edi+08h] lea ecx,[ebp+ebp*2+00h] lea ebx,[ecx+ecx+02h] mov ecx,[edi+0Ch] shr ebx,02h lea edx,[eax+ebx*4+04h] cmp edx,ecx mov [esp+3Ch],ebx jc L0007AD6B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007AD6B mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4+04h] cmp ecx,edx jc L0007AD6B push edi call [edi+10h] mov eax,[edi+08h] L0007AD6B: lea ecx,[eax+04h] lea edx,[eax+ebx*4+04h] xor eax,eax test ebp,ebp mov [edi+08h],edx mov [esp+40h],ecx mov [esp+24h],ecx mov [esp+1Ch],eax mov [esp+2Ch],ebp jbe L0007B04A L0007AD8F: mov eax,[esp+4Ch] mov ecx,[esp+20h] xor edx,edx mov dx,[eax] xor edi,edi mov di,[eax+02h] xor ebp,ebp mov bp,[eax+04h] mov eax,[esp+50h] mov ebx,edx imul ebx,ecx add ebx,eax mov eax,edi imul eax,ecx mov ecx,[esp+50h] add eax,ecx mov [esp+14h],eax mov eax,ebp imul eax,[esp+20h] add eax,ecx mov ecx,[esp+4Ch] add ecx,00000008h test edx,edx mov [esp+28h],eax mov [esp+4Ch],ecx jl L0007B0A8 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0007B0A8 test edi,edi jl L0007B0A8 cmp edi,ecx jge L0007B0A8 test ebp,ebp jl L0007B093 cmp ebp,ecx jge L0007B093 fld dword ptr [eax+04h] mov ecx,[esp+14h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007B02C inc [esp+1Ch] mov eax,[esp+24h] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+24h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+38h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+34h],eax jnz L0007AF05 mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+30h],ecx jnz L0007AEAB mov dword ptr [ebx+0Ch],3F800000h L0007AEAB: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007AEED mov ecx,[esp+30h] push 00000001h push ecx push esi call SUB_L0003E580 L0007AEED: mov eax,[esp+38h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+34h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0007AF05: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ebx,edi shr ebx,05h test [esi+ebx*4+00000A3Ch],eax mov [esp+38h],eax jnz L0007AFA1 mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0007AF4B mov edx,[esp+14h] mov dword ptr [edx+0Ch],3F800000h L0007AF4B: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+14h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007AF8D push 00000001h push edi push esi call SUB_L0003E580 L0007AF8D: mov eax,[esi+ebx*4+00000A3Ch] mov ecx,[esp+38h] or eax,ecx mov [esi+ebx*4+00000A3Ch],eax L0007AFA1: mov ecx,ebp and ecx,0000001Fh mov ebx,00000001h mov edi,ebp shl ebx,cl shr edi,05h test [esi+edi*4+00000A3Ch],ebx jnz L0007B02C mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007AFE3 mov ecx,[esp+28h] mov dword ptr [ecx+0Ch],3F800000h L0007AFE3: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+28h] lea ecx,[esi+00000A10h] push ecx push edx push ebp call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007B025 push 00000001h push ebp push esi call SUB_L0003E580 L0007B025: or [esi+edi*4+00000A3Ch],ebx L0007B02C: dec [esp+2Ch] jnz L0007AD8F mov ebx,[esp+3Ch] mov ecx,[esp+40h] mov ebp,[esp+48h] mov edi,[esp+10h] mov eax,[esp+1Ch] L0007B04A: mov edx,[esp+54h] sub edx,ebp cmp eax,ebp mov [esp+54h],edx jz L0007B076 lea ebp,[eax+eax*2] lea ebp,[ebp+ebp+02h] shr ebp,02h sub ebx,ebp test eax,eax jnz L0007B069 inc ebx L0007B069: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0007B076: lea eax,[eax+eax*2] or eax,7F820000h test edx,edx mov [ecx-04h],eax ja L0007AD03 pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0007B093: mov eax,[esp+48h] lea ecx,[eax+eax*2] lea edx,[ecx+ecx+02h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0007B0BB L0007B0A8: mov eax,[esp+48h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0007B0BB: mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0007B0D4: pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007B0E0: sub esp,00000040h push ebx push ebp push esi mov esi,[esp+50h] push edi push esi call SUB_L00036580 test eax,eax mov [esp+1Ch],eax jnz L0007B123 mov eax,[esp+60h] mov ecx,[esp+5Ch] mov edx,[esp+58h] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov dword ptr [esi+00000A38h],00000000h pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007B123: mov ecx,[esp+60h] test ecx,ecx mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+28h],eax mov [esp+18h],ebx mov [esp+44h],edi jbe L0007B6C3 jmp L0007B153 L0007B14F: mov ecx,[esp+60h] L0007B153: cmp ecx,00005552h jbe L0007B166 mov eax,00005552h mov [esp+54h],eax jmp L0007B16C L0007B166: mov [esp+54h],ecx mov eax,ecx L0007B16C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0007B1C5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007B1BD mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007B1C1 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0007B1C1 L0007B1BD: mov ebp,[esp+24h] L0007B1C1: mov ecx,[esp+60h] L0007B1C5: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+48h],eax mov [esp+2Ch],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0007B1EB mov ecx,00000666h mov [esp+14h],ecx jmp L0007B1F1 L0007B1EB: mov [esp+14h],eax mov ecx,eax L0007B1F1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0007B24E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007B246 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007B24A push edi call [edi+10h] mov eax,[edi+08h] jmp L0007B24A L0007B246: mov ebp,[esp+24h] L0007B24A: mov ecx,[esp+14h] L0007B24E: lea edx,[eax+ebp*4] mov ebp,[esp+54h] add eax,00000004h mov [esp+4Ch],eax mov [esp+30h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0007B276 mov [esp+54h],edx mov ebp,edx L0007B276: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+34h],ebp jbe L0007B5FB L0007B288: mov eax,[esp+58h] mov ecx,[esp+28h] xor edx,edx mov dx,[eax] xor edi,edi mov di,[eax+02h] xor ebp,ebp mov bp,[eax+04h] mov eax,[esp+5Ch] mov ebx,edx imul ebx,ecx add ebx,eax mov eax,edi imul eax,ecx mov ecx,[esp+5Ch] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+28h] add eax,ecx mov ecx,[esp+58h] add ecx,00000008h test edx,edx mov [esp+20h],eax mov [esp+58h],ecx jl L0007B697 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0007B697 test edi,edi jl L0007B697 cmp edi,ecx jge L0007B697 test ebp,ebp jl L0007B697 cmp ebp,ecx jge L0007B697 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007B5DD inc [esp+24h] mov eax,[esp+2Ch] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+2Ch],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+40h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+3Ch],eax jnz L0007B3FE mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+38h],ecx jnz L0007B3A4 mov dword ptr [ebx+0Ch],3F800000h L0007B3A4: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007B3E6 mov ecx,[esp+38h] push 00000001h push ecx push esi call SUB_L0003E580 L0007B3E6: mov eax,[esp+40h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+3Ch] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0007B3FE: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007B4A6 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0007B44C mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0007B44C: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007B48E push 00000001h push edi push esi call SUB_L0003E580 L0007B48E: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007B4A6: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007B54C mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007B4F4 mov dword ptr [edi+0Ch],3F800000h L0007B4F4: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007B532 push 00000001h push ebp push esi call SUB_L0003E580 L0007B532: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0007B550 L0007B54C: mov edi,[esp+20h] L0007B550: mov ebp,[esp+30h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+30h],ecx L0007B5DD: dec [esp+34h] jnz L0007B288 mov ecx,[esp+14h] mov edi,[esp+44h] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+54h] L0007B5FB: mov edx,[esp+60h] sub edx,ebp cmp eax,ebp mov [esp+60h],edx jz L0007B632 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0007B625 inc edx L0007B625: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0007B632: mov ebp,[esp+48h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0007B66C sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0007B65F inc ecx L0007B65F: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0007B66C: mov ecx,[esp+4Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+60h] test eax,eax ja L0007B14F pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007B697: mov eax,[esp+54h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0007B6C3: pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007B6D0: sub esp,00000040h push ebx push ebp push esi mov esi,[esp+50h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0007B711 mov eax,[esp+60h] mov ecx,[esp+5Ch] mov edx,[esp+58h] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007B711: mov ecx,[esp+60h] cmp ecx,ebp mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+28h],eax mov [esp+18h],ebx mov [esp+44h],edi jbe L0007BC7D jmp L0007B741 L0007B73D: mov ecx,[esp+60h] L0007B741: cmp ecx,00005552h jbe L0007B754 mov eax,00005552h mov [esp+54h],eax jmp L0007B75A L0007B754: mov [esp+54h],ecx mov eax,ecx L0007B75A: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0007B7B3 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007B7AB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007B7AF push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0007B7AF L0007B7AB: mov ebp,[esp+24h] L0007B7AF: mov ecx,[esp+60h] L0007B7B3: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+48h],eax mov [esp+2Ch],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0007B7D9 mov ecx,00000666h mov [esp+14h],ecx jmp L0007B7DF L0007B7D9: mov [esp+14h],eax mov ecx,eax L0007B7DF: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0007B83C push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007B834 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007B838 push edi call [edi+10h] mov eax,[edi+08h] jmp L0007B838 L0007B834: mov ebp,[esp+24h] L0007B838: mov ecx,[esp+14h] L0007B83C: lea edx,[eax+ebp*4] mov ebp,[esp+54h] add eax,00000004h mov [esp+4Ch],eax mov [esp+30h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0007B864 mov [esp+54h],edx mov ebp,edx L0007B864: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+34h],ebp jbe L0007BBE9 L0007B876: mov eax,[esp+58h] mov ecx,[esp+28h] xor edx,edx mov dx,[eax] xor edi,edi mov di,[eax+02h] xor ebp,ebp mov bp,[eax+04h] mov eax,[esp+5Ch] mov ebx,edx imul ebx,ecx add ebx,eax mov eax,edi imul eax,ecx mov ecx,[esp+5Ch] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+28h] add eax,ecx mov ecx,[esp+58h] add ecx,00000008h test edx,edx mov [esp+20h],eax mov [esp+58h],ecx jl L0007BCB6 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0007BCB6 test edi,edi jl L0007BCB6 cmp edi,ecx jge L0007BCB6 test ebp,ebp jl L0007BCB6 cmp ebp,ecx jge L0007BCB6 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007BBCB inc [esp+24h] mov eax,[esp+2Ch] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+2Ch],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+40h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+3Ch],eax jnz L0007B9EC mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+38h],ecx jnz L0007B992 mov dword ptr [ebx+0Ch],3F800000h L0007B992: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007B9D4 mov ecx,[esp+38h] push 00000001h push ecx push esi call SUB_L0003E580 L0007B9D4: mov eax,[esp+40h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+3Ch] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0007B9EC: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007BA94 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0007BA3A mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0007BA3A: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007BA7C push 00000001h push edi push esi call SUB_L0003E580 L0007BA7C: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007BA94: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007BB3A mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007BAE2 mov dword ptr [edi+0Ch],3F800000h L0007BAE2: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007BB20 push 00000001h push ebp push esi call SUB_L0003E580 L0007BB20: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0007BB3E L0007BB3A: mov edi,[esp+20h] L0007BB3E: mov ebp,[esp+30h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+30h],ecx L0007BBCB: dec [esp+34h] jnz L0007B876 mov ecx,[esp+14h] mov edi,[esp+44h] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+54h] L0007BBE9: mov edx,[esp+60h] sub edx,ebp cmp eax,ebp mov [esp+60h],edx jz L0007BC20 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0007BC13 inc edx L0007BC13: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0007BC20: mov ebp,[esp+48h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0007BC5A sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0007BC4D inc ecx L0007BC4D: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0007BC5A: mov ecx,[esp+4Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+60h] test eax,eax ja L0007B73D xor ebp,ebp L0007BC7D: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007BCB6: mov eax,[esp+54h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0007BCF0: sub esp,00000034h push ebx push ebp push esi mov esi,[esp+44h] push edi push esi call SUB_L00036580 test eax,eax mov [esp+18h],eax jnz L0007BD33 mov eax,[esp+54h] mov ecx,[esp+50h] mov edx,[esp+4Ch] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov dword ptr [esi+00000A38h],00000000h pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0007BD33: mov edx,[esp+54h] test edx,edx mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+20h],eax mov [esp+10h],edi jbe L0007C124 L0007BD53: cmp edx,00005552h jbe L0007BD66 mov ebp,00005552h mov [esp+48h],ebp jmp L0007BD6C L0007BD66: mov [esp+48h],edx mov ebp,edx L0007BD6C: mov eax,[edi+08h] lea ecx,[ebp+ebp*2+00h] lea ebx,[ecx+ecx+02h] mov ecx,[edi+0Ch] shr ebx,02h lea edx,[eax+ebx*4+04h] cmp edx,ecx mov [esp+3Ch],ebx jc L0007BDBB push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007BDBB mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4+04h] cmp ecx,edx jc L0007BDBB push edi call [edi+10h] mov eax,[edi+08h] L0007BDBB: lea ecx,[eax+04h] lea edx,[eax+ebx*4+04h] xor eax,eax test ebp,ebp mov [edi+08h],edx mov [esp+40h],ecx mov [esp+24h],ecx mov [esp+1Ch],eax mov [esp+2Ch],ebp jbe L0007C09A L0007BDDF: mov eax,[esp+4Ch] mov ecx,[esp+20h] xor edx,edx mov dx,[eax] xor edi,edi mov di,[eax+02h] xor ebp,ebp mov bp,[eax+04h] mov eax,[esp+50h] mov ebx,edx imul ebx,ecx add ebx,eax mov eax,edi imul eax,ecx mov ecx,[esp+50h] add eax,ecx mov [esp+14h],eax mov eax,ebp imul eax,[esp+20h] add eax,ecx mov ecx,[esp+4Ch] add ecx,00000008h test edx,edx mov [esp+28h],eax mov [esp+4Ch],ecx jl L0007C0F8 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0007C0F8 test edi,edi jl L0007C0F8 cmp edi,ecx jge L0007C0F8 test ebp,ebp jl L0007C0E3 cmp ebp,ecx jge L0007C0E3 fld dword ptr [eax+04h] mov ecx,[esp+14h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007C07C inc [esp+1Ch] mov eax,[esp+24h] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+24h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+38h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+34h],eax jnz L0007BF55 mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+30h],ecx jnz L0007BEFB mov dword ptr [ebx+0Ch],3F800000h L0007BEFB: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007BF3D mov ecx,[esp+30h] push 00000001h push ecx push esi call SUB_L0003E580 L0007BF3D: mov eax,[esp+38h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+34h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0007BF55: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ebx,edi shr ebx,05h test [esi+ebx*4+00000A3Ch],eax mov [esp+38h],eax jnz L0007BFF1 mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0007BF9B mov edx,[esp+14h] mov dword ptr [edx+0Ch],3F800000h L0007BF9B: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+14h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007BFDD push 00000001h push edi push esi call SUB_L0003E580 L0007BFDD: mov eax,[esi+ebx*4+00000A3Ch] mov ecx,[esp+38h] or eax,ecx mov [esi+ebx*4+00000A3Ch],eax L0007BFF1: mov ecx,ebp and ecx,0000001Fh mov ebx,00000001h mov edi,ebp shl ebx,cl shr edi,05h test [esi+edi*4+00000A3Ch],ebx jnz L0007C07C mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007C033 mov ecx,[esp+28h] mov dword ptr [ecx+0Ch],3F800000h L0007C033: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+28h] lea ecx,[esi+00000A10h] push ecx push edx push ebp call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007C075 push 00000001h push ebp push esi call SUB_L0003E580 L0007C075: or [esi+edi*4+00000A3Ch],ebx L0007C07C: dec [esp+2Ch] jnz L0007BDDF mov ebx,[esp+3Ch] mov ecx,[esp+40h] mov ebp,[esp+48h] mov edi,[esp+10h] mov eax,[esp+1Ch] L0007C09A: mov edx,[esp+54h] sub edx,ebp cmp eax,ebp mov [esp+54h],edx jz L0007C0C6 lea ebp,[eax+eax*2] lea ebp,[ebp+ebp+02h] shr ebp,02h sub ebx,ebp test eax,eax jnz L0007C0B9 inc ebx L0007C0B9: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0007C0C6: lea eax,[eax+eax*2] or eax,7F820000h test edx,edx mov [ecx-04h],eax ja L0007BD53 pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L0007C0E3: mov eax,[esp+48h] lea ecx,[eax+eax*2] lea edx,[ecx+ecx+02h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0007C10B L0007C0F8: mov eax,[esp+48h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0007C10B: mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0007C124: pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007C130: sub esp,00000040h push ebx push ebp push esi mov esi,[esp+50h] push edi push esi call SUB_L00036580 test eax,eax mov [esp+1Ch],eax jnz L0007C173 mov eax,[esp+60h] mov ecx,[esp+5Ch] mov edx,[esp+58h] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov dword ptr [esi+00000A38h],00000000h pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007C173: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+28h],eax mov eax,[esp+60h] test eax,eax mov [esp+18h],ebx mov [esp+44h],edi jbe L0007C6E5 L0007C19D: mov eax,[esp+60h] cmp eax,00005552h jbe L0007C1B3 mov eax,00005552h mov [esp+54h],eax jmp L0007C1B7 L0007C1B3: mov [esp+54h],eax L0007C1B7: lea ecx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[ecx+ecx+02h] mov ecx,[ebx+0Ch] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,ecx mov [esp+24h],ebp jc L0007C20E push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007C20A mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007C20E push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0007C20E L0007C20A: mov ebp,[esp+24h] L0007C20E: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+48h],eax mov [esp+2Ch],eax mov eax,[esp+60h] lea eax,[eax+eax*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0007C238 mov ecx,00000666h mov [esp+10h],ecx jmp L0007C23E L0007C238: mov [esp+10h],eax mov ecx,eax L0007C23E: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0007C29F push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007C297 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007C291 push edi call [edi+10h] mov eax,[edi+08h] L0007C291: mov ecx,[esp+10h] jmp L0007C29F L0007C297: mov ecx,[esp+10h] mov ebp,[esp+24h] L0007C29F: lea edx,[eax+ebp*4] mov ebp,[esp+54h] add eax,00000004h mov [esp+4Ch],eax mov [esp+30h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0007C2C7 mov [esp+54h],edx mov ebp,edx L0007C2C7: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+34h],ebp jbe L0007C61D L0007C2D9: mov ecx,[esp+58h] mov edx,[esp+28h] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] xor ebx,ebx mov bx,[ecx+04h] mov ecx,[esp+5Ch] mov ebp,eax imul ebp,edx add ebp,ecx mov ecx,edi imul ecx,edx mov edx,[esp+5Ch] add ecx,edx mov [esp+14h],ecx mov ecx,ebx imul ecx,[esp+28h] add ecx,edx mov edx,[esp+58h] add edx,00000008h test eax,eax mov [esp+20h],ecx mov [esp+58h],edx jl L0007C6B9 mov ecx,[esi+00000A34h] cmp eax,ecx jge L0007C6B9 test edi,edi jl L0007C6B9 cmp edi,ecx jge L0007C6B9 test ebx,ebx jl L0007C6B9 cmp ebx,ecx jge L0007C6B9 inc [esp+24h] mov ecx,[esp+2Ch] mov [ecx],ax add ecx,00000002h mov [ecx],di add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [esp+2Ch],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h mov [esp+40h],ecx test [esi+ecx*4+00000A3Ch],edx mov [esp+3Ch],edx jnz L0007C420 mov ecx,[esi+000005D4h] mov edx,[esp+1Ch] shr ecx,02h imul ecx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[edx+ecx*4] mov [esp+38h],ecx jnz L0007C3C6 mov dword ptr [ebp+0Ch],3F800000h L0007C3C6: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] lea eax,[edx+eax*8] lea edx,[esi+00000A10h] push edx push ebp push ecx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007C408 mov eax,[esp+38h] push 00000001h push eax push esi call SUB_L0003E580 L0007C408: mov eax,[esp+40h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+3Ch] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007C420: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007C4C8 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] shr edx,02h imul edx,edi lea edi,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007C46E mov ecx,[esp+14h] mov dword ptr [ecx+0Ch],3F800000h L0007C46E: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+14h] lea ecx,[esi+00000A10h] push ecx push edx push edi call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007C4B0 push 00000001h push edi push esi call SUB_L0003E580 L0007C4B0: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007C4C8: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007C56E mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebx lea ebx,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007C516 mov dword ptr [edi+0Ch],3F800000h L0007C516: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007C554 push 00000001h push ebx push esi call SUB_L0003E580 L0007C554: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0007C572 L0007C56E: mov edi,[esp+20h] L0007C572: mov ebx,[esp+30h] push ebp push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+34h] dec eax mov [esp+30h],ecx mov [esp+34h],eax jnz L0007C2D9 mov ecx,[esp+10h] mov edi,[esp+44h] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+54h] L0007C61D: mov edx,[esp+60h] sub edx,ebp cmp eax,ebp mov [esp+60h],edx jz L0007C654 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0007C647 inc edx L0007C647: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0007C654: mov ebp,[esp+48h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0007C68E sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0007C681 inc ecx L0007C681: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0007C68E: mov ecx,[esp+4Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+60h] test eax,eax ja L0007C19D pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007C6B9: mov eax,[esp+54h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0007C6E5: pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007C6F0: sub esp,00000040h push ebx push ebp push esi mov esi,[esp+50h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0007C731 mov eax,[esp+60h] mov ecx,[esp+5Ch] mov edx,[esp+58h] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007C731: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+28h],eax cmp [esp+60h],ebp mov [esp+18h],ebx mov [esp+44h],edi jbe L0007CC6D L0007C759: mov eax,[esp+60h] cmp eax,00005552h jbe L0007C76F mov eax,00005552h mov [esp+54h],eax jmp L0007C773 L0007C76F: mov [esp+54h],eax L0007C773: lea ecx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[ecx+ecx+02h] mov ecx,[ebx+0Ch] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,ecx mov [esp+24h],ebp jc L0007C7CA push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0007C7C6 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007C7CA push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0007C7CA L0007C7C6: mov ebp,[esp+24h] L0007C7CA: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+48h],eax mov [esp+2Ch],eax mov eax,[esp+60h] lea eax,[eax+eax*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0007C7F4 mov ecx,00000666h mov [esp+10h],ecx jmp L0007C7FA L0007C7F4: mov [esp+10h],eax mov ecx,eax L0007C7FA: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0007C85B push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007C853 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007C84D push edi call [edi+10h] mov eax,[edi+08h] L0007C84D: mov ecx,[esp+10h] jmp L0007C85B L0007C853: mov ecx,[esp+10h] mov ebp,[esp+24h] L0007C85B: lea edx,[eax+ebp*4] mov ebp,[esp+54h] add eax,00000004h mov [esp+4Ch],eax mov [esp+30h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0007C883 mov [esp+54h],edx mov ebp,edx L0007C883: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+34h],ebp jbe L0007CBD9 L0007C895: mov ecx,[esp+58h] mov edx,[esp+28h] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] xor ebx,ebx mov bx,[ecx+04h] mov ecx,[esp+5Ch] mov ebp,eax imul ebp,edx add ebp,ecx mov ecx,edi imul ecx,edx mov edx,[esp+5Ch] add ecx,edx mov [esp+14h],ecx mov ecx,ebx imul ecx,[esp+28h] add ecx,edx mov edx,[esp+58h] add edx,00000008h test eax,eax mov [esp+20h],ecx mov [esp+58h],edx jl L0007CCA6 mov ecx,[esi+00000A34h] cmp eax,ecx jge L0007CCA6 test edi,edi jl L0007CCA6 cmp edi,ecx jge L0007CCA6 test ebx,ebx jl L0007CCA6 cmp ebx,ecx jge L0007CCA6 inc [esp+24h] mov ecx,[esp+2Ch] mov [ecx],ax add ecx,00000002h mov [ecx],di add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [esp+2Ch],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h mov [esp+40h],ecx test [esi+ecx*4+00000A3Ch],edx mov [esp+3Ch],edx jnz L0007C9DC mov ecx,[esi+000005D4h] mov edx,[esp+1Ch] shr ecx,02h imul ecx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[edx+ecx*4] mov [esp+38h],ecx jnz L0007C982 mov dword ptr [ebp+0Ch],3F800000h L0007C982: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] lea eax,[edx+eax*8] lea edx,[esi+00000A10h] push edx push ebp push ecx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007C9C4 mov eax,[esp+38h] push 00000001h push eax push esi call SUB_L0003E580 L0007C9C4: mov eax,[esp+40h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+3Ch] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007C9DC: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007CA84 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] shr edx,02h imul edx,edi lea edi,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007CA2A mov ecx,[esp+14h] mov dword ptr [ecx+0Ch],3F800000h L0007CA2A: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+14h] lea ecx,[esi+00000A10h] push ecx push edx push edi call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007CA6C push 00000001h push edi push esi call SUB_L0003E580 L0007CA6C: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0007CA84: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax mov [esp+3Ch],ecx jnz L0007CB2A mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebx lea ebx,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007CAD2 mov dword ptr [edi+0Ch],3F800000h L0007CAD2: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007CB10 push 00000001h push ebx push esi call SUB_L0003E580 L0007CB10: mov eax,[esp+3Ch] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+40h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0007CB2E L0007CB2A: mov edi,[esp+20h] L0007CB2E: mov ebx,[esp+30h] push ebp push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+34h] dec eax mov [esp+30h],ecx mov [esp+34h],eax jnz L0007C895 mov ecx,[esp+10h] mov edi,[esp+44h] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+54h] L0007CBD9: mov edx,[esp+60h] sub edx,ebp cmp eax,ebp mov [esp+60h],edx jz L0007CC10 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0007CC03 inc edx L0007CC03: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0007CC10: mov ebp,[esp+48h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0007CC4A sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0007CC3D inc ecx L0007CC3D: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0007CC4A: mov ecx,[esp+4Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+60h] test eax,eax ja L0007C759 xor ebp,ebp L0007CC6D: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ L0007CCA6: mov eax,[esp+54h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000040h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0007CCE0: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] push edi push esi call SUB_L00036580 test eax,eax mov [esp+14h],eax jnz L0007CD23 mov eax,[esp+50h] mov ecx,[esp+4Ch] mov edx,[esp+48h] push eax push ecx push edx push esi call [esi+000009F0h] pop edi mov dword ptr [esi+00000A38h],00000000h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0007CD23: mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+20h],eax mov eax,[esp+50h] test eax,eax mov [esp+10h],edi jbe L0007D0E6 mov ebp,[esp+48h] L0007CD47: cmp eax,00005552h mov ecx,00005552h ja L0007CD55 mov ecx,eax L0007CD55: mov eax,[edi+08h] lea edx,[ecx+ecx*2] lea ebx,[edx+edx+02h] shr ebx,02h lea edx,[eax+ebx*4+04h] cmp edx,[edi+0Ch] mov [esp+44h],ecx mov [esp+1Ch],ebx jc L0007CDB3 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0007CDAB mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4+04h] cmp ecx,edx jc L0007CDAF push edi call [edi+10h] mov eax,[edi+08h] jmp L0007CDAF L0007CDAB: mov ebx,[esp+1Ch] L0007CDAF: mov ecx,[esp+44h] L0007CDB3: lea edx,[eax+ebx*4+04h] add eax,00000004h mov [edi+08h],edx xor edx,edx test ecx,ecx mov [esp+3Ch],eax mov [esp+24h],eax mov [esp+18h],edx mov [esp+38h],ecx jbe L0007D06C jmp L0007CDDD L0007CDD9: mov ebp,[esp+48h] L0007CDDD: mov ecx,[esp+4Ch] xor eax,eax mov ax,[ebp+00h] xor edi,edi mov di,[ebp+02h] xor ebx,ebx mov bx,[ebp+04h] mov ebp,[esp+20h] mov edx,eax imul edx,ebp add edx,ecx mov ecx,edi imul ecx,ebp mov ebp,[esp+4Ch] add ecx,ebp mov [esp+30h],ecx mov ecx,ebx imul ecx,[esp+20h] add ecx,ebp mov ebp,[esp+48h] add ebp,00000008h test eax,eax mov [esp+34h],ecx mov [esp+48h],ebp jl L0007D0BA mov ecx,[esi+00000A34h] cmp eax,ecx jge L0007D0BA test edi,edi jl L0007D0BA cmp edi,ecx jge L0007D0BA test ebx,ebx jl L0007D0BA cmp ebx,ecx jge L0007D0BA inc [esp+18h] mov ecx,[esp+24h] mov [ecx],ax add ecx,00000002h mov [ecx],di add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [esp+24h],ecx mov ecx,eax and ecx,0000001Fh mov ebp,00000001h shl ebp,cl mov [esp+2Ch],ebp mov ecx,[esp+2Ch] mov ebp,eax shr ebp,05h test [esi+ebp*4+00000A3Ch],ecx jnz L0007CF21 mov ecx,[esi+000005D4h] shr ecx,02h imul ecx,eax mov eax,[esp+14h] lea ecx,[eax+ecx*4] mov eax,[esi+00000190h] test eax,eax mov [esp+28h],ecx jnz L0007CEC7 mov dword ptr [edx+0Ch],3F800000h L0007CEC7: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ecx+eax*2] mov ecx,[esi+00000A08h] lea eax,[ecx+eax*8] lea ecx,[esi+00000A10h] push ecx push edx mov edx,[esp+30h] push edx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007CF0D mov eax,[esp+28h] push 00000001h push eax push esi call SUB_L0003E580 L0007CF0D: mov eax,[esi+ebp*4+00000A3Ch] mov ecx,[esp+2Ch] or eax,ecx mov [esi+ebp*4+00000A3Ch],eax L0007CF21: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ebp,edi shr ebp,05h test [esi+ebp*4+00000A3Ch],eax mov [esp+2Ch],eax jnz L0007CFBD mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h imul edx,edi lea edi,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0007CF67 mov ecx,[esp+30h] mov dword ptr [ecx+0Ch],3F800000h L0007CF67: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+30h] lea ecx,[esi+00000A10h] push ecx push edx push edi call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0007CFA9 push 00000001h push edi push esi call SUB_L0003E580 L0007CFA9: mov ecx,[esi+ebp*4+00000A3Ch] mov eax,[esp+2Ch] or ecx,eax mov [esi+ebp*4+00000A3Ch],ecx L0007CFBD: mov ecx,ebx and ecx,0000001Fh mov ebp,00000001h mov edi,ebx shl ebp,cl shr edi,05h test [esi+edi*4+00000A3Ch],ebp jnz L0007D048 mov ecx,[esi+000005D4h] mov eax,[esi+00000190h] mov edx,[esp+14h] shr ecx,02h imul ecx,ebx test eax,eax lea ebx,[edx+ecx*4] jnz L0007CFFF mov eax,[esp+34h] mov dword ptr [eax+0Ch],3F800000h L0007CFFF: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] mov ecx,[esp+34h] lea eax,[esi+00000A10h] push eax push ecx push ebx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0007D041 push 00000001h push ebx push esi call SUB_L0003E580 L0007D041: or [esi+edi*4+00000A3Ch],ebp L0007D048: dec [esp+38h] jnz L0007CDD9 mov ecx,[esp+44h] mov edi,[esp+10h] mov edx,[esp+18h] mov ebp,[esp+48h] mov eax,[esp+50h] mov ebx,[esp+1Ch] jmp L0007D070 L0007D06C: mov eax,[esp+50h] L0007D070: sub eax,ecx cmp edx,ecx mov [esp+50h],eax jz L0007D098 lea ecx,[edx+edx*2] lea ecx,[ecx+ecx+02h] shr ecx,02h sub ebx,ecx test edx,edx jnz L0007D08B inc ebx L0007D08B: mov ecx,[edi+08h] neg ebx shl ebx,02h add ecx,ebx mov [edi+08h],ecx L0007D098: mov ecx,[esp+3Ch] lea edx,[edx+edx*2] or edx,7F820000h test eax,eax mov [ecx-04h],edx ja L0007CD47 pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0007D0BA: mov eax,[esp+44h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0007D0E6: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0007D0F0: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L0007D135 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007D135: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007D443 L0007D148: cmp eax,00000666h jbe L0007D15A mov edi,00000666h mov [esp+10h],edi jmp L0007D160 L0007D15A: mov [esp+10h],eax mov edi,eax L0007D160: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007D1BB push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007D1B7 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007D1BB push esi call [esi+10h] mov eax,[esi+08h] jmp L0007D1BB L0007D1B7: mov ebx,[esp+38h] L0007D1BB: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007D3A2 L0007D1E1: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007D415 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007D415 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007D415 cmp edx,ecx jge L0007D415 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007D3FE cmp eax,ecx jge L0007D3FE fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007D37A mov eax,[esp+20h] test ah,01h jz L0007D2EF mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007D2EF: mov eax,[esp+20h] test ah,02h jz L0007D337 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007D337: mov eax,[esp+20h] test ah,04h jz L0007D37A mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007D37A: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007D1E1 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007D3A2: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007D3D6 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007D3C9 inc edi L0007D3C9: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007D3D6: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007D148 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007D3FE: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007D42A L0007D415: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007D42A: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007D443: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007D450: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] push edi push 00000001h push esi push ebp mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [ebp+00000138h],00000004h jc L0007D49E mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007D49E: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007D75D L0007D4B1: cmp eax,00000666h jbe L0007D4C3 mov edi,00000666h mov [esp+10h],edi jmp L0007D4C9 L0007D4C3: mov [esp+10h],eax mov edi,eax L0007D4C9: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007D524 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007D520 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007D524 push esi call [esi+10h] mov eax,[esi+08h] jmp L0007D524 L0007D520: mov ebx,[esp+38h] L0007D524: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007D70B L0007D54A: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007D7A8 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007D7A8 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007D7A8 cmp edx,ecx jge L0007D7A8 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007D770 cmp eax,ecx jge L0007D770 fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007D6E3 mov eax,[esp+20h] test ah,01h jz L0007D658 mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007D658: mov eax,[esp+20h] test ah,02h jz L0007D6A0 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007D6A0: mov eax,[esp+20h] test ah,04h jz L0007D6E3 mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007D6E3: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007D54A mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007D70B: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007D73F sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007D732 inc edi L0007D732: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007D73F: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007D4B1 L0007D75D: push 00000000h push esi push ebp call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007D770: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0007D785: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h pop edi add edx,ecx pop esi mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007D7A8: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0007D785 Align 4 L0007D7C0: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+00000148h] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L0007D805 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007D805: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007DB13 L0007D818: cmp eax,00000666h jbe L0007D82A mov edi,00000666h mov [esp+10h],edi jmp L0007D830 L0007D82A: mov [esp+10h],eax mov edi,eax L0007D830: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007D88B push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007D887 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007D88B push esi call [esi+10h] mov eax,[esi+08h] jmp L0007D88B L0007D887: mov ebx,[esp+38h] L0007D88B: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007DA72 L0007D8B1: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007DAE5 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007DAE5 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007DAE5 cmp edx,ecx jge L0007DAE5 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007DACE cmp eax,ecx jge L0007DACE fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007DA4A mov eax,[esp+20h] test ah,01h jz L0007D9BF mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007D9BF: mov eax,[esp+20h] test ah,02h jz L0007DA07 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007DA07: mov eax,[esp+20h] test ah,04h jz L0007DA4A mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007DA4A: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007D8B1 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007DA72: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007DAA6 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007DA99 inc edi L0007DA99: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007DAA6: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007D818 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007DACE: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007DAFA L0007DAE5: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007DAFA: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007DB13: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007DB20: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L0007DB65 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007DB65: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007DE73 L0007DB78: cmp eax,00000666h jbe L0007DB8A mov edi,00000666h mov [esp+10h],edi jmp L0007DB90 L0007DB8A: mov [esp+10h],eax mov edi,eax L0007DB90: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007DBEB push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007DBE7 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007DBEB push esi call [esi+10h] mov eax,[esi+08h] jmp L0007DBEB L0007DBE7: mov ebx,[esp+38h] L0007DBEB: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007DDD2 L0007DC11: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007DE45 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007DE45 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007DE45 cmp edx,ecx jge L0007DE45 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007DE2E cmp eax,ecx jge L0007DE2E fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007DDAA mov eax,[esp+20h] test ah,01h jz L0007DD1F mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007DD1F: mov eax,[esp+20h] test ah,02h jz L0007DD67 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007DD67: mov eax,[esp+20h] test ah,04h jz L0007DDAA mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007DDAA: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007DC11 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007DDD2: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007DE06 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007DDF9 inc edi L0007DDF9: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007DE06: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007DB78 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007DE2E: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007DE5A L0007DE45: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007DE5A: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007DE73: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007DE80: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] push edi push 00000001h push esi push ebp mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [ebp+00000138h],00000004h jc L0007DECE mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007DECE: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007E18D L0007DEE1: cmp eax,00000666h jbe L0007DEF3 mov edi,00000666h mov [esp+10h],edi jmp L0007DEF9 L0007DEF3: mov [esp+10h],eax mov edi,eax L0007DEF9: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007DF54 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007DF50 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007DF54 push esi call [esi+10h] mov eax,[esi+08h] jmp L0007DF54 L0007DF50: mov ebx,[esp+38h] L0007DF54: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007E13B L0007DF7A: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007E1D8 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007E1D8 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007E1D8 cmp edx,ecx jge L0007E1D8 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007E1A0 cmp eax,ecx jge L0007E1A0 fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007E113 mov eax,[esp+20h] test ah,01h jz L0007E088 mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007E088: mov eax,[esp+20h] test ah,02h jz L0007E0D0 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007E0D0: mov eax,[esp+20h] test ah,04h jz L0007E113 mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007E113: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007DF7A mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007E13B: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007E16F sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007E162 inc edi L0007E162: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007E16F: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007DEE1 L0007E18D: push 00000000h push esi push ebp call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007E1A0: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0007E1B5: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h pop edi add edx,ecx pop esi mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007E1D8: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0007E1B5 Align 4 L0007E1F0: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+00000148h] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L0007E235 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007E235: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007E543 L0007E248: cmp eax,00000666h jbe L0007E25A mov edi,00000666h mov [esp+10h],edi jmp L0007E260 L0007E25A: mov [esp+10h],eax mov edi,eax L0007E260: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007E2BB push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007E2B7 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007E2BB push esi call [esi+10h] mov eax,[esi+08h] jmp L0007E2BB L0007E2B7: mov ebx,[esp+38h] L0007E2BB: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007E4A2 L0007E2E1: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007E515 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007E515 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007E515 cmp edx,ecx jge L0007E515 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007E4FE cmp eax,ecx jge L0007E4FE fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007E47A mov eax,[esp+20h] test ah,01h jz L0007E3EF mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007E3EF: mov eax,[esp+20h] test ah,02h jz L0007E437 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007E437: mov eax,[esp+20h] test ah,04h jz L0007E47A mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007E47A: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007E2E1 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007E4A2: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007E4D6 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007E4C9 inc edi L0007E4C9: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007E4D6: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007E248 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007E4FE: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007E52A L0007E515: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007E52A: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007E543: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0007E550: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] mov [esp+18h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+20h],00000000h mov [esp+18h],esi jc L0007E595 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+20h],eax L0007E595: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+14h],eax jbe L0007E8B6 jmp L0007E5AE L0007E5AA: mov eax,[esp+14h] L0007E5AE: cmp eax,00000666h jbe L0007E5C0 mov edi,00000666h mov [esp+10h],edi jmp L0007E5C6 L0007E5C0: mov [esp+10h],eax mov edi,eax L0007E5C6: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007E621 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007E61D mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007E621 push esi call [esi+10h] mov eax,[esi+08h] jmp L0007E621 L0007E61D: mov ebx,[esp+38h] L0007E621: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp edi,00000002h mov ecx,edi mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],edx mov [esp+28h],ecx jbe L0007E7DD L0007E647: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+24h],esi add ecx,00000008h mov esi,eax imul esi,[esp+1Ch] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+1Ch] mov edi,edx imul edi,[esp+1Ch] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+20h] add eax,ecx test eax,eax jl L0007E888 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007E888 mov eax,[esp+20h] add edx,eax test edx,edx jl L0007E871 cmp edx,ecx jge L0007E871 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007E839 cmp eax,ecx jge L0007E839 mov eax,[esp+24h] test ah,01h jz L0007E72A mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007E72A: mov eax,[esp+24h] test ah,02h jz L0007E772 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007E772: mov eax,[esp+24h] test ah,04h jz L0007E7B5 mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007E7B5: mov eax,[esp+28h] sub eax,00000003h cmp eax,00000002h mov [esp+28h],eax ja L0007E647 mov edi,[esp+10h] mov esi,[esp+18h] mov eax,[esp+30h] mov edx,[esp+44h] mov ecx,[esp+28h] L0007E7DD: mov ebx,[esp+14h] sub ecx,edi add ebx,ecx cmp edx,edi mov ecx,[ebp+000005D4h] mov [esp+14h],ebx jz L0007E811 sub edi,edx mov ebx,ecx shr ebx,02h imul edi,ebx shl edi,1 test edx,edx jnz L0007E804 inc edi L0007E804: mov ebx,[esi+08h] neg edi shl edi,02h add ebx,edi mov [esi+08h],ebx L0007E811: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+14h] test eax,eax ja L0007E5AA pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007E839: mov ecx,[ebp+000005D4h] imul ecx,[esp+10h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h pop edi add ecx,edx pop esi mov [eax+08h],ecx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007E871: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007E89D L0007E888: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007E89D: mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007E8B6: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007E8C0: sub esp,00000024h push ebx mov ebx,[esp+2Ch] mov eax,[ebx+000005D0h] push ebp push esi mov esi,[ebx+0000017Ch] push edi push 00000001h push esi push ebx mov dword ptr [esp+2Ch],00000000h mov [esp+28h],eax mov [esp+24h],esi call SUB_L000ABBE0 cmp dword ptr [ebx+00000138h],00000004h jc L0007E90E mov eax,[esp+40h] sub eax,[ebx+00004860h] cdq idiv [ebx+00004858h] mov [esp+20h],eax L0007E90E: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+14h],eax jbe L0007EBA8 jmp L0007E927 L0007E923: mov eax,[esp+14h] L0007E927: cmp eax,00000666h jbe L0007E939 mov edi,00000666h mov [esp+10h],edi jmp L0007E93F L0007E939: mov [esp+10h],eax mov edi,eax L0007E93F: mov ebp,[ebx+000005D4h] mov eax,[esi+08h] imul ebp,edi mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+38h],ebp jc L0007E99A push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007E996 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0007E99A push esi call [esi+10h] mov eax,[esi+08h] jmp L0007E99A L0007E996: mov ebp,[esp+38h] L0007E99A: lea edx,[eax+ebp*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp edi,00000002h mov ecx,edi mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],edx mov [esp+28h],ecx jbe L0007EB56 L0007E9C0: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebp,ebp mov bp,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+24h],esi add ecx,00000008h mov esi,eax imul esi,[esp+1Ch] add esi,edi mov [esp+2Ch],ebp imul ebp,[esp+1Ch] mov edi,edx imul edi,[esp+1Ch] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebp,ecx mov ecx,[esp+20h] add eax,ecx test eax,eax jl L0007EC2B mov ecx,[ebx+00000A34h] cmp eax,ecx jge L0007EC2B mov eax,[esp+20h] add edx,eax test edx,edx jl L0007EBF3 cmp edx,ecx jge L0007EBF3 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007EBBB cmp eax,ecx jge L0007EBBB mov eax,[esp+24h] test ah,01h jz L0007EAA3 mov eax,[esp+38h] push esi push esi push eax push ebx call SUB_L0003EC00 mov ecx,[ebx+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebx mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebx+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007EAA3: mov eax,[esp+24h] test ah,02h jz L0007EAEB mov eax,[esp+38h] push esi push edi push eax push ebx call SUB_L0003EC00 mov ecx,[ebx+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebp lea edi,[edx+ecx*4] push edi push ebx call SUB_L0003EC00 mov eax,[ebx+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007EAEB: mov eax,[esp+24h] test ah,04h jz L0007EB2E mov edx,[esp+38h] push esi push ebp push edx push ebx call SUB_L0003EC00 mov eax,[ebx+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebx call SUB_L0003EC00 mov edx,[ebx+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007EB2E: mov eax,[esp+28h] sub eax,00000003h cmp eax,00000002h mov [esp+28h],eax ja L0007E9C0 mov edi,[esp+10h] mov esi,[esp+18h] mov eax,[esp+30h] mov edx,[esp+44h] mov ecx,[esp+28h] L0007EB56: mov ebp,[esp+14h] sub ecx,edi add ebp,ecx cmp edx,edi mov ecx,[ebx+000005D4h] mov [esp+14h],ebp jz L0007EB8A sub edi,edx mov ebp,ecx shr ebp,02h imul edi,ebp shl edi,1 test edx,edx jnz L0007EB7D inc edi L0007EB7D: mov ebp,[esi+08h] neg edi shl edi,02h add ebp,edi mov [esi+08h],ebp L0007EB8A: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+14h] test eax,eax ja L0007E923 L0007EBA8: push 00000000h push esi push ebx call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007EBBB: mov ecx,[ebx+000005D4h] imul ecx,[esp+10h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] pop edi shl edx,02h pop esi add ecx,edx mov [eax+08h],ecx pop ebp mov dword ptr [ebx+000005B0h],00000001h pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007EBF3: mov eax,[ebx+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0007EC08: mov eax,[esp+18h] mov edx,[eax+08h] pop edi shl ecx,02h pop esi add edx,ecx mov [eax+08h],edx pop ebp mov dword ptr [ebx+000005B0h],00000001h pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007EC2B: mov edx,[ebx+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0007EC08 Align 16 L0007EC50: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+00000148h] mov [esp+18h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+20h],00000000h mov [esp+18h],esi jc L0007EC95 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+20h],eax L0007EC95: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+14h],eax jbe L0007EFB6 jmp L0007ECAE L0007ECAA: mov eax,[esp+14h] L0007ECAE: cmp eax,00000666h jbe L0007ECC0 mov edi,00000666h mov [esp+10h],edi jmp L0007ECC6 L0007ECC0: mov [esp+10h],eax mov edi,eax L0007ECC6: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007ED21 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007ED1D mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007ED21 push esi call [esi+10h] mov eax,[esi+08h] jmp L0007ED21 L0007ED1D: mov ebx,[esp+38h] L0007ED21: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp edi,00000002h mov ecx,edi mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],edx mov [esp+28h],ecx jbe L0007EEDD L0007ED47: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+24h],esi add ecx,00000008h mov esi,eax imul esi,[esp+1Ch] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+1Ch] mov edi,edx imul edi,[esp+1Ch] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+20h] add eax,ecx test eax,eax jl L0007EF88 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007EF88 mov eax,[esp+20h] add edx,eax test edx,edx jl L0007EF71 cmp edx,ecx jge L0007EF71 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007EF39 cmp eax,ecx jge L0007EF39 mov eax,[esp+24h] test ah,01h jz L0007EE2A mov eax,[esp+38h] push esi push esi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+48h],eax call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007EE2A: mov eax,[esp+24h] test ah,02h jz L0007EE72 mov eax,[esp+38h] push esi push edi push eax push ebp call SUB_L0003EC00 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] push esi shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007EE72: mov eax,[esp+24h] test ah,04h jz L0007EEB5 mov edx,[esp+38h] push esi push ebx push edx push ebp call SUB_L0003EC00 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] push esi shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L0003EC00 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007EEB5: mov eax,[esp+28h] sub eax,00000003h cmp eax,00000002h mov [esp+28h],eax ja L0007ED47 mov edi,[esp+10h] mov esi,[esp+18h] mov eax,[esp+30h] mov edx,[esp+44h] mov ecx,[esp+28h] L0007EEDD: mov ebx,[esp+14h] sub ecx,edi add ebx,ecx cmp edx,edi mov ecx,[ebp+000005D4h] mov [esp+14h],ebx jz L0007EF11 sub edi,edx mov ebx,ecx shr ebx,02h imul edi,ebx shl edi,1 test edx,edx jnz L0007EF04 inc edi L0007EF04: mov ebx,[esi+08h] neg edi shl edi,02h add ebx,edi mov [esi+08h],ebx L0007EF11: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+14h] test eax,eax ja L0007ECAA pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007EF39: mov ecx,[ebp+000005D4h] imul ecx,[esp+10h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h pop edi add ecx,edx pop esi mov [eax+08h],ecx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007EF71: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007EF9D L0007EF88: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007EF9D: mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007EFB6: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007EFC0: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L0007F005 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007F005: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007F30D L0007F018: cmp eax,00000666h jbe L0007F02A mov edi,00000666h mov [esp+10h],edi jmp L0007F030 L0007F02A: mov [esp+10h],eax mov edi,eax L0007F030: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007F08B push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007F087 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007F08B push esi call [esi+10h] mov eax,[esi+08h] jmp L0007F08B L0007F087: mov ebx,[esp+38h] L0007F08B: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007F26C L0007F0B1: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007F2DF mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007F2DF mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007F2DF cmp edx,ecx jge L0007F2DF mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007F2C8 cmp eax,ecx jge L0007F2C8 fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007F244 mov eax,[esp+20h] test ah,01h jz L0007F1BD mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007F1BD: mov eax,[esp+20h] test ah,02h jz L0007F203 mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007F203: mov eax,[esp+20h] test ah,04h jz L0007F244 mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007F244: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007F0B1 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007F26C: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007F2A0 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007F293 inc edi L0007F293: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007F2A0: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007F018 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007F2C8: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007F2F4 L0007F2DF: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007F2F4: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007F30D: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0007F320: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] push edi push 00000001h push esi push ebp mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [ebp+00000138h],00000004h jc L0007F36E mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007F36E: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007F627 L0007F381: cmp eax,00000666h jbe L0007F393 mov edi,00000666h mov [esp+10h],edi jmp L0007F399 L0007F393: mov [esp+10h],eax mov edi,eax L0007F399: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007F3F4 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007F3F0 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007F3F4 push esi call [esi+10h] mov eax,[esi+08h] jmp L0007F3F4 L0007F3F0: mov ebx,[esp+38h] L0007F3F4: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007F5D5 L0007F41A: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007F672 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007F672 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007F672 cmp edx,ecx jge L0007F672 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007F63A cmp eax,ecx jge L0007F63A fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007F5AD mov eax,[esp+20h] test ah,01h jz L0007F526 mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007F526: mov eax,[esp+20h] test ah,02h jz L0007F56C mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007F56C: mov eax,[esp+20h] test ah,04h jz L0007F5AD mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007F5AD: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007F41A mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007F5D5: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007F609 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007F5FC inc edi L0007F5FC: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007F609: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007F381 L0007F627: push 00000000h push esi push ebp call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007F63A: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0007F64F: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h pop edi add edx,ecx pop esi mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007F672: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0007F64F Align 8 L0007F690: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+00000148h] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L0007F6D5 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007F6D5: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007F9DD L0007F6E8: cmp eax,00000666h jbe L0007F6FA mov edi,00000666h mov [esp+10h],edi jmp L0007F700 L0007F6FA: mov [esp+10h],eax mov edi,eax L0007F700: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007F75B push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007F757 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007F75B push esi call [esi+10h] mov eax,[esi+08h] jmp L0007F75B L0007F757: mov ebx,[esp+38h] L0007F75B: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007F93C L0007F781: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007F9AF mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007F9AF mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007F9AF cmp edx,ecx jge L0007F9AF mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007F998 cmp eax,ecx jge L0007F998 fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0007F914 mov eax,[esp+20h] test ah,01h jz L0007F88D mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007F88D: mov eax,[esp+20h] test ah,02h jz L0007F8D3 mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007F8D3: mov eax,[esp+20h] test ah,04h jz L0007F914 mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007F914: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007F781 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007F93C: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007F970 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007F963 inc edi L0007F963: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007F970: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007F6E8 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007F998: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007F9C4 L0007F9AF: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007F9C4: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007F9DD: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0007F9F0: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L0007FA35 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007FA35: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0007FD3D L0007FA48: cmp eax,00000666h jbe L0007FA5A mov edi,00000666h mov [esp+10h],edi jmp L0007FA60 L0007FA5A: mov [esp+10h],eax mov edi,eax L0007FA60: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007FABB push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007FAB7 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007FABB push esi call [esi+10h] mov eax,[esi+08h] jmp L0007FABB L0007FAB7: mov ebx,[esp+38h] L0007FABB: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0007FC9C L0007FAE1: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L0007FD0F mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0007FD0F mov eax,[esp+1Ch] add edx,eax test edx,edx jl L0007FD0F cmp edx,ecx jge L0007FD0F mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0007FCF8 cmp eax,ecx jge L0007FCF8 fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007FC74 mov eax,[esp+20h] test ah,01h jz L0007FBED mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007FBED: mov eax,[esp+20h] test ah,02h jz L0007FC33 mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007FC33: mov eax,[esp+20h] test ah,04h jz L0007FC74 mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007FC74: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007FAE1 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0007FC9C: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L0007FCD0 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0007FCC3 inc edi L0007FCC3: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0007FCD0: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007FA48 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0007FCF8: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0007FD24 L0007FD0F: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0007FD24: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0007FD3D: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0007FD50: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] push edi push 00000001h push esi push ebp mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [ebp+00000138h],00000004h jc L0007FD9E mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L0007FD9E: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L00080057 L0007FDB1: cmp eax,00000666h jbe L0007FDC3 mov edi,00000666h mov [esp+10h],edi jmp L0007FDC9 L0007FDC3: mov [esp+10h],eax mov edi,eax L0007FDC9: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0007FE24 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0007FE20 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0007FE24 push esi call [esi+10h] mov eax,[esi+08h] jmp L0007FE24 L0007FE20: mov ebx,[esp+38h] L0007FE24: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L00080005 L0007FE4A: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L000800A2 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L000800A2 mov eax,[esp+1Ch] add edx,eax test edx,edx jl L000800A2 cmp edx,ecx jge L000800A2 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L0008006A cmp eax,ecx jge L0008006A fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0007FFDD mov eax,[esp+20h] test ah,01h jz L0007FF56 mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0007FF56: mov eax,[esp+20h] test ah,02h jz L0007FF9C mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0007FF9C: mov eax,[esp+20h] test ah,04h jz L0007FFDD mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L0007FFDD: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0007FE4A mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L00080005: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L00080039 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L0008002C inc edi L0008002C: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L00080039: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L0007FDB1 L00080057: push 00000000h push esi push ebp call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0008006A: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L0008007F: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h pop edi add edx,ecx pop esi mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L000800A2: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L0008007F Align 8 L000800C0: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+00000148h] mov [esp+14h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L00080105 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+1Ch],eax L00080105: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+28h],eax jbe L0008040D L00080118: cmp eax,00000666h jbe L0008012A mov edi,00000666h mov [esp+10h],edi jmp L00080130 L0008012A: mov [esp+10h],eax mov edi,eax L00080130: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0008018B push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00080187 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0008018B push esi call [esi+10h] mov eax,[esi+08h] jmp L0008018B L00080187: mov ebx,[esp+38h] L0008018B: lea edx,[eax+ebx*4] add eax,00000004h xor ebx,ebx cmp edi,00000002h mov ecx,edi mov [esi+08h],edx mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],ebx mov [esp+24h],ecx jbe L0008036C L000801B1: mov ecx,[esp+3Ch] mov edi,[esp+40h] xor esi,esi mov si,[ecx+06h] xor eax,eax mov ax,[ecx] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov [esp+20h],esi add ecx,00000008h mov esi,eax imul esi,[esp+18h] add esi,edi mov [esp+2Ch],ebx imul ebx,[esp+18h] mov edi,edx imul edi,[esp+18h] mov [esp+3Ch],ecx mov ecx,[esp+40h] add edi,ecx add ebx,ecx mov ecx,[esp+1Ch] add eax,ecx test eax,eax jl L000803DF mov ecx,[ebp+00000A34h] cmp eax,ecx jge L000803DF mov eax,[esp+1Ch] add edx,eax test edx,edx jl L000803DF cmp edx,ecx jge L000803DF mov edx,[esp+2Ch] add eax,edx test eax,eax jl L000803C8 cmp eax,ecx jge L000803C8 fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [edi] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [edi+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00080344 mov eax,[esp+20h] test ah,01h jz L000802BD mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push edi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L000802BD: mov eax,[esp+20h] test ah,02h jz L00080303 mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L00080303: mov eax,[esp+20h] test ah,04h jz L00080344 mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push esi lea edi,[ecx+eax*4] push edi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[edi+edx*4] mov [esp+38h],eax inc [esp+44h] L00080344: mov eax,[esp+24h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L000801B1 mov esi,[esp+14h] mov edi,[esp+10h] mov eax,[esp+30h] mov ebx,[esp+44h] mov ecx,[esp+24h] L0008036C: mov edx,[esp+28h] sub ecx,edi add edx,ecx cmp ebx,edi mov ecx,[ebp+000005D4h] mov [esp+28h],edx jz L000803A0 sub edi,ebx mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test ebx,ebx jnz L00080393 inc edi L00080393: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L000803A0: imul ecx,ebx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+28h] test eax,eax ja L00080118 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L000803C8: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000803F4 L000803DF: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000803F4: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0008040D: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00080420: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] mov [esp+18h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+20h],00000000h mov [esp+18h],esi jc L00080465 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+20h],eax L00080465: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+14h],eax jbe L0008077E jmp L0008047E L0008047A: mov eax,[esp+14h] L0008047E: cmp eax,00000666h jbe L00080490 mov edi,00000666h mov [esp+10h],edi jmp L00080496 L00080490: mov [esp+10h],eax mov edi,eax L00080496: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L000804F1 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000804ED mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000804F1 push esi call [esi+10h] mov eax,[esi+08h] jmp L000804F1 L000804ED: mov ebx,[esp+38h] L000804F1: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp edi,00000002h mov ecx,edi mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],edx mov [esp+28h],ecx jbe L000806A5 L00080517: mov ecx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor esi,esi mov si,[ecx+06h] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov edi,eax imul edi,[esp+1Ch] mov [esp+24h],esi add edi,[esp+40h] mov [esp+2Ch],ebx imul ebx,[esp+1Ch] mov esi,edx imul esi,[esp+1Ch] add ecx,00000008h mov [esp+3Ch],ecx mov ecx,[esp+40h] add esi,ecx add ebx,ecx mov ecx,[esp+20h] add eax,ecx test eax,eax jl L00080750 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L00080750 mov eax,[esp+20h] add edx,eax test edx,edx jl L00080739 cmp edx,ecx jge L00080739 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L00080701 cmp eax,ecx jge L00080701 mov eax,[esp+24h] test ah,01h jz L000805F6 mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push esi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L000805F6: mov eax,[esp+24h] test ah,02h jz L0008063C mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea esi,[edx+ecx*4] push esi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[esi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L0008063C: mov eax,[esp+24h] test ah,04h jz L0008067D mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push edi lea esi,[ecx+eax*4] push esi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[esi+edx*4] mov [esp+38h],eax inc [esp+44h] L0008067D: mov eax,[esp+28h] sub eax,00000003h cmp eax,00000002h mov [esp+28h],eax ja L00080517 mov edi,[esp+10h] mov esi,[esp+18h] mov eax,[esp+30h] mov edx,[esp+44h] mov ecx,[esp+28h] L000806A5: mov ebx,[esp+14h] sub ecx,edi add ebx,ecx cmp edx,edi mov ecx,[ebp+000005D4h] mov [esp+14h],ebx jz L000806D9 sub edi,edx mov ebx,ecx shr ebx,02h imul edi,ebx shl edi,1 test edx,edx jnz L000806CC inc edi L000806CC: mov ebx,[esi+08h] neg edi shl edi,02h add ebx,edi mov [esi+08h],ebx L000806D9: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+14h] test eax,eax ja L0008047A pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00080701: mov ecx,[ebp+000005D4h] imul ecx,[esp+10h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h pop edi add ecx,edx pop esi mov [eax+08h],ecx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00080739: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00080765 L00080750: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00080765: mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L0008077E: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00080790: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+0000017Ch] push edi push 00000001h push esi push ebp mov dword ptr [esp+2Ch],00000000h mov [esp+28h],eax mov [esp+24h],esi call SUB_L000ABBE0 cmp dword ptr [ebp+00000138h],00000004h jc L000807DE mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+20h],eax L000807DE: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+14h],eax jbe L00080A70 jmp L000807F7 L000807F3: mov eax,[esp+14h] L000807F7: cmp eax,00000666h jbe L00080809 mov edi,00000666h mov [esp+10h],edi jmp L0008080F L00080809: mov [esp+10h],eax mov edi,eax L0008080F: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L0008086A push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00080866 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0008086A push esi call [esi+10h] mov eax,[esi+08h] jmp L0008086A L00080866: mov ebx,[esp+38h] L0008086A: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp edi,00000002h mov ecx,edi mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],edx mov [esp+28h],ecx jbe L00080A1E L00080890: mov ecx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor esi,esi mov si,[ecx+06h] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov edi,eax imul edi,[esp+1Ch] mov [esp+24h],esi add edi,[esp+40h] mov [esp+2Ch],ebx imul ebx,[esp+1Ch] mov esi,edx imul esi,[esp+1Ch] add ecx,00000008h mov [esp+3Ch],ecx mov ecx,[esp+40h] add esi,ecx add ebx,ecx mov ecx,[esp+20h] add eax,ecx test eax,eax jl L00080AF3 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L00080AF3 mov eax,[esp+20h] add edx,eax test edx,edx jl L00080ABB cmp edx,ecx jge L00080ABB mov edx,[esp+2Ch] add eax,edx test eax,eax jl L00080A83 cmp eax,ecx jge L00080A83 mov eax,[esp+24h] test ah,01h jz L0008096F mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push esi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L0008096F: mov eax,[esp+24h] test ah,02h jz L000809B5 mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea esi,[edx+ecx*4] push esi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[esi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L000809B5: mov eax,[esp+24h] test ah,04h jz L000809F6 mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push edi lea esi,[ecx+eax*4] push esi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[esi+edx*4] mov [esp+38h],eax inc [esp+44h] L000809F6: mov eax,[esp+28h] sub eax,00000003h cmp eax,00000002h mov [esp+28h],eax ja L00080890 mov edi,[esp+10h] mov esi,[esp+18h] mov eax,[esp+30h] mov edx,[esp+44h] mov ecx,[esp+28h] L00080A1E: mov ebx,[esp+14h] sub ecx,edi add ebx,ecx cmp edx,edi mov ecx,[ebp+000005D4h] mov [esp+14h],ebx jz L00080A52 sub edi,edx mov ebx,ecx shr ebx,02h imul edi,ebx shl edi,1 test edx,edx jnz L00080A45 inc edi L00080A45: mov ebx,[esi+08h] neg edi shl edi,02h add ebx,edi mov [esi+08h],ebx L00080A52: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+14h] test eax,eax ja L000807F3 L00080A70: push 00000000h push esi push ebp call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00080A83: mov ecx,[ebp+000005D4h] imul ecx,[esp+10h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h pop edi add ecx,edx pop esi mov [eax+08h],ecx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00080ABB: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L00080AD0: mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h pop edi add edx,ecx pop esi mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00080AF3: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L00080AD0 Align 8 L00080B10: sub esp,00000024h push ebx push ebp mov ebp,[esp+30h] mov eax,[ebp+000005D0h] push esi mov esi,[ebp+00000148h] mov [esp+18h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov dword ptr [esp+20h],00000000h mov [esp+18h],esi jc L00080B55 mov eax,[esp+40h] sub eax,[ebp+00004860h] cdq idiv [ebp+00004858h] mov [esp+20h],eax L00080B55: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+14h],eax jbe L00080E6E jmp L00080B6E L00080B6A: mov eax,[esp+14h] L00080B6E: cmp eax,00000666h jbe L00080B80 mov edi,00000666h mov [esp+10h],edi jmp L00080B86 L00080B80: mov [esp+10h],eax mov edi,eax L00080B86: mov ebx,[ebp+000005D4h] mov eax,[esi+08h] imul ebx,edi mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+38h],ebx jc L00080BE1 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00080BDD mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+38h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00080BE1 push esi call [esi+10h] mov eax,[esi+08h] jmp L00080BE1 L00080BDD: mov ebx,[esp+38h] L00080BE1: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp edi,00000002h mov ecx,edi mov [esp+30h],eax mov [esp+38h],eax mov [esp+44h],edx mov [esp+28h],ecx jbe L00080D95 L00080C07: mov ecx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor esi,esi mov si,[ecx+06h] xor ebx,ebx mov bx,[ecx+04h] xor edx,edx mov dx,[ecx+02h] mov edi,eax imul edi,[esp+1Ch] mov [esp+24h],esi add edi,[esp+40h] mov [esp+2Ch],ebx imul ebx,[esp+1Ch] mov esi,edx imul esi,[esp+1Ch] add ecx,00000008h mov [esp+3Ch],ecx mov ecx,[esp+40h] add esi,ecx add ebx,ecx mov ecx,[esp+20h] add eax,ecx test eax,eax jl L00080E40 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L00080E40 mov eax,[esp+20h] add edx,eax test edx,edx jl L00080E29 cmp edx,ecx jge L00080E29 mov edx,[esp+2Ch] add eax,edx test eax,eax jl L00080DF1 cmp eax,ecx jge L00080DF1 mov eax,[esp+24h] test ah,01h jz L00080CE6 mov eax,[esp+38h] push edi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push esi push eax push ebp mov [esp+44h],eax call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],edx mov [esp+44h],eax L00080CE6: mov eax,[esp+24h] test ah,02h jz L00080D2C mov eax,[esp+38h] push esi push eax push ebp call SUB_L00040370 mov ecx,[ebp+000005D4h] mov edx,[esp+38h] shr ecx,02h push ebx lea esi,[edx+ecx*4] push esi push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] shr eax,02h lea ecx,[esi+eax*4] mov eax,[esp+44h] inc eax mov [esp+38h],ecx mov [esp+44h],eax L00080D2C: mov eax,[esp+24h] test ah,04h jz L00080D6D mov edx,[esp+38h] push ebx push edx push ebp call SUB_L00040370 mov eax,[ebp+000005D4h] mov ecx,[esp+38h] shr eax,02h push edi lea esi,[ecx+eax*4] push esi push ebp call SUB_L00040370 mov edx,[ebp+000005D4h] shr edx,02h lea eax,[esi+edx*4] mov [esp+38h],eax inc [esp+44h] L00080D6D: mov eax,[esp+28h] sub eax,00000003h cmp eax,00000002h mov [esp+28h],eax ja L00080C07 mov edi,[esp+10h] mov esi,[esp+18h] mov eax,[esp+30h] mov edx,[esp+44h] mov ecx,[esp+28h] L00080D95: mov ebx,[esp+14h] sub ecx,edi add ebx,ecx cmp edx,edi mov ecx,[ebp+000005D4h] mov [esp+14h],ebx jz L00080DC9 sub edi,edx mov ebx,ecx shr ebx,02h imul edi,ebx shl edi,1 test edx,edx jnz L00080DBC inc edi L00080DBC: mov ebx,[esi+08h] neg edi shl edi,02h add ebx,edi mov [esi+08h],ebx L00080DC9: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+14h] test eax,eax ja L00080B6A pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00080DF1: mov ecx,[ebp+000005D4h] imul ecx,[esp+10h] mov eax,[esp+18h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h pop edi add ecx,edx pop esi mov [eax+08h],ecx mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00080E29: mov eax,[ebp+000005D4h] imul eax,[esp+10h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00080E55 L00080E40: mov edx,[ebp+000005D4h] imul edx,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00080E55: mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebp+000005B0h],00000001h L00080E6E: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00080E80: sub esp,00000020h push ebx push ebp push esi push edi mov edi,[esp+34h] mov eax,[edi+000005D0h] mov esi,[edi+0000017Ch] mov [esp+18h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L00080EC5 mov eax,[esp+3Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+1Ch],eax L00080EC5: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L000812CE L00080ED8: cmp ecx,00000666h jbe L00080EEB mov ebx,00000666h mov [esp+34h],ebx jmp L00080EF1 L00080EEB: mov [esp+34h],ecx mov ebx,ecx L00080EF1: mov ebp,[edi+000005D4h] mov eax,[esi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[esi+0Ch] mov [esp+40h],ebp jc L00080F4E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00080F46 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+40h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00080F4A push esi call [esi+10h] mov eax,[esi+08h] jmp L00080F4A L00080F46: mov ebp,[esp+40h] L00080F4A: mov ecx,[esp+10h] L00080F4E: lea edx,[eax+ebp*4] add eax,00000004h mov [esi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L00081232 L00080F74: mov esi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000008h mov [esp+38h],esi mov esi,eax imul esi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add esi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L000812A0 mov edx,[edi+00000A34h] cmp eax,edx jge L000812A0 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L000812A0 cmp ecx,edx jge L000812A0 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00081289 cmp eax,edx jge L00081289 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008120E mov edx,[esp+40h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov ebx,[esp+40h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] add eax,00000003h mov [esp+40h],edx mov [esp+24h],eax L0008120E: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00080F74 mov ebx,[esp+34h] mov ecx,[esp+10h] mov esi,[esp+14h] mov edx,[esp+24h] L00081232: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[edi+000005D4h] mov [esp+10h],ecx jz L00081262 sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L00081255 inc ebx L00081255: mov ebp,[esi+08h] neg ebx shl ebx,02h add ebp,ebx mov [esi+08h],ebp L00081262: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00080ED8 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00081289: mov eax,[edi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000812B5 L000812A0: mov edx,[edi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000812B5: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L000812CE: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000812E0: sub esp,00000020h push ebx push ebp push esi push edi mov edi,[esp+34h] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jc L0008132E mov eax,[esp+3Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+1Ch],eax L0008132E: mov eax,[esp+40h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+10h],ecx jbe L000816E8 L00081341: cmp ecx,00000666h jbe L00081354 mov ebx,00000666h mov [esp+34h],ebx jmp L0008135A L00081354: mov [esp+34h],ecx mov ebx,ecx L0008135A: mov ebp,[edi+000005D4h] mov eax,[esi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[esi+0Ch] mov [esp+40h],ebp jc L000813B7 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000813AF mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+40h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L000813B3 push esi call [esi+10h] mov eax,[esi+08h] jmp L000813B3 L000813AF: mov ebp,[esp+40h] L000813B3: mov ecx,[esp+10h] L000813B7: lea edx,[eax+ebp*4] add eax,00000004h mov [esi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L0008169B L000813DD: mov esi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000008h mov [esp+38h],esi mov esi,eax imul esi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add esi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00081733 mov edx,[edi+00000A34h] cmp eax,edx jge L00081733 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00081733 cmp ecx,edx jge L00081733 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L000816FB cmp eax,edx jge L000816FB fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00081677 mov edx,[esp+40h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov ebx,[esp+40h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] add eax,00000003h mov [esp+40h],edx mov [esp+24h],eax L00081677: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000813DD mov ebx,[esp+34h] mov ecx,[esp+10h] mov esi,[esp+14h] mov edx,[esp+24h] L0008169B: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[edi+000005D4h] mov [esp+10h],ecx jz L000816CB sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L000816BE inc ebx L000816BE: mov ebp,[esi+08h] neg ebx shl ebx,02h add ebp,ebx mov [esi+08h],ebp L000816CB: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00081341 L000816E8: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L000816FB: mov eax,[edi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L00081710: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00081733: mov edx,[edi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L00081710 Align 8 L00081750: sub esp,00000020h push ebx push ebp push esi push edi mov edi,[esp+34h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] mov [esp+18h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L00081795 mov eax,[esp+3Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+1Ch],eax L00081795: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L00081B9E L000817A8: cmp ecx,00000666h jbe L000817BB mov ebx,00000666h mov [esp+34h],ebx jmp L000817C1 L000817BB: mov [esp+34h],ecx mov ebx,ecx L000817C1: mov ebp,[edi+000005D4h] mov eax,[esi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[esi+0Ch] mov [esp+40h],ebp jc L0008181E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00081816 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+40h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008181A push esi call [esi+10h] mov eax,[esi+08h] jmp L0008181A L00081816: mov ebp,[esp+40h] L0008181A: mov ecx,[esp+10h] L0008181E: lea edx,[eax+ebp*4] add eax,00000004h mov [esi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L00081B02 L00081844: mov esi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000008h mov [esp+38h],esi mov esi,eax imul esi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add esi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00081B70 mov edx,[edi+00000A34h] cmp eax,edx jge L00081B70 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00081B70 cmp ecx,edx jge L00081B70 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00081B59 cmp eax,edx jge L00081B59 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00081ADE mov edx,[esp+40h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov ebx,[esp+40h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] add eax,00000003h mov [esp+40h],edx mov [esp+24h],eax L00081ADE: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00081844 mov ebx,[esp+34h] mov ecx,[esp+10h] mov esi,[esp+14h] mov edx,[esp+24h] L00081B02: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[edi+000005D4h] mov [esp+10h],ecx jz L00081B32 sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L00081B25 inc ebx L00081B25: mov ebp,[esi+08h] neg ebx shl ebx,02h add ebp,ebx mov [esi+08h],ebp L00081B32: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000817A8 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00081B59: mov eax,[edi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00081B85 L00081B70: mov edx,[edi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00081B85: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00081B9E: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00081BB0: sub esp,00000020h push ebx push ebp push esi push edi mov edi,[esp+34h] mov eax,[edi+000005D0h] mov esi,[edi+0000017Ch] mov [esp+18h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L00081BF5 mov eax,[esp+3Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+1Ch],eax L00081BF5: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L00081FFE L00081C08: cmp ecx,00000666h jbe L00081C1B mov ebx,00000666h mov [esp+34h],ebx jmp L00081C21 L00081C1B: mov [esp+34h],ecx mov ebx,ecx L00081C21: mov ebp,[edi+000005D4h] mov eax,[esi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[esi+0Ch] mov [esp+40h],ebp jc L00081C7E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00081C76 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+40h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00081C7A push esi call [esi+10h] mov eax,[esi+08h] jmp L00081C7A L00081C76: mov ebp,[esp+40h] L00081C7A: mov ecx,[esp+10h] L00081C7E: lea edx,[eax+ebp*4] add eax,00000004h mov [esi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L00081F62 L00081CA4: mov esi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000008h mov [esp+38h],esi mov esi,eax imul esi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add esi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00081FD0 mov edx,[edi+00000A34h] cmp eax,edx jge L00081FD0 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00081FD0 cmp ecx,edx jge L00081FD0 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00081FB9 cmp eax,edx jge L00081FB9 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00081F3E mov edx,[esp+40h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov ebx,[esp+40h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] add eax,00000003h mov [esp+40h],edx mov [esp+24h],eax L00081F3E: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00081CA4 mov ebx,[esp+34h] mov ecx,[esp+10h] mov esi,[esp+14h] mov edx,[esp+24h] L00081F62: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[edi+000005D4h] mov [esp+10h],ecx jz L00081F92 sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L00081F85 inc ebx L00081F85: mov ebp,[esi+08h] neg ebx shl ebx,02h add ebp,ebx mov [esi+08h],ebp L00081F92: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00081C08 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00081FB9: mov eax,[edi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00081FE5 L00081FD0: mov edx,[edi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00081FE5: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00081FFE: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00082010: sub esp,00000020h push ebx push ebp push esi push edi mov edi,[esp+34h] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jc L0008205E mov eax,[esp+3Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+1Ch],eax L0008205E: mov eax,[esp+40h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+10h],ecx jbe L00082418 L00082071: cmp ecx,00000666h jbe L00082084 mov ebx,00000666h mov [esp+34h],ebx jmp L0008208A L00082084: mov [esp+34h],ecx mov ebx,ecx L0008208A: mov ebp,[edi+000005D4h] mov eax,[esi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[esi+0Ch] mov [esp+40h],ebp jc L000820E7 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000820DF mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+40h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L000820E3 push esi call [esi+10h] mov eax,[esi+08h] jmp L000820E3 L000820DF: mov ebp,[esp+40h] L000820E3: mov ecx,[esp+10h] L000820E7: lea edx,[eax+ebp*4] add eax,00000004h mov [esi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L000823CB L0008210D: mov esi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000008h mov [esp+38h],esi mov esi,eax imul esi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add esi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00082463 mov edx,[edi+00000A34h] cmp eax,edx jge L00082463 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00082463 cmp ecx,edx jge L00082463 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L0008242B cmp eax,edx jge L0008242B fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000823A7 mov edx,[esp+40h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov ebx,[esp+40h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] add eax,00000003h mov [esp+40h],edx mov [esp+24h],eax L000823A7: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L0008210D mov ebx,[esp+34h] mov ecx,[esp+10h] mov esi,[esp+14h] mov edx,[esp+24h] L000823CB: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[edi+000005D4h] mov [esp+10h],ecx jz L000823FB sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L000823EE inc ebx L000823EE: mov ebp,[esi+08h] neg ebx shl ebx,02h add ebp,ebx mov [esi+08h],ebp L000823FB: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00082071 L00082418: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0008242B: mov eax,[edi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L00082440: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00082463: mov edx,[edi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L00082440 Align 8 L00082480: sub esp,00000020h push ebx push ebp push esi push edi mov edi,[esp+34h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] mov [esp+18h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+1Ch],00000000h mov [esp+14h],esi jc L000824C5 mov eax,[esp+3Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+1Ch],eax L000824C5: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L000828CE L000824D8: cmp ecx,00000666h jbe L000824EB mov ebx,00000666h mov [esp+34h],ebx jmp L000824F1 L000824EB: mov [esp+34h],ecx mov ebx,ecx L000824F1: mov ebp,[edi+000005D4h] mov eax,[esi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[esi+0Ch] mov [esp+40h],ebp jc L0008254E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00082546 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+40h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008254A push esi call [esi+10h] mov eax,[esi+08h] jmp L0008254A L00082546: mov ebp,[esp+40h] L0008254A: mov ecx,[esp+10h] L0008254E: lea edx,[eax+ebp*4] add eax,00000004h mov [esi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L00082832 L00082574: mov esi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000008h mov [esp+38h],esi mov esi,eax imul esi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add esi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L000828A0 mov edx,[edi+00000A34h] cmp eax,edx jge L000828A0 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L000828A0 cmp ecx,edx jge L000828A0 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00082889 cmp eax,edx jge L00082889 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0008280E mov edx,[esp+40h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov edx,[esp+40h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+50h],eax call SUB_L0003EC00 mov ebx,[esp+40h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] mov eax,[esp+24h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] add eax,00000003h mov [esp+40h],edx mov [esp+24h],eax L0008280E: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00082574 mov ebx,[esp+34h] mov ecx,[esp+10h] mov esi,[esp+14h] mov edx,[esp+24h] L00082832: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[edi+000005D4h] mov [esp+10h],ecx jz L00082862 sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L00082855 inc ebx L00082855: mov ebp,[esi+08h] neg ebx shl ebx,02h add ebp,ebx mov [esi+08h],ebp L00082862: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000824D8 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00082889: mov eax,[edi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000828B5 L000828A0: mov edx,[edi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000828B5: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L000828CE: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000828E0: sub esp,00000024h push ebx push ebp push esi push edi mov edi,[esp+38h] mov eax,[edi+000005D0h] mov esi,[edi+0000017Ch] mov [esp+1Ch],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000000h mov [esp+10h],esi jc L00082925 mov eax,[esp+40h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+20h],eax L00082925: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+44h],eax jbe L00082CC3 jmp L0008293E L0008293A: mov eax,[esp+44h] L0008293E: cmp eax,00000666h jbe L00082950 mov ebp,00000666h mov [esp+38h],ebp jmp L00082956 L00082950: mov [esp+38h],eax mov ebp,eax L00082956: mov ebx,[edi+000005D4h] mov eax,[esi+08h] imul ebx,ebp mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+18h],ebx jc L000829B1 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000829AD mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+18h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000829B1 push esi call [esi+10h] mov eax,[esi+08h] jmp L000829B1 L000829AD: mov ebx,[esp+18h] L000829B1: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+30h],eax mov ebx,eax mov [esp+18h],edx mov [esp+14h],ecx jbe L00082C39 L000829D5: mov edx,[esp+3Ch] xor ecx,ecx mov cx,[edx] xor eax,eax mov ax,[edx+04h] xor ebp,ebp mov bp,[edx+02h] add edx,00000008h mov [esp+3Ch],edx mov edx,[esp+40h] mov esi,ecx imul esi,[esp+1Ch] add esi,edx mov edx,[esp+1Ch] mov [esp+28h],eax imul eax,edx mov [esp+24h],ebp imul ebp,edx mov edx,[esp+40h] add ebp,[esp+40h] add eax,edx mov [esp+2Ch],eax mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00082C95 mov edx,[edi+00000A34h] cmp ecx,edx jge L00082C95 mov ecx,[esp+24h] add ecx,eax test ecx,ecx jl L00082C95 cmp ecx,edx jge L00082C95 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00082C95 cmp eax,edx jge L00082C95 push esi push esi push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] mov ebp,[esp+30h] push ebp push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov esi,[esp+18h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] mov eax,[esp+14h] sub eax,00000003h add esi,00000003h fadd dword ptr [L000B2484] mov [esp+18h],esi mov [esp+14h],eax fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000002h lea ebx,[ebx+ecx*4] ja L000829D5 mov eax,[esp+30h] mov ebp,[esp+38h] mov ecx,[esp+14h] mov edx,esi mov esi,[esp+10h] L00082C39: mov ebx,[esp+44h] sub ecx,ebp add ebx,ecx cmp edx,ebp mov ecx,[edi+000005D4h] mov [esp+44h],ebx jz L00082C6D sub ebp,edx mov ebx,ecx shr ebx,02h imul ebp,ebx shl ebp,1 test edx,edx jnz L00082C60 inc ebp L00082C60: mov ebx,[esi+08h] neg ebp shl ebp,02h add ebx,ebp mov [esi+08h],ebx L00082C6D: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+44h] test eax,eax ja L0008293A pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00082C95: mov edx,[edi+000005D4h] imul edx,[esp+38h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00082CC3: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00082CD0: sub esp,00000024h push ebx push ebp push esi push edi mov edi,[esp+38h] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov dword ptr [esp+2Ch],00000000h mov [esp+28h],eax mov [esp+1Ch],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jc L00082D1E mov eax,[esp+40h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+20h],eax L00082D1E: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+44h],eax jbe L00083084 jmp L00082D37 L00082D33: mov eax,[esp+44h] L00082D37: cmp eax,00000666h jbe L00082D49 mov ebp,00000666h mov [esp+38h],ebp jmp L00082D4F L00082D49: mov [esp+38h],eax mov ebp,eax L00082D4F: mov ebx,[edi+000005D4h] mov eax,[esi+08h] imul ebx,ebp mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+18h],ebx jc L00082DAA push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00082DA6 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+18h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00082DAA push esi call [esi+10h] mov eax,[esi+08h] jmp L00082DAA L00082DA6: mov ebx,[esp+18h] L00082DAA: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+30h],eax mov ebx,eax mov [esp+18h],edx mov [esp+14h],ecx jbe L00083032 L00082DCE: mov edx,[esp+3Ch] xor ecx,ecx mov cx,[edx] xor eax,eax mov ax,[edx+04h] xor ebp,ebp mov bp,[edx+02h] add edx,00000008h mov [esp+3Ch],edx mov edx,[esp+40h] mov esi,ecx imul esi,[esp+1Ch] add esi,edx mov edx,[esp+1Ch] mov [esp+28h],eax imul eax,edx mov [esp+24h],ebp imul ebp,edx mov edx,[esp+40h] add ebp,[esp+40h] add eax,edx mov [esp+2Ch],eax mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00083097 mov edx,[edi+00000A34h] cmp ecx,edx jge L00083097 mov ecx,[esp+24h] add ecx,eax test ecx,ecx jl L00083097 cmp ecx,edx jge L00083097 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00083097 cmp eax,edx jge L00083097 push esi push esi push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] mov ebp,[esp+30h] push ebp push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov esi,[esp+18h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] mov eax,[esp+14h] sub eax,00000003h add esi,00000003h fadd dword ptr [L000B2484] mov [esp+18h],esi mov [esp+14h],eax fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000002h lea ebx,[ebx+ecx*4] ja L00082DCE mov eax,[esp+30h] mov ebp,[esp+38h] mov ecx,[esp+14h] mov edx,esi mov esi,[esp+10h] L00083032: mov ebx,[esp+44h] sub ecx,ebp add ebx,ecx cmp edx,ebp mov ecx,[edi+000005D4h] mov [esp+44h],ebx jz L00083066 sub ebp,edx mov ebx,ecx shr ebx,02h imul ebp,ebx shl ebp,1 test edx,edx jnz L00083059 inc ebp L00083059: mov ebx,[esi+08h] neg ebp shl ebp,02h add ebx,ebp mov [esi+08h],ebx L00083066: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+44h] test eax,eax ja L00082D33 L00083084: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00083097: mov edx,[edi+000005D4h] imul edx,[esp+38h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000830D0: sub esp,00000024h push ebx push ebp push esi push edi mov edi,[esp+38h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] mov [esp+1Ch],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+20h],00000000h mov [esp+10h],esi jc L00083115 mov eax,[esp+40h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+20h],eax L00083115: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+44h],eax jbe L000834B3 jmp L0008312E L0008312A: mov eax,[esp+44h] L0008312E: cmp eax,00000666h jbe L00083140 mov ebp,00000666h mov [esp+38h],ebp jmp L00083146 L00083140: mov [esp+38h],eax mov ebp,eax L00083146: mov ebx,[edi+000005D4h] mov eax,[esi+08h] imul ebx,ebp mov edx,[esi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+18h],ebx jc L000831A1 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0008319D mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebx,[esp+18h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000831A1 push esi call [esi+10h] mov eax,[esi+08h] jmp L000831A1 L0008319D: mov ebx,[esp+18h] L000831A1: lea edx,[eax+ebx*4] add eax,00000004h mov [esi+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+30h],eax mov ebx,eax mov [esp+18h],edx mov [esp+14h],ecx jbe L00083429 L000831C5: mov edx,[esp+3Ch] xor ecx,ecx mov cx,[edx] xor eax,eax mov ax,[edx+04h] xor ebp,ebp mov bp,[edx+02h] add edx,00000008h mov [esp+3Ch],edx mov edx,[esp+40h] mov esi,ecx imul esi,[esp+1Ch] add esi,edx mov edx,[esp+1Ch] mov [esp+28h],eax imul eax,edx mov [esp+24h],ebp imul ebp,edx mov edx,[esp+40h] add ebp,[esp+40h] add eax,edx mov [esp+2Ch],eax mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00083485 mov edx,[edi+00000A34h] cmp ecx,edx jge L00083485 mov ecx,[esp+24h] add ecx,eax test ecx,ecx jl L00083485 cmp ecx,edx jge L00083485 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00083485 cmp eax,edx jge L00083485 push esi push esi push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push esi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] mov ebp,[esp+30h] push ebp push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov esi,[esp+18h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] mov eax,[esp+14h] sub eax,00000003h add esi,00000003h fadd dword ptr [L000B2484] mov [esp+18h],esi mov [esp+14h],eax fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h cmp eax,00000002h lea ebx,[ebx+ecx*4] ja L000831C5 mov eax,[esp+30h] mov ebp,[esp+38h] mov ecx,[esp+14h] mov edx,esi mov esi,[esp+10h] L00083429: mov ebx,[esp+44h] sub ecx,ebp add ebx,ecx cmp edx,ebp mov ecx,[edi+000005D4h] mov [esp+44h],ebx jz L0008345D sub ebp,edx mov ebx,ecx shr ebx,02h imul ebp,ebx shl ebp,1 test edx,edx jnz L00083450 inc ebp L00083450: mov ebx,[esi+08h] neg ebp shl ebp,02h add ebx,ebp mov [esi+08h],ebx L0008345D: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+44h] test eax,eax ja L0008312A pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00083485: mov edx,[edi+000005D4h] imul edx,[esp+38h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L000834B3: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000834C0: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov [esp+14h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+0000017Ch] mov dword ptr [esp+1Ch],00000000h mov [esp+14h],edi jc L00083505 mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+1Ch],eax L00083505: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L000838E8 L00083518: cmp ecx,00000666h jbe L0008352B mov ebx,00000666h mov [esp+34h],ebx jmp L00083531 L0008352B: mov [esp+34h],ecx mov ebx,ecx L00083531: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+40h],ebp jc L0008358E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00083586 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+40h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008358A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008358A L00083586: mov ebp,[esp+40h] L0008358A: mov ecx,[esp+10h] L0008358E: lea edx,[eax+ebp*4] add eax,00000004h mov [edi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L0008384C L000835B4: mov edi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000008h mov [esp+38h],edi mov edi,eax imul edi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L000838BA mov edx,[esi+00000A34h] cmp eax,edx jge L000838BA mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L000838BA cmp ecx,edx jge L000838BA mov ecx,[esp+28h] add eax,ecx test eax,eax jl L000838A3 cmp eax,edx jge L000838A3 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00083828 mov edx,[esp+40h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+4Ch],eax call SUB_L00040370 mov edi,[esp+40h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+24h] add eax,00000003h mov [esp+40h],ecx mov [esp+24h],eax L00083828: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000835B4 mov ebx,[esp+34h] mov ecx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+24h] L0008384C: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[esi+000005D4h] mov [esp+10h],ecx jz L0008387C sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L0008386F inc ebx L0008386F: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0008387C: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00083518 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L000838A3: mov eax,[esi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000838CF L000838BA: mov edx,[esi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000838CF: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000838E8: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00083900: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jc L0008394E mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+1Ch],eax L0008394E: mov eax,[esp+40h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+10h],ecx jbe L00083CE2 L00083961: cmp ecx,00000666h jbe L00083974 mov ebx,00000666h mov [esp+34h],ebx jmp L0008397A L00083974: mov [esp+34h],ecx mov ebx,ecx L0008397A: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+40h],ebp jc L000839D7 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000839CF mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+40h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L000839D3 push edi call [edi+10h] mov eax,[edi+08h] jmp L000839D3 L000839CF: mov ebp,[esp+40h] L000839D3: mov ecx,[esp+10h] L000839D7: lea edx,[eax+ebp*4] add eax,00000004h mov [edi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L00083C95 L000839FD: mov edi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000008h mov [esp+38h],edi mov edi,eax imul edi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00083D2D mov edx,[esi+00000A34h] cmp eax,edx jge L00083D2D mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00083D2D cmp ecx,edx jge L00083D2D mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00083CF5 cmp eax,edx jge L00083CF5 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00083C71 mov edx,[esp+40h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+4Ch],eax call SUB_L00040370 mov edi,[esp+40h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+24h] add eax,00000003h mov [esp+40h],ecx mov [esp+24h],eax L00083C71: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000839FD mov ebx,[esp+34h] mov ecx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+24h] L00083C95: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[esi+000005D4h] mov [esp+10h],ecx jz L00083CC5 sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L00083CB8 inc ebx L00083CB8: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L00083CC5: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00083961 L00083CE2: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00083CF5: mov eax,[esi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L00083D0A: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00083D2D: mov edx,[esi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L00083D0A Align 16 L00083D50: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov [esp+14h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+1Ch],00000000h mov [esp+14h],edi jc L00083D95 mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+1Ch],eax L00083D95: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L00084178 L00083DA8: cmp ecx,00000666h jbe L00083DBB mov ebx,00000666h mov [esp+34h],ebx jmp L00083DC1 L00083DBB: mov [esp+34h],ecx mov ebx,ecx L00083DC1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+40h],ebp jc L00083E1E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00083E16 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+40h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00083E1A push edi call [edi+10h] mov eax,[edi+08h] jmp L00083E1A L00083E16: mov ebp,[esp+40h] L00083E1A: mov ecx,[esp+10h] L00083E1E: lea edx,[eax+ebp*4] add eax,00000004h mov [edi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L000840DC L00083E44: mov edi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000008h mov [esp+38h],edi mov edi,eax imul edi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L0008414A mov edx,[esi+00000A34h] cmp eax,edx jge L0008414A mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L0008414A cmp ecx,edx jge L0008414A mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00084133 cmp eax,edx jge L00084133 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000840B8 mov edx,[esp+40h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+4Ch],eax call SUB_L00040370 mov edi,[esp+40h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+24h] add eax,00000003h mov [esp+40h],ecx mov [esp+24h],eax L000840B8: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00083E44 mov ebx,[esp+34h] mov ecx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+24h] L000840DC: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[esi+000005D4h] mov [esp+10h],ecx jz L0008410C sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L000840FF inc ebx L000840FF: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0008410C: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00083DA8 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00084133: mov eax,[esi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0008415F L0008414A: mov edx,[esi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0008415F: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00084178: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00084190: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov [esp+14h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+0000017Ch] mov dword ptr [esp+1Ch],00000000h mov [esp+14h],edi jc L000841D5 mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+1Ch],eax L000841D5: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L000845B8 L000841E8: cmp ecx,00000666h jbe L000841FB mov ebx,00000666h mov [esp+34h],ebx jmp L00084201 L000841FB: mov [esp+34h],ecx mov ebx,ecx L00084201: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+40h],ebp jc L0008425E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00084256 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+40h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008425A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008425A L00084256: mov ebp,[esp+40h] L0008425A: mov ecx,[esp+10h] L0008425E: lea edx,[eax+ebp*4] add eax,00000004h mov [edi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L0008451C L00084284: mov edi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000008h mov [esp+38h],edi mov edi,eax imul edi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L0008458A mov edx,[esi+00000A34h] cmp eax,edx jge L0008458A mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L0008458A cmp ecx,edx jge L0008458A mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00084573 cmp eax,edx jge L00084573 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000844F8 mov edx,[esp+40h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+4Ch],eax call SUB_L00040370 mov edi,[esp+40h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+24h] add eax,00000003h mov [esp+40h],ecx mov [esp+24h],eax L000844F8: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00084284 mov ebx,[esp+34h] mov ecx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+24h] L0008451C: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[esi+000005D4h] mov [esp+10h],ecx jz L0008454C sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L0008453F inc ebx L0008453F: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L0008454C: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000841E8 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00084573: mov eax,[esi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0008459F L0008458A: mov edx,[esi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0008459F: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000845B8: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000845D0: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov dword ptr [esp+28h],00000000h mov [esp+24h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jc L0008461E mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+1Ch],eax L0008461E: mov eax,[esp+40h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+10h],ecx jbe L000849B2 L00084631: cmp ecx,00000666h jbe L00084644 mov ebx,00000666h mov [esp+34h],ebx jmp L0008464A L00084644: mov [esp+34h],ecx mov ebx,ecx L0008464A: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+40h],ebp jc L000846A7 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008469F mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+40h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L000846A3 push edi call [edi+10h] mov eax,[edi+08h] jmp L000846A3 L0008469F: mov ebp,[esp+40h] L000846A3: mov ecx,[esp+10h] L000846A7: lea edx,[eax+ebp*4] add eax,00000004h mov [edi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L00084965 L000846CD: mov edi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000008h mov [esp+38h],edi mov edi,eax imul edi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L000849FD mov edx,[esi+00000A34h] cmp eax,edx jge L000849FD mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L000849FD cmp ecx,edx jge L000849FD mov ecx,[esp+28h] add eax,ecx test eax,eax jl L000849C5 cmp eax,edx jge L000849C5 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00084941 mov edx,[esp+40h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+4Ch],eax call SUB_L00040370 mov edi,[esp+40h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+24h] add eax,00000003h mov [esp+40h],ecx mov [esp+24h],eax L00084941: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000846CD mov ebx,[esp+34h] mov ecx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+24h] L00084965: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[esi+000005D4h] mov [esp+10h],ecx jz L00084995 sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L00084988 inc ebx L00084988: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L00084995: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00084631 L000849B2: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L000849C5: mov eax,[esi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax L000849DA: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L000849FD: mov edx,[esi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx jmp L000849DA Align 16 L00084A20: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov [esp+14h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov dword ptr [esp+1Ch],00000000h mov [esp+14h],edi jc L00084A65 mov eax,[esp+3Ch] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+1Ch],eax L00084A65: mov ecx,[esp+40h] lea ecx,[ecx+ecx*2] test ecx,ecx mov [esp+10h],ecx jbe L00084E48 L00084A78: cmp ecx,00000666h jbe L00084A8B mov ebx,00000666h mov [esp+34h],ebx jmp L00084A91 L00084A8B: mov [esp+34h],ecx mov ebx,ecx L00084A91: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ebx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+40h],ebp jc L00084AEE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00084AE6 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+40h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00084AEA push edi call [edi+10h] mov eax,[edi+08h] jmp L00084AEA L00084AE6: mov ebp,[esp+40h] L00084AEA: mov ecx,[esp+10h] L00084AEE: lea edx,[eax+ebp*4] add eax,00000004h mov [edi+08h],edx mov [esp+2Ch],eax mov [esp+40h],eax xor edx,edx cmp ebx,00000002h mov eax,ebx mov [esp+24h],edx mov [esp+20h],eax jbe L00084DAC L00084B14: mov edi,[esp+38h] mov ebp,[esp+3Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000008h mov [esp+38h],edi mov edi,eax imul edi,[esp+18h] mov ebx,ecx imul ebx,[esp+18h] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+18h] mov [esp+28h],edx add ebp,[esp+3Ch] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00084E1A mov edx,[esi+00000A34h] cmp eax,edx jge L00084E1A mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00084E1A cmp ecx,edx jge L00084E1A mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00084E03 cmp eax,edx jge L00084E03 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00084D88 mov edx,[esp+40h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+40h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+40h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+4Ch],eax call SUB_L00040370 mov edi,[esp+40h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+40h],eax fild dword ptr [esp+40h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+24h] add eax,00000003h mov [esp+40h],ecx mov [esp+24h],eax L00084D88: mov eax,[esp+20h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00084B14 mov ebx,[esp+34h] mov ecx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+24h] L00084DAC: sub eax,ebx add ecx,eax cmp edx,ebx mov eax,[esi+000005D4h] mov [esp+10h],ecx jz L00084DDC sub ebx,edx mov ebp,eax shr ebp,02h imul ebx,ebp shl ebx,1 test edx,edx jnz L00084DCF inc ebx L00084DCF: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L00084DDC: imul eax,edx mov edx,[esp+2Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00084A78 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L00084E03: mov eax,[esi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L00084E2F L00084E1A: mov edx,[esi+000005D4h] imul edx,[esp+34h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L00084E2F: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00084E48: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00084E60: sub esp,00000024h push ebx push ebp push esi mov esi,[esp+34h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov dword ptr [esp+20h],00000000h mov [esp+10h],ebx jc L00084EA5 mov eax,[esp+40h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L00084EA5: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+44h],eax jbe L0008523D jmp L00084EBE L00084EBA: mov eax,[esp+44h] L00084EBE: cmp eax,00000666h jbe L00084ED0 mov ebp,00000666h mov [esp+38h],ebp jmp L00084ED6 L00084ED0: mov [esp+38h],eax mov ebp,eax L00084ED6: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+18h],edi jc L00084F31 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00084F2D mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+18h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00084F31 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00084F31 L00084F2D: mov edi,[esp+18h] L00084F31: lea edx,[eax+edi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+30h],eax mov edi,eax mov [esp+18h],edx mov [esp+14h],ecx jbe L000851B3 L00084F55: mov edx,[esp+3Ch] xor ecx,ecx mov cx,[edx] xor eax,eax mov ax,[edx+04h] xor ebp,ebp mov bp,[edx+02h] add edx,00000008h mov [esp+3Ch],edx mov edx,[esp+40h] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx mov edx,[esp+1Ch] mov [esp+28h],eax imul eax,edx mov [esp+24h],ebp imul ebp,edx mov edx,[esp+40h] add ebp,[esp+40h] add eax,edx mov [esp+2Ch],eax mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L0008520F mov edx,[esi+00000A34h] cmp ecx,edx jge L0008520F mov ecx,[esp+24h] add ecx,eax test ecx,ecx jl L0008520F cmp ecx,edx jge L0008520F mov ecx,[esp+28h] add eax,ecx test eax,eax jl L0008520F cmp eax,edx jge L0008520F push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+2Ch] mov [esp+28h],eax fild dword ptr [esp+28h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+18h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] mov eax,[esp+14h] sub eax,00000003h add ebx,00000003h fadd dword ptr [L000B2484] mov [esp+18h],ebx mov [esp+14h],eax fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h cmp eax,00000002h lea edi,[edi+ecx*4] ja L00084F55 mov eax,[esp+30h] mov ebp,[esp+38h] mov ecx,[esp+14h] mov edx,ebx mov ebx,[esp+10h] L000851B3: mov edi,[esp+44h] sub ecx,ebp add edi,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+44h],edi jz L000851E7 sub ebp,edx mov edi,ecx shr edi,02h imul ebp,edi shl ebp,1 test edx,edx jnz L000851DA inc ebp L000851DA: mov edi,[ebx+08h] neg ebp shl ebp,02h add edi,ebp mov [ebx+08h],edi L000851E7: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+44h] test eax,eax ja L00084EBA pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0008520F: mov edx,[esi+000005D4h] imul edx,[esp+38h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008523D: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00085250: sub esp,00000024h push ebx push ebp push esi mov esi,[esp+34h] mov ebx,[esi+0000017Ch] mov eax,[esi+000005D0h] push edi push 00000001h push ebx push esi mov dword ptr [esp+2Ch],00000000h mov [esp+28h],eax mov [esp+1Ch],ebx call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jc L0008529E mov eax,[esp+40h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L0008529E: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+44h],eax jbe L000855FE jmp L000852B7 L000852B3: mov eax,[esp+44h] L000852B7: cmp eax,00000666h jbe L000852C9 mov ebp,00000666h mov [esp+38h],ebp jmp L000852CF L000852C9: mov [esp+38h],eax mov ebp,eax L000852CF: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+18h],edi jc L0008532A push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00085326 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+18h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0008532A push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008532A L00085326: mov edi,[esp+18h] L0008532A: lea edx,[eax+edi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+30h],eax mov edi,eax mov [esp+18h],edx mov [esp+14h],ecx jbe L000855AC L0008534E: mov edx,[esp+3Ch] xor ecx,ecx mov cx,[edx] xor eax,eax mov ax,[edx+04h] xor ebp,ebp mov bp,[edx+02h] add edx,00000008h mov [esp+3Ch],edx mov edx,[esp+40h] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx mov edx,[esp+1Ch] mov [esp+28h],eax imul eax,edx mov [esp+24h],ebp imul ebp,edx mov edx,[esp+40h] add ebp,[esp+40h] add eax,edx mov [esp+2Ch],eax mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00085611 mov edx,[esi+00000A34h] cmp ecx,edx jge L00085611 mov ecx,[esp+24h] add ecx,eax test ecx,ecx jl L00085611 cmp ecx,edx jge L00085611 mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00085611 cmp eax,edx jge L00085611 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+2Ch] mov [esp+28h],eax fild dword ptr [esp+28h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+18h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] mov eax,[esp+14h] sub eax,00000003h add ebx,00000003h fadd dword ptr [L000B2484] mov [esp+18h],ebx mov [esp+14h],eax fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h cmp eax,00000002h lea edi,[edi+ecx*4] ja L0008534E mov eax,[esp+30h] mov ebp,[esp+38h] mov ecx,[esp+14h] mov edx,ebx mov ebx,[esp+10h] L000855AC: mov edi,[esp+44h] sub ecx,ebp add edi,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+44h],edi jz L000855E0 sub ebp,edx mov edi,ecx shr edi,02h imul ebp,edi shl ebp,1 test edx,edx jnz L000855D3 inc ebp L000855D3: mov edi,[ebx+08h] neg ebp shl ebp,02h add edi,ebp mov [ebx+08h],edi L000855E0: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+44h] test eax,eax ja L000852B3 L000855FE: push 00000000h push ebx push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L00085611: mov edx,[esi+000005D4h] imul edx,[esp+38h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00085650: sub esp,00000024h push ebx push ebp push esi mov esi,[esp+34h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov dword ptr [esp+20h],00000000h mov [esp+10h],ebx jc L00085695 mov eax,[esp+40h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov [esp+20h],eax L00085695: mov eax,[esp+44h] lea eax,[eax+eax*2] test eax,eax mov [esp+44h],eax jbe L00085A2D jmp L000856AE L000856AA: mov eax,[esp+44h] L000856AE: cmp eax,00000666h jbe L000856C0 mov ebp,00000666h mov [esp+38h],ebp jmp L000856C6 L000856C0: mov [esp+38h],eax mov ebp,eax L000856C6: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ebp mov edx,[ebx+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+18h],edi jc L00085721 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008571D mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edi,[esp+18h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00085721 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L00085721 L0008571D: mov edi,[esp+18h] L00085721: lea edx,[eax+edi*4] add eax,00000004h mov [ebx+08h],edx xor edx,edx cmp ebp,00000002h mov ecx,ebp mov [esp+30h],eax mov edi,eax mov [esp+18h],edx mov [esp+14h],ecx jbe L000859A3 L00085745: mov edx,[esp+3Ch] xor ecx,ecx mov cx,[edx] xor eax,eax mov ax,[edx+04h] xor ebp,ebp mov bp,[edx+02h] add edx,00000008h mov [esp+3Ch],edx mov edx,[esp+40h] mov ebx,ecx imul ebx,[esp+1Ch] add ebx,edx mov edx,[esp+1Ch] mov [esp+28h],eax imul eax,edx mov [esp+24h],ebp imul ebp,edx mov edx,[esp+40h] add ebp,[esp+40h] add eax,edx mov [esp+2Ch],eax mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L000859FF mov edx,[esi+00000A34h] cmp ecx,edx jge L000859FF mov ecx,[esp+24h] add ecx,eax test ecx,ecx jl L000859FF cmp ecx,edx jge L000859FF mov ecx,[esp+28h] add eax,ecx test eax,eax jl L000859FF cmp eax,edx jge L000859FF push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+2Ch] mov [esp+28h],eax fild dword ptr [esp+28h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+2Ch],eax fild dword ptr [esp+2Ch] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+18h] mov [esp+2Ch],eax fild dword ptr [esp+2Ch] mov eax,[esp+14h] sub eax,00000003h add ebx,00000003h fadd dword ptr [L000B2484] mov [esp+18h],ebx mov [esp+14h],eax fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h cmp eax,00000002h lea edi,[edi+ecx*4] ja L00085745 mov eax,[esp+30h] mov ebp,[esp+38h] mov ecx,[esp+14h] mov edx,ebx mov ebx,[esp+10h] L000859A3: mov edi,[esp+44h] sub ecx,ebp add edi,ecx cmp edx,ebp mov ecx,[esi+000005D4h] mov [esp+44h],edi jz L000859D7 sub ebp,edx mov edi,ecx shr edi,02h imul ebp,edi shl ebp,1 test edx,edx jnz L000859CA inc ebp L000859CA: mov edi,[ebx+08h] neg ebp shl ebp,02h add edi,ebp mov [ebx+08h],edi L000859D7: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+44h] test eax,eax ja L000856AA pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L000859FF: mov edx,[esi+000005D4h] imul edx,[esp+38h] mov eax,[esp+10h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00085A2D: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00085A40: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L00085A8F mov eax,[esp+50h] mov cx,[eax] add eax,00000002h mov [esp+2Ch],cx mov [esp+50h],eax mov dword ptr [esp+20h],00000000h jmp L00085AAC L00085A8F: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h mov [esp+20h],eax L00085AAC: mov eax,[esp+58h] test eax,eax jbe L00085EEE jmp L00085ABE L00085ABA: mov eax,[esp+58h] L00085ABE: cmp eax,00000444h jbe L00085AD0 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00085AD6 L00085AD0: mov [esp+4Ch],eax mov ecx,eax L00085AD6: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00085B3E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00085B34 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00085B38 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00085B42 L00085B34: mov edx,[esp+14h] L00085B38: mov ecx,[esp+4Ch] jmp L00085B42 L00085B3E: mov edx,[esp+14h] L00085B42: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L00085B6D mov [esp+14h],eax L00085B6D: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00085BD6 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00085BCC mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00085BD0 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00085BDA L00085BCC: mov edx,[esp+10h] L00085BD0: mov ecx,[esp+4Ch] jmp L00085BDA L00085BD6: mov edx,[esp+10h] L00085BDA: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00085C02 mov [esp+4Ch],edx mov ecx,edx L00085C02: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L00085E26 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L00085C22: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L00085EBF mov edx,[esi+00000A34h] cmp eax,edx jge L00085EBF mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00085EBF cmp ecx,edx jge L00085EBF mov ecx,[esp+38h] add eax,ecx test eax,eax jl L00085EBF cmp eax,edx jge L00085EBF fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00085E04 mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L00085D02 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00085D02: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00085D58 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00085D58: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push edi push ecx push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+38h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+38h] push edi shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L00085E0C L00085E04: mov eax,[esp+10h] mov edi,[esp+30h] L00085E0C: dec [esp+34h] jnz L00085C22 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L00085E26: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00085E52 sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00085E4A inc ecx L00085E4A: neg ecx shl ecx,02h add [edi+08h],ecx L00085E52: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00085E94 sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00085E87 inc ebp L00085E87: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00085E94: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L00085ABA pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00085EBF: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00085EEE: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00085F00: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L00085F4D mov eax,[esp+50h] mov cx,[eax] add eax,00000002h xor ebp,ebp mov [esp+2Ch],cx mov [esp+50h],eax mov [esp+20h],ebp jmp L00085F6C L00085F4D: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h xor ebp,ebp mov [esp+20h],eax L00085F6C: mov eax,[esp+58h] cmp eax,ebp jbe L00086377 jmp L00085F7E L00085F7A: mov eax,[esp+58h] L00085F7E: cmp eax,00000444h jbe L00085F90 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00085F96 L00085F90: mov [esp+4Ch],eax mov ecx,eax L00085F96: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00085FFE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00085FF4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00085FF8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00086002 L00085FF4: mov edx,[esp+14h] L00085FF8: mov ecx,[esp+4Ch] jmp L00086002 L00085FFE: mov edx,[esp+14h] L00086002: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L0008602D mov [esp+14h],eax L0008602D: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00086096 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L0008608C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00086090 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L0008609A L0008608C: mov edx,[esp+10h] L00086090: mov ecx,[esp+4Ch] jmp L0008609A L00086096: mov edx,[esp+10h] L0008609A: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L000860C2 mov [esp+4Ch],edx mov ecx,edx L000860C2: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L000862E6 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L000860E2: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L000863B0 mov edx,[esi+00000A34h] cmp eax,edx jge L000863B0 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L000863B0 cmp ecx,edx jge L000863B0 mov ecx,[esp+38h] add eax,ecx test eax,eax jl L000863B0 cmp eax,edx jge L000863B0 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000862C4 mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L000861C2 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L000861C2: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00086218 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00086218: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push edi push ecx push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+38h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+38h] push edi shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L000862CC L000862C4: mov eax,[esp+10h] mov edi,[esp+30h] L000862CC: dec [esp+34h] jnz L000860E2 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L000862E6: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00086312 sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L0008630A inc ecx L0008630A: neg ecx shl ecx,02h add [edi+08h],ecx L00086312: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00086354 sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00086347 inc ebp L00086347: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00086354: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L00085F7A xor ebp,ebp L00086377: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L000863B0: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000863F0: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L0008643F mov eax,[esp+50h] mov cx,[eax] add eax,00000002h mov [esp+2Ch],cx mov [esp+50h],eax mov dword ptr [esp+20h],00000000h jmp L0008645C L0008643F: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h mov [esp+20h],eax L0008645C: mov eax,[esp+58h] test eax,eax jbe L0008689E jmp L0008646E L0008646A: mov eax,[esp+58h] L0008646E: cmp eax,00000444h jbe L00086480 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00086486 L00086480: mov [esp+4Ch],eax mov ecx,eax L00086486: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L000864EE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L000864E4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L000864E8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L000864F2 L000864E4: mov edx,[esp+14h] L000864E8: mov ecx,[esp+4Ch] jmp L000864F2 L000864EE: mov edx,[esp+14h] L000864F2: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L0008651D mov [esp+14h],eax L0008651D: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00086586 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L0008657C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00086580 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L0008658A L0008657C: mov edx,[esp+10h] L00086580: mov ecx,[esp+4Ch] jmp L0008658A L00086586: mov edx,[esp+10h] L0008658A: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L000865B2 mov [esp+4Ch],edx mov ecx,edx L000865B2: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L000867D6 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L000865D2: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L0008686F mov edx,[esi+00000A34h] cmp eax,edx jge L0008686F mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L0008686F cmp ecx,edx jge L0008686F mov ecx,[esp+38h] add eax,ecx test eax,eax jl L0008686F cmp eax,edx jge L0008686F fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000867B4 mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L000866B2 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L000866B2: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00086708 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00086708: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push edi push ecx push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+38h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+38h] push edi shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L000867BC L000867B4: mov eax,[esp+10h] mov edi,[esp+30h] L000867BC: dec [esp+34h] jnz L000865D2 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L000867D6: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00086802 sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L000867FA inc ecx L000867FA: neg ecx shl ecx,02h add [edi+08h],ecx L00086802: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00086844 sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00086837 inc ebp L00086837: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00086844: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0008646A pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0008686F: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008689E: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000868B0: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L000868FD mov eax,[esp+50h] mov cx,[eax] add eax,00000002h xor ebp,ebp mov [esp+2Ch],cx mov [esp+50h],eax mov [esp+20h],ebp jmp L0008691C L000868FD: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h xor ebp,ebp mov [esp+20h],eax L0008691C: mov eax,[esp+58h] cmp eax,ebp jbe L00086D27 jmp L0008692E L0008692A: mov eax,[esp+58h] L0008692E: cmp eax,00000444h jbe L00086940 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00086946 L00086940: mov [esp+4Ch],eax mov ecx,eax L00086946: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L000869AE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L000869A4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L000869A8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L000869B2 L000869A4: mov edx,[esp+14h] L000869A8: mov ecx,[esp+4Ch] jmp L000869B2 L000869AE: mov edx,[esp+14h] L000869B2: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L000869DD mov [esp+14h],eax L000869DD: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00086A46 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00086A3C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00086A40 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00086A4A L00086A3C: mov edx,[esp+10h] L00086A40: mov ecx,[esp+4Ch] jmp L00086A4A L00086A46: mov edx,[esp+10h] L00086A4A: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00086A72 mov [esp+4Ch],edx mov ecx,edx L00086A72: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L00086C96 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L00086A92: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L00086D60 mov edx,[esi+00000A34h] cmp eax,edx jge L00086D60 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00086D60 cmp ecx,edx jge L00086D60 mov ecx,[esp+38h] add eax,ecx test eax,eax jl L00086D60 cmp eax,edx jge L00086D60 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00086C74 mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L00086B72 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00086B72: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00086BC8 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00086BC8: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push edi push ecx push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+28h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+38h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+38h] push edi shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L00086C7C L00086C74: mov eax,[esp+10h] mov edi,[esp+30h] L00086C7C: dec [esp+34h] jnz L00086A92 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L00086C96: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00086CC2 sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00086CBA inc ecx L00086CBA: neg ecx shl ecx,02h add [edi+08h],ecx L00086CC2: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00086D04 sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00086CF7 inc ebp L00086CF7: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00086D04: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0008692A xor ebp,ebp L00086D27: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00086D60: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00086DA0: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+14h],edi mov [esp+3Ch],ebx jnc L00086DEF mov eax,[esp+50h] mov cx,[eax] add eax,00000002h mov [esp+2Ch],cx mov [esp+50h],eax mov dword ptr [esp+20h],00000000h jmp L00086E0C L00086DEF: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h mov [esp+20h],eax L00086E0C: mov eax,[esp+58h] test eax,eax jbe L00087219 jmp L00086E1E L00086E1A: mov eax,[esp+58h] L00086E1E: cmp eax,00000444h jbe L00086E30 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00086E36 L00086E30: mov [esp+4Ch],eax mov ecx,eax L00086E36: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00086E98 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L00086E94 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00086E8E push edi call [edi+10h] mov eax,[edi+08h] mov edx,eax L00086E8E: mov ecx,[esp+4Ch] jmp L00086E9C L00086E94: mov ecx,[esp+4Ch] L00086E98: mov edx,[esp+10h] L00086E9C: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+10h],00000666h ja L00086EC7 mov [esp+10h],eax L00086EC7: mov ebp,[esi+000005D4h] imul ebp,[esp+10h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+18h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00086F30 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L00086F26 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00086F2A push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00086F34 L00086F26: mov edx,[esp+18h] L00086F2A: mov ecx,[esp+4Ch] jmp L00086F34 L00086F30: mov edx,[esp+18h] L00086F34: lea eax,[eax+ebp*4] mov ebp,[esp+10h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+18h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00086F5C mov [esp+4Ch],edx mov ecx,edx L00086F5C: xor eax,eax test ecx,ecx mov [esp+28h],eax mov [esp+30h],ecx jbe L00087151 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+34h],edi jmp L00086F82 L00086F7E: mov edi,[esp+34h] L00086F82: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L000871EA mov edx,[esi+00000A34h] cmp eax,edx jge L000871EA mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L000871EA cmp ecx,edx jge L000871EA mov ecx,[esp+38h] add eax,ecx test eax,eax jl L000871EA cmp eax,edx jge L000871EA mov ecx,[esp+28h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+28h],ecx jnz L00087036 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00087036: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L0008708C mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L0008708C: mov ecx,[esp+18h] mov eax,[esp+38h] push edi push edi push ecx push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+18h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+38h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+38h] push edi shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h lea edx,[ebx+ecx*4] dec eax mov [esp+18h],edx mov [esp+30h],eax jnz L00086F7E mov ebp,[esp+10h] mov ebx,[esp+3Ch] mov edi,[esp+14h] mov eax,[esp+28h] mov ecx,[esp+4Ch] L00087151: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L0008717D sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00087175 inc ecx L00087175: neg ecx shl ecx,02h add [edi+08h],ecx L0008717D: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L000871BF sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L000871B2 inc ebp L000871B2: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L000871BF: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L00086E1A pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L000871EA: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+14h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00087219: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00087230: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+14h],edi mov [esp+3Ch],ebx jnc L0008727D mov eax,[esp+50h] mov cx,[eax] add eax,00000002h xor ebp,ebp mov [esp+2Ch],cx mov [esp+50h],eax mov [esp+20h],ebp jmp L0008729C L0008727D: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h xor ebp,ebp mov [esp+20h],eax L0008729C: mov eax,[esp+58h] cmp eax,ebp jbe L00087672 jmp L000872AE L000872AA: mov eax,[esp+58h] L000872AE: cmp eax,00000444h jbe L000872C0 mov ecx,00000444h mov [esp+4Ch],ecx jmp L000872C6 L000872C0: mov [esp+4Ch],eax mov ecx,eax L000872C6: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00087328 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L00087324 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L0008731E push edi call [edi+10h] mov eax,[edi+08h] mov edx,eax L0008731E: mov ecx,[esp+4Ch] jmp L0008732C L00087324: mov ecx,[esp+4Ch] L00087328: mov edx,[esp+10h] L0008732C: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+10h],00000666h ja L00087357 mov [esp+10h],eax L00087357: mov ebp,[esi+000005D4h] imul ebp,[esp+10h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+18h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L000873C0 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L000873B6 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L000873BA push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L000873C4 L000873B6: mov edx,[esp+18h] L000873BA: mov ecx,[esp+4Ch] jmp L000873C4 L000873C0: mov edx,[esp+18h] L000873C4: lea eax,[eax+ebp*4] mov ebp,[esp+10h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+18h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L000873EC mov [esp+4Ch],edx mov ecx,edx L000873EC: xor eax,eax test ecx,ecx mov [esp+28h],eax mov [esp+30h],ecx jbe L000875E1 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+34h],edi jmp L00087412 L0008740E: mov edi,[esp+34h] L00087412: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L000876AB mov edx,[esi+00000A34h] cmp eax,edx jge L000876AB mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L000876AB cmp ecx,edx jge L000876AB mov ecx,[esp+38h] add eax,ecx test eax,eax jl L000876AB cmp eax,edx jge L000876AB mov ecx,[esp+28h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+28h],ecx jnz L000874C6 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L000874C6: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L0008751C mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L0008751C: mov ecx,[esp+18h] mov eax,[esp+38h] push edi push edi push ecx push esi mov [esp+34h],eax call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+18h] push edi shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+38h] push edi shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+48h],eax call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+38h] push edi shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h lea edx,[ebx+ecx*4] dec eax mov [esp+18h],edx mov [esp+30h],eax jnz L0008740E mov ebp,[esp+10h] mov ebx,[esp+3Ch] mov edi,[esp+14h] mov eax,[esp+28h] mov ecx,[esp+4Ch] L000875E1: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L0008760D sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00087605 inc ecx L00087605: neg ecx shl ecx,02h add [edi+08h],ecx L0008760D: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L0008764F sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00087642 inc ebp L00087642: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L0008764F: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L000872AA xor ebp,ebp L00087672: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L000876AB: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+14h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000876F0: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L0008773F mov eax,[esp+50h] mov cx,[eax] add eax,00000002h mov [esp+2Ch],cx mov [esp+50h],eax mov dword ptr [esp+20h],00000000h jmp L0008775C L0008773F: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h mov [esp+20h],eax L0008775C: mov eax,[esp+58h] test eax,eax jbe L00087B98 jmp L0008776E L0008776A: mov eax,[esp+58h] L0008776E: cmp eax,00000444h jbe L00087780 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00087786 L00087780: mov [esp+4Ch],eax mov ecx,eax L00087786: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L000877EE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L000877E4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L000877E8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L000877F2 L000877E4: mov edx,[esp+14h] L000877E8: mov ecx,[esp+4Ch] jmp L000877F2 L000877EE: mov edx,[esp+14h] L000877F2: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L0008781D mov [esp+14h],eax L0008781D: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00087886 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L0008787C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00087880 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L0008788A L0008787C: mov edx,[esp+10h] L00087880: mov ecx,[esp+4Ch] jmp L0008788A L00087886: mov edx,[esp+10h] L0008788A: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L000878B2 mov [esp+4Ch],edx mov ecx,edx L000878B2: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L00087AD0 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L000878D2: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L00087B69 mov edx,[esi+00000A34h] cmp eax,edx jge L00087B69 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00087B69 cmp ecx,edx jge L00087B69 mov ecx,[esp+38h] add eax,ecx test eax,eax jl L00087B69 cmp eax,edx jge L00087B69 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00087AAE mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L000879B2 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L000879B2: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00087A08 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00087A08: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+38h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L00087AB6 L00087AAE: mov eax,[esp+10h] mov edi,[esp+30h] L00087AB6: dec [esp+34h] jnz L000878D2 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L00087AD0: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00087AFC sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00087AF4 inc ecx L00087AF4: neg ecx shl ecx,02h add [edi+08h],ecx L00087AFC: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00087B3E sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00087B31 inc ebp L00087B31: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00087B3E: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0008776A pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00087B69: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00087B98: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00087BB0: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L00087BFD mov eax,[esp+50h] mov cx,[eax] add eax,00000002h xor ebp,ebp mov [esp+2Ch],cx mov [esp+50h],eax mov [esp+20h],ebp jmp L00087C1C L00087BFD: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h xor ebp,ebp mov [esp+20h],eax L00087C1C: mov eax,[esp+58h] cmp eax,ebp jbe L00088021 jmp L00087C2E L00087C2A: mov eax,[esp+58h] L00087C2E: cmp eax,00000444h jbe L00087C40 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00087C46 L00087C40: mov [esp+4Ch],eax mov ecx,eax L00087C46: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00087CAE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00087CA4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00087CA8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00087CB2 L00087CA4: mov edx,[esp+14h] L00087CA8: mov ecx,[esp+4Ch] jmp L00087CB2 L00087CAE: mov edx,[esp+14h] L00087CB2: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L00087CDD mov [esp+14h],eax L00087CDD: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00087D46 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00087D3C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00087D40 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00087D4A L00087D3C: mov edx,[esp+10h] L00087D40: mov ecx,[esp+4Ch] jmp L00087D4A L00087D46: mov edx,[esp+10h] L00087D4A: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00087D72 mov [esp+4Ch],edx mov ecx,edx L00087D72: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L00087F90 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L00087D92: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L0008805A mov edx,[esi+00000A34h] cmp eax,edx jge L0008805A mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L0008805A cmp ecx,edx jge L0008805A mov ecx,[esp+38h] add eax,ecx test eax,eax jl L0008805A cmp eax,edx jge L0008805A fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00087F6E mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L00087E72 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00087E72: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00087EC8 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00087EC8: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+38h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L00087F76 L00087F6E: mov eax,[esp+10h] mov edi,[esp+30h] L00087F76: dec [esp+34h] jnz L00087D92 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L00087F90: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00087FBC sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00087FB4 inc ecx L00087FB4: neg ecx shl ecx,02h add [edi+08h],ecx L00087FBC: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00087FFE sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00087FF1 inc ebp L00087FF1: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00087FFE: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L00087C2A xor ebp,ebp L00088021: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0008805A: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000880A0: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov [esp+20h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+14h],edi jnc L000880E5 mov edx,[esp+40h] mov cx,[edx] add edx,00000002h mov [esp+20h],cx mov [esp+40h],edx mov dword ptr [esp+18h],00000000h jmp L00088106 L000880E5: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edx,[esp+40h] mov dword ptr [esp+20h],00000000h mov [esp+18h],eax L00088106: mov ebx,[esp+48h] test ebx,ebx jbe L000884F0 jmp L00088118 L00088114: mov ebx,[esp+48h] L00088118: cmp ebx,00000444h jbe L00088125 mov ebx,00000444h L00088125: mov eax,[esi+000005D4h] imul eax,ebx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov ecx,eax inc ebp mov [esp+3Ch],ecx lea ecx,[ecx+ebp*4] cmp ecx,[edi+0Ch] mov [esp+10h],ebx jc L00088191 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L00088187 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L0008818B push edi call [edi+10h] mov eax,[edi+08h] mov edx,[esp+40h] mov ecx,eax jmp L00088195 L00088187: mov ecx,[esp+3Ch] L0008818B: mov edx,[esp+40h] jmp L00088195 L00088191: mov ecx,[esp+3Ch] L00088195: lea eax,[eax+ebp*4] lea ebp,[ecx+04h] xor ecx,ecx test ebx,ebx mov [edi+08h],eax mov [esp+34h],ebp mov [esp+3Ch],ebp mov [esp+1Ch],ecx mov [esp+28h],ebx jbe L0008841C mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+2Ch],ecx jmp L000881D0 L000881C8: mov ecx,[esp+2Ch] mov edx,[esp+40h] L000881D0: mov ebp,[esp+24h] xor eax,eax mov ax,[edx] xor edi,edi mov di,[edx+04h] xor ebx,ebx mov bx,[edx+02h] mov edx,[esp+44h] add eax,ecx add edi,ecx mov [esp+30h],edi imul edi,[esp+24h] add ebx,ecx mov ecx,eax imul ecx,ebp add ecx,edx mov edx,ebx imul edx,ebp mov ebp,[esp+44h] add edx,ebp add edi,ebp add dword ptr [esp+40h],00000006h mov ebp,[esp+18h] add eax,ebp test eax,eax jl L000884C1 mov ebp,[esi+00000A34h] cmp eax,ebp jge L000884C1 mov eax,[esp+18h] add ebx,eax test ebx,ebx jl L000884A9 cmp ebx,ebp jge L000884A9 mov ebx,[esp+30h] add eax,ebx test eax,eax jl L00088470 cmp eax,ebp jge L00088470 fld dword ptr [edi+04h] fsub dword ptr [ecx+04h] fld dword ptr [edx] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000883FE mov ebx,[esp+1Ch] mov eax,[esi+00000190h] inc ebx test eax,eax mov [esp+1Ch],ebx jnz L000882A5 mov eax,3F800000h mov [ecx+0Ch],eax mov [edx+0Ch],eax mov [edi+0Ch],eax L000882A5: mov ebx,[esi+000001A4h] mov eax,[esi+00000A30h] mov ebp,[esp+3Ch] lea eax,[ebx+eax*2] mov ebx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] lea eax,[ebx+eax*8-30h] lea ebx,[esi+00000A10h] push ebx push edi push edx push ecx push ebp call [L000B463C+eax*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L000883F6 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L000883F6 cmp eax,00000002h jbe L00088387 cmp eax,00000003h jnz L000883F6 mov ebp,eax L00088327: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+3Ch] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L00088345 mov byte ptr [edi],FFh jmp L00088372 L00088345: fld dword ptr [esp+3Ch] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L0008835B mov byte ptr [edi],00h jmp L00088372 L0008835B: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+3Ch] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L00088372: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L00088327 jmp L000883F6 L00088387: mov ebp,00000003h L0008838C: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+3Ch] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L000883AA mov byte ptr [edi],FFh jmp L000883E3 L000883AA: fld dword ptr [esp+3Ch] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L000883C0 mov byte ptr [edi],00h jmp L000883E3 L000883C0: fld dword ptr [esp+3Ch] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L000883E3: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0008838C L000883F6: mov edx,[esp+30h] mov [esp+3Ch],edx L000883FE: dec [esp+28h] jnz L000881C8 mov ebp,[esp+34h] mov ebx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+40h] mov ecx,[esp+1Ch] L0008841C: mov eax,[esp+48h] sub eax,ebx cmp ecx,ebx mov [esp+48h],eax mov eax,[esi+000005D4h] jz L00088448 sub ebx,ecx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test ecx,ecx jnz L00088440 inc ebx L00088440: neg ebx shl ebx,02h add [edi+08h],ebx L00088448: imul eax,ecx lea eax,[eax+eax*2] shr eax,02h dec eax or eax,7F000000h mov [ebp-04h],eax mov eax,[esp+48h] test eax,eax ja L00088114 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00088470: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea ecx,[eax+eax*2] mov eax,[esp+14h] shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000884A9: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea eax,[eax+eax*2] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000884D7 L000884C1: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea edx,[eax+eax*2] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000884D7: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000884F0: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00088500: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L0008854F mov eax,[esp+50h] mov cx,[eax] add eax,00000002h mov [esp+2Ch],cx mov [esp+50h],eax mov dword ptr [esp+20h],00000000h jmp L0008856C L0008854F: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h mov [esp+20h],eax L0008856C: mov eax,[esp+58h] test eax,eax jbe L000889A8 jmp L0008857E L0008857A: mov eax,[esp+58h] L0008857E: cmp eax,00000444h jbe L00088590 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00088596 L00088590: mov [esp+4Ch],eax mov ecx,eax L00088596: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L000885FE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L000885F4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L000885F8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00088602 L000885F4: mov edx,[esp+14h] L000885F8: mov ecx,[esp+4Ch] jmp L00088602 L000885FE: mov edx,[esp+14h] L00088602: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L0008862D mov [esp+14h],eax L0008862D: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00088696 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L0008868C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00088690 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L0008869A L0008868C: mov edx,[esp+10h] L00088690: mov ecx,[esp+4Ch] jmp L0008869A L00088696: mov edx,[esp+10h] L0008869A: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L000886C2 mov [esp+4Ch],edx mov ecx,edx L000886C2: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L000888E0 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L000886E2: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L00088979 mov edx,[esi+00000A34h] cmp eax,edx jge L00088979 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00088979 cmp ecx,edx jge L00088979 mov ecx,[esp+38h] add eax,ecx test eax,eax jl L00088979 cmp eax,edx jge L00088979 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000888BE mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L000887C2 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L000887C2: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00088818 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00088818: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+38h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L000888C6 L000888BE: mov eax,[esp+10h] mov edi,[esp+30h] L000888C6: dec [esp+34h] jnz L000886E2 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L000888E0: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L0008890C sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00088904 inc ecx L00088904: neg ecx shl ecx,02h add [edi+08h],ecx L0008890C: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L0008894E sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00088941 inc ebp L00088941: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L0008894E: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0008857A pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00088979: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000889A8: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000889C0: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+18h],edi mov [esp+3Ch],ebx jnc L00088A0D mov eax,[esp+50h] mov cx,[eax] add eax,00000002h xor ebp,ebp mov [esp+2Ch],cx mov [esp+50h],eax mov [esp+20h],ebp jmp L00088A2C L00088A0D: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h xor ebp,ebp mov [esp+20h],eax L00088A2C: mov eax,[esp+58h] cmp eax,ebp jbe L00088E31 jmp L00088A3E L00088A3A: mov eax,[esp+58h] L00088A3E: cmp eax,00000444h jbe L00088A50 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00088A56 L00088A50: mov [esp+4Ch],eax mov ecx,eax L00088A56: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+14h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00088ABE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+14h],eax jz L00088AB4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L00088AB8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00088AC2 L00088AB4: mov edx,[esp+14h] L00088AB8: mov ecx,[esp+4Ch] jmp L00088AC2 L00088ABE: mov edx,[esp+14h] L00088AC2: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+14h],00000666h ja L00088AED mov [esp+14h],eax L00088AED: mov ebp,[esi+000005D4h] imul ebp,[esp+14h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00088B56 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00088B4C mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L00088B50 push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00088B5A L00088B4C: mov edx,[esp+10h] L00088B50: mov ecx,[esp+4Ch] jmp L00088B5A L00088B56: mov edx,[esp+10h] L00088B5A: lea eax,[eax+ebp*4] mov ebp,[esp+14h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+28h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L00088B82 mov [esp+4Ch],edx mov ecx,edx L00088B82: xor eax,eax test ecx,ecx mov [esp+10h],eax mov [esp+34h],ecx jbe L00088DA0 mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+30h],edi L00088BA2: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L00088E6A mov edx,[esi+00000A34h] cmp eax,edx jge L00088E6A mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00088E6A cmp ecx,edx jge L00088E6A mov ecx,[esp+38h] add eax,ecx test eax,eax jl L00088E6A cmp eax,edx jge L00088E6A fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00088D7E mov ecx,[esp+10h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+10h],ecx jnz L00088C82 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00088C82: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00088CD8 mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00088CD8: mov ecx,[esp+28h] mov eax,[esp+38h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+38h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edi,[esp+30h] mov eax,[esp+10h] shr ecx,02h lea edx,[ebx+ecx*4] mov [esp+28h],edx jmp L00088D86 L00088D7E: mov eax,[esp+10h] mov edi,[esp+30h] L00088D86: dec [esp+34h] jnz L00088BA2 mov ebp,[esp+14h] mov ebx,[esp+3Ch] mov edi,[esp+18h] mov ecx,[esp+4Ch] L00088DA0: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00088DCC sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00088DC4 inc ecx L00088DC4: neg ecx shl ecx,02h add [edi+08h],ecx L00088DCC: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00088E0E sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00088E01 inc ebp L00088E01: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00088E0E: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L00088A3A xor ebp,ebp L00088E31: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00088E6A: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+18h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00088EB0: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov [esp+20h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+14h],edi jnc L00088EF5 mov edx,[esp+40h] mov cx,[edx] add edx,00000002h mov [esp+20h],cx mov [esp+40h],edx mov dword ptr [esp+18h],00000000h jmp L00088F16 L00088EF5: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edx,[esp+40h] mov dword ptr [esp+20h],00000000h mov [esp+18h],eax L00088F16: mov ebx,[esp+48h] test ebx,ebx jbe L00089300 jmp L00088F28 L00088F24: mov ebx,[esp+48h] L00088F28: cmp ebx,00000444h jbe L00088F35 mov ebx,00000444h L00088F35: mov eax,[esi+000005D4h] imul eax,ebx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov ecx,eax inc ebp mov [esp+3Ch],ecx lea ecx,[ecx+ebp*4] cmp ecx,[edi+0Ch] mov [esp+10h],ebx jc L00088FA1 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L00088F97 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L00088F9B push edi call [edi+10h] mov eax,[edi+08h] mov edx,[esp+40h] mov ecx,eax jmp L00088FA5 L00088F97: mov ecx,[esp+3Ch] L00088F9B: mov edx,[esp+40h] jmp L00088FA5 L00088FA1: mov ecx,[esp+3Ch] L00088FA5: lea eax,[eax+ebp*4] lea ebp,[ecx+04h] xor ecx,ecx test ebx,ebx mov [edi+08h],eax mov [esp+34h],ebp mov [esp+3Ch],ebp mov [esp+1Ch],ecx mov [esp+28h],ebx jbe L0008922C mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+2Ch],ecx jmp L00088FE0 L00088FD8: mov ecx,[esp+2Ch] mov edx,[esp+40h] L00088FE0: mov ebp,[esp+24h] xor eax,eax mov ax,[edx] xor edi,edi mov di,[edx+04h] xor ebx,ebx mov bx,[edx+02h] mov edx,[esp+44h] add eax,ecx add edi,ecx mov [esp+30h],edi imul edi,[esp+24h] add ebx,ecx mov ecx,eax imul ecx,ebp add ecx,edx mov edx,ebx imul edx,ebp mov ebp,[esp+44h] add edx,ebp add edi,ebp add dword ptr [esp+40h],00000006h mov ebp,[esp+18h] add eax,ebp test eax,eax jl L000892D1 mov ebp,[esi+00000A34h] cmp eax,ebp jge L000892D1 mov eax,[esp+18h] add ebx,eax test ebx,ebx jl L000892B9 cmp ebx,ebp jge L000892B9 mov ebx,[esp+30h] add eax,ebx test eax,eax jl L00089280 cmp eax,ebp jge L00089280 fld dword ptr [edi+04h] fsub dword ptr [ecx+04h] fld dword ptr [edx] fsub dword ptr [ecx] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [ecx+04h] fld dword ptr [edi] fsub dword ptr [ecx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0008920E mov ebx,[esp+1Ch] mov eax,[esi+00000190h] inc ebx test eax,eax mov [esp+1Ch],ebx jnz L000890B5 mov eax,3F800000h mov [ecx+0Ch],eax mov [edx+0Ch],eax mov [edi+0Ch],eax L000890B5: mov ebx,[esi+000001A4h] mov eax,[esi+00000A30h] mov ebp,[esp+3Ch] lea eax,[ebx+eax*2] mov ebx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ebx+eax*2] mov ebx,[esi+00000A08h] lea eax,[ebx+eax*8-30h] lea ebx,[esi+00000A10h] push ebx push edi push edx push ecx push ebp call [L000B463C+eax*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L00089206 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L00089206 cmp eax,00000002h jbe L00089197 cmp eax,00000003h jnz L00089206 mov ebp,eax L00089137: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+3Ch] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L00089155 mov byte ptr [edi],FFh jmp L00089182 L00089155: fld dword ptr [esp+3Ch] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L0008916B mov byte ptr [edi],00h jmp L00089182 L0008916B: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+3Ch] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L00089182: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L00089137 jmp L00089206 L00089197: mov ebp,00000003h L0008919C: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+3Ch] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L000891BA mov byte ptr [edi],FFh jmp L000891F3 L000891BA: fld dword ptr [esp+3Ch] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L000891D0 mov byte ptr [edi],00h jmp L000891F3 L000891D0: fld dword ptr [esp+3Ch] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L000891F3: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L0008919C L00089206: mov edx,[esp+30h] mov [esp+3Ch],edx L0008920E: dec [esp+28h] jnz L00088FD8 mov ebp,[esp+34h] mov ebx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+40h] mov ecx,[esp+1Ch] L0008922C: mov eax,[esp+48h] sub eax,ebx cmp ecx,ebx mov [esp+48h],eax mov eax,[esi+000005D4h] jz L00089258 sub ebx,ecx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test ecx,ecx jnz L00089250 inc ebx L00089250: neg ebx shl ebx,02h add [edi+08h],ebx L00089258: imul eax,ecx lea eax,[eax+eax*2] shr eax,02h dec eax or eax,7F000000h mov [ebp-04h],eax mov eax,[esp+48h] test eax,eax ja L00088F24 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00089280: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea ecx,[eax+eax*2] mov eax,[esp+14h] shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000892B9: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea eax,[eax+eax*2] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L000892E7 L000892D1: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea edx,[eax+eax*2] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L000892E7: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00089300: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00089310: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+14h],edi mov [esp+3Ch],ebx jnc L0008935F mov eax,[esp+50h] mov cx,[eax] add eax,00000002h mov [esp+2Ch],cx mov [esp+50h],eax mov dword ptr [esp+20h],00000000h jmp L0008937C L0008935F: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h mov [esp+20h],eax L0008937C: mov eax,[esp+58h] test eax,eax jbe L00089783 jmp L0008938E L0008938A: mov eax,[esp+58h] L0008938E: cmp eax,00000444h jbe L000893A0 mov ecx,00000444h mov [esp+4Ch],ecx jmp L000893A6 L000893A0: mov [esp+4Ch],eax mov ecx,eax L000893A6: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00089408 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L00089404 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L000893FE push edi call [edi+10h] mov eax,[edi+08h] mov edx,eax L000893FE: mov ecx,[esp+4Ch] jmp L0008940C L00089404: mov ecx,[esp+4Ch] L00089408: mov edx,[esp+10h] L0008940C: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+10h],00000666h ja L00089437 mov [esp+10h],eax L00089437: mov ebp,[esi+000005D4h] imul ebp,[esp+10h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+18h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L000894A0 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L00089496 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L0008949A push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L000894A4 L00089496: mov edx,[esp+18h] L0008949A: mov ecx,[esp+4Ch] jmp L000894A4 L000894A0: mov edx,[esp+18h] L000894A4: lea eax,[eax+ebp*4] mov ebp,[esp+10h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+18h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L000894CC mov [esp+4Ch],edx mov ecx,edx L000894CC: xor eax,eax test ecx,ecx mov [esp+28h],eax mov [esp+30h],ecx jbe L000896BB mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+34h],edi jmp L000894F2 L000894EE: mov edi,[esp+34h] L000894F2: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L00089754 mov edx,[esi+00000A34h] cmp eax,edx jge L00089754 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00089754 cmp ecx,edx jge L00089754 mov ecx,[esp+38h] add eax,ecx test eax,eax jl L00089754 cmp eax,edx jge L00089754 mov ecx,[esp+28h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+28h],ecx jnz L000895A6 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L000895A6: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L000895FC mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L000895FC: mov ecx,[esp+18h] mov eax,[esp+38h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+38h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h lea edx,[ebx+ecx*4] dec eax mov [esp+18h],edx mov [esp+30h],eax jnz L000894EE mov ebp,[esp+10h] mov ebx,[esp+3Ch] mov edi,[esp+14h] mov eax,[esp+28h] mov ecx,[esp+4Ch] L000896BB: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L000896E7 sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L000896DF inc ecx L000896DF: neg ecx shl ecx,02h add [edi+08h],ecx L000896E7: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00089729 sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L0008971C inc ebp L0008971C: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00089729: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0008938A pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00089754: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+14h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00089783: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00089790: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+14h],edi mov [esp+3Ch],ebx jnc L000897DD mov eax,[esp+50h] mov cx,[eax] add eax,00000002h xor ebp,ebp mov [esp+2Ch],cx mov [esp+50h],eax mov [esp+20h],ebp jmp L000897FC L000897DD: mov eax,[esp+54h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+2Ch],00000000h xor ebp,ebp mov [esp+20h],eax L000897FC: mov eax,[esp+58h] cmp eax,ebp jbe L00089BCC jmp L0008980E L0008980A: mov eax,[esp+58h] L0008980E: cmp eax,00000444h jbe L00089820 mov ecx,00000444h mov [esp+4Ch],ecx jmp L00089826 L00089820: mov [esp+4Ch],eax mov ecx,eax L00089826: mov eax,[esi+000005D4h] imul eax,ecx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L00089888 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L00089884 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[edi+0Ch] jc L0008987E push edi call [edi+10h] mov eax,[edi+08h] mov edx,eax L0008987E: mov ecx,[esp+4Ch] jmp L0008988C L00089884: mov ecx,[esp+4Ch] L00089888: mov edx,[esp+10h] L0008988C: lea eax,[eax+ebp*4] mov [edi+08h],eax lea eax,[edx+04h] mov [esp+40h],eax mov [esp+24h],eax mov eax,[esp+58h] lea eax,[eax+eax*2] cmp eax,00000666h mov dword ptr [esp+10h],00000666h ja L000898B7 mov [esp+10h],eax L000898B7: mov ebp,[esi+000005D4h] imul ebp,[esp+10h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+18h],edx lea edx,[edx+ebp*4] cmp edx,[ebx+0Ch] jc L00089920 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L00089916 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,eax lea ecx,[edx+ebp*4] cmp ecx,[ebx+0Ch] jc L0008991A push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,[esp+4Ch] mov edx,eax jmp L00089924 L00089916: mov edx,[esp+18h] L0008991A: mov ecx,[esp+4Ch] jmp L00089924 L00089920: mov edx,[esp+18h] L00089924: lea eax,[eax+ebp*4] mov ebp,[esp+10h] mov [ebx+08h],eax lea eax,[edx+04h] mov [esp+44h],eax mov [esp+18h],eax mov eax,AAAAAAABh mul ebp shr edx,1 cmp ecx,edx jc L0008994C mov [esp+4Ch],edx mov ecx,edx L0008994C: xor eax,eax test ecx,ecx mov [esp+28h],eax mov [esp+30h],ecx jbe L00089B3B mov edi,[esp+2Ch] and edi,0000FFFFh mov [esp+34h],edi jmp L00089972 L0008996E: mov edi,[esp+34h] L00089972: mov ecx,[esp+50h] mov ebx,[esp+50h] xor edx,edx mov dx,[ecx+02h] mov ebp,[esp+54h] xor eax,eax mov ax,[ecx] mov ecx,edx xor edx,edx mov dx,[ebx+04h] add eax,edi add ecx,edi mov ebx,ecx imul ebx,[esp+1Ch] add edx,edi mov edi,eax imul edi,[esp+1Ch] add edi,ebp add ebx,ebp mov ebp,edx imul ebp,[esp+1Ch] mov [esp+38h],edx add ebp,[esp+54h] add dword ptr [esp+50h],00000006h mov edx,[esp+20h] add eax,edx test eax,eax jl L00089C05 mov edx,[esi+00000A34h] cmp eax,edx jge L00089C05 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L00089C05 cmp ecx,edx jge L00089C05 mov ecx,[esp+38h] add eax,ecx test eax,eax jl L00089C05 cmp eax,edx jge L00089C05 mov ecx,[esp+28h] mov eax,[esi+00000190h] inc ecx test eax,eax mov [esp+28h],ecx jnz L00089A26 mov eax,3F800000h mov [edi+0Ch],eax mov [ebx+0Ch],eax mov [ebp+0Ch],eax L00089A26: mov edx,[esi+00000A30h] mov eax,[esi+000001A4h] lea eax,[eax+edx*2] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8-30h] mov ecx,[esp+24h] lea eax,[esi+00000A10h] push eax push ebp push ebx push edi push ecx call [L000B463C+edx*4] mov [esp+38h],eax mov eax,[esi+000048ACh] test eax,eax jz L00089A7C mov edx,[esp+24h] push 00000003h push edx push esi call SUB_L0003E580 L00089A7C: mov ecx,[esp+18h] mov eax,[esp+38h] push edi push ecx push esi mov [esp+30h],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h lea eax,[eax+edx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+38h] shr ecx,02h lea eax,[edx+ecx*4] push ebx push eax push esi mov [esp+44h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+38h] shr eax,02h push ebp lea ebx,[ecx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h lea edx,[ebx+ecx*4] dec eax mov [esp+18h],edx mov [esp+30h],eax jnz L0008996E mov ebp,[esp+10h] mov ebx,[esp+3Ch] mov edi,[esp+14h] mov eax,[esp+28h] mov ecx,[esp+4Ch] L00089B3B: mov edx,[esp+58h] sub edx,ecx cmp eax,ecx mov [esp+58h],edx mov edx,[esi+000005D4h] jz L00089B67 sub ecx,eax imul ecx,edx lea ecx,[ecx+ecx*2] shr ecx,02h test eax,eax jnz L00089B5F inc ecx L00089B5F: neg ecx shl ecx,02h add [edi+08h],ecx L00089B67: imul edx,eax lea ecx,[edx+edx*2] mov edx,[esp+40h] shr ecx,02h dec ecx or ecx,7F000000h lea eax,[eax+eax*2] cmp eax,ebp mov [edx-04h],ecx mov ecx,[esi+000005D4h] jz L00089BA9 sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L00089B9C inc ebp L00089B9C: mov edx,[ebx+08h] neg ebp shl ebp,02h add edx,ebp mov [ebx+08h],edx L00089BA9: imul eax,ecx mov ecx,[esp+44h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+58h] test eax,eax ja L0008980A xor ebp,ebp L00089BCC: push 00000001h push edi push esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] push ebp push ebx push esi mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi pop esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L00089C05: mov eax,[esi+000005D4h] imul eax,[esp+4Ch] lea edx,[eax+eax*2] mov eax,[esp+14h] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00089C40: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov [esp+14h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+00000148h] mov [esp+14h],edi jnc L00089C85 mov eax,[esp+40h] mov cx,[eax] add eax,00000002h mov [esp+24h],cx mov [esp+40h],eax mov dword ptr [esp+1Ch],00000000h jmp L00089CA2 L00089C85: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+24h],00000000h mov [esp+1Ch],eax L00089CA2: mov ebx,[esp+48h] test ebx,ebx jbe L0008A054 jmp L00089CB4 L00089CB0: mov ebx,[esp+48h] L00089CB4: cmp ebx,00000444h jbe L00089CC1 mov ebx,00000444h L00089CC1: mov eax,[esi+000005D4h] imul eax,ebx lea ebp,[eax+eax*2] mov eax,[edi+08h] shr ebp,02h inc ebp mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] mov [esp+10h],ebx jc L00089D1F push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L00089D1B mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ecx,eax lea edx,[ecx+ebp*4] cmp edx,[edi+0Ch] jc L00089D1F push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00089D1F L00089D1B: mov ecx,[esp+3Ch] L00089D1F: add ecx,00000004h xor edx,edx test ebx,ebx lea eax,[eax+ebp*4] mov [edi+08h],eax mov [esp+34h],ecx mov [esp+3Ch],ecx mov [esp+20h],edx mov [esp+28h],ebx jbe L00089F7B mov eax,[esp+24h] and eax,0000FFFFh mov [esp+2Ch],eax jmp L00089D55 L00089D51: mov eax,[esp+2Ch] L00089D55: mov ecx,[esp+40h] xor edi,edi mov di,[ecx] xor edx,edx mov dx,[ecx+04h] xor ebx,ebx mov bx,[ecx+02h] mov ecx,[esp+44h] mov ebp,[esp+44h] add edi,eax add edx,eax mov [esp+30h],edx imul edx,[esp+18h] add ebx,eax mov eax,edi imul eax,[esp+18h] add eax,ecx mov ecx,ebx imul ecx,[esp+18h] add ecx,ebp add edx,ebp add dword ptr [esp+40h],00000006h mov ebp,[esp+1Ch] add edi,ebp test edi,edi jl L0008A025 mov ebp,[esi+00000A34h] cmp edi,ebp jge L0008A025 mov edi,[esp+1Ch] add ebx,edi test ebx,ebx jl L0008A00D cmp ebx,ebp jge L0008A00D mov ebx,[esp+30h] add edi,ebx test edi,edi jl L00089FD4 cmp edi,ebp jge L00089FD4 mov ebx,[esp+20h] mov edi,[esi+00000190h] inc ebx test edi,edi mov [esp+20h],ebx jnz L00089E03 mov edi,3F800000h mov [eax+0Ch],edi mov [ecx+0Ch],edi mov [edx+0Ch],edi L00089E03: mov ebx,[esi+000001A4h] mov edi,[esi+00000A30h] mov ebp,[esp+3Ch] lea edi,[ebx+edi*2] mov ebx,[esi+00000A0Ch] lea edi,[edi+edi*2] lea edi,[ebx+edi*2] mov ebx,[esi+00000A08h] lea edi,[ebx+edi*8-30h] lea ebx,[esi+00000A10h] push ebx push edx push ecx push eax push ebp call [L000B463C+edi*4] mov [esp+30h],eax mov eax,[esi+000048ACh] test eax,eax jz L00089F54 mov edi,[esi+00000A04h] mov eax,[esi+0000483Ch] and edi,00000040h or edi,00000130h shr edi,04h add edi,ebp test eax,eax lea ebx,[ebp+0Ch] jbe L00089F54 cmp eax,00000002h jbe L00089EE5 cmp eax,00000003h jnz L00089F54 mov ebp,eax L00089E85: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+3Ch] fcomp dword ptr [esi+000048B4h] fnstsw ax test ah,41h jz L00089EA3 mov byte ptr [edi],FFh jmp L00089ED0 L00089EA3: fld dword ptr [esp+3Ch] fcomp dword ptr [esi+000048B8h] fnstsw ax test ah,01h jnz L00089EB9 mov byte ptr [edi],00h jmp L00089ED0 L00089EB9: fld dword ptr [esi+000048B8h] fsub dword ptr [esp+3Ch] fmul dword ptr [esi+000048BCh] call SUB_L000AF4EC mov [edi],al L00089ED0: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L00089E85 jmp L00089F54 L00089EE5: mov ebp,00000003h L00089EEA: fld dword ptr [L000B2380] fdiv dword ptr [ebx] fst dword ptr [esp+3Ch] fcomp dword ptr [esi+000048C4h] fnstsw ax test ah,41h jz L00089F08 mov byte ptr [edi],FFh jmp L00089F41 L00089F08: fld dword ptr [esp+3Ch] fcomp dword ptr [esi+000048C8h] fnstsw ax test ah,01h jnz L00089F1E mov byte ptr [edi],00h jmp L00089F41 L00089F1E: fld dword ptr [esp+3Ch] fsub dword ptr [esi+000048C4h] fmul dword ptr [esi+000048CCh] call SUB_L000AF4EC and eax,000000FFh mov dl,[eax+esi+000048D0h] mov [edi],dl L00089F41: mov eax,[esi+000005D4h] mov ecx,eax shr ecx,02h add edi,eax dec ebp lea ebx,[ebx+ecx*4] jnz L00089EEA L00089F54: mov eax,[esp+28h] mov edx,[esp+30h] dec eax mov [esp+3Ch],edx mov [esp+28h],eax jnz L00089D51 mov ecx,[esp+34h] mov ebx,[esp+10h] mov edi,[esp+14h] mov edx,[esp+20h] L00089F7B: mov eax,[esp+48h] sub eax,ebx cmp edx,ebx mov [esp+48h],eax mov eax,[esi+000005D4h] jz L00089FAC sub ebx,edx imul ebx,eax lea ebx,[ebx+ebx*2] shr ebx,02h test edx,edx jnz L00089F9F inc ebx L00089F9F: mov ebp,[edi+08h] neg ebx shl ebx,02h add ebp,ebx mov [edi+08h],ebp L00089FAC: imul eax,edx lea eax,[eax+eax*2] shr eax,02h dec eax or eax,7F000000h mov [ecx-04h],eax mov eax,[esp+48h] test eax,eax ja L00089CB0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00089FD4: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea ecx,[eax+eax*2] mov eax,[esp+14h] shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0008A00D: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea eax,[eax+eax*2] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0008A03B L0008A025: mov eax,[esi+000005D4h] imul eax,[esp+10h] lea edx,[eax+eax*2] shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0008A03B: mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008A054: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0008A060: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008A0A1 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008A0A1: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008A0DD mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008A0E1 L0008A0DD: mov [esp+28h],ebp L0008A0E1: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008A680 jmp L0008A0F3 L0008A0EF: mov ecx,[esp+68h] L0008A0F3: cmp ecx,00005552h jbe L0008A106 mov eax,00005552h mov [esp+5Ch],eax jmp L0008A10C L0008A106: mov [esp+5Ch],ecx mov eax,ecx L0008A10C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008A165 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008A15D mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008A161 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008A161 L0008A15D: mov ebp,[esp+24h] L0008A161: mov ecx,[esp+68h] L0008A165: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008A18B mov ecx,00000666h mov [esp+14h],ecx jmp L0008A191 L0008A18B: mov [esp+14h],eax mov ecx,eax L0008A191: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008A1EE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008A1E6 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008A1EA push edi call [edi+10h] mov eax,[edi+08h] jmp L0008A1EA L0008A1E6: mov ebp,[esp+24h] L0008A1EA: mov ecx,[esp+14h] L0008A1EE: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008A216 mov [esp+5Ch],edx mov ebp,edx L0008A216: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008A5B8 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008A23B L0008A237: mov eax,[esp+3Ch] L0008A23B: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor ebx,ebx mov bx,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov edi,edx imul edi,ecx add ebx,eax add ebp,eax add edi,[esp+64h] mov eax,ebx imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008A654 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008A654 test ebx,ebx jl L0008A654 cmp ebx,ecx jge L0008A654 test ebp,ebp jl L0008A654 cmp ebp,ecx jge L0008A654 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008A59A inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],bx add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008A3B5 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008A35B mov dword ptr [edi+0Ch],3F800000h L0008A35B: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push edi push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008A39D mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008A39D: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008A3B5: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008A45D mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,ebx lea ebx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008A403 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008A403: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push ebx call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008A445 push 00000001h push ebx push esi call SUB_L0003E580 L0008A445: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008A45D: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008A503 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov ebx,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008A4AB mov dword ptr [ebx+0Ch],3F800000h L0008A4AB: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push ebx push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008A4E9 push 00000001h push ebp push esi call SUB_L0003E580 L0008A4E9: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008A507 L0008A503: mov ebx,[esp+20h] L0008A507: mov ebp,[esp+34h] push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebp+edx*4+00h] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov [esp+34h],ecx L0008A59A: dec [esp+38h] jnz L0008A237 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008A5B8: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008A5EF lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008A5E2 inc edx L0008A5E2: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008A5EF: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008A629 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008A61C inc ecx L0008A61C: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008A629: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008A0EF pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008A654: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008A680: pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0008A690: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008A6D1 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008A6D1: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008A70D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008A711 L0008A70D: mov [esp+28h],ebp L0008A711: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008AC7C jmp L0008A723 L0008A71F: mov ecx,[esp+68h] L0008A723: cmp ecx,00005552h jbe L0008A736 mov eax,00005552h mov [esp+5Ch],eax jmp L0008A73C L0008A736: mov [esp+5Ch],ecx mov eax,ecx L0008A73C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008A795 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008A78D mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008A791 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008A791 L0008A78D: mov ebp,[esp+24h] L0008A791: mov ecx,[esp+68h] L0008A795: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008A7BB mov ecx,00000666h mov [esp+14h],ecx jmp L0008A7C1 L0008A7BB: mov [esp+14h],eax mov ecx,eax L0008A7C1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008A81E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008A816 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008A81A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008A81A L0008A816: mov ebp,[esp+24h] L0008A81A: mov ecx,[esp+14h] L0008A81E: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008A846 mov [esp+5Ch],edx mov ebp,edx L0008A846: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008ABE8 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008A86B L0008A867: mov eax,[esp+3Ch] L0008A86B: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor ebx,ebx mov bx,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov edi,edx imul edi,ecx add ebx,eax add ebp,eax add edi,[esp+64h] mov eax,ebx imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008ACB5 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008ACB5 test ebx,ebx jl L0008ACB5 cmp ebx,ecx jge L0008ACB5 test ebp,ebp jl L0008ACB5 cmp ebp,ecx jge L0008ACB5 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008ABCA inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],bx add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008A9E5 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008A98B mov dword ptr [edi+0Ch],3F800000h L0008A98B: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push edi push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008A9CD mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008A9CD: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008A9E5: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008AA8D mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,ebx lea ebx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008AA33 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008AA33: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push ebx call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008AA75 push 00000001h push ebx push esi call SUB_L0003E580 L0008AA75: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008AA8D: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008AB33 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov ebx,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008AADB mov dword ptr [ebx+0Ch],3F800000h L0008AADB: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push ebx push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008AB19 push 00000001h push ebp push esi call SUB_L0003E580 L0008AB19: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008AB37 L0008AB33: mov ebx,[esp+20h] L0008AB37: mov ebp,[esp+34h] push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebp+edx*4+00h] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov [esp+34h],ecx L0008ABCA: dec [esp+38h] jnz L0008A867 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008ABE8: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008AC1F lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008AC12 inc edx L0008AC12: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008AC1F: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008AC59 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008AC4C inc ecx L0008AC4C: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008AC59: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008A71F xor ebp,ebp L0008AC7C: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008ACB5: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0008ACF0: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008AD31 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008AD31: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008AD6D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008AD71 L0008AD6D: mov [esp+28h],ebp L0008AD71: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008B310 jmp L0008AD83 L0008AD7F: mov ecx,[esp+68h] L0008AD83: cmp ecx,00005552h jbe L0008AD96 mov eax,00005552h mov [esp+5Ch],eax jmp L0008AD9C L0008AD96: mov [esp+5Ch],ecx mov eax,ecx L0008AD9C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008ADF5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008ADED mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008ADF1 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008ADF1 L0008ADED: mov ebp,[esp+24h] L0008ADF1: mov ecx,[esp+68h] L0008ADF5: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008AE1B mov ecx,00000666h mov [esp+14h],ecx jmp L0008AE21 L0008AE1B: mov [esp+14h],eax mov ecx,eax L0008AE21: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008AE7E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008AE76 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008AE7A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008AE7A L0008AE76: mov ebp,[esp+24h] L0008AE7A: mov ecx,[esp+14h] L0008AE7E: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008AEA6 mov [esp+5Ch],edx mov ebp,edx L0008AEA6: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008B248 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008AECB L0008AEC7: mov eax,[esp+3Ch] L0008AECB: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor ebx,ebx mov bx,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov edi,edx imul edi,ecx add ebx,eax add ebp,eax add edi,[esp+64h] mov eax,ebx imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008B2E4 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008B2E4 test ebx,ebx jl L0008B2E4 cmp ebx,ecx jge L0008B2E4 test ebp,ebp jl L0008B2E4 cmp ebp,ecx jge L0008B2E4 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0008B22A inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],bx add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008B045 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008AFEB mov dword ptr [edi+0Ch],3F800000h L0008AFEB: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push edi push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008B02D mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008B02D: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008B045: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008B0ED mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,ebx lea ebx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008B093 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008B093: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push ebx call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008B0D5 push 00000001h push ebx push esi call SUB_L0003E580 L0008B0D5: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008B0ED: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008B193 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov ebx,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008B13B mov dword ptr [ebx+0Ch],3F800000h L0008B13B: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push ebx push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008B179 push 00000001h push ebp push esi call SUB_L0003E580 L0008B179: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008B197 L0008B193: mov ebx,[esp+20h] L0008B197: mov ebp,[esp+34h] push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebp+edx*4+00h] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov [esp+34h],ecx L0008B22A: dec [esp+38h] jnz L0008AEC7 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008B248: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008B27F lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008B272 inc edx L0008B272: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008B27F: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008B2B9 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008B2AC inc ecx L0008B2AC: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008B2B9: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008AD7F pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008B2E4: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008B310: pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0008B320: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008B361 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008B361: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008B39D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008B3A1 L0008B39D: mov [esp+28h],ebp L0008B3A1: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008B90C jmp L0008B3B3 L0008B3AF: mov ecx,[esp+68h] L0008B3B3: cmp ecx,00005552h jbe L0008B3C6 mov eax,00005552h mov [esp+5Ch],eax jmp L0008B3CC L0008B3C6: mov [esp+5Ch],ecx mov eax,ecx L0008B3CC: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008B425 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008B41D mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008B421 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008B421 L0008B41D: mov ebp,[esp+24h] L0008B421: mov ecx,[esp+68h] L0008B425: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008B44B mov ecx,00000666h mov [esp+14h],ecx jmp L0008B451 L0008B44B: mov [esp+14h],eax mov ecx,eax L0008B451: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008B4AE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008B4A6 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008B4AA push edi call [edi+10h] mov eax,[edi+08h] jmp L0008B4AA L0008B4A6: mov ebp,[esp+24h] L0008B4AA: mov ecx,[esp+14h] L0008B4AE: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008B4D6 mov [esp+5Ch],edx mov ebp,edx L0008B4D6: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008B878 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008B4FB L0008B4F7: mov eax,[esp+3Ch] L0008B4FB: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor ebx,ebx mov bx,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov edi,edx imul edi,ecx add ebx,eax add ebp,eax add edi,[esp+64h] mov eax,ebx imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008B945 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008B945 test ebx,ebx jl L0008B945 cmp ebx,ecx jge L0008B945 test ebp,ebp jl L0008B945 cmp ebp,ecx jge L0008B945 fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [edi+04h] fld dword ptr [ecx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [edi+04h] fld dword ptr [eax] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0008B85A inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],bx add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008B675 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008B61B mov dword ptr [edi+0Ch],3F800000h L0008B61B: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push edi push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008B65D mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008B65D: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008B675: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008B71D mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,ebx lea ebx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008B6C3 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008B6C3: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push ebx call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008B705 push 00000001h push ebx push esi call SUB_L0003E580 L0008B705: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008B71D: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008B7C3 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov ebx,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008B76B mov dword ptr [ebx+0Ch],3F800000h L0008B76B: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push ebx push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008B7A9 push 00000001h push ebp push esi call SUB_L0003E580 L0008B7A9: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008B7C7 L0008B7C3: mov ebx,[esp+20h] L0008B7C7: mov ebp,[esp+34h] push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+10h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+10h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebp+edx*4+00h] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov [esp+34h],ecx L0008B85A: dec [esp+38h] jnz L0008B4F7 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008B878: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008B8AF lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008B8A2 inc edx L0008B8A2: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008B8AF: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008B8E9 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008B8DC inc ecx L0008B8DC: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008B8E9: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008B3AF xor ebp,ebp L0008B90C: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008B945: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0008B980: sub esp,0000003Ch push ebx push ebp push esi mov esi,[esp+4Ch] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+18h],eax jnz L0008B9C1 mov eax,[esp+5Ch] mov ecx,[esp+58h] mov edx,[esp+54h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ L0008B9C1: mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+10h],edi jnc L0008B9F3 mov ebx,[esp+54h] mov cx,[ebx] add ebx,00000002h mov [esp+24h],cx mov [esp+54h],ebx jmp L0008B9FB L0008B9F3: mov ebx,[esp+54h] mov [esp+24h],ebp L0008B9FB: mov eax,[esp+5Ch] cmp eax,ebp jbe L0008BDE9 L0008BA07: cmp eax,00005552h jbe L0008BA19 mov ecx,00005552h mov [esp+50h],ecx jmp L0008BA1F L0008BA19: mov [esp+50h],eax mov ecx,eax L0008BA1F: mov eax,[edi+08h] lea edx,[ecx+ecx*2] lea ebp,[edx+edx+02h] shr ebp,02h lea edx,[eax+ebp*4+04h] cmp edx,[edi+0Ch] mov [esp+1Ch],ebp jc L0008BA79 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008BA71 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4+04h] cmp ecx,edx jc L0008BA75 push edi call [edi+10h] mov eax,[edi+08h] jmp L0008BA75 L0008BA71: mov ebp,[esp+1Ch] L0008BA75: mov ecx,[esp+50h] L0008BA79: lea edx,[eax+ebp*4+04h] add eax,00000004h mov [edi+08h],edx xor edx,edx test ecx,ecx mov [esp+48h],eax mov [esp+2Ch],eax mov [esp+20h],edx mov [esp+34h],ecx jbe L0008BD6F mov eax,[esp+24h] and eax,0000FFFFh mov [esp+38h],eax jmp L0008BAB4 L0008BAAC: mov eax,[esp+38h] mov ebx,[esp+54h] L0008BAB4: mov ecx,[esp+28h] xor edx,edx mov dx,[ebx] xor edi,edi mov di,[ebx+02h] xor ebp,ebp mov bp,[ebx+04h] add edx,eax mov ebx,edx imul ebx,ecx add edi,eax add ebp,eax add ebx,[esp+58h] mov eax,edi imul eax,ecx mov ecx,[esp+58h] add eax,ecx mov [esp+14h],eax mov eax,ebp imul eax,[esp+28h] add eax,ecx mov ecx,[esp+54h] add ecx,00000006h test edx,edx mov [esp+30h],eax mov [esp+54h],ecx jl L0008BDBD mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008BDBD test edi,edi jl L0008BDBD cmp edi,ecx jge L0008BDBD test ebp,ebp jl L0008BDBD cmp ebp,ecx jge L0008BDBD fld dword ptr [eax+04h] mov ecx,[esp+14h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0008BD51 inc [esp+20h] mov eax,[esp+2Ch] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+2Ch],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+44h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax jnz L0008BC2A mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+3Ch],ecx jnz L0008BBD0 mov dword ptr [ebx+0Ch],3F800000h L0008BBD0: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008BC12 mov ecx,[esp+3Ch] push 00000001h push ecx push esi call SUB_L0003E580 L0008BC12: mov eax,[esp+44h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+40h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008BC2A: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ebx,edi shr ebx,05h test [esi+ebx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008BCC6 mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008BC70 mov edx,[esp+14h] mov dword ptr [edx+0Ch],3F800000h L0008BC70: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+14h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008BCB2 push 00000001h push edi push esi call SUB_L0003E580 L0008BCB2: mov eax,[esi+ebx*4+00000A3Ch] mov ecx,[esp+44h] or eax,ecx mov [esi+ebx*4+00000A3Ch],eax L0008BCC6: mov ecx,ebp and ecx,0000001Fh mov ebx,00000001h mov edi,ebp shl ebx,cl shr edi,05h test [esi+edi*4+00000A3Ch],ebx jnz L0008BD51 mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008BD08 mov ecx,[esp+30h] mov dword ptr [ecx+0Ch],3F800000h L0008BD08: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+30h] lea ecx,[esi+00000A10h] push ecx push edx push ebp call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008BD4A push 00000001h push ebp push esi call SUB_L0003E580 L0008BD4A: or [esi+edi*4+00000A3Ch],ebx L0008BD51: dec [esp+34h] jnz L0008BAAC mov ebp,[esp+1Ch] mov ecx,[esp+50h] mov edi,[esp+10h] mov edx,[esp+20h] mov ebx,[esp+54h] L0008BD6F: mov eax,[esp+5Ch] sub eax,ecx cmp edx,ecx mov [esp+5Ch],eax jz L0008BD9B lea ecx,[edx+edx*2] lea ecx,[ecx+ecx+02h] shr ecx,02h sub ebp,ecx test edx,edx jnz L0008BD8E inc ebp L0008BD8E: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L0008BD9B: mov ecx,[esp+48h] lea edx,[edx+edx*2] or edx,7F820000h test eax,eax mov [ecx-04h],edx ja L0008BA07 pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ L0008BDBD: mov eax,[esp+50h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008BDE9: pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008BE00: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008BE41 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008BE41: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008BE7D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008BE81 L0008BE7D: mov [esp+28h],ebp L0008BE81: cmp [esp+68h],ebp jbe L0008C3F6 L0008BE8B: mov eax,[esp+68h] cmp eax,00005552h jbe L0008BEA1 mov eax,00005552h mov [esp+5Ch],eax jmp L0008BEA5 L0008BEA1: mov [esp+5Ch],eax L0008BEA5: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] mov edx,[ebx+0Ch] shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+24h],ebp jc L0008BEFC push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008BEF8 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008BEFC push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008BEFC L0008BEF8: mov ebp,[esp+24h] L0008BEFC: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax mov eax,[esp+68h] lea eax,[eax+eax*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008BF26 mov ecx,00000666h mov [esp+10h],ecx jmp L0008BF2C L0008BF26: mov [esp+10h],eax mov ecx,eax L0008BF2C: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008BF8D push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008BF85 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008BF7F push edi call [edi+10h] mov eax,[edi+08h] L0008BF7F: mov ecx,[esp+10h] jmp L0008BF8D L0008BF85: mov ecx,[esp+10h] mov ebp,[esp+24h] L0008BF8D: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008BFB5 mov [esp+5Ch],edx mov ebp,edx L0008BFB5: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008C32E mov ecx,[esp+28h] and ecx,0000FFFFh mov [esp+3Ch],ecx jmp L0008BFDB L0008BFD7: mov ecx,[esp+3Ch] L0008BFDB: mov edx,[esp+60h] xor eax,eax mov ax,[edx] xor ebx,ebx mov bx,[edx+02h] xor ebp,ebp mov bp,[edx+04h] mov edx,[esp+2Ch] add eax,ecx mov edi,eax imul edi,edx add ebx,ecx add ebp,ecx add edi,[esp+64h] mov ecx,ebx imul ecx,edx mov edx,[esp+64h] add ecx,edx mov [esp+14h],ecx mov ecx,ebp imul ecx,[esp+2Ch] add ecx,edx mov edx,[esp+60h] add edx,00000006h test eax,eax mov [esp+20h],ecx mov [esp+60h],edx jl L0008C3CA mov ecx,[esi+00000A34h] cmp eax,ecx jge L0008C3CA test ebx,ebx jl L0008C3CA cmp ebx,ecx jge L0008C3CA test ebp,ebp jl L0008C3CA cmp ebp,ecx jge L0008C3CA inc [esp+24h] mov ecx,[esp+30h] mov [ecx],ax add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [ecx],bp add ecx,00000002h mov [esp+30h],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],edx mov [esp+44h],edx jnz L0008C126 mov ecx,[esi+000005D4h] mov edx,[esp+1Ch] shr ecx,02h imul ecx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[edx+ecx*4] mov [esp+40h],ecx jnz L0008C0CC mov dword ptr [edi+0Ch],3F800000h L0008C0CC: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] lea eax,[edx+eax*8] lea edx,[esi+00000A10h] push edx push edi push ecx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008C10E mov eax,[esp+40h] push 00000001h push eax push esi call SUB_L0003E580 L0008C10E: mov eax,[esp+48h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+44h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008C126: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008C1CE mov edx,[esi+000005D4h] mov eax,[esp+1Ch] shr edx,02h imul edx,ebx lea ebx,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008C174 mov ecx,[esp+14h] mov dword ptr [ecx+0Ch],3F800000h L0008C174: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+14h] lea ecx,[esi+00000A10h] push ecx push edx push ebx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008C1B6 push 00000001h push ebx push esi call SUB_L0003E580 L0008C1B6: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008C1CE: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008C274 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov ebx,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008C21C mov dword ptr [ebx+0Ch],3F800000h L0008C21C: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push ebx push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008C25A push 00000001h push ebp push esi call SUB_L0003E580 L0008C25A: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008C278 L0008C274: mov ebx,[esp+20h] L0008C278: mov ebp,[esp+34h] push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebp+edx*4+00h] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+38h] dec eax mov [esp+34h],ecx mov [esp+38h],eax jnz L0008BFD7 mov ecx,[esp+10h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008C32E: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008C365 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008C358 inc edx L0008C358: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008C365: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008C39F sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008C392 inc ecx L0008C392: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008C39F: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008BE8B pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008C3CA: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008C3F6: pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008C400: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008C441 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008C441: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008C47D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008C481 L0008C47D: mov [esp+28h],ebp L0008C481: cmp [esp+68h],ebp jbe L0008C9BE L0008C48B: mov eax,[esp+68h] cmp eax,00005552h jbe L0008C4A1 mov eax,00005552h mov [esp+5Ch],eax jmp L0008C4A5 L0008C4A1: mov [esp+5Ch],eax L0008C4A5: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] mov edx,[ebx+0Ch] shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+24h],ebp jc L0008C4FC push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008C4F8 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008C4FC push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008C4FC L0008C4F8: mov ebp,[esp+24h] L0008C4FC: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax mov eax,[esp+68h] lea eax,[eax+eax*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008C526 mov ecx,00000666h mov [esp+10h],ecx jmp L0008C52C L0008C526: mov [esp+10h],eax mov ecx,eax L0008C52C: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008C589 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008C581 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008C585 push edi call [edi+10h] mov eax,[edi+08h] jmp L0008C585 L0008C581: mov ebp,[esp+24h] L0008C585: mov ecx,[esp+10h] L0008C589: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008C5B1 mov [esp+5Ch],edx mov ebp,edx L0008C5B1: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008C92A mov ecx,[esp+28h] and ecx,0000FFFFh mov [esp+3Ch],ecx jmp L0008C5D7 L0008C5D3: mov ecx,[esp+3Ch] L0008C5D7: mov edx,[esp+60h] xor eax,eax mov ax,[edx] xor ebx,ebx mov bx,[edx+02h] xor ebp,ebp mov bp,[edx+04h] mov edx,[esp+2Ch] add eax,ecx mov edi,eax imul edi,edx add ebx,ecx add ebp,ecx add edi,[esp+64h] mov ecx,ebx imul ecx,edx mov edx,[esp+64h] add ecx,edx mov [esp+14h],ecx mov ecx,ebp imul ecx,[esp+2Ch] add ecx,edx mov edx,[esp+60h] add edx,00000006h test eax,eax mov [esp+20h],ecx mov [esp+60h],edx jl L0008C9F7 mov ecx,[esi+00000A34h] cmp eax,ecx jge L0008C9F7 test ebx,ebx jl L0008C9F7 cmp ebx,ecx jge L0008C9F7 test ebp,ebp jl L0008C9F7 cmp ebp,ecx jge L0008C9F7 inc [esp+24h] mov ecx,[esp+30h] mov [ecx],ax add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [ecx],bp add ecx,00000002h mov [esp+30h],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],edx mov [esp+44h],edx jnz L0008C722 mov ecx,[esi+000005D4h] mov edx,[esp+1Ch] shr ecx,02h imul ecx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[edx+ecx*4] mov [esp+40h],ecx jnz L0008C6C8 mov dword ptr [edi+0Ch],3F800000h L0008C6C8: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] lea eax,[edx+eax*8] lea edx,[esi+00000A10h] push edx push edi push ecx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008C70A mov eax,[esp+40h] push 00000001h push eax push esi call SUB_L0003E580 L0008C70A: mov eax,[esp+48h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+44h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008C722: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008C7CA mov edx,[esi+000005D4h] mov eax,[esp+1Ch] shr edx,02h imul edx,ebx lea ebx,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008C770 mov ecx,[esp+14h] mov dword ptr [ecx+0Ch],3F800000h L0008C770: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+14h] lea ecx,[esi+00000A10h] push ecx push edx push ebx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008C7B2 push 00000001h push ebx push esi call SUB_L0003E580 L0008C7B2: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008C7CA: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008C870 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov ebx,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008C818 mov dword ptr [ebx+0Ch],3F800000h L0008C818: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push ebx push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008C856 push 00000001h push ebp push esi call SUB_L0003E580 L0008C856: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008C874 L0008C870: mov ebx,[esp+20h] L0008C874: mov ebp,[esp+34h] push edi push edi push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] mov eax,[esp+14h] push edi shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+14h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] push edi shr eax,02h push ebx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] push edi shr ecx,02h push ebx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov edx,[esi+000005D4h] push edi shr edx,02h push edi lea ebx,[ebp+edx*4+00h] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[ebx+eax*4] mov eax,[esp+38h] dec eax mov [esp+34h],ecx mov [esp+38h],eax jnz L0008C5D3 mov ecx,[esp+10h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008C92A: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008C961 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008C954 inc edx L0008C954: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008C961: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008C99B sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008C98E inc ecx L0008C98E: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008C99B: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008C48B xor ebp,ebp L0008C9BE: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008C9F7: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0008CA30: sub esp,00000038h push ebx push ebp push esi mov esi,[esp+48h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+14h],eax jnz L0008CA71 mov eax,[esp+58h] mov ecx,[esp+54h] mov edx,[esp+50h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0008CA71: mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+24h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+10h],edi jnc L0008CAA3 mov ebx,[esp+50h] mov cx,[ebx] add ebx,00000002h mov [esp+20h],cx mov [esp+50h],ebx jmp L0008CAAB L0008CAA3: mov ebx,[esp+50h] mov [esp+20h],ebp L0008CAAB: mov eax,[esp+58h] cmp eax,ebp jbe L0008CE6B L0008CAB7: cmp eax,00005552h mov ecx,00005552h ja L0008CAC5 mov ecx,eax L0008CAC5: mov eax,[edi+08h] lea edx,[ecx+ecx*2] lea ebp,[edx+edx+02h] shr ebp,02h lea edx,[eax+ebp*4+04h] cmp edx,[edi+0Ch] mov [esp+4Ch],ecx mov [esp+18h],ebp jc L0008CB27 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008CB1F mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+18h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4+04h] cmp ecx,edx jc L0008CB19 push edi call [edi+10h] mov eax,[edi+08h] L0008CB19: mov ecx,[esp+4Ch] jmp L0008CB27 L0008CB1F: mov ecx,[esp+4Ch] mov ebp,[esp+18h] L0008CB27: lea edx,[eax+ebp*4+04h] add eax,00000004h mov [edi+08h],edx xor edx,edx test ecx,ecx mov [esp+44h],eax mov [esp+28h],eax mov [esp+1Ch],edx mov [esp+3Ch],ecx jbe L0008CDF1 mov ecx,[esp+20h] and ecx,0000FFFFh mov [esp+40h],ecx jmp L0008CB63 L0008CB5B: mov ecx,[esp+40h] mov ebx,[esp+50h] L0008CB63: mov ebp,[esp+24h] xor edx,edx mov dx,[ebx+04h] xor eax,eax mov ax,[ebx] xor edi,edi mov di,[ebx+02h] mov ebx,edx add ebx,ecx add eax,ecx mov edx,eax imul edx,ebp add edi,ecx add edx,[esp+54h] mov ecx,edi imul ecx,ebp mov ebp,[esp+54h] add ecx,ebp mov [esp+34h],ecx mov ecx,ebx imul ecx,[esp+24h] add ecx,ebp mov ebp,[esp+50h] add ebp,00000006h test eax,eax mov [esp+38h],ecx mov [esp+50h],ebp jl L0008CE3F mov ecx,[esi+00000A34h] cmp eax,ecx jge L0008CE3F test edi,edi jl L0008CE3F cmp edi,ecx jge L0008CE3F test ebx,ebx jl L0008CE3F cmp ebx,ecx jge L0008CE3F inc [esp+1Ch] mov ecx,[esp+28h] mov [ecx],ax add ecx,00000002h mov [ecx],di add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [esp+28h],ecx mov ecx,eax and ecx,0000001Fh mov ebp,00000001h shl ebp,cl mov [esp+30h],ebp mov ecx,[esp+30h] mov ebp,eax shr ebp,05h test [esi+ebp*4+00000A3Ch],ecx jnz L0008CCAC mov ecx,[esi+000005D4h] shr ecx,02h imul ecx,eax mov eax,[esp+14h] lea ecx,[eax+ecx*4] mov eax,[esi+00000190h] test eax,eax mov [esp+2Ch],ecx jnz L0008CC52 mov dword ptr [edx+0Ch],3F800000h L0008CC52: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[ecx+eax*2] mov ecx,[esi+00000A08h] lea eax,[ecx+eax*8] lea ecx,[esi+00000A10h] push ecx push edx mov edx,[esp+34h] push edx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008CC98 mov eax,[esp+2Ch] push 00000001h push eax push esi call SUB_L0003E580 L0008CC98: mov eax,[esi+ebp*4+00000A3Ch] mov ecx,[esp+30h] or eax,ecx mov [esi+ebp*4+00000A3Ch],eax L0008CCAC: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ebp,edi shr ebp,05h test [esi+ebp*4+00000A3Ch],eax mov [esp+30h],eax jnz L0008CD48 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h imul edx,edi lea edi,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008CCF2 mov ecx,[esp+34h] mov dword ptr [ecx+0Ch],3F800000h L0008CCF2: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+34h] lea ecx,[esi+00000A10h] push ecx push edx push edi call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008CD34 push 00000001h push edi push esi call SUB_L0003E580 L0008CD34: mov ecx,[esi+ebp*4+00000A3Ch] mov eax,[esp+30h] or ecx,eax mov [esi+ebp*4+00000A3Ch],ecx L0008CD48: mov ecx,ebx and ecx,0000001Fh mov ebp,00000001h mov edi,ebx shl ebp,cl shr edi,05h test [esi+edi*4+00000A3Ch],ebp jnz L0008CDD3 mov ecx,[esi+000005D4h] mov eax,[esi+00000190h] mov edx,[esp+14h] shr ecx,02h imul ecx,ebx test eax,eax lea ebx,[edx+ecx*4] jnz L0008CD8A mov eax,[esp+38h] mov dword ptr [eax+0Ch],3F800000h L0008CD8A: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] mov ecx,[esp+38h] lea eax,[esi+00000A10h] push eax push ecx push ebx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008CDCC push 00000001h push ebx push esi call SUB_L0003E580 L0008CDCC: or [esi+edi*4+00000A3Ch],ebp L0008CDD3: dec [esp+3Ch] jnz L0008CB5B mov ebp,[esp+18h] mov ecx,[esp+4Ch] mov edi,[esp+10h] mov edx,[esp+1Ch] mov ebx,[esp+50h] L0008CDF1: mov eax,[esp+58h] sub eax,ecx cmp edx,ecx mov [esp+58h],eax jz L0008CE1D lea ecx,[edx+edx*2] lea ecx,[ecx+ecx+02h] shr ecx,02h sub ebp,ecx test edx,edx jnz L0008CE10 inc ebp L0008CE10: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L0008CE1D: mov ecx,[esp+44h] lea edx,[edx+edx*2] or edx,7F820000h test eax,eax mov [ecx-04h],edx ja L0008CAB7 pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ L0008CE3F: mov eax,[esp+4Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008CE6B: pop edi pop esi pop ebp pop ebx add esp,00000038h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008CE80: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008CEC1 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008CEC1: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008CEFD mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008CF01 L0008CEFD: mov [esp+28h],ebp L0008CF01: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008D49A jmp L0008CF13 L0008CF0F: mov ecx,[esp+68h] L0008CF13: cmp ecx,00005552h jbe L0008CF26 mov eax,00005552h mov [esp+5Ch],eax jmp L0008CF2C L0008CF26: mov [esp+5Ch],ecx mov eax,ecx L0008CF2C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008CF85 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008CF7D mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008CF81 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008CF81 L0008CF7D: mov ebp,[esp+24h] L0008CF81: mov ecx,[esp+68h] L0008CF85: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008CFAB mov ecx,00000666h mov [esp+14h],ecx jmp L0008CFB1 L0008CFAB: mov [esp+14h],eax mov ecx,eax L0008CFB1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008D00E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008D006 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008D00A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008D00A L0008D006: mov ebp,[esp+24h] L0008D00A: mov ecx,[esp+14h] L0008D00E: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008D036 mov [esp+5Ch],edx mov ebp,edx L0008D036: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008D3D2 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008D05B L0008D057: mov eax,[esp+3Ch] L0008D05B: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor edi,edi mov di,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov ebx,edx imul ebx,ecx add edi,eax add ebp,eax add ebx,[esp+64h] mov eax,edi imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008D46E mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008D46E test edi,edi jl L0008D46E cmp edi,ecx jge L0008D46E test ebp,ebp jl L0008D46E cmp ebp,ecx jge L0008D46E fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008D3B4 inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008D1D5 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008D17B mov dword ptr [ebx+0Ch],3F800000h L0008D17B: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008D1BD mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008D1BD: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008D1D5: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008D27D mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008D223 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008D223: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008D265 push 00000001h push edi push esi call SUB_L0003E580 L0008D265: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008D27D: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008D323 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008D2CB mov dword ptr [edi+0Ch],3F800000h L0008D2CB: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008D309 push 00000001h push ebp push esi call SUB_L0003E580 L0008D309: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008D327 L0008D323: mov edi,[esp+20h] L0008D327: mov ebp,[esp+34h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+34h],ecx L0008D3B4: dec [esp+38h] jnz L0008D057 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008D3D2: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008D409 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008D3FC inc edx L0008D3FC: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008D409: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008D443 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008D436 inc ecx L0008D436: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008D443: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008CF0F pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008D46E: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008D49A: pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008D4B0: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008D4F1 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008D4F1: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008D52D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008D531 L0008D52D: mov [esp+28h],ebp L0008D531: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008DA96 jmp L0008D543 L0008D53F: mov ecx,[esp+68h] L0008D543: cmp ecx,00005552h jbe L0008D556 mov eax,00005552h mov [esp+5Ch],eax jmp L0008D55C L0008D556: mov [esp+5Ch],ecx mov eax,ecx L0008D55C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008D5B5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008D5AD mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008D5B1 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008D5B1 L0008D5AD: mov ebp,[esp+24h] L0008D5B1: mov ecx,[esp+68h] L0008D5B5: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008D5DB mov ecx,00000666h mov [esp+14h],ecx jmp L0008D5E1 L0008D5DB: mov [esp+14h],eax mov ecx,eax L0008D5E1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008D63E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008D636 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008D63A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008D63A L0008D636: mov ebp,[esp+24h] L0008D63A: mov ecx,[esp+14h] L0008D63E: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008D666 mov [esp+5Ch],edx mov ebp,edx L0008D666: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008DA02 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008D68B L0008D687: mov eax,[esp+3Ch] L0008D68B: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor edi,edi mov di,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov ebx,edx imul ebx,ecx add edi,eax add ebp,eax add ebx,[esp+64h] mov eax,edi imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008DACF mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008DACF test edi,edi jl L0008DACF cmp edi,ecx jge L0008DACF test ebp,ebp jl L0008DACF cmp ebp,ecx jge L0008DACF fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008D9E4 inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008D805 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008D7AB mov dword ptr [ebx+0Ch],3F800000h L0008D7AB: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008D7ED mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008D7ED: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008D805: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008D8AD mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008D853 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008D853: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008D895 push 00000001h push edi push esi call SUB_L0003E580 L0008D895: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008D8AD: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008D953 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008D8FB mov dword ptr [edi+0Ch],3F800000h L0008D8FB: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008D939 push 00000001h push ebp push esi call SUB_L0003E580 L0008D939: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008D957 L0008D953: mov edi,[esp+20h] L0008D957: mov ebp,[esp+34h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+34h],ecx L0008D9E4: dec [esp+38h] jnz L0008D687 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008DA02: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008DA39 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008DA2C inc edx L0008DA2C: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008DA39: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008DA73 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008DA66 inc ecx L0008DA66: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008DA73: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008D53F xor ebp,ebp L0008DA96: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008DACF: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008DB10: sub esp,0000003Ch push ebx push ebp push esi mov esi,[esp+4Ch] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+18h],eax jnz L0008DB51 mov eax,[esp+5Ch] mov ecx,[esp+58h] mov edx,[esp+54h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ L0008DB51: mov eax,[esi+000005D0h] mov edi,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+10h],edi jnc L0008DB83 mov ebx,[esp+54h] mov cx,[ebx] add ebx,00000002h mov [esp+24h],cx mov [esp+54h],ebx jmp L0008DB8B L0008DB83: mov ebx,[esp+54h] mov [esp+24h],ebp L0008DB8B: mov eax,[esp+5Ch] cmp eax,ebp jbe L0008DF79 L0008DB97: cmp eax,00005552h jbe L0008DBA9 mov ecx,00005552h mov [esp+50h],ecx jmp L0008DBAF L0008DBA9: mov [esp+50h],eax mov ecx,eax L0008DBAF: mov eax,[edi+08h] lea edx,[ecx+ecx*2] lea ebp,[edx+edx+02h] shr ebp,02h lea edx,[eax+ebp*4+04h] cmp edx,[edi+0Ch] mov [esp+1Ch],ebp jc L0008DC09 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008DC01 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+1Ch] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4+04h] cmp ecx,edx jc L0008DC05 push edi call [edi+10h] mov eax,[edi+08h] jmp L0008DC05 L0008DC01: mov ebp,[esp+1Ch] L0008DC05: mov ecx,[esp+50h] L0008DC09: lea edx,[eax+ebp*4+04h] add eax,00000004h mov [edi+08h],edx xor edx,edx test ecx,ecx mov [esp+48h],eax mov [esp+2Ch],eax mov [esp+20h],edx mov [esp+34h],ecx jbe L0008DEFF mov eax,[esp+24h] and eax,0000FFFFh mov [esp+38h],eax jmp L0008DC44 L0008DC3C: mov eax,[esp+38h] mov ebx,[esp+54h] L0008DC44: mov ecx,[esp+28h] xor edx,edx mov dx,[ebx] xor edi,edi mov di,[ebx+02h] xor ebp,ebp mov bp,[ebx+04h] add edx,eax mov ebx,edx imul ebx,ecx add edi,eax add ebp,eax add ebx,[esp+58h] mov eax,edi imul eax,ecx mov ecx,[esp+58h] add eax,ecx mov [esp+14h],eax mov eax,ebp imul eax,[esp+28h] add eax,ecx mov ecx,[esp+54h] add ecx,00000006h test edx,edx mov [esp+30h],eax mov [esp+54h],ecx jl L0008DF4D mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008DF4D test edi,edi jl L0008DF4D cmp edi,ecx jge L0008DF4D test ebp,ebp jl L0008DF4D cmp ebp,ecx jge L0008DF4D fld dword ptr [eax+04h] mov ecx,[esp+14h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008DEE1 inc [esp+20h] mov eax,[esp+2Ch] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+2Ch],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+44h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+40h],eax jnz L0008DDBA mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+3Ch],ecx jnz L0008DD60 mov dword ptr [ebx+0Ch],3F800000h L0008DD60: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008DDA2 mov ecx,[esp+3Ch] push 00000001h push ecx push esi call SUB_L0003E580 L0008DDA2: mov eax,[esp+44h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+40h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008DDBA: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ebx,edi shr ebx,05h test [esi+ebx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008DE56 mov eax,[esi+000005D4h] mov ecx,[esp+18h] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008DE00 mov edx,[esp+14h] mov dword ptr [edx+0Ch],3F800000h L0008DE00: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+14h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008DE42 push 00000001h push edi push esi call SUB_L0003E580 L0008DE42: mov eax,[esi+ebx*4+00000A3Ch] mov ecx,[esp+44h] or eax,ecx mov [esi+ebx*4+00000A3Ch],eax L0008DE56: mov ecx,ebp and ecx,0000001Fh mov ebx,00000001h mov edi,ebp shl ebx,cl shr edi,05h test [esi+edi*4+00000A3Ch],ebx jnz L0008DEE1 mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008DE98 mov ecx,[esp+30h] mov dword ptr [ecx+0Ch],3F800000h L0008DE98: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+30h] lea ecx,[esi+00000A10h] push ecx push edx push ebp call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008DEDA push 00000001h push ebp push esi call SUB_L0003E580 L0008DEDA: or [esi+edi*4+00000A3Ch],ebx L0008DEE1: dec [esp+34h] jnz L0008DC3C mov ebp,[esp+1Ch] mov ecx,[esp+50h] mov edi,[esp+10h] mov edx,[esp+20h] mov ebx,[esp+54h] L0008DEFF: mov eax,[esp+5Ch] sub eax,ecx cmp edx,ecx mov [esp+5Ch],eax jz L0008DF2B lea ecx,[edx+edx*2] lea ecx,[ecx+ecx+02h] shr ecx,02h sub ebp,ecx test edx,edx jnz L0008DF1E inc ebp L0008DF1E: mov ecx,[edi+08h] neg ebp shl ebp,02h add ecx,ebp mov [edi+08h],ecx L0008DF2B: mov ecx,[esp+48h] lea edx,[edx+edx*2] or edx,7F820000h test eax,eax mov [ecx-04h],edx ja L0008DB97 pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ L0008DF4D: mov eax,[esp+50h] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008DF79: pop edi pop esi pop ebp pop ebx add esp,0000003Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008DF90: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008DFD1 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008DFD1: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008E00D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008E011 L0008E00D: mov [esp+28h],ebp L0008E011: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008E5AA jmp L0008E023 L0008E01F: mov ecx,[esp+68h] L0008E023: cmp ecx,00005552h jbe L0008E036 mov eax,00005552h mov [esp+5Ch],eax jmp L0008E03C L0008E036: mov [esp+5Ch],ecx mov eax,ecx L0008E03C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008E095 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008E08D mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008E091 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008E091 L0008E08D: mov ebp,[esp+24h] L0008E091: mov ecx,[esp+68h] L0008E095: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008E0BB mov ecx,00000666h mov [esp+14h],ecx jmp L0008E0C1 L0008E0BB: mov [esp+14h],eax mov ecx,eax L0008E0C1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008E11E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008E116 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008E11A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008E11A L0008E116: mov ebp,[esp+24h] L0008E11A: mov ecx,[esp+14h] L0008E11E: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008E146 mov [esp+5Ch],edx mov ebp,edx L0008E146: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008E4E2 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008E16B L0008E167: mov eax,[esp+3Ch] L0008E16B: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor edi,edi mov di,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov ebx,edx imul ebx,ecx add edi,eax add ebp,eax add ebx,[esp+64h] mov eax,edi imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008E57E mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008E57E test edi,edi jl L0008E57E cmp edi,ecx jge L0008E57E test ebp,ebp jl L0008E57E cmp ebp,ecx jge L0008E57E fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0008E4C4 inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008E2E5 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008E28B mov dword ptr [ebx+0Ch],3F800000h L0008E28B: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008E2CD mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008E2CD: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008E2E5: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008E38D mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008E333 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008E333: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008E375 push 00000001h push edi push esi call SUB_L0003E580 L0008E375: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008E38D: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008E433 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008E3DB mov dword ptr [edi+0Ch],3F800000h L0008E3DB: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008E419 push 00000001h push ebp push esi call SUB_L0003E580 L0008E419: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008E437 L0008E433: mov edi,[esp+20h] L0008E437: mov ebp,[esp+34h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+34h],ecx L0008E4C4: dec [esp+38h] jnz L0008E167 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008E4E2: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008E519 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008E50C inc edx L0008E50C: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008E519: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008E553 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008E546 inc ecx L0008E546: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008E553: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008E01F pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008E57E: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008E5AA: pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008E5C0: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008E601 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008E601: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008E63D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008E641 L0008E63D: mov [esp+28h],ebp L0008E641: mov ecx,[esp+68h] cmp ecx,ebp jbe L0008EBA6 jmp L0008E653 L0008E64F: mov ecx,[esp+68h] L0008E653: cmp ecx,00005552h jbe L0008E666 mov eax,00005552h mov [esp+5Ch],eax jmp L0008E66C L0008E666: mov [esp+5Ch],ecx mov eax,ecx L0008E66C: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+24h],ebp jc L0008E6C5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008E6BD mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008E6C1 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008E6C1 L0008E6BD: mov ebp,[esp+24h] L0008E6C1: mov ecx,[esp+68h] L0008E6C5: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax lea eax,[ecx+ecx*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008E6EB mov ecx,00000666h mov [esp+14h],ecx jmp L0008E6F1 L0008E6EB: mov [esp+14h],eax mov ecx,eax L0008E6F1: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008E74E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008E746 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008E74A push edi call [edi+10h] mov eax,[edi+08h] jmp L0008E74A L0008E746: mov ebp,[esp+24h] L0008E74A: mov ecx,[esp+14h] L0008E74E: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008E776 mov [esp+5Ch],edx mov ebp,edx L0008E776: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008EB12 mov eax,[esp+28h] and eax,0000FFFFh mov [esp+3Ch],eax jmp L0008E79B L0008E797: mov eax,[esp+3Ch] L0008E79B: mov ecx,[esp+60h] xor edx,edx mov dx,[ecx] xor edi,edi mov di,[ecx+02h] xor ebp,ebp mov bp,[ecx+04h] mov ecx,[esp+2Ch] add edx,eax mov ebx,edx imul ebx,ecx add edi,eax add ebp,eax add ebx,[esp+64h] mov eax,edi imul eax,ecx mov ecx,[esp+64h] add eax,ecx mov [esp+10h],eax mov eax,ebp imul eax,[esp+2Ch] add eax,ecx mov ecx,[esp+60h] add ecx,00000006h test edx,edx mov [esp+20h],eax mov [esp+60h],ecx jl L0008EBDF mov ecx,[esi+00000A34h] cmp edx,ecx jge L0008EBDF test edi,edi jl L0008EBDF cmp edi,ecx jge L0008EBDF test ebp,ebp jl L0008EBDF cmp ebp,ecx jge L0008EBDF fld dword ptr [eax+04h] mov ecx,[esp+10h] fsub dword ptr [ebx+04h] fld dword ptr [ecx] fsub dword ptr [ebx] fmulp ST(1),ST fld dword ptr [ecx+04h] fsub dword ptr [ebx+04h] fld dword ptr [eax] fsub dword ptr [ebx] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0008EAF4 inc [esp+24h] mov eax,[esp+30h] mov [eax],dx add eax,00000002h mov [eax],di add eax,00000002h mov [eax],bp add eax,00000002h mov [esp+30h],eax mov ecx,edx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edx shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],eax mov [esp+44h],eax jnz L0008E915 mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edx lea ecx,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax mov [esp+40h],ecx jnz L0008E8BB mov dword ptr [ebx+0Ch],3F800000h L0008E8BB: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea edx,[eax+edx*2] mov eax,[esi+00000A08h] lea edx,[eax+edx*8] lea eax,[esi+00000A10h] push eax push ebx push ecx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008E8FD mov ecx,[esp+40h] push 00000001h push ecx push esi call SUB_L0003E580 L0008E8FD: mov eax,[esp+48h] mov ecx,[esi+eax*4+00000A3Ch] mov edx,[esp+44h] or ecx,edx mov [esi+eax*4+00000A3Ch],ecx L0008E915: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008E9BD mov eax,[esi+000005D4h] mov ecx,[esp+1Ch] shr eax,02h imul eax,edi lea edi,[ecx+eax*4] mov eax,[esi+00000190h] test eax,eax jnz L0008E963 mov edx,[esp+10h] mov dword ptr [edx+0Ch],3F800000h L0008E963: mov eax,[esi+00000A30h] mov ecx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea edx,[ecx+eax*2] mov eax,[esi+00000A08h] lea ecx,[eax+edx*8] mov eax,[esp+10h] lea edx,[esi+00000A10h] push edx push eax push edi call [L000B493C+ecx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008E9A5 push 00000001h push edi push esi call SUB_L0003E580 L0008E9A5: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008E9BD: mov ecx,ebp and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebp shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008EA63 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebp lea ebp,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008EA0B mov dword ptr [edi+0Ch],3F800000h L0008EA0B: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebp call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008EA49 push 00000001h push ebp push esi call SUB_L0003E580 L0008EA49: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008EA67 L0008EA63: mov edi,[esp+20h] L0008EA67: mov ebp,[esp+34h] push ebx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebx lea edi,[ebp+edx*4+00h] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov [esp+34h],ecx L0008EAF4: dec [esp+38h] jnz L0008E797 mov ecx,[esp+14h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008EB12: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008EB49 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008EB3C inc edx L0008EB3C: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008EB49: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008EB83 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008EB76 inc ecx L0008EB76: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008EB83: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008E64F xor ebp,ebp L0008EBA6: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008EBDF: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008EC20: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008EC61 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008EC61: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008EC9D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008ECA1 L0008EC9D: mov [esp+28h],ebp L0008ECA1: cmp [esp+68h],ebp jbe L0008F20B L0008ECAB: mov eax,[esp+68h] cmp eax,00005552h jbe L0008ECC1 mov eax,00005552h mov [esp+5Ch],eax jmp L0008ECC5 L0008ECC1: mov [esp+5Ch],eax L0008ECC5: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] mov edx,[ebx+0Ch] shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+24h],ebp jc L0008ED1C push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008ED18 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008ED1C push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008ED1C L0008ED18: mov ebp,[esp+24h] L0008ED1C: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax mov eax,[esp+68h] lea eax,[eax+eax*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008ED46 mov ecx,00000666h mov [esp+10h],ecx jmp L0008ED4C L0008ED46: mov [esp+10h],eax mov ecx,eax L0008ED4C: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008EDAD push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008EDA5 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008ED9F push edi call [edi+10h] mov eax,[edi+08h] L0008ED9F: mov ecx,[esp+10h] jmp L0008EDAD L0008EDA5: mov ecx,[esp+10h] mov ebp,[esp+24h] L0008EDAD: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008EDD5 mov [esp+5Ch],edx mov ebp,edx L0008EDD5: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008F143 mov ecx,[esp+28h] and ecx,0000FFFFh mov [esp+3Ch],ecx jmp L0008EDFB L0008EDF7: mov ecx,[esp+3Ch] L0008EDFB: mov edx,[esp+60h] xor eax,eax mov ax,[edx] xor edi,edi mov di,[edx+02h] xor ebx,ebx mov bx,[edx+04h] mov edx,[esp+2Ch] add eax,ecx mov ebp,eax imul ebp,edx add edi,ecx add ebx,ecx add ebp,[esp+64h] mov ecx,edi imul ecx,edx mov edx,[esp+64h] add ecx,edx mov [esp+14h],ecx mov ecx,ebx imul ecx,[esp+2Ch] add ecx,edx mov edx,[esp+60h] add edx,00000006h test eax,eax mov [esp+20h],ecx mov [esp+60h],edx jl L0008F1DF mov ecx,[esi+00000A34h] cmp eax,ecx jge L0008F1DF test edi,edi jl L0008F1DF cmp edi,ecx jge L0008F1DF test ebx,ebx jl L0008F1DF cmp ebx,ecx jge L0008F1DF inc [esp+24h] mov ecx,[esp+30h] mov [ecx],ax add ecx,00000002h mov [ecx],di add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [esp+30h],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],edx mov [esp+44h],edx jnz L0008EF46 mov ecx,[esi+000005D4h] mov edx,[esp+1Ch] shr ecx,02h imul ecx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[edx+ecx*4] mov [esp+40h],ecx jnz L0008EEEC mov dword ptr [ebp+0Ch],3F800000h L0008EEEC: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] lea eax,[edx+eax*8] lea edx,[esi+00000A10h] push edx push ebp push ecx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008EF2E mov eax,[esp+40h] push 00000001h push eax push esi call SUB_L0003E580 L0008EF2E: mov eax,[esp+48h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+44h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008EF46: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008EFEE mov edx,[esi+000005D4h] mov eax,[esp+1Ch] shr edx,02h imul edx,edi lea edi,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008EF94 mov ecx,[esp+14h] mov dword ptr [ecx+0Ch],3F800000h L0008EF94: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+14h] lea ecx,[esi+00000A10h] push ecx push edx push edi call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008EFD6 push 00000001h push edi push esi call SUB_L0003E580 L0008EFD6: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008EFEE: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008F094 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebx lea ebx,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008F03C mov dword ptr [edi+0Ch],3F800000h L0008F03C: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008F07A push 00000001h push ebx push esi call SUB_L0003E580 L0008F07A: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008F098 L0008F094: mov edi,[esp+20h] L0008F098: mov ebx,[esp+34h] push ebp push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+38h] dec eax mov [esp+34h],ecx mov [esp+38h],eax jnz L0008EDF7 mov ecx,[esp+10h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008F143: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008F17A lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008F16D inc edx L0008F16D: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008F17A: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008F1B4 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008F1A7 inc ecx L0008F1A7: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008F1B4: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008ECAB pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008F1DF: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0008F20B: pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008F220: sub esp,00000048h push ebx push ebp push esi mov esi,[esp+58h] push edi push esi call SUB_L00036580 xor ebp,ebp cmp eax,ebp mov [esp+1Ch],eax jnz L0008F261 mov eax,[esp+68h] mov ecx,[esp+64h] mov edx,[esp+60h] push eax push ecx push edx push esi call [esi+000009F4h] pop edi mov [esi+00000A38h],ebp pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008F261: mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov edi,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h mov [esp+18h],ebx mov [esp+4Ch],edi jnc L0008F29D mov eax,[esp+60h] mov cx,[eax] add eax,00000002h mov [esp+28h],cx mov [esp+60h],eax jmp L0008F2A1 L0008F29D: mov [esp+28h],ebp L0008F2A1: cmp [esp+68h],ebp jbe L0008F7D3 L0008F2AB: mov eax,[esp+68h] cmp eax,00005552h jbe L0008F2C1 mov eax,00005552h mov [esp+5Ch],eax jmp L0008F2C5 L0008F2C1: mov [esp+5Ch],eax L0008F2C5: lea edx,[eax+eax*2] mov eax,[ebx+08h] lea ebp,[edx+edx+02h] mov edx,[ebx+0Ch] shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+24h],ebp jc L0008F31C push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0008F318 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+24h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008F31C push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0008F31C L0008F318: mov ebp,[esp+24h] L0008F31C: lea edx,[eax+ebp*4] add eax,00000004h mov [esp+50h],eax mov [esp+30h],eax mov eax,[esp+68h] lea eax,[eax+eax*2] cmp eax,00000666h mov [ebx+08h],edx jbe L0008F346 mov ecx,00000666h mov [esp+10h],ecx jmp L0008F34C L0008F346: mov [esp+10h],eax mov ecx,eax L0008F34C: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+24h],ebp jc L0008F3A9 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0008F3A1 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov ebp,[esp+24h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0008F3A5 push edi call [edi+10h] mov eax,[edi+08h] jmp L0008F3A5 L0008F3A1: mov ebp,[esp+24h] L0008F3A5: mov ecx,[esp+10h] L0008F3A9: lea edx,[eax+ebp*4] mov ebp,[esp+5Ch] add eax,00000004h mov [esp+54h],eax mov [esp+34h],eax mov [edi+08h],edx mov eax,AAAAAAABh mul ecx shr edx,1 cmp ebp,edx jc L0008F3D1 mov [esp+5Ch],edx mov ebp,edx L0008F3D1: xor eax,eax test ebp,ebp mov [esp+24h],eax mov [esp+38h],ebp jbe L0008F73F mov ecx,[esp+28h] and ecx,0000FFFFh mov [esp+3Ch],ecx jmp L0008F3F7 L0008F3F3: mov ecx,[esp+3Ch] L0008F3F7: mov edx,[esp+60h] xor eax,eax mov ax,[edx] xor edi,edi mov di,[edx+02h] xor ebx,ebx mov bx,[edx+04h] mov edx,[esp+2Ch] add eax,ecx mov ebp,eax imul ebp,edx add edi,ecx add ebx,ecx add ebp,[esp+64h] mov ecx,edi imul ecx,edx mov edx,[esp+64h] add ecx,edx mov [esp+14h],ecx mov ecx,ebx imul ecx,[esp+2Ch] add ecx,edx mov edx,[esp+60h] add edx,00000006h test eax,eax mov [esp+20h],ecx mov [esp+60h],edx jl L0008F80C mov ecx,[esi+00000A34h] cmp eax,ecx jge L0008F80C test edi,edi jl L0008F80C cmp edi,ecx jge L0008F80C test ebx,ebx jl L0008F80C cmp ebx,ecx jge L0008F80C inc [esp+24h] mov ecx,[esp+30h] mov [ecx],ax add ecx,00000002h mov [ecx],di add ecx,00000002h mov [ecx],bx add ecx,00000002h mov [esp+30h],ecx mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h mov [esp+48h],ecx test [esi+ecx*4+00000A3Ch],edx mov [esp+44h],edx jnz L0008F542 mov ecx,[esi+000005D4h] mov edx,[esp+1Ch] shr ecx,02h imul ecx,eax mov eax,[esi+00000190h] test eax,eax lea ecx,[edx+ecx*4] mov [esp+40h],ecx jnz L0008F4E8 mov dword ptr [ebp+0Ch],3F800000h L0008F4E8: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea eax,[eax+eax*2] lea eax,[edx+eax*2] mov edx,[esi+00000A08h] lea eax,[edx+eax*8] lea edx,[esi+00000A10h] push edx push ebp push ecx call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008F52A mov eax,[esp+40h] push 00000001h push eax push esi call SUB_L0003E580 L0008F52A: mov eax,[esp+48h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+44h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008F542: mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008F5EA mov edx,[esi+000005D4h] mov eax,[esp+1Ch] shr edx,02h imul edx,edi lea edi,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008F590 mov ecx,[esp+14h] mov dword ptr [ecx+0Ch],3F800000h L0008F590: mov eax,[esi+00000A30h] lea edx,[eax+eax*2] mov eax,[esi+00000A0Ch] lea ecx,[eax+edx*2] mov edx,[esi+00000A08h] lea eax,[edx+ecx*8] mov edx,[esp+14h] lea ecx,[esi+00000A10h] push ecx push edx push edi call [L000B493C+eax*4] mov eax,[esi+000048ACh] test eax,eax jz L0008F5D2 push 00000001h push edi push esi call SUB_L0003E580 L0008F5D2: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx L0008F5EA: mov ecx,ebx and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,ebx shr ecx,05h test [esi+ecx*4+00000A3Ch],eax mov [esp+48h],eax mov [esp+44h],ecx jnz L0008F690 mov edx,[esi+000005D4h] mov eax,[esp+1Ch] mov edi,[esp+20h] shr edx,02h imul edx,ebx lea ebx,[eax+edx*4] mov eax,[esi+00000190h] test eax,eax jnz L0008F638 mov dword ptr [edi+0Ch],3F800000h L0008F638: mov eax,[esi+00000A30h] mov edx,[esi+00000A0Ch] lea ecx,[eax+eax*2] lea eax,[edx+ecx*2] mov ecx,[esi+00000A08h] lea edx,[ecx+eax*8] lea eax,[esi+00000A10h] push eax push edi push ebx call [L000B493C+edx*4] mov eax,[esi+000048ACh] test eax,eax jz L0008F676 push 00000001h push ebx push esi call SUB_L0003E580 L0008F676: mov eax,[esp+44h] mov edx,[esi+eax*4+00000A3Ch] mov ecx,[esp+48h] or edx,ecx mov [esi+eax*4+00000A3Ch],edx jmp L0008F694 L0008F690: mov edi,[esp+20h] L0008F694: mov ebx,[esp+34h] push ebp push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+14h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h push edi lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h push ebp lea edi,[ebx+edx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+38h] dec eax mov [esp+34h],ecx mov [esp+38h],eax jnz L0008F3F3 mov ecx,[esp+10h] mov edi,[esp+4Ch] mov ebx,[esp+18h] mov eax,[esp+24h] mov ebp,[esp+5Ch] L0008F73F: mov edx,[esp+68h] sub edx,ebp cmp eax,ebp mov [esp+68h],edx jz L0008F776 lea edx,[ebp+ebp*2+00h] lea ebp,[eax+eax*2] lea edx,[edx+edx+02h] lea ebp,[ebp+ebp+02h] shr edx,02h shr ebp,02h sub edx,ebp test eax,eax jnz L0008F769 inc edx L0008F769: mov ebp,[ebx+08h] neg edx shl edx,02h add ebp,edx mov [ebx+08h],ebp L0008F776: mov ebp,[esp+50h] lea eax,[eax+eax*2] mov edx,eax or edx,7F820000h cmp eax,ecx mov [ebp-04h],edx mov edx,[esi+000005D4h] jz L0008F7B0 sub ecx,eax mov ebp,edx shr ebp,02h imul ecx,ebp shl ecx,1 test eax,eax jnz L0008F7A3 inc ecx L0008F7A3: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0008F7B0: mov ecx,[esp+54h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+68h] test eax,eax ja L0008F2AB xor ebp,ebp L0008F7D3: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ L0008F80C: mov eax,[esp+5Ch] lea edx,[eax+eax*2] lea eax,[edx+edx+02h] shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000048h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008F850: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L0008F891 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L0008F8B2 L0008F891: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L0008F8B2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L0008FBD7 L0008F8C5: cmp ecx,00000666h jbe L0008F8D8 mov ebp,00000666h mov [esp+48h],ebp jmp L0008F8DE L0008F8D8: mov [esp+48h],ecx mov ebp,ecx L0008F8DE: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0008F93F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L0008F93B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0008F93F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0008F93F L0008F93B: mov ecx,[esp+3Ch] L0008F93F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L0008FB17 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L0008F977: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L0008FBA9 mov edx,[edi+00000A34h] cmp eax,edx jge L0008FBA9 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L0008FB71 cmp ecx,edx jge L0008FB71 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L0008FBA9 cmp eax,edx jge L0008FBA9 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008FAE9 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h push esi lea ebx,[ebx+eax*4] mov eax,[esp+40h] push ebp push ebx inc eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L0008FAF1 L0008FAE9: mov eax,[esp+20h] mov ebx,[esp+1Ch] L0008FAF1: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L0008F977 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L0008FB1B L0008FB17: mov ecx,[esp+24h] L0008FB1B: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L0008FB4A sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L0008FB42 inc ebp L0008FB42: neg ebp shl ebp,02h add [ebx+08h],ebp L0008FB4A: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L0008F8C5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0008FB71: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0008FBA9: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L0008FBD7: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008FBF0: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0008FC3A mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L0008FC5B L0008FC3A: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L0008FC5B: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L0008FF11 L0008FC6E: cmp ecx,00000666h jbe L0008FC81 mov ebp,00000666h mov [esp+48h],ebp jmp L0008FC87 L0008FC81: mov [esp+48h],ecx mov ebp,ecx L0008FC87: mov eax,[esi+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0008FCE8 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+3Ch],eax jz L0008FCE4 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L0008FCE8 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L0008FCE8 L0008FCE4: mov ecx,[esp+3Ch] L0008FCE8: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [esi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+24h],eax jbe L0008FEC1 mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L0008FD20: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea esi,[eax+ebp] imul esi,[esp+18h] add esi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L0008FF24 mov edx,[edi+00000A34h] cmp eax,edx jge L0008FF24 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L0008FF5C cmp ecx,edx jge L0008FF5C mov ecx,[esp+30h] add eax,ecx test eax,eax jl L0008FF24 cmp eax,edx jge L0008FF24 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L0008FE93 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h push esi lea ebx,[ebx+eax*4] mov eax,[esp+40h] push ebp push ebx inc eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov ebp,[esp+20h] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+24h] jmp L0008FE9B L0008FE93: mov eax,[esp+24h] mov ebp,[esp+20h] L0008FE9B: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L0008FD20 mov ebp,[esp+48h] mov esi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+3Ch] jmp L0008FEC5 L0008FEC1: mov ecx,[esp+28h] L0008FEC5: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+28h],ecx jz L0008FEF4 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L0008FEEC inc ebp L0008FEEC: neg ebp shl ebp,02h add [esi+08h],ebp L0008FEF4: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L0008FC6E L0008FF11: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0008FF24: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0008FF5C: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0008FFA0: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L0008FFE1 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L00090002 L0008FFE1: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00090002: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00090327 L00090015: cmp ecx,00000666h jbe L00090028 mov ebp,00000666h mov [esp+48h],ebp jmp L0009002E L00090028: mov [esp+48h],ecx mov ebp,ecx L0009002E: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009008F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L0009008B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009008F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009008F L0009008B: mov ecx,[esp+3Ch] L0009008F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L00090267 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L000900C7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L000902F9 mov edx,[edi+00000A34h] cmp eax,edx jge L000902F9 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L000902C1 cmp ecx,edx jge L000902C1 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L000902F9 cmp eax,edx jge L000902F9 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00090239 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h push esi lea ebx,[ebx+eax*4] mov eax,[esp+40h] push ebp push ebx inc eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L00090241 L00090239: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00090241: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000900C7 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L0009026B L00090267: mov ecx,[esp+24h] L0009026B: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L0009029A sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L00090292 inc ebp L00090292: neg ebp shl ebp,02h add [ebx+08h],ebp L0009029A: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00090015 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000902C1: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000902F9: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00090327: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00090340: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L00090381 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L000903A2 L00090381: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L000903A2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L000906C7 L000903B5: cmp ecx,00000666h jbe L000903C8 mov ebp,00000666h mov [esp+48h],ebp jmp L000903CE L000903C8: mov [esp+48h],ecx mov ebp,ecx L000903CE: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009042F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L0009042B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009042F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009042F L0009042B: mov ecx,[esp+3Ch] L0009042F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L00090607 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00090467: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00090699 mov edx,[edi+00000A34h] cmp eax,edx jge L00090699 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00090661 cmp ecx,edx jge L00090661 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00090699 cmp eax,edx jge L00090699 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000905D9 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h push esi lea ebx,[ebx+eax*4] mov eax,[esp+40h] push ebp push ebx inc eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L000905E1 L000905D9: mov eax,[esp+20h] mov ebx,[esp+1Ch] L000905E1: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00090467 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L0009060B L00090607: mov ecx,[esp+24h] L0009060B: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L0009063A sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L00090632 inc ebp L00090632: neg ebp shl ebp,02h add [ebx+08h],ebp L0009063A: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000903B5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00090661: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00090699: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L000906C7: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000906E0: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L0009072A mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L0009074B L0009072A: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L0009074B: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L00090A01 L0009075E: cmp ecx,00000666h jbe L00090771 mov ebp,00000666h mov [esp+48h],ebp jmp L00090777 L00090771: mov [esp+48h],ecx mov ebp,ecx L00090777: mov eax,[esi+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L000907D8 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+3Ch],eax jz L000907D4 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L000907D8 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L000907D8 L000907D4: mov ecx,[esp+3Ch] L000907D8: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [esi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+24h],eax jbe L000909B1 mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L00090810: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea esi,[eax+ebp] imul esi,[esp+18h] add esi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00090A14 mov edx,[edi+00000A34h] cmp eax,edx jge L00090A14 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00090A4C cmp ecx,edx jge L00090A4C mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00090A14 cmp eax,edx jge L00090A14 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00090983 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h push esi lea ebx,[ebx+eax*4] mov eax,[esp+40h] push ebp push ebx inc eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov ebp,[esp+20h] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+24h] jmp L0009098B L00090983: mov eax,[esp+24h] mov ebp,[esp+20h] L0009098B: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L00090810 mov ebp,[esp+48h] mov esi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+3Ch] jmp L000909B5 L000909B1: mov ecx,[esp+28h] L000909B5: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+28h],ecx jz L000909E4 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L000909DC inc ebp L000909DC: neg ebp shl ebp,02h add [esi+08h],ebp L000909E4: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L0009075E L00090A01: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00090A14: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00090A4C: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00090A90: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L00090AD1 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L00090AF2 L00090AD1: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00090AF2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00090E17 L00090B05: cmp ecx,00000666h jbe L00090B18 mov ebp,00000666h mov [esp+48h],ebp jmp L00090B1E L00090B18: mov [esp+48h],ecx mov ebp,ecx L00090B1E: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00090B7F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L00090B7B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00090B7F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L00090B7F L00090B7B: mov ecx,[esp+3Ch] L00090B7F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L00090D57 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00090BB7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00090DE9 mov edx,[edi+00000A34h] cmp eax,edx jge L00090DE9 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00090DB1 cmp ecx,edx jge L00090DB1 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00090DE9 cmp eax,edx jge L00090DE9 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00090D29 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h push esi lea ebx,[ebx+eax*4] mov eax,[esp+40h] push ebp push ebx inc eax push edi mov [esp+4Ch],eax call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L00090D31 L00090D29: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00090D31: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00090BB7 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L00090D5B L00090D57: mov ecx,[esp+24h] L00090D5B: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L00090D8A sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L00090D82 inc ebp L00090D82: neg ebp shl ebp,02h add [ebx+08h],ebp L00090D8A: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00090B05 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00090DB1: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00090DE9: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00090E17: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00090E30: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+18h],ebx jnc L00090E71 mov esi,[esp+40h] mov cx,[esi] mov [esp+24h],cx add esi,00000002h mov dword ptr [esp+1Ch],00000000h jmp L00090E92 L00090E71: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+24h],00000000h mov [esp+1Ch],eax L00090E92: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+14h],ecx jbe L00091187 L00090EA5: cmp ecx,00000666h jbe L00090EB8 mov ebp,00000666h mov [esp+48h],ebp jmp L00090EBE L00090EB8: mov [esp+48h],ecx mov ebp,ecx L00090EBE: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00090F1F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L00090F1B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00090F1F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L00090F1F L00090F1B: mov ecx,[esp+3Ch] L00090F1F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L000910C2 mov ebx,[esp+24h] and ebx,0000FFFFh mov [esp+28h],ebx jmp L00090F5D L00090F59: mov ebx,[esp+28h] L00090F5D: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+28h] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00091159 mov edx,[edi+00000A34h] cmp eax,edx jge L00091159 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00091121 cmp ecx,edx jge L00091121 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00091159 cmp eax,edx jge L00091159 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov edx,[esp+3Ch] push esi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc edx push edi mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov esi,[esp+3Ch] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax mov eax,[esp+20h] inc esi sub eax,00000003h cmp eax,00000002h mov [esp+3Ch],esi mov esi,[esp+40h] mov [esp+20h],eax ja L00090F59 mov edx,[esp+3Ch] mov ebp,[esp+48h] mov ebx,[esp+18h] L000910C2: mov ecx,[esp+14h] sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+14h],ecx jz L000910FA sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000910E9 inc ebp L000910E9: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx mov ecx,[esp+14h] L000910FA: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00090EA5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091121: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091159: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00091187: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000911A0: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov [esp+28h],eax mov [esp+24h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L000911EA mov ebx,[esp+40h] mov cx,[ebx] mov [esp+28h],cx add ebx,00000002h mov dword ptr [esp+20h],00000000h jmp L0009120B L000911EA: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+20h],eax L0009120B: mov eax,[esp+48h] lea edx,[eax+eax*2] test edx,edx mov [esp+14h],edx jbe L0009148F L0009121E: cmp edx,00000666h jbe L00091231 mov ebp,00000666h mov [esp+48h],ebp jmp L00091237 L00091231: mov [esp+48h],edx mov ebp,edx L00091237: mov eax,[esi+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L00091298 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+3Ch],eax jz L00091294 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L00091298 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L00091298 L00091294: mov ecx,[esp+3Ch] L00091298: mov edx,[esp+40h] add ecx,00000004h lea eax,[eax+edx*4] mov [esi+08h],eax mov [esp+34h],ecx mov [esp+10h],ecx xor ecx,ecx cmp ebp,00000002h mov eax,ebp mov [esp+3Ch],ecx mov [esp+24h],eax jbe L0009143A mov ebp,[esp+28h] and ebp,0000FFFFh mov [esp+2Ch],ebp jmp L000912D6 L000912D2: mov ebp,[esp+2Ch] L000912D6: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea esi,[eax+ebp] imul esi,[esp+1Ch] add esi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+1Ch] add ebx,[esp+44h] mov ebp,[esp+2Ch] add ebp,edx imul ebp,[esp+1Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+20h] add eax,edx test eax,eax jl L000914A2 mov edx,[edi+00000A34h] cmp eax,edx jge L000914A2 mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L000914DA cmp ecx,edx jge L000914DA mov ecx,[esp+30h] add eax,ecx test eax,eax jl L000914A2 cmp eax,edx jge L000914A2 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov edx,[esp+3Ch] push esi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc edx push edi mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov esi,[esp+3Ch] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+40h] mov [esp+10h],eax mov eax,[esp+24h] sub eax,00000003h inc esi cmp eax,00000002h mov [esp+3Ch],esi mov [esp+24h],eax ja L000912D2 mov ebp,[esp+48h] mov ecx,esi mov esi,[esp+18h] L0009143A: mov edx,[esp+14h] sub eax,ebp add edx,eax cmp ecx,ebp mov eax,[edi+000005D4h] mov [esp+14h],edx jz L00091472 sub ebp,ecx mov edx,eax shr edx,02h imul ebp,edx shl ebp,1 test ecx,ecx jnz L00091461 inc ebp L00091461: mov edx,[esi+08h] neg ebp shl ebp,02h add edx,ebp mov [esi+08h],edx mov edx,[esp+14h] L00091472: imul eax,ecx mov ecx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test edx,edx mov [ecx-04h],eax ja L0009121E L0009148F: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000914A2: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000914DA: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00091520: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+18h],ebx jnc L00091561 mov esi,[esp+40h] mov cx,[esi] mov [esp+24h],cx add esi,00000002h mov dword ptr [esp+1Ch],00000000h jmp L00091582 L00091561: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+24h],00000000h mov [esp+1Ch],eax L00091582: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+14h],ecx jbe L00091877 L00091595: cmp ecx,00000666h jbe L000915A8 mov ebp,00000666h mov [esp+48h],ebp jmp L000915AE L000915A8: mov [esp+48h],ecx mov ebp,ecx L000915AE: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009160F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L0009160B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009160F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009160F L0009160B: mov ecx,[esp+3Ch] L0009160F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L000917B2 mov ebx,[esp+24h] and ebx,0000FFFFh mov [esp+28h],ebx jmp L0009164D L00091649: mov ebx,[esp+28h] L0009164D: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+28h] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00091849 mov edx,[edi+00000A34h] cmp eax,edx jge L00091849 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00091811 cmp ecx,edx jge L00091811 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00091849 cmp eax,edx jge L00091849 mov edx,[esp+10h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+10h] push esi shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov edx,[edi+000005D4h] mov eax,[esp+30h] shr edx,02h push esi lea eax,[eax+edx*4] mov edx,[esp+40h] push ebx push eax inc edx push edi mov [esp+20h],eax mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov edx,[esp+3Ch] push esi shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc edx push edi mov [esp+4Ch],edx call SUB_L0003EC00 mov ecx,[edi+000005D4h] push esi shr ecx,02h push esi lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 mov edx,[edi+000005D4h] mov esi,[esp+3Ch] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax mov eax,[esp+20h] inc esi sub eax,00000003h cmp eax,00000002h mov [esp+3Ch],esi mov esi,[esp+40h] mov [esp+20h],eax ja L00091649 mov edx,[esp+3Ch] mov ebp,[esp+48h] mov ebx,[esp+18h] L000917B2: mov ecx,[esp+14h] sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+14h],ecx jz L000917EA sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000917D9 inc ebp L000917D9: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx mov ecx,[esp+14h] L000917EA: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00091595 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091811: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091849: mov eax,[esp+48h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00091877: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00091890: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L000918D1 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L000918F2 L000918D1: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L000918F2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00091C11 L00091905: cmp ecx,00000666h jbe L00091918 mov ebp,00000666h mov [esp+48h],ebp jmp L0009191E L00091918: mov [esp+48h],ecx mov ebp,ecx L0009191E: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009197F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L0009197B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009197F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009197F L0009197B: mov ecx,[esp+3Ch] L0009197F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L00091B51 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L000919B7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00091BE3 mov edx,[esi+00000A34h] cmp eax,edx jge L00091BE3 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00091BAB cmp ecx,edx jge L00091BAB mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00091BE3 cmp eax,edx jge L00091BE3 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00091B23 mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+3Ch] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc ecx push esi mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L00091B2B L00091B23: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00091B2B: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000919B7 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L00091B55 L00091B51: mov ecx,[esp+24h] L00091B55: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L00091B84 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L00091B7C inc ebp L00091B7C: neg ebp shl ebp,02h add [ebx+08h],ebp L00091B84: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00091905 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091BAB: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091BE3: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00091C11: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00091C20: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+24h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L00091C6A mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L00091C8B L00091C6A: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L00091C8B: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L00091F3B L00091C9E: cmp ecx,00000666h jbe L00091CB1 mov ebp,00000666h mov [esp+48h],ebp jmp L00091CB7 L00091CB1: mov [esp+48h],ecx mov ebp,ecx L00091CB7: mov eax,[edi+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00091D18 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L00091D14 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00091D18 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00091D18 L00091D14: mov ecx,[esp+3Ch] L00091D18: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [edi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+24h],eax jbe L00091EEB mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L00091D50: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea edi,[eax+ebp] imul edi,[esp+18h] add edi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00091F4E mov edx,[esi+00000A34h] cmp eax,edx jge L00091F4E mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00091F86 cmp ecx,edx jge L00091F86 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00091F4E cmp eax,edx jge L00091F4E fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00091EBD mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+3Ch] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc ecx push esi mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ebp,[esp+20h] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+24h] jmp L00091EC5 L00091EBD: mov eax,[esp+24h] mov ebp,[esp+20h] L00091EC5: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L00091D50 mov ebp,[esp+48h] mov edi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+3Ch] jmp L00091EEF L00091EEB: mov ecx,[esp+28h] L00091EEF: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+28h],ecx jz L00091F1E sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L00091F16 inc ebp L00091F16: neg ebp shl ebp,02h add [edi+08h],ebp L00091F1E: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00091C9E L00091F3B: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091F4E: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00091F86: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00091FC0: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L00092001 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L00092022 L00092001: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00092022: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00092341 L00092035: cmp ecx,00000666h jbe L00092048 mov ebp,00000666h mov [esp+48h],ebp jmp L0009204E L00092048: mov [esp+48h],ecx mov ebp,ecx L0009204E: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000920AF push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L000920AB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000920AF push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L000920AF L000920AB: mov ecx,[esp+3Ch] L000920AF: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L00092281 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L000920E7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00092313 mov edx,[esi+00000A34h] cmp eax,edx jge L00092313 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L000922DB cmp ecx,edx jge L000922DB mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00092313 cmp eax,edx jge L00092313 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00092253 mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+3Ch] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc ecx push esi mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L0009225B L00092253: mov eax,[esp+20h] mov ebx,[esp+1Ch] L0009225B: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000920E7 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L00092285 L00092281: mov ecx,[esp+24h] L00092285: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L000922B4 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L000922AC inc ebp L000922AC: neg ebp shl ebp,02h add [ebx+08h],ebp L000922B4: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00092035 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000922DB: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00092313: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00092341: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00092350: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L00092391 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L000923B2 L00092391: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L000923B2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L000926D1 L000923C5: cmp ecx,00000666h jbe L000923D8 mov ebp,00000666h mov [esp+48h],ebp jmp L000923DE L000923D8: mov [esp+48h],ecx mov ebp,ecx L000923DE: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009243F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L0009243B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009243F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009243F L0009243B: mov ecx,[esp+3Ch] L0009243F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L00092611 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00092477: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L000926A3 mov edx,[esi+00000A34h] cmp eax,edx jge L000926A3 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L0009266B cmp ecx,edx jge L0009266B mov ecx,[esp+30h] add eax,ecx test eax,eax jl L000926A3 cmp eax,edx jge L000926A3 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000925E3 mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+3Ch] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc ecx push esi mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L000925EB L000925E3: mov eax,[esp+20h] mov ebx,[esp+1Ch] L000925EB: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00092477 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L00092615 L00092611: mov ecx,[esp+24h] L00092615: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L00092644 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L0009263C inc ebp L0009263C: neg ebp shl ebp,02h add [ebx+08h],ebp L00092644: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000923C5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0009266B: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000926A3: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000926D1: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000926E0: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+24h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0009272A mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L0009274B L0009272A: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L0009274B: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L000929FB L0009275E: cmp ecx,00000666h jbe L00092771 mov ebp,00000666h mov [esp+48h],ebp jmp L00092777 L00092771: mov [esp+48h],ecx mov ebp,ecx L00092777: mov eax,[edi+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000927D8 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L000927D4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000927D8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L000927D8 L000927D4: mov ecx,[esp+3Ch] L000927D8: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [edi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+24h],eax jbe L000929AB mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L00092810: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea edi,[eax+ebp] imul edi,[esp+18h] add edi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00092A0E mov edx,[esi+00000A34h] cmp eax,edx jge L00092A0E mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00092A46 cmp ecx,edx jge L00092A46 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00092A0E cmp eax,edx jge L00092A0E fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0009297D mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+3Ch] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc ecx push esi mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov ebp,[esp+20h] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+24h] jmp L00092985 L0009297D: mov eax,[esp+24h] mov ebp,[esp+20h] L00092985: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L00092810 mov ebp,[esp+48h] mov edi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+3Ch] jmp L000929AF L000929AB: mov ecx,[esp+28h] L000929AF: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+28h],ecx jz L000929DE sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L000929D6 inc ebp L000929D6: neg ebp shl ebp,02h add [edi+08h],ebp L000929DE: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L0009275E L000929FB: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00092A0E: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00092A46: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00092A80: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L00092AC1 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L00092AE2 L00092AC1: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00092AE2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00092E01 L00092AF5: cmp ecx,00000666h jbe L00092B08 mov ebp,00000666h mov [esp+48h],ebp jmp L00092B0E L00092B08: mov [esp+48h],ecx mov ebp,ecx L00092B0E: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00092B6F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L00092B6B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00092B6F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L00092B6F L00092B6B: mov ecx,[esp+3Ch] L00092B6F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L00092D41 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00092BA7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00092DD3 mov edx,[esi+00000A34h] cmp eax,edx jge L00092DD3 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00092D9B cmp ecx,edx jge L00092D9B mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00092DD3 cmp eax,edx jge L00092DD3 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00092D13 mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+3Ch] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx inc ecx push esi mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax inc [esp+3Ch] mov eax,[esp+20h] jmp L00092D1B L00092D13: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00092D1B: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00092BA7 mov ebp,[esp+48h] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+3Ch] jmp L00092D45 L00092D41: mov ecx,[esp+24h] L00092D45: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L00092D74 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+3Ch] shl ebp,1 test edx,edx jnz L00092D6C inc ebp L00092D6C: neg ebp shl ebp,02h add [ebx+08h],ebp L00092D74: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00092AF5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00092D9B: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00092DD3: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00092E01: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00092E10: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+18h],ebx jnc L00092E51 mov edi,[esp+40h] mov cx,[edi] mov [esp+24h],cx add edi,00000002h mov dword ptr [esp+1Ch],00000000h jmp L00092E72 L00092E51: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+24h],00000000h mov [esp+1Ch],eax L00092E72: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+14h],ecx jbe L00093161 L00092E85: cmp ecx,00000666h jbe L00092E98 mov ebp,00000666h mov [esp+48h],ebp jmp L00092E9E L00092E98: mov [esp+48h],ecx mov ebp,ecx L00092E9E: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00092EFF push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L00092EFB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00092EFF push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L00092EFF L00092EFB: mov ecx,[esp+3Ch] L00092EFF: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L0009309C mov ebx,[esp+24h] and ebx,0000FFFFh mov [esp+28h],ebx jmp L00092F3D L00092F39: mov ebx,[esp+28h] L00092F3D: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+28h] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00093133 mov edx,[esi+00000A34h] cmp eax,edx jge L00093133 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L000930FB cmp ecx,edx jge L000930FB mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00093133 cmp eax,edx jge L00093133 mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+3Ch] push ebp push ebx inc eax push esi mov [esp+48h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov edi,[esp+3Ch] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax mov eax,[esp+20h] inc edi sub eax,00000003h cmp eax,00000002h mov [esp+3Ch],edi mov edi,[esp+40h] mov [esp+20h],eax ja L00092F39 mov edx,[esp+3Ch] mov ebp,[esp+48h] mov ebx,[esp+18h] L0009309C: mov ecx,[esp+14h] sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+14h],ecx jz L000930D4 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L000930C3 inc ebp L000930C3: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx mov ecx,[esp+14h] L000930D4: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00092E85 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000930FB: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00093133: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00093161: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00093170: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+28h],eax mov [esp+24h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L000931BA mov ebx,[esp+40h] mov cx,[ebx] mov [esp+28h],cx add ebx,00000002h mov dword ptr [esp+20h],00000000h jmp L000931DB L000931BA: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+20h],eax L000931DB: mov eax,[esp+48h] lea edx,[eax+eax*2] test edx,edx mov [esp+14h],edx jbe L00093459 L000931EE: cmp edx,00000666h jbe L00093201 mov ebp,00000666h mov [esp+48h],ebp jmp L00093207 L00093201: mov [esp+48h],edx mov ebp,edx L00093207: mov eax,[edi+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00093268 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+3Ch],eax jz L00093264 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00093268 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00093268 L00093264: mov ecx,[esp+3Ch] L00093268: mov edx,[esp+40h] add ecx,00000004h lea eax,[eax+edx*4] mov [edi+08h],eax mov [esp+34h],ecx mov [esp+10h],ecx xor ecx,ecx cmp ebp,00000002h mov eax,ebp mov [esp+3Ch],ecx mov [esp+24h],eax jbe L00093404 mov ebp,[esp+28h] and ebp,0000FFFFh mov [esp+2Ch],ebp jmp L000932A6 L000932A2: mov ebp,[esp+2Ch] L000932A6: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea edi,[eax+ebp] imul edi,[esp+1Ch] add edi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+1Ch] add ebx,[esp+44h] mov ebp,[esp+2Ch] add ebp,edx imul ebp,[esp+1Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+20h] add eax,edx test eax,eax jl L0009346C mov edx,[esi+00000A34h] cmp eax,edx jge L0009346C mov eax,[esp+20h] add ecx,eax test ecx,ecx jl L000934A4 cmp ecx,edx jge L000934A4 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L0009346C cmp eax,edx jge L0009346C mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+3Ch] push ebp push ebx inc eax push esi mov [esp+48h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov edi,[esp+3Ch] shr edx,02h lea eax,[ebx+edx*4] mov ebx,[esp+40h] mov [esp+10h],eax mov eax,[esp+24h] sub eax,00000003h inc edi cmp eax,00000002h mov [esp+3Ch],edi mov [esp+24h],eax ja L000932A2 mov ebp,[esp+48h] mov ecx,edi mov edi,[esp+18h] L00093404: mov edx,[esp+14h] sub eax,ebp add edx,eax cmp ecx,ebp mov eax,[esi+000005D4h] mov [esp+14h],edx jz L0009343C sub ebp,ecx mov edx,eax shr edx,02h imul ebp,edx shl ebp,1 test ecx,ecx jnz L0009342B inc ebp L0009342B: mov edx,[edi+08h] neg ebp shl ebp,02h add edx,ebp mov [edi+08h],edx mov edx,[esp+14h] L0009343C: imul eax,ecx mov ecx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test edx,edx mov [ecx-04h],eax ja L000931EE L00093459: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0009346C: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000934A4: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000934E0: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+18h],ebx jnc L00093521 mov edi,[esp+40h] mov cx,[edi] mov [esp+24h],cx add edi,00000002h mov dword ptr [esp+1Ch],00000000h jmp L00093542 L00093521: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+24h],00000000h mov [esp+1Ch],eax L00093542: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+14h],ecx jbe L00093831 L00093555: cmp ecx,00000666h jbe L00093568 mov ebp,00000666h mov [esp+48h],ebp jmp L0009356E L00093568: mov [esp+48h],ecx mov ebp,ecx L0009356E: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000935CF push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+3Ch],eax jz L000935CB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000935CF push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L000935CF L000935CB: mov ecx,[esp+3Ch] L000935CF: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+10h],ecx mov [esp+3Ch],edx mov [esp+20h],eax jbe L0009376C mov ebx,[esp+24h] and ebx,0000FFFFh mov [esp+28h],ebx jmp L0009360D L00093609: mov ebx,[esp+28h] L0009360D: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+28h] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00093803 mov edx,[esi+00000A34h] cmp eax,edx jge L00093803 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L000937CB cmp ecx,edx jge L000937CB mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00093803 cmp eax,edx jge L00093803 mov edx,[esp+10h] push edi push edx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+10h] shr eax,02h lea eax,[ecx+eax*4] push ebx push eax push esi mov [esp+3Ch],eax call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+30h] mov ecx,[esp+3Ch] shr edx,02h lea eax,[eax+edx*4] push ebx push eax inc ecx push esi mov [esp+1Ch],eax mov [esp+48h],ecx call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+10h] shr ecx,02h push ebp lea ebx,[edx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+3Ch] push ebp push ebx inc eax push esi mov [esp+48h],eax call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h push edi lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov edi,[esp+3Ch] shr edx,02h lea eax,[ebx+edx*4] mov [esp+10h],eax mov eax,[esp+20h] inc edi sub eax,00000003h cmp eax,00000002h mov [esp+3Ch],edi mov edi,[esp+40h] mov [esp+20h],eax ja L00093609 mov edx,[esp+3Ch] mov ebp,[esp+48h] mov ebx,[esp+18h] L0009376C: mov ecx,[esp+14h] sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+14h],ecx jz L000937A4 sub ebp,edx mov ecx,eax shr ecx,02h imul ebp,ecx shl ebp,1 test edx,edx jnz L00093793 inc ebp L00093793: mov ecx,[ebx+08h] neg ebp shl ebp,02h add ecx,ebp mov [ebx+08h],ecx mov ecx,[esp+14h] L000937A4: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00093555 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000937CB: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+18h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00093803: mov eax,[esp+48h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00093831: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00093840: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L00093881 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L000938A2 L00093881: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L000938A2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00093CFC L000938B5: cmp ecx,00000666h jbe L000938C8 mov ebp,00000666h mov [esp+3Ch],ebp jmp L000938CE L000938C8: mov [esp+3Ch],ecx mov ebp,ecx L000938CE: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009392F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L0009392B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009392F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009392F L0009392B: mov ecx,[esp+48h] L0009392F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L00093C3C mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00093967: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00093CCE mov edx,[edi+00000A34h] cmp eax,edx jge L00093CCE mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00093C96 cmp ecx,edx jge L00093C96 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00093CCE cmp eax,edx jge L00093CCE fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00093C0E mov edx,[esp+48h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov ebx,[esp+48h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h add eax,00000003h lea edx,[ebx+ecx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+20h] mov [esp+48h],edx jmp L00093C16 L00093C0E: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00093C16: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00093967 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L00093C40 L00093C3C: mov ecx,[esp+24h] L00093C40: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L00093C6F sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00093C67 inc ebp L00093C67: neg ebp shl ebp,02h add [ebx+08h],ebp L00093C6F: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000938B5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00093C96: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00093CCE: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00093CFC: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00093D10: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L00093D5A mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L00093D7B L00093D5A: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L00093D7B: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L00094166 L00093D8E: cmp ecx,00000666h jbe L00093DA1 mov ebp,00000666h mov [esp+3Ch],ebp jmp L00093DA7 L00093DA1: mov [esp+3Ch],ecx mov ebp,ecx L00093DA7: mov eax,[esi+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L00093E08 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+48h],eax jz L00093E04 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L00093E08 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L00093E08 L00093E04: mov ecx,[esp+48h] L00093E08: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [esi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+24h],eax jbe L00094116 mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L00093E40: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea esi,[eax+ebp] imul esi,[esp+18h] add esi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00094179 mov edx,[edi+00000A34h] cmp eax,edx jge L00094179 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L000941B1 cmp ecx,edx jge L000941B1 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00094179 cmp eax,edx jge L00094179 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000940E8 mov edx,[esp+48h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov ebx,[esp+48h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+48h],eax fild dword ptr [esp+48h] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h add eax,00000003h lea edx,[ebx+ecx*4] mov [esp+10h],eax mov eax,[esp+24h] mov [esp+48h],edx jmp L000940F0 L000940E8: mov eax,[esp+24h] mov ebp,[esp+20h] L000940F0: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L00093E40 mov ebp,[esp+3Ch] mov esi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+10h] jmp L0009411A L00094116: mov ecx,[esp+28h] L0009411A: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+28h],ecx jz L00094149 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00094141 inc ebp L00094141: neg ebp shl ebp,02h add [esi+08h],ebp L00094149: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00093D8E L00094166: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00094179: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000941B1: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000941F0: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L00094231 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L00094252 L00094231: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00094252: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L000946AC L00094265: cmp ecx,00000666h jbe L00094278 mov ebp,00000666h mov [esp+3Ch],ebp jmp L0009427E L00094278: mov [esp+3Ch],ecx mov ebp,ecx L0009427E: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000942DF push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L000942DB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000942DF push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L000942DF L000942DB: mov ecx,[esp+48h] L000942DF: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L000945EC mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00094317: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L0009467E mov edx,[edi+00000A34h] cmp eax,edx jge L0009467E mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00094646 cmp ecx,edx jge L00094646 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L0009467E cmp eax,edx jge L0009467E fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L000945BE mov edx,[esp+48h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov ebx,[esp+48h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h add eax,00000003h lea edx,[ebx+ecx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+20h] mov [esp+48h],edx jmp L000945C6 L000945BE: mov eax,[esp+20h] mov ebx,[esp+1Ch] L000945C6: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00094317 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L000945F0 L000945EC: mov ecx,[esp+24h] L000945F0: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L0009461F sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00094617 inc ebp L00094617: neg ebp shl ebp,02h add [ebx+08h],ebp L0009461F: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00094265 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00094646: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0009467E: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L000946AC: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000946C0: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L00094701 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L00094722 L00094701: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00094722: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00094B7C L00094735: cmp ecx,00000666h jbe L00094748 mov ebp,00000666h mov [esp+3Ch],ebp jmp L0009474E L00094748: mov [esp+3Ch],ecx mov ebp,ecx L0009474E: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000947AF push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L000947AB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L000947AF push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L000947AF L000947AB: mov ecx,[esp+48h] L000947AF: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L00094ABC mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L000947E7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00094B4E mov edx,[edi+00000A34h] cmp eax,edx jge L00094B4E mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00094B16 cmp ecx,edx jge L00094B16 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00094B4E cmp eax,edx jge L00094B4E fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00094A8E mov edx,[esp+48h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov ebx,[esp+48h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h add eax,00000003h lea edx,[ebx+ecx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+20h] mov [esp+48h],edx jmp L00094A96 L00094A8E: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00094A96: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L000947E7 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L00094AC0 L00094ABC: mov ecx,[esp+24h] L00094AC0: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L00094AEF sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00094AE7 inc ebp L00094AE7: neg ebp shl ebp,02h add [ebx+08h],ebp L00094AEF: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00094735 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00094B16: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00094B4E: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00094B7C: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00094B90: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov esi,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push esi push edi mov [esp+24h],eax mov [esp+20h],esi call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L00094BDA mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L00094BFB L00094BDA: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L00094BFB: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L00094FE6 L00094C0E: cmp ecx,00000666h jbe L00094C21 mov ebp,00000666h mov [esp+3Ch],ebp jmp L00094C27 L00094C21: mov [esp+3Ch],ecx mov ebp,ecx L00094C27: mov eax,[esi+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L00094C88 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+48h],eax jz L00094C84 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[esi+0Ch] jc L00094C88 push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L00094C88 L00094C84: mov ecx,[esp+48h] L00094C88: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [esi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+24h],eax jbe L00094F96 mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L00094CC0: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea esi,[eax+ebp] imul esi,[esp+18h] add esi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00094FF9 mov edx,[edi+00000A34h] cmp eax,edx jge L00094FF9 mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00095031 cmp ecx,edx jge L00095031 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00094FF9 cmp eax,edx jge L00094FF9 fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00094F68 mov edx,[esp+48h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov ebx,[esp+48h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+48h],eax fild dword ptr [esp+48h] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h add eax,00000003h lea edx,[ebx+ecx*4] mov [esp+10h],eax mov eax,[esp+24h] mov [esp+48h],edx jmp L00094F70 L00094F68: mov eax,[esp+24h] mov ebp,[esp+20h] L00094F70: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L00094CC0 mov ebp,[esp+3Ch] mov esi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+10h] jmp L00094F9A L00094F96: mov ecx,[esp+28h] L00094F9A: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+28h],ecx jz L00094FC9 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00094FC1 inc ebp L00094FC1: neg ebp shl ebp,02h add [esi+08h],ebp L00094FC9: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00094C0E L00094FE6: push 00000000h push esi push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00094FF9: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00095031: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00095070: sub esp,00000028h push ebx push ebp push esi push edi mov edi,[esp+3Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+2Ch],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+14h],ebx jnc L000950B1 mov esi,[esp+40h] mov cx,[esi] mov [esp+28h],cx add esi,00000002h mov dword ptr [esp+18h],00000000h jmp L000950D2 L000950B1: mov eax,[esp+44h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L000950D2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L0009552C L000950E5: cmp ecx,00000666h jbe L000950F8 mov ebp,00000666h mov [esp+3Ch],ebp jmp L000950FE L000950F8: mov [esp+3Ch],ecx mov ebp,ecx L000950FE: mov eax,[ebx+08h] mov edx,ebp imul edx,[edi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009515F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L0009515B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009515F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009515F L0009515B: mov ecx,[esp+48h] L0009515F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L0009546C mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00095197: mov ebp,[esp+2Ch] xor eax,eax mov ax,[esi] xor ecx,ecx mov cx,[esi+02h] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+40h],esi lea esi,[ebx+eax] imul esi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add esi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L000954FE mov edx,[edi+00000A34h] cmp eax,edx jge L000954FE mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L000954C6 cmp ecx,edx jge L000954C6 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L000954FE cmp eax,edx jge L000954FE fld dword ptr [ebp+04h] fsub dword ptr [esi+04h] fld dword ptr [ebx] fsub dword ptr [esi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [esi+04h] fld dword ptr [ebp+00h] fsub dword ptr [esi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L0009543E mov edx,[esp+48h] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fadd dword ptr [L000B2484] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov edx,[esp+48h] fld dword ptr [edx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push esi push ebx fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push edi mov [esp+58h],eax call SUB_L0003EC00 mov ebx,[esp+48h] fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] mov eax,[esp+10h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h add eax,00000003h lea edx,[ebx+ecx*4] mov ebx,[esp+1Ch] mov [esp+10h],eax mov eax,[esp+20h] mov [esp+48h],edx jmp L00095446 L0009543E: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00095446: mov esi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00095197 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L00095470 L0009546C: mov ecx,[esp+24h] L00095470: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[edi+000005D4h] mov [esp+24h],ecx jz L0009549F sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00095497 inc ebp L00095497: neg ebp shl ebp,02h add [ebx+08h],ebp L0009549F: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000950E5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000954C6: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000954FE: mov eax,[esp+3Ch] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L0009552C: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00095540: sub esp,0000002Ch push ebx push ebp push esi push edi mov edi,[esp+40h] mov eax,[edi+000005D0h] mov ebp,[edi+0000017Ch] mov [esp+14h],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+10h],ebp jnc L00095581 mov esi,[esp+44h] mov cx,[esi] mov [esp+20h],cx add esi,00000002h mov dword ptr [esp+28h],00000000h jmp L000955A2 L00095581: mov eax,[esp+48h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+44h] mov dword ptr [esp+20h],00000000h mov [esp+28h],eax L000955A2: mov eax,[esp+4Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+4Ch],eax jbe L00095994 jmp L000955BB L000955B7: mov eax,[esp+4Ch] L000955BB: cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L000955CE mov [esp+40h],eax L000955CE: mov ebx,[esp+40h] imul ebx,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+44h],ebx jc L0009562B push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00095627 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0009562B push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0009562B L00095627: mov ebx,[esp+44h] L0009562B: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+38h],eax mov ebx,eax mov eax,[esp+40h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov ecx,eax mov [esp+1Ch],edx mov [esp+18h],ecx jbe L000958CE mov ebp,[esp+20h] and ebp,0000FFFFh mov [esp+24h],ebp jmp L00095667 L00095663: mov ebp,[esp+24h] L00095667: xor ecx,ecx mov cx,[esi+02h] xor eax,eax mov ax,[esi] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+44h],esi mov [esp+2Ch],ecx lea esi,[eax+ebp] imul esi,[esp+14h] add ebp,ecx imul ebp,[esp+14h] mov ecx,[esp+48h] add esi,[esp+48h] add ebp,ecx mov ecx,[esp+24h] add ecx,edx imul ecx,[esp+14h] mov [esp+30h],edx add ecx,[esp+48h] mov [esp+34h],ecx mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00095966 mov edx,[edi+00000A34h] cmp eax,edx jge L00095966 mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L0009592E cmp eax,edx jge L0009592E mov eax,[esp+30h] add eax,ecx test eax,eax jl L00095966 cmp eax,edx jge L00095966 push esi push esi push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+38h] push ebp push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov esi,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] add esi,00000003h mov [esp+1Ch],esi mov esi,[esp+44h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+18h] sub eax,00000003h cmp eax,00000002h mov [esp+18h],eax ja L00095663 mov edx,[esp+1Ch] mov ebp,[esp+10h] mov ecx,eax mov eax,[esp+40h] L000958CE: mov ebx,[esp+4Ch] sub ecx,eax add ebx,ecx cmp edx,eax mov ecx,[edi+000005D4h] mov [esp+4Ch],ebx jz L00095902 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L000958F5 inc eax L000958F5: mov ebx,[ebp+08h] neg eax shl eax,02h add ebx,eax mov [ebp+08h],ebx L00095902: mov eax,[esp+4Ch] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L000955B7 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0009592E: mov eax,[esp+40h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+10h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00095966: mov eax,[esp+40h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00095994: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L000959A0: sub esp,0000002Ch push ebx push ebp push esi push edi mov edi,[esp+40h] mov ebp,[edi+0000017Ch] mov eax,[edi+000005D0h] push 00000001h push ebp push edi mov [esp+20h],eax mov [esp+1Ch],ebp call SUB_L000ABBE0 cmp dword ptr [edi+00000138h],00000004h jnc L000959EA mov esi,[esp+44h] mov cx,[esi] mov [esp+20h],cx add esi,00000002h mov dword ptr [esp+28h],00000000h jmp L00095A0B L000959EA: mov eax,[esp+48h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+44h] mov dword ptr [esp+20h],00000000h mov [esp+28h],eax L00095A0B: mov eax,[esp+4Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+4Ch],eax jbe L00095D8D jmp L00095A24 L00095A20: mov eax,[esp+4Ch] L00095A24: cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00095A37 mov [esp+40h],eax L00095A37: mov ebx,[esp+40h] imul ebx,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+44h],ebx jc L00095A94 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00095A90 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00095A94 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00095A94 L00095A90: mov ebx,[esp+44h] L00095A94: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+38h],eax mov ebx,eax mov eax,[esp+40h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov ecx,eax mov [esp+1Ch],edx mov [esp+18h],ecx jbe L00095D37 mov ebp,[esp+20h] and ebp,0000FFFFh mov [esp+24h],ebp jmp L00095AD0 L00095ACC: mov ebp,[esp+24h] L00095AD0: xor ecx,ecx mov cx,[esi+02h] xor eax,eax mov ax,[esi] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+44h],esi mov [esp+2Ch],ecx lea esi,[eax+ebp] imul esi,[esp+14h] add ebp,ecx imul ebp,[esp+14h] mov ecx,[esp+48h] add esi,[esp+48h] add ebp,ecx mov ecx,[esp+24h] add ecx,edx imul ecx,[esp+14h] mov [esp+30h],edx add ecx,[esp+48h] mov [esp+34h],ecx mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00095DA0 mov edx,[edi+00000A34h] cmp eax,edx jge L00095DA0 mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L00095DD8 cmp eax,edx jge L00095DD8 mov eax,[esp+30h] add eax,ecx test eax,eax jl L00095DA0 cmp eax,edx jge L00095DA0 push esi push esi push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+38h] push ebp push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov esi,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] add esi,00000003h mov [esp+1Ch],esi mov esi,[esp+44h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+18h] sub eax,00000003h cmp eax,00000002h mov [esp+18h],eax ja L00095ACC mov edx,[esp+1Ch] mov ebp,[esp+10h] mov ecx,eax mov eax,[esp+40h] L00095D37: mov ebx,[esp+4Ch] sub ecx,eax add ebx,ecx cmp edx,eax mov ecx,[edi+000005D4h] mov [esp+4Ch],ebx jz L00095D6B sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L00095D5E inc eax L00095D5E: mov ebx,[ebp+08h] neg eax shl eax,02h add ebx,eax mov [ebp+08h],ebx L00095D6B: mov eax,[esp+4Ch] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00095A20 L00095D8D: push 00000000h push ebp push edi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00095DA0: mov eax,[esp+40h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00095DD8: mov eax,[esp+40h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+10h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00095E10: sub esp,0000002Ch push ebx push ebp push esi push edi mov edi,[esp+40h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov [esp+14h],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+10h],ebp jnc L00095E51 mov esi,[esp+44h] mov cx,[esi] mov [esp+20h],cx add esi,00000002h mov dword ptr [esp+28h],00000000h jmp L00095E72 L00095E51: mov eax,[esp+48h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov esi,[esp+44h] mov dword ptr [esp+20h],00000000h mov [esp+28h],eax L00095E72: mov eax,[esp+4Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+4Ch],eax jbe L00096264 jmp L00095E8B L00095E87: mov eax,[esp+4Ch] L00095E8B: cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00095E9E mov [esp+40h],eax L00095E9E: mov ebx,[esp+40h] imul ebx,[edi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,ecx mov [esp+44h],ebx jc L00095EFB push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00095EF7 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov ebx,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00095EFB push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00095EFB L00095EF7: mov ebx,[esp+44h] L00095EFB: lea edx,[eax+ebx*4] add eax,00000004h mov [esp+38h],eax mov ebx,eax mov eax,[esp+40h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov ecx,eax mov [esp+1Ch],edx mov [esp+18h],ecx jbe L0009619E mov ebp,[esp+20h] and ebp,0000FFFFh mov [esp+24h],ebp jmp L00095F37 L00095F33: mov ebp,[esp+24h] L00095F37: xor ecx,ecx mov cx,[esi+02h] xor eax,eax mov ax,[esi] xor edx,edx mov dx,[esi+04h] add esi,00000006h mov [esp+44h],esi mov [esp+2Ch],ecx lea esi,[eax+ebp] imul esi,[esp+14h] add ebp,ecx imul ebp,[esp+14h] mov ecx,[esp+48h] add esi,[esp+48h] add ebp,ecx mov ecx,[esp+24h] add ecx,edx imul ecx,[esp+14h] mov [esp+30h],edx add ecx,[esp+48h] mov [esp+34h],ecx mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00096236 mov edx,[edi+00000A34h] cmp eax,edx jge L00096236 mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L000961FE cmp eax,edx jge L000961FE mov eax,[esp+30h] add eax,ecx test eax,eax jl L00096236 cmp eax,edx jge L00096236 push esi push esi push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push esi fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push ebp fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push esi fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov ecx,[edi+000005D4h] shr ecx,02h lea ebx,[ebx+ecx*4] mov ebp,[esp+38h] push ebp push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push esi push ebp fsub dword ptr [L000B2488] fstp dword ptr [ebx+04h] mov edx,[edi+000005D4h] shr edx,02h lea ebx,[ebx+edx*4] push ebx push edi call SUB_L0003EC00 fld dword ptr [ebx] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [ebx] fld dword ptr [ebx+04h] call SUB_L000AF4EC mov esi,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] add esi,00000003h mov [esp+1Ch],esi mov esi,[esp+44h] fadd dword ptr [L000B2484] fstp dword ptr [ebx+04h] mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+18h] sub eax,00000003h cmp eax,00000002h mov [esp+18h],eax ja L00095F33 mov edx,[esp+1Ch] mov ebp,[esp+10h] mov ecx,eax mov eax,[esp+40h] L0009619E: mov ebx,[esp+4Ch] sub ecx,eax add ebx,ecx cmp edx,eax mov ecx,[edi+000005D4h] mov [esp+4Ch],ebx jz L000961D2 sub eax,edx mov ebx,ecx shr ebx,02h imul eax,ebx shl eax,1 test edx,edx jnz L000961C5 inc eax L000961C5: mov ebx,[ebp+08h] neg eax shl eax,02h add ebx,eax mov [ebp+08h],ebx L000961D2: mov eax,[esp+4Ch] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00095E87 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L000961FE: mov eax,[esp+40h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+10h] mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00096236: mov eax,[esp+40h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L00096264: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L00096270: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L000962B1 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L000962D2 L000962B1: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L000962D2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00096700 L000962E5: cmp ecx,00000666h jbe L000962F8 mov ebp,00000666h mov [esp+3Ch],ebp jmp L000962FE L000962F8: mov [esp+3Ch],ecx mov ebp,ecx L000962FE: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009635F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L0009635B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009635F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009635F L0009635B: mov ecx,[esp+48h] L0009635F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L00096640 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00096397: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L000966D2 mov edx,[esi+00000A34h] cmp eax,edx jge L000966D2 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L0009669A cmp ecx,edx jge L0009669A mov ecx,[esp+30h] add eax,ecx test eax,eax jl L000966D2 cmp eax,edx jge L000966D2 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00096612 mov edx,[esp+48h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+54h],eax call SUB_L00040370 mov edi,[esp+48h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] add dword ptr [esp+10h],00000003h mov eax,[esp+20h] mov [esp+48h],ecx jmp L0009661A L00096612: mov eax,[esp+20h] mov ebx,[esp+1Ch] L0009661A: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00096397 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L00096644 L00096640: mov ecx,[esp+24h] L00096644: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L00096673 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L0009666B inc ebp L0009666B: neg ebp shl ebp,02h add [ebx+08h],ebp L00096673: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000962E5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0009669A: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000966D2: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00096700: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00096710: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+24h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0009675A mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L0009677B L0009675A: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L0009677B: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L00096B3A L0009678E: cmp ecx,00000666h jbe L000967A1 mov ebp,00000666h mov [esp+3Ch],ebp jmp L000967A7 L000967A1: mov [esp+3Ch],ecx mov ebp,ecx L000967A7: mov eax,[edi+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00096808 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+48h],eax jz L00096804 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L00096808 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L00096808 L00096804: mov ecx,[esp+48h] L00096808: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [edi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+24h],eax jbe L00096AEA mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L00096840: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea edi,[eax+ebp] imul edi,[esp+18h] add edi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L00096B4D mov edx,[esi+00000A34h] cmp eax,edx jge L00096B4D mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00096B85 cmp ecx,edx jge L00096B85 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00096B4D cmp eax,edx jge L00096B4D fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00096ABC mov edx,[esp+48h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+54h],eax call SUB_L00040370 mov edi,[esp+48h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] add dword ptr [esp+10h],00000003h mov eax,[esp+24h] mov [esp+48h],ecx jmp L00096AC4 L00096ABC: mov eax,[esp+24h] mov ebp,[esp+20h] L00096AC4: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L00096840 mov ebp,[esp+3Ch] mov edi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+10h] jmp L00096AEE L00096AEA: mov ecx,[esp+28h] L00096AEE: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+28h],ecx jz L00096B1D sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00096B15 inc ebp L00096B15: neg ebp shl ebp,02h add [edi+08h],ebp L00096B1D: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L0009678E L00096B3A: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00096B4D: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00096B85: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00096BC0: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L00096C01 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L00096C22 L00096C01: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00096C22: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00097050 L00096C35: cmp ecx,00000666h jbe L00096C48 mov ebp,00000666h mov [esp+3Ch],ebp jmp L00096C4E L00096C48: mov [esp+3Ch],ecx mov ebp,ecx L00096C4E: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00096CAF push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L00096CAB mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00096CAF push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L00096CAF L00096CAB: mov ecx,[esp+48h] L00096CAF: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L00096F90 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00096CE7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00097022 mov edx,[esi+00000A34h] cmp eax,edx jge L00097022 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00096FEA cmp ecx,edx jge L00096FEA mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00097022 cmp eax,edx jge L00097022 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jnz L00096F62 mov edx,[esp+48h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+54h],eax call SUB_L00040370 mov edi,[esp+48h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] add dword ptr [esp+10h],00000003h mov eax,[esp+20h] mov [esp+48h],ecx jmp L00096F6A L00096F62: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00096F6A: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00096CE7 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L00096F94 L00096F90: mov ecx,[esp+24h] L00096F94: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L00096FC3 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00096FBB inc ebp L00096FBB: neg ebp shl ebp,02h add [ebx+08h],ebp L00096FC3: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00096C35 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00096FEA: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00097022: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00097050: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00097060: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L000970A1 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L000970C2 L000970A1: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L000970C2: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L000974F0 L000970D5: cmp ecx,00000666h jbe L000970E8 mov ebp,00000666h mov [esp+3Ch],ebp jmp L000970EE L000970E8: mov [esp+3Ch],ecx mov ebp,ecx L000970EE: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009714F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L0009714B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L0009714F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L0009714F L0009714B: mov ecx,[esp+48h] L0009714F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L00097430 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00097187: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L000974C2 mov edx,[esi+00000A34h] cmp eax,edx jge L000974C2 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L0009748A cmp ecx,edx jge L0009748A mov ecx,[esp+30h] add eax,ecx test eax,eax jl L000974C2 cmp eax,edx jge L000974C2 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00097402 mov edx,[esp+48h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+54h],eax call SUB_L00040370 mov edi,[esp+48h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] add dword ptr [esp+10h],00000003h mov eax,[esp+20h] mov [esp+48h],ecx jmp L0009740A L00097402: mov eax,[esp+20h] mov ebx,[esp+1Ch] L0009740A: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00097187 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L00097434 L00097430: mov ecx,[esp+24h] L00097434: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L00097463 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L0009745B inc ebp L0009745B: neg ebp shl ebp,02h add [ebx+08h],ebp L00097463: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L000970D5 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0009748A: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L000974C2: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L000974F0: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00097500: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] push edi mov edi,[esi+0000017Ch] push 00000001h push edi push esi mov [esp+24h],eax mov [esp+20h],edi call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L0009754A mov ebx,[esp+40h] mov cx,[ebx] mov [esp+2Ch],cx add ebx,00000002h mov dword ptr [esp+1Ch],00000000h jmp L0009756B L0009754A: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+40h] mov dword ptr [esp+2Ch],00000000h mov [esp+1Ch],eax L0009756B: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+28h],ecx jbe L0009792A L0009757E: cmp ecx,00000666h jbe L00097591 mov ebp,00000666h mov [esp+3Ch],ebp jmp L00097597 L00097591: mov [esp+3Ch],ecx mov ebp,ecx L00097597: mov eax,[edi+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000975F8 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+48h],eax jz L000975F4 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[edi+0Ch] jc L000975F8 push edi call [edi+10h] mov eax,[edi+08h] mov ecx,eax jmp L000975F8 L000975F4: mov ecx,[esp+48h] L000975F8: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [edi+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+24h],eax jbe L000978DA mov ebp,[esp+2Ch] and ebp,0000FFFFh mov [esp+20h],ebp L00097630: xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] xor ecx,ecx mov cx,[ebx+02h] add ebx,00000006h mov [esp+40h],ebx mov ebx,[esp+44h] lea edi,[eax+ebp] imul edi,[esp+18h] add edi,ebx lea ebx,[ecx+ebp] imul ebx,[esp+18h] add ebx,[esp+44h] mov ebp,[esp+20h] add ebp,edx imul ebp,[esp+18h] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+1Ch] add eax,edx test eax,eax jl L0009793D mov edx,[esi+00000A34h] cmp eax,edx jge L0009793D mov eax,[esp+1Ch] add ecx,eax test ecx,ecx jl L00097975 cmp ecx,edx jge L00097975 mov ecx,[esp+30h] add eax,ecx test eax,eax jl L0009793D cmp eax,edx jge L0009793D fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L000978AC mov edx,[esp+48h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+54h],eax call SUB_L00040370 mov edi,[esp+48h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebp,[esp+20h] mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] add dword ptr [esp+10h],00000003h mov eax,[esp+24h] mov [esp+48h],ecx jmp L000978B4 L000978AC: mov eax,[esp+24h] mov ebp,[esp+20h] L000978B4: mov ebx,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+24h],eax ja L00097630 mov ebp,[esp+3Ch] mov edi,[esp+14h] mov ecx,[esp+28h] mov edx,[esp+10h] jmp L000978DE L000978DA: mov ecx,[esp+28h] L000978DE: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+28h],ecx jz L0009790D sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00097905 inc ebp L00097905: neg ebp shl ebp,02h add [edi+08h],ebp L0009790D: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L0009757E L0009792A: push 00000000h push edi push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L0009793D: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00097975: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000979B0: sub esp,00000028h push ebx push ebp push esi mov esi,[esp+38h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+28h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+14h],ebx jnc L000979F1 mov edi,[esp+40h] mov cx,[edi] mov [esp+28h],cx add edi,00000002h mov dword ptr [esp+18h],00000000h jmp L00097A12 L000979F1: mov eax,[esp+44h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov edi,[esp+40h] mov dword ptr [esp+28h],00000000h mov [esp+18h],eax L00097A12: mov eax,[esp+48h] lea ecx,[eax+eax*2] test ecx,ecx mov [esp+24h],ecx jbe L00097E40 L00097A25: cmp ecx,00000666h jbe L00097A38 mov ebp,00000666h mov [esp+3Ch],ebp jmp L00097A3E L00097A38: mov [esp+3Ch],ecx mov ebp,ecx L00097A3E: mov eax,[ebx+08h] mov edx,ebp imul edx,[esi+000005D4h] shl edx,1 shr edx,02h inc edx mov ecx,eax mov [esp+40h],edx lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00097A9F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+48h],eax jz L00097A9B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+40h] mov ecx,eax lea edx,[ecx+edx*4] cmp edx,[ebx+0Ch] jc L00097A9F push ebx call [ebx+10h] mov eax,[ebx+08h] mov ecx,eax jmp L00097A9F L00097A9B: mov ecx,[esp+48h] L00097A9F: mov edx,[esp+40h] lea eax,[eax+edx*4] add ecx,00000004h mov [ebx+08h],eax xor edx,edx cmp ebp,00000002h mov eax,ebp mov [esp+34h],ecx mov [esp+48h],ecx mov [esp+10h],edx mov [esp+20h],eax jbe L00097D80 mov ebx,[esp+28h] and ebx,0000FFFFh mov [esp+1Ch],ebx L00097AD7: mov ebp,[esp+2Ch] xor eax,eax mov ax,[edi] xor ecx,ecx mov cx,[edi+02h] xor edx,edx mov dx,[edi+04h] add edi,00000006h mov [esp+40h],edi lea edi,[ebx+eax] imul edi,ebp add ebx,ecx imul ebx,ebp mov ebp,[esp+44h] add edi,[esp+44h] add ebx,ebp mov ebp,[esp+1Ch] add ebp,edx imul ebp,[esp+2Ch] mov [esp+30h],edx add ebp,[esp+44h] mov edx,[esp+18h] add eax,edx test eax,eax jl L00097E12 mov edx,[esi+00000A34h] cmp eax,edx jge L00097E12 mov eax,[esp+18h] add ecx,eax test ecx,ecx jl L00097DDA cmp ecx,edx jge L00097DDA mov ecx,[esp+30h] add eax,ecx test eax,eax jl L00097E12 cmp eax,edx jge L00097E12 fld dword ptr [ebp+04h] fsub dword ptr [edi+04h] fld dword ptr [ebx] fsub dword ptr [edi] fmulp ST(1),ST fld dword ptr [ebx+04h] fsub dword ptr [edi+04h] fld dword ptr [ebp+00h] fsub dword ptr [edi] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jz L00097D52 mov edx,[esp+48h] push edi push edx push esi call SUB_L00040370 mov eax,[esp+48h] fld dword ptr [eax] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [eax] fld dword ptr [eax+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] mov eax,[esp+48h] push edi fsub dword ptr [L000B2488] fstp dword ptr [eax+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea eax,[eax+ecx*4] push eax push esi mov [esp+54h],eax call SUB_L00040370 mov edi,[esp+48h] fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h push ebp lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov [esp+48h],eax fild dword ptr [esp+48h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] add dword ptr [esp+10h],00000003h mov eax,[esp+20h] mov [esp+48h],ecx jmp L00097D5A L00097D52: mov eax,[esp+20h] mov ebx,[esp+1Ch] L00097D5A: mov edi,[esp+40h] sub eax,00000003h cmp eax,00000002h mov [esp+20h],eax ja L00097AD7 mov ebp,[esp+3Ch] mov ebx,[esp+14h] mov ecx,[esp+24h] mov edx,[esp+10h] jmp L00097D84 L00097D80: mov ecx,[esp+24h] L00097D84: sub eax,ebp add ecx,eax cmp edx,ebp mov eax,[esi+000005D4h] mov [esp+24h],ecx jz L00097DB3 sub ebp,edx mov edx,eax shr edx,02h imul ebp,edx mov edx,[esp+10h] shl ebp,1 test edx,edx jnz L00097DAB inc ebp L00097DAB: neg ebp shl ebp,02h add [ebx+08h],ebp L00097DB3: imul eax,edx mov edx,[esp+34h] shl eax,1 shr eax,02h dec eax or eax,7F140000h test ecx,ecx mov [edx-04h],eax ja L00097A25 pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00097DDA: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+14h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ L00097E12: mov eax,[esp+3Ch] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+14h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00097E40: pop edi pop esi pop ebp pop ebx add esp,00000028h retn 0010h ;------------------------------------------------------------------------------ Align 8 L00097E50: sub esp,0000002Ch push ebx push ebp push esi mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ebp,[esi+0000017Ch] mov [esp+10h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+10h],ebp jnc L00097E91 mov ebx,[esp+44h] mov cx,[ebx] mov [esp+20h],cx add ebx,00000002h mov dword ptr [esp+28h],00000000h jmp L00097EB2 L00097E91: mov eax,[esp+48h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+44h] mov dword ptr [esp+20h],00000000h mov [esp+28h],eax L00097EB2: mov eax,[esp+4Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+4Ch],eax jbe L0009829E jmp L00097ECB L00097EC7: mov eax,[esp+4Ch] L00097ECB: cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00097EDE mov [esp+40h],eax L00097EDE: mov edi,[esp+40h] imul edi,[esi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+44h],edi jc L00097F3B push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00097F37 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L00097F3B push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L00097F3B L00097F37: mov edi,[esp+44h] L00097F3B: lea edx,[eax+edi*4] add eax,00000004h mov [esp+38h],eax mov edi,eax mov eax,[esp+40h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov ecx,eax mov [esp+1Ch],edx mov [esp+18h],ecx jbe L000981D8 mov ebp,[esp+20h] and ebp,0000FFFFh mov [esp+24h],ebp jmp L00097F77 L00097F73: mov ebp,[esp+24h] L00097F77: xor ecx,ecx mov cx,[ebx+02h] xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] add ebx,00000006h mov [esp+44h],ebx mov [esp+2Ch],ecx lea ebx,[eax+ebp] imul ebx,[esp+14h] add ebp,ecx imul ebp,[esp+14h] mov ecx,[esp+48h] add ebx,[esp+48h] add ebp,ecx mov ecx,[esp+24h] add ecx,edx imul ecx,[esp+14h] mov [esp+30h],edx add ecx,[esp+48h] mov [esp+34h],ecx mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00098270 mov edx,[esi+00000A34h] cmp eax,edx jge L00098270 mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L00098238 cmp eax,edx jge L00098238 mov eax,[esp+30h] add eax,ecx test eax,eax jl L00098270 cmp eax,edx jge L00098270 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+34h] mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] add ebx,00000003h mov [esp+1Ch],ebx mov ebx,[esp+44h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+18h] sub eax,00000003h cmp eax,00000002h mov [esp+18h],eax ja L00097F73 mov edx,[esp+1Ch] mov ebp,[esp+10h] mov ecx,eax mov eax,[esp+40h] L000981D8: mov edi,[esp+4Ch] sub ecx,eax add edi,ecx cmp edx,eax mov ecx,[esi+000005D4h] mov [esp+4Ch],edi jz L0009820C sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L000981FF inc eax L000981FF: mov edi,[ebp+08h] neg eax shl eax,02h add edi,eax mov [ebp+08h],edi L0009820C: mov eax,[esp+4Ch] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00097EC7 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00098238: mov eax,[esp+40h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+10h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00098270: mov eax,[esp+40h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0009829E: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L000982B0: sub esp,0000002Ch push ebx push ebp push esi mov esi,[esp+3Ch] mov ebp,[esi+0000017Ch] mov eax,[esi+000005D0h] push edi push 00000001h push ebp push esi mov [esp+20h],eax mov [esp+1Ch],ebp call SUB_L000ABBE0 cmp dword ptr [esi+00000138h],00000004h jnc L000982FA mov ebx,[esp+44h] mov cx,[ebx] mov [esp+20h],cx add ebx,00000002h mov dword ptr [esp+28h],00000000h jmp L0009831B L000982FA: mov eax,[esp+48h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+44h] mov dword ptr [esp+20h],00000000h mov [esp+28h],eax L0009831B: mov eax,[esp+4Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+4Ch],eax jbe L00098697 jmp L00098334 L00098330: mov eax,[esp+4Ch] L00098334: cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L00098347 mov [esp+40h],eax L00098347: mov edi,[esp+40h] imul edi,[esi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+44h],edi jc L000983A4 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L000983A0 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000983A4 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L000983A4 L000983A0: mov edi,[esp+44h] L000983A4: lea edx,[eax+edi*4] add eax,00000004h mov [esp+38h],eax mov edi,eax mov eax,[esp+40h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov ecx,eax mov [esp+1Ch],edx mov [esp+18h],ecx jbe L00098641 mov ebp,[esp+20h] and ebp,0000FFFFh mov [esp+24h],ebp jmp L000983E0 L000983DC: mov ebp,[esp+24h] L000983E0: xor ecx,ecx mov cx,[ebx+02h] xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] add ebx,00000006h mov [esp+44h],ebx mov [esp+2Ch],ecx lea ebx,[eax+ebp] imul ebx,[esp+14h] add ebp,ecx imul ebp,[esp+14h] mov ecx,[esp+48h] add ebx,[esp+48h] add ebp,ecx mov ecx,[esp+24h] add ecx,edx imul ecx,[esp+14h] mov [esp+30h],edx add ecx,[esp+48h] mov [esp+34h],ecx mov ecx,[esp+28h] add eax,ecx test eax,eax jl L000986AA mov edx,[esi+00000A34h] cmp eax,edx jge L000986AA mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L000986E2 cmp eax,edx jge L000986E2 mov eax,[esp+30h] add eax,ecx test eax,eax jl L000986AA cmp eax,edx jge L000986AA push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+34h] mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] add ebx,00000003h mov [esp+1Ch],ebx mov ebx,[esp+44h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+18h] sub eax,00000003h cmp eax,00000002h mov [esp+18h],eax ja L000983DC mov edx,[esp+1Ch] mov ebp,[esp+10h] mov ecx,eax mov eax,[esp+40h] L00098641: mov edi,[esp+4Ch] sub ecx,eax add edi,ecx cmp edx,eax mov ecx,[esi+000005D4h] mov [esp+4Ch],edi jz L00098675 sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00098668 inc eax L00098668: mov edi,[ebp+08h] neg eax shl eax,02h add edi,eax mov [ebp+08h],edi L00098675: mov eax,[esp+4Ch] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00098330 L00098697: push 00000000h push ebp push esi call SUB_L000ABBE0 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L000986AA: mov eax,[esp+40h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx pop edi mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L000986E2: mov eax,[esp+40h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+10h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L00098720: sub esp,0000002Ch push ebx push ebp push esi mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+10h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+10h],ebp jnc L00098761 mov ebx,[esp+44h] mov cx,[ebx] mov [esp+20h],cx add ebx,00000002h mov dword ptr [esp+28h],00000000h jmp L00098782 L00098761: mov eax,[esp+48h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov ebx,[esp+44h] mov dword ptr [esp+20h],00000000h mov [esp+28h],eax L00098782: mov eax,[esp+4Ch] lea eax,[eax+eax*2] test eax,eax mov [esp+4Ch],eax jbe L00098B6E jmp L0009879B L00098797: mov eax,[esp+4Ch] L0009879B: cmp eax,00000666h mov dword ptr [esp+40h],00000666h ja L000987AE mov [esp+40h],eax L000987AE: mov edi,[esp+40h] imul edi,[esi+000005D4h] mov eax,[ebp+08h] mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+44h],edi jc L0009880B push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L00098807 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+44h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0009880B push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0009880B L00098807: mov edi,[esp+44h] L0009880B: lea edx,[eax+edi*4] add eax,00000004h mov [esp+38h],eax mov edi,eax mov eax,[esp+40h] mov [ebp+08h],edx xor edx,edx cmp eax,00000002h mov ecx,eax mov [esp+1Ch],edx mov [esp+18h],ecx jbe L00098AA8 mov ebp,[esp+20h] and ebp,0000FFFFh mov [esp+24h],ebp jmp L00098847 L00098843: mov ebp,[esp+24h] L00098847: xor ecx,ecx mov cx,[ebx+02h] xor eax,eax mov ax,[ebx] xor edx,edx mov dx,[ebx+04h] add ebx,00000006h mov [esp+44h],ebx mov [esp+2Ch],ecx lea ebx,[eax+ebp] imul ebx,[esp+14h] add ebp,ecx imul ebp,[esp+14h] mov ecx,[esp+48h] add ebx,[esp+48h] add ebp,ecx mov ecx,[esp+24h] add ecx,edx imul ecx,[esp+14h] mov [esp+30h],edx add ecx,[esp+48h] mov [esp+34h],ecx mov ecx,[esp+28h] add eax,ecx test eax,eax jl L00098B40 mov edx,[esi+00000A34h] cmp eax,edx jge L00098B40 mov eax,[esp+2Ch] add eax,ecx test eax,eax jl L00098B08 cmp eax,edx jge L00098B08 mov eax,[esp+30h] add eax,ecx test eax,eax jl L00098B40 cmp eax,edx jge L00098B40 push ebx push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebp fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] push ebp fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+30h],eax fild dword ptr [esp+30h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+34h] mov [esp+30h],eax fild dword ptr [esp+30h] push ebx fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov ecx,[esi+000005D4h] shr ecx,02h lea edi,[edi+ecx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fsub dword ptr [L000B2488] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] push ebx fsub dword ptr [L000B2488] fstp dword ptr [edi+04h] mov edx,[esi+000005D4h] shr edx,02h lea edi,[edi+edx*4] push edi push esi call SUB_L00040370 fld dword ptr [edi] call SUB_L000AF4EC mov [esp+34h],eax fild dword ptr [esp+34h] fadd dword ptr [L000B2484] fstp dword ptr [edi] fld dword ptr [edi+04h] call SUB_L000AF4EC mov ebx,[esp+1Ch] mov [esp+34h],eax fild dword ptr [esp+34h] add ebx,00000003h mov [esp+1Ch],ebx mov ebx,[esp+44h] fadd dword ptr [L000B2484] fstp dword ptr [edi+04h] mov eax,[esi+000005D4h] shr eax,02h lea edi,[edi+eax*4] mov eax,[esp+18h] sub eax,00000003h cmp eax,00000002h mov [esp+18h],eax ja L00098843 mov edx,[esp+1Ch] mov ebp,[esp+10h] mov ecx,eax mov eax,[esp+40h] L00098AA8: mov edi,[esp+4Ch] sub ecx,eax add edi,ecx cmp edx,eax mov ecx,[esi+000005D4h] mov [esp+4Ch],edi jz L00098ADC sub eax,edx mov edi,ecx shr edi,02h imul eax,edi shl eax,1 test edx,edx jnz L00098ACF inc eax L00098ACF: mov edi,[ebp+08h] neg eax shl eax,02h add edi,eax mov [ebp+08h],edi L00098ADC: mov eax,[esp+4Ch] imul ecx,edx mov edx,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L00098797 pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00098B08: mov eax,[esp+40h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[esp+10h] mov ecx,[eax+08h] shl edx,02h add ecx,edx pop edi mov [eax+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L00098B40: mov eax,[esp+40h] imul eax,[esi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+10h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L00098B6E: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L00098B80: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push ebp push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] imul eax,ecx add eax,edx mov edx,[esp+2Ch] mov [esp+24h],eax add eax,ecx test edx,edx push edi mov edi,[esi+0000017Ch] mov [esp+18h],ecx mov [esp+10h],eax jbe L00098DB9 push ebx jmp L00098BCF L00098BCB: mov edx,[esp+34h] L00098BCF: cmp edx,00000666h mov dword ptr [esp+28h],00000666h ja L00098BE3 mov [esp+28h],edx L00098BE3: mov ebx,[esi+000005D4h] imul ebx,[esp+28h] mov eax,[ebp+08h] shl ebx,1 shr ebx,02h mov ecx,eax inc ebx mov [esp+10h],ecx lea ecx,[ecx+ebx*4] cmp ecx,[ebp+0Ch] jc L00098C48 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+10h],eax jz L00098C44 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+ebx*4] cmp ecx,edx jc L00098C44 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+10h],eax L00098C44: mov edx,[esp+34h] L00098C48: cmp edx,00000666h lea eax,[eax+ebx*4] mov [ebp+08h],eax mov dword ptr [esp+30h],00000666h ja L00098C62 mov [esp+30h],edx L00098C62: mov ebx,[esi+000005D4h] imul ebx,[esp+30h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+18h],ebx jc L00098CBF push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L00098CBB mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+18h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00098CBF push edi call [edi+10h] mov eax,[edi+08h] jmp L00098CBF L00098CBB: mov ebx,[esp+18h] L00098CBF: mov ecx,[esp+28h] lea edx,[eax+ebx*4] add eax,00000004h mov [esp+20h],eax mov ebx,eax mov eax,[esp+30h] cmp ecx,eax mov [edi+08h],edx jc L00098CE0 mov [esp+28h],eax mov ecx,eax L00098CE0: test ecx,ecx jbe L00098D49 mov [esp+18h],ecx L00098CE8: mov eax,[esp+2Ch] push eax push eax push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov ecx,[esp+2Ch] mov edx,[esp+14h] push ecx shr eax,02h push edx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] mov edx,[esp+2Ch] mov ecx,[esp+14h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+1Ch] add edx,eax add ecx,eax mov eax,[esp+18h] dec eax mov [esp+2Ch],edx mov [esp+14h],ecx mov [esp+18h],eax jnz L00098CE8 mov eax,[esp+30h] mov ecx,[esp+28h] L00098D49: mov edx,[esp+34h] mov ebx,[esp+10h] sub edx,ecx mov [esp+34h],edx mov edx,[esi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebx],edx mov edx,[esi+000005D4h] jz L00098D96 sub eax,ecx mov ebx,edx shr ebx,02h imul eax,ebx shl eax,1 test ecx,ecx jnz L00098D89 inc eax L00098D89: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L00098D96: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+34h] test eax,eax ja L00098BCB pop ebx L00098DB9: pop edi pop esi pop ebp add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00098DD0: sub esp,00000014h mov edx,[esp+1Ch] push ebx xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebp push esi push edi mov edi,[esp+28h] mov ecx,[edi+000005D0h] mov ebx,[edi+00000148h] imul eax,ecx nop mov esi,[edi+0000017Ch] add eax,edx mov [esp+2Ch],eax add eax,ecx mov [esp+1Ch],ecx mov ecx,[esp+34h] xor ebp,ebp cmp ecx,ebp mov [esp+14h],eax jbe L0009900C jmp L00098E22 L00098E1E: mov ecx,[esp+34h] L00098E22: cmp ecx,00000666h mov dword ptr [esp+28h],00000666h ja L00098E36 mov [esp+28h],ecx L00098E36: mov ebp,[edi+000005D4h] imul ebp,[esp+28h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+10h],eax jc L00098E97 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L00098E93 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+10h],eax jc L00098E93 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+10h],eax L00098E93: mov ecx,[esp+34h] L00098E97: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [ebx+08h],edx mov dword ptr [esp+30h],00000666h ja L00098EB1 mov [esp+30h],ecx L00098EB1: mov ebp,[edi+000005D4h] imul ebp,[esp+30h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+18h],ebp jc L00098F0E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00098F0A mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+18h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00098F0E push esi call [esi+10h] mov eax,[esi+08h] jmp L00098F0E L00098F0A: mov ebp,[esp+18h] L00098F0E: mov ecx,[esp+28h] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+20h],eax mov ebp,eax mov eax,[esp+30h] cmp ecx,eax mov [esi+08h],edx jc L00098F2F mov [esp+28h],eax mov ecx,eax L00098F2F: test ecx,ecx jbe L00098F9A mov [esp+18h],ecx L00098F37: mov eax,[esp+2Ch] push eax push eax push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+2Ch] mov edx,[esp+14h] push ecx shr eax,02h push edx lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov edx,[esp+2Ch] mov ecx,[esp+14h] shr eax,02h lea ebp,[ebp+eax*4+00h] mov eax,[esp+1Ch] add edx,eax add ecx,eax mov eax,[esp+18h] dec eax mov [esp+2Ch],edx mov [esp+14h],ecx mov [esp+18h],eax jnz L00098F37 mov eax,[esp+30h] mov ecx,[esp+28h] L00098F9A: mov edx,[esp+34h] mov ebp,[esp+10h] sub edx,ecx mov [esp+34h],edx mov edx,[edi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebp+00h],edx mov edx,[edi+000005D4h] jz L00098FE8 sub eax,ecx mov ebp,edx shr ebp,02h imul eax,ebp shl eax,1 test ecx,ecx jnz L00098FDB inc eax L00098FDB: mov ebp,[esi+08h] neg eax shl eax,02h add ebp,eax mov [esi+08h],ebp L00098FE8: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+34h] test eax,eax ja L00098E1E xor ebp,ebp L0009900C: push 00000001h push ebx push edi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push esi push edi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push esi call [esi+14h] pop edi mov [esi+0Ch],ebp mov [esi+08h],ebp mov [esi+04h],ebp pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00099050: sub esp,00000008h mov ecx,[esp+10h] mov edx,[esp+14h] push ebx xor ebx,ebx mov bx,[ecx] push esi push edi mov edi,[esp+18h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] mov [esp+0Ch],eax imul ebx,eax add ebx,edx lea edx,[ebx+eax] mov eax,[esp+24h] test eax,eax mov [esp+1Ch],edx jbe L0009919F push ebp jmp L00099096 L00099092: mov eax,[esp+28h] L00099096: cmp eax,00000666h mov dword ptr [esp+1Ch],00000666h ja L000990A9 mov [esp+1Ch],eax L000990A9: mov ebp,[edi+000005D4h] imul ebp,[esp+1Ch] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+24h],ebp jc L00099106 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00099102 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+24h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L00099106 push esi call [esi+10h] mov eax,[esi+08h] jmp L00099106 L00099102: mov ebp,[esp+24h] L00099106: mov ecx,[esp+1Ch] lea edx,[eax+ebp*4] add eax,00000004h test ecx,ecx mov [esi+08h],edx mov [esp+14h],eax mov ebp,eax jbe L00099174 mov [esp+24h],ecx L00099121: push ebx push ebx push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+20h] push ebx shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L0003EC00 mov eax,[esp+10h] mov ecx,[esp+20h] mov edx,[edi+000005D4h] add ecx,eax add ebx,eax mov eax,[esp+24h] shr edx,02h dec eax lea ebp,[ebp+edx*4+00h] mov [esp+20h],ecx mov [esp+24h],eax jnz L00099121 mov eax,[esp+14h] mov ecx,[esp+1Ch] L00099174: mov ebp,[edi+000005D4h] mov edx,[esp+28h] imul ebp,ecx shl ebp,1 shr ebp,02h sub edx,ecx dec ebp or ebp,7F140000h test edx,edx mov [esp+28h],edx mov [eax-04h],ebp ja L00099092 pop ebp L0009919F: pop edi pop esi pop ebx add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000991B0: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push ebp push esi mov esi,[esp+20h] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] imul eax,ecx add eax,edx mov edx,[esp+2Ch] mov [esp+08h],eax add eax,ecx test edx,edx push edi mov edi,[esi+0000017Ch] mov [esp+18h],ecx mov [esp+10h],eax jbe L000993E3 push ebx jmp L000991FF L000991FB: mov edx,[esp+34h] L000991FF: cmp edx,00000666h mov dword ptr [esp+28h],00000666h ja L00099213 mov [esp+28h],edx L00099213: mov ebx,[esi+000005D4h] imul ebx,[esp+28h] mov eax,[ebp+08h] shl ebx,1 shr ebx,02h mov ecx,eax inc ebx mov [esp+30h],ecx lea ecx,[ecx+ebx*4] cmp ecx,[ebp+0Ch] jc L00099278 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+30h],eax jz L00099274 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov ecx,eax mov [esp+30h],ecx lea ecx,[ecx+ebx*4] cmp ecx,edx jc L00099274 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+30h],eax L00099274: mov edx,[esp+34h] L00099278: cmp edx,00000666h lea eax,[eax+ebx*4] mov [ebp+08h],eax mov dword ptr [esp+2Ch],00000666h ja L00099292 mov [esp+2Ch],edx L00099292: mov ebx,[esi+000005D4h] imul ebx,[esp+2Ch] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+18h],ebx jc L000992EF push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L000992EB mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+18h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L000992EF push edi call [edi+10h] mov eax,[edi+08h] jmp L000992EF L000992EB: mov ebx,[esp+18h] L000992EF: mov ecx,[esp+28h] lea edx,[eax+ebx*4] add eax,00000004h mov [esp+20h],eax mov ebx,eax mov eax,[esp+2Ch] cmp ecx,eax mov [edi+08h],edx jc L00099310 mov [esp+28h],eax mov ecx,eax L00099310: test ecx,ecx jbe L00099373 mov [esp+18h],ecx L00099318: mov eax,[esp+10h] push eax push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea ebx,[ebx+ecx*4] push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+10h] mov ecx,[esp+14h] shr eax,02h lea ebx,[ebx+eax*4] mov eax,[esp+1Ch] add edx,eax add ecx,eax mov eax,[esp+18h] dec eax mov [esp+10h],edx mov [esp+14h],ecx mov [esp+18h],eax jnz L00099318 mov eax,[esp+2Ch] mov ecx,[esp+28h] L00099373: mov edx,[esp+34h] mov ebx,[esp+30h] sub edx,ecx mov [esp+34h],edx mov edx,[esi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebx],edx mov edx,[esi+000005D4h] jz L000993C0 sub eax,ecx mov ebx,edx shr ebx,02h imul eax,ebx shl eax,1 test ecx,ecx jnz L000993B3 inc eax L000993B3: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L000993C0: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+34h] test eax,eax ja L000991FB pop ebx L000993E3: pop edi pop esi pop ebp add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000993F0: sub esp,00000014h mov edx,[esp+1Ch] push ebx xor eax,eax mov ax,[edx] mov edx,[esp+24h] push ebp push esi push edi mov edi,[esp+28h] mov ecx,[edi+000005D0h] mov ebx,[edi+00000148h] imul eax,ecx nop mov esi,[edi+0000017Ch] add eax,edx mov [esp+10h],eax add eax,ecx mov [esp+1Ch],ecx mov ecx,[esp+34h] xor ebp,ebp cmp ecx,ebp mov [esp+14h],eax jbe L00099626 jmp L00099442 L0009943E: mov ecx,[esp+34h] L00099442: cmp ecx,00000666h mov dword ptr [esp+28h],00000666h ja L00099456 mov [esp+28h],ecx L00099456: mov ebp,[edi+000005D4h] imul ebp,[esp+28h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+30h],eax jc L000994B7 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+30h],eax jz L000994B3 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+30h],eax jc L000994B3 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+30h],eax L000994B3: mov ecx,[esp+34h] L000994B7: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [ebx+08h],edx mov dword ptr [esp+2Ch],00000666h ja L000994D1 mov [esp+2Ch],ecx L000994D1: mov ebp,[edi+000005D4h] imul ebp,[esp+2Ch] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+18h],ebp jc L0009952E push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009952A mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+18h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009952E push esi call [esi+10h] mov eax,[esi+08h] jmp L0009952E L0009952A: mov ebp,[esp+18h] L0009952E: mov ecx,[esp+28h] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+20h],eax mov ebp,eax mov eax,[esp+2Ch] cmp ecx,eax mov [esi+08h],edx jc L0009954F mov [esp+28h],eax mov ecx,eax L0009954F: test ecx,ecx jbe L000995B4 mov [esp+18h],ecx L00099557: mov eax,[esp+10h] push eax push ebp push edi call SUB_L00040370 mov ecx,[edi+000005D4h] mov edx,[esp+14h] shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push edi call SUB_L00040370 mov eax,[edi+000005D4h] mov edx,[esp+10h] mov ecx,[esp+14h] shr eax,02h lea ebp,[ebp+eax*4+00h] mov eax,[esp+1Ch] add edx,eax add ecx,eax mov eax,[esp+18h] dec eax mov [esp+10h],edx mov [esp+14h],ecx mov [esp+18h],eax jnz L00099557 mov eax,[esp+2Ch] mov ecx,[esp+28h] L000995B4: mov edx,[esp+34h] mov ebp,[esp+30h] sub edx,ecx mov [esp+34h],edx mov edx,[edi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebp+00h],edx mov edx,[edi+000005D4h] jz L00099602 sub eax,ecx mov ebp,edx shr ebp,02h imul eax,ebp shl eax,1 test ecx,ecx jnz L000995F5 inc eax L000995F5: mov ebp,[esi+08h] neg eax shl eax,02h add ebp,eax mov [esi+08h],ebp L00099602: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+34h] test eax,eax ja L0009943E xor ebp,ebp L00099626: push 00000001h push ebx push edi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push esi push edi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push esi call [esi+14h] pop edi mov [esi+0Ch],ebp mov [esi+08h],ebp mov [esi+04h],ebp pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00099660: sub esp,00000008h mov ecx,[esp+10h] push ebp xor ebp,ebp mov bp,[ecx] mov ecx,[esp+18h] push esi push edi mov edi,[esp+18h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] imul ebp,eax add ebp,ecx lea edx,[eax+ebp] mov [esp+1Ch],edx mov edx,[esp+24h] test edx,edx mov [esp+0Ch],eax jbe L00099799 push ebx L000996A0: cmp edx,00000666h jbe L000996B3 mov ecx,00000666h mov [esp+1Ch],ecx jmp L000996B9 L000996B3: mov [esp+1Ch],edx mov ecx,edx L000996B9: mov ebx,[edi+000005D4h] mov eax,[esi+08h] imul ebx,ecx shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,[esi+0Ch] jc L00099708 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L00099704 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L00099704 push esi call [esi+10h] mov eax,[esi+08h] L00099704: mov ecx,[esp+1Ch] L00099708: lea edx,[eax+ebx*4] add eax,00000004h test ecx,ecx mov [esi+08h],edx mov [esp+14h],eax mov ebx,eax jbe L0009976E mov [esp+24h],ecx L0009971F: push ebp push ebx push edi call SUB_L00040370 mov eax,[edi+000005D4h] mov ecx,[esp+20h] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push edi call SUB_L00040370 mov eax,[esp+10h] mov ecx,[esp+20h] mov edx,[edi+000005D4h] add ecx,eax add ebp,eax mov eax,[esp+24h] shr edx,02h dec eax lea ebx,[ebx+edx*4] mov [esp+20h],ecx mov [esp+24h],eax jnz L0009971F mov eax,[esp+14h] mov ecx,[esp+1Ch] L0009976E: mov ebx,[edi+000005D4h] mov edx,[esp+28h] imul ebx,ecx shl ebx,1 shr ebx,02h sub edx,ecx dec ebx or ebx,7F140000h test edx,edx mov [esp+28h],edx mov [eax-04h],ebx ja L000996A0 pop ebx L00099799: pop edi pop esi pop ebp add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000997B0: sub esp,00000030h push ebx push ebp push esi push edi mov edi,[esp+44h] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov ecx,[edi+0000017Ch] mov [esp+28h],eax cmp dword ptr [edi+00000138h],00000004h mov [esp+30h],ebx mov [esp+10h],ecx jnc L00099800 mov ecx,[esp+48h] xor esi,esi mov si,[ecx] add ecx,00000002h mov [esp+48h],ecx mov dword ptr [esp+20h],00000000h mov [esp+14h],esi jmp L00099827 L00099800: mov ecx,[edi+00004860h] mov eax,[esp+4Ch] sub eax,ecx cdq idiv [edi+00004858h] mov ecx,[esp+48h] mov dword ptr [esp+14h],00000000h mov esi,[esp+14h] mov [esp+20h],eax L00099827: mov edx,[esp+50h] test edx,edx jbe L00099AF4 xor eax,eax mov ax,[ecx] xor ebp,ebp mov bp,[ecx+02h] lea ecx,[eax+esi] mov esi,[esp+4Ch] mov eax,ecx imul eax,[esp+28h] add eax,esi mov [esp+24h],eax mov eax,[esp+20h] add eax,ecx mov [esp+34h],eax jmp L0009986A L0009985E: mov ebx,[esp+30h] mov eax,[esp+34h] mov edx,[esp+50h] L0009986A: test eax,eax jl L00099AEA cmp eax,[edi+00000A34h] jge L00099AEA cmp edx,00000666h mov dword ptr [esp+44h],00000666h ja L00099892 mov [esp+44h],edx L00099892: mov esi,[edi+000005D4h] imul esi,[esp+44h] mov eax,[ebx+08h] shl esi,1 shr esi,02h mov ecx,eax inc esi mov [esp+1Ch],ecx lea ecx,[ecx+esi*4] cmp ecx,[ebx+0Ch] jc L000998F7 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+1Ch],eax jz L000998F3 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+esi*4] cmp ecx,edx jc L000998F3 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+1Ch],eax L000998F3: mov edx,[esp+50h] L000998F7: cmp edx,00000666h lea eax,[eax+esi*4] mov [ebx+08h],eax mov dword ptr [esp+18h],00000666h ja L00099911 mov [esp+18h],edx L00099911: mov esi,[edi+000005D4h] imul esi,[esp+18h] mov ecx,[esp+10h] mov eax,[ecx+08h] mov ebx,[ecx+0Ch] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,ebx jc L00099970 push ecx call [ecx+10h] mov ecx,[esp+10h] mov edx,[ecx+18h] mov eax,[ecx+08h] mov ecx,[ecx+1Ch] cmp [edx+74h],ecx jz L0009996C mov ebx,[esp+10h] mov [edx+74h],ecx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0009996C push ebx call [ebx+10h] mov eax,[ebx+08h] L0009996C: mov ecx,[esp+10h] L00099970: lea edx,[eax+esi*4] mov [ecx+08h],edx mov edx,[esp+44h] mov ecx,[esp+18h] cmp edx,ecx lea ebx,[eax+04h] mov [esp+3Ch],ebx jc L0009998F mov [esp+44h],ecx mov edx,ecx L0009998F: test edx,edx mov dword ptr [esp+2Ch],00000000h jbe L00099A56 mov eax,[esp+20h] mov ecx,[esp+14h] add ecx,eax mov [esp+38h],ecx jmp L000999B3 L000999AF: mov edx,[esp+44h] L000999B3: mov eax,[esp+14h] mov esi,[esp+24h] lea ecx,[eax+ebp] imul ecx,[esp+28h] nop add ecx,[esp+4Ch] mov eax,[esp+38h] add eax,ebp test eax,eax mov [esp+24h],ecx jl L00099AC8 cmp eax,[edi+00000A34h] jge L00099AC8 push esi push esi push ebx push edi call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+24h] push esi shr ecx,02h push edx lea ebp,[ebx+ecx*4] push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebp+eax*4+00h] mov eax,[esp+2Ch] test al,01h jz L00099A29 mov ecx,[esp+48h] xor ebp,ebp mov bp,[ecx+02h] jmp L00099A39 L00099A29: mov ecx,[esp+48h] add ecx,00000004h xor ebp,ebp mov bp,[ecx] mov [esp+48h],ecx L00099A39: mov ecx,[esp+44h] inc eax cmp eax,ecx mov [esp+2Ch],eax jc L000999AF mov ecx,[esp+18h] mov edx,[esp+44h] mov ebx,[esp+3Ch] L00099A56: mov eax,[esp+50h] mov esi,[esp+1Ch] sub eax,edx mov [esp+50h],eax mov eax,[edi+000005D4h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h cmp edx,ecx mov [esi],eax mov eax,[edi+000005D4h] jz L00099AA1 sub ecx,edx mov esi,eax shr esi,02h imul ecx,esi shl ecx,1 test edx,edx jnz L00099A95 inc ecx L00099A95: mov esi,[esp+10h] neg ecx shl ecx,02h add [esi+08h],ecx L00099AA1: imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ebx-04h],eax mov eax,[esp+50h] test eax,eax ja L0009985E pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L00099AC8: mov ecx,[edi+000005D4h] mov eax,[esp+30h] imul ecx,edx shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx L00099AEA: mov dword ptr [edi+000005B0h],00000001h L00099AF4: pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 4 L00099B00: sub esp,00000034h push ebx push ebp push esi mov esi,[esp+44h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov ebp,[esi+0000017Ch] mov [esp+2Ch],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+34h],ebx jnc L00099B4C mov ecx,[esp+4Ch] xor edx,edx mov dx,[ecx] add ecx,00000002h mov [esp+4Ch],ecx mov dword ptr [esp+20h],00000000h mov [esp+14h],edx jmp L00099B73 L00099B4C: mov ecx,[esi+00004860h] mov eax,[esp+50h] sub eax,ecx cdq idiv [esi+00004858h] mov ecx,[esp+4Ch] mov dword ptr [esp+14h],00000000h mov edx,[esp+14h] mov [esp+20h],eax L00099B73: mov eax,[esp+54h] test eax,eax jbe L00099E38 xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] lea ecx,[eax+edx] mov edx,[esp+50h] mov eax,ecx imul eax,[esp+30h] add eax,edx mov edx,[esp+20h] mov [esp+24h],eax lea eax,[ecx+edx] mov [esp+28h],edi mov [esp+38h],eax jmp L00099BB3 L00099BAF: mov eax,[esp+38h] L00099BB3: test eax,eax jl L00099E91 cmp eax,[esi+00000A34h] jge L00099E91 mov edx,[esp+54h] cmp edx,00000666h mov dword ptr [esp+48h],00000666h ja L00099BDF mov [esp+48h],edx L00099BDF: mov edi,[esi+000005D4h] imul edi,[esp+48h] mov eax,[ebx+08h] shl edi,1 shr edi,02h mov ecx,eax inc edi mov [esp+18h],ecx lea ecx,[ecx+edi*4] cmp ecx,[ebx+0Ch] jc L00099C44 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L00099C40 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edi*4] cmp ecx,edx jc L00099C40 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+18h],eax L00099C40: mov edx,[esp+54h] L00099C44: cmp edx,00000666h lea eax,[eax+edi*4] mov [ebx+08h],eax jbe L00099C5D mov edi,00000666h mov [esp+2Ch],edi jmp L00099C63 L00099C5D: mov [esp+2Ch],edx mov edi,edx L00099C63: mov ecx,[esi+000005D4h] mov eax,[ebp+08h] imul ecx,edi shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+10h],edx lea edx,[edx+ecx*4] cmp edx,[ebp+0Ch] mov [esp+1Ch],ecx jc L00099CCC push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+10h],eax jz L00099CC8 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+1Ch] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L00099CC8 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+10h],eax L00099CC8: mov ecx,[esp+1Ch] L00099CCC: lea edx,[eax+ecx*4] mov eax,[esp+10h] mov ecx,[esp+48h] add eax,00000004h cmp ecx,edi mov [ebp+08h],edx mov [esp+40h],eax mov [esp+1Ch],eax jc L00099CEF mov [esp+48h],edi mov ecx,edi L00099CEF: test ecx,ecx mov dword ptr [esp+10h],00000000h jbe L00099DCB mov edx,[esp+20h] mov eax,[esp+14h] add eax,edx mov [esp+3Ch],eax jmp L00099D17 L00099D0F: mov ebx,[esp+34h] mov ecx,[esp+48h] L00099D17: mov eax,[esp+28h] mov edx,[esp+14h] mov edi,[esp+24h] add edx,eax imul edx,[esp+30h] nop add edx,[esp+50h] mov [esp+24h],edx mov edx,[esp+3Ch] add eax,edx test eax,eax jl L00099E73 cmp eax,[esi+00000A34h] jge L00099E73 mov eax,[esp+1Ch] push edi push edi push eax push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+1Ch] mov eax,[esp+24h] push edi shr ecx,02h push eax lea ebx,[edx+ecx*4] push ebx push esi call SUB_L0003EC00 mov ecx,[esi+000005D4h] shr ecx,02h lea edx,[ebx+ecx*4] mov ecx,[esp+10h] test cl,01h mov [esp+1Ch],edx jz L00099D9C mov edx,[esp+4Ch] xor eax,eax mov ax,[edx+02h] jmp L00099DAC L00099D9C: mov edx,[esp+4Ch] add edx,00000004h xor eax,eax mov ax,[edx] mov [esp+4Ch],edx L00099DAC: mov [esp+28h],eax mov eax,[esp+48h] inc ecx cmp ecx,eax mov [esp+10h],ecx jc L00099D0F mov edi,[esp+2Ch] mov ebx,[esp+34h] mov ecx,eax L00099DCB: mov eax,[esp+54h] mov edx,[esp+18h] sub eax,ecx mov [esp+54h],eax mov eax,[esi+000005D4h] imul eax,ecx shl eax,1 shr eax,02h dec eax or eax,7F140000h cmp ecx,edi mov [edx],eax mov eax,[esi+000005D4h] jz L00099E17 sub edi,ecx mov edx,eax shr edx,02h imul edi,edx shl edi,1 test ecx,ecx jnz L00099E0A inc edi L00099E0A: mov edx,[ebp+08h] neg edi shl edi,02h add edx,edi mov [ebp+08h],edx L00099E17: imul eax,ecx mov ecx,[esp+40h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+54h] test eax,eax ja L00099BAF L00099E38: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] xor edi,edi push edi push ebp push esi mov [ebx+0Ch],edi mov [ebx+08h],edi mov [ebx+04h],edi call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] mov [ebp+0Ch],edi mov [ebp+08h],edi mov [ebp+04h],edi pop edi pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ L00099E73: mov edx,[esi+000005D4h] imul edx,ecx mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebx+08h],ecx L00099E91: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000034h retn 0010h ;------------------------------------------------------------------------------ Align 16 L00099EB0: sub esp,00000024h push ebx push ebp push esi push edi mov edi,[esp+38h] cmp dword ptr [edi+00000138h],00000004h mov esi,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+28h],esi jnc L00099EF2 mov ecx,[esp+3Ch] xor edx,edx mov dx,[ecx] add ecx,00000002h mov [esp+3Ch],ecx mov dword ptr [esp+14h],00000000h mov [esp+10h],edx jmp L00099F19 L00099EF2: mov ecx,[edi+00004860h] mov eax,[esp+40h] sub eax,ecx cdq idiv [edi+00004858h] mov ecx,[esp+3Ch] mov dword ptr [esp+10h],00000000h mov edx,[esp+10h] mov [esp+14h],eax L00099F19: mov eax,[esp+44h] test eax,eax jbe L0009A118 xor eax,eax mov ax,[ecx] xor ebp,ebp mov bp,[ecx+02h] lea ecx,[eax+edx] mov edx,[esp+40h] mov eax,ecx imul eax,esi add eax,edx mov [esp+18h],eax mov eax,[esp+14h] add ecx,eax mov [esp+24h],ecx jmp L00099F52 L00099F4E: mov ecx,[esp+24h] L00099F52: test ecx,ecx jl L0009A10E cmp ecx,[edi+00000A34h] jge L0009A10E mov eax,[esp+44h] cmp eax,00000666h jbe L00099F7C mov ecx,00000666h mov [esp+38h],ecx jmp L00099F82 L00099F7C: mov [esp+38h],eax mov ecx,eax L00099F82: mov eax,[ebx+08h] mov edx,ecx imul edx,[edi+000005D4h] shl edx,1 mov esi,edx shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,[ebx+0Ch] mov [esp+1Ch],esi jc L00099FE5 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L00099FDD mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+1Ch] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L00099FD7 push ebx call [ebx+10h] mov eax,[ebx+08h] L00099FD7: mov ecx,[esp+38h] jmp L00099FE5 L00099FDD: mov ecx,[esp+38h] mov esi,[esp+1Ch] L00099FE5: lea edx,[eax+esi*4] add eax,00000004h test ecx,ecx mov [ebx+08h],edx mov [esp+30h],eax mov [esp+1Ch],eax mov dword ptr [esp+20h],00000000h jbe L0009A0BC mov eax,[esp+10h] mov ecx,[esp+14h] add eax,ecx mov [esp+2Ch],eax L0009A014: mov edx,[esp+10h] mov ecx,[esp+40h] mov esi,[esp+18h] lea eax,[edx+ebp] imul eax,[esp+28h] add eax,ecx mov ecx,[esp+2Ch] add ebp,ecx test ebp,ebp mov [esp+18h],eax jl L0009A0EE cmp ebp,[edi+00000A34h] jge L0009A0EE mov edx,[esp+1Ch] push esi push esi push edx push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+1Ch] mov edx,[esp+18h] push esi shr eax,02h push edx lea ebp,[ecx+eax*4] push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov eax,[esp+20h] test al,01h mov [esp+1Ch],ecx jz L0009A097 mov edx,[esp+3Ch] xor ebp,ebp mov bp,[edx+02h] jmp L0009A0A7 L0009A097: mov ecx,[esp+3Ch] add ecx,00000004h xor ebp,ebp mov bp,[ecx] mov [esp+3Ch],ecx L0009A0A7: mov ecx,[esp+38h] inc eax cmp eax,ecx mov [esp+20h],eax jc L0009A014 mov eax,[esp+30h] L0009A0BC: mov edx,[esp+44h] sub edx,ecx imul ecx,[edi+000005D4h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test edx,edx mov [esp+44h],edx mov [eax-04h],ecx ja L00099F4E pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0009A0EE: mov eax,[edi+000005D4h] imul eax,[esp+38h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx mov [ebx+08h],eax L0009A10E: mov dword ptr [edi+000005B0h],00000001h L0009A118: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009A130: sub esp,0000002Ch push ebx push ebp push esi mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ecx,[esi+00000148h] mov ebx,[esi+0000017Ch] mov [esp+24h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+40h],ecx jnc L0009A17C mov edx,[esp+44h] xor edi,edi mov di,[edx] add edx,00000002h mov [esp+44h],edx mov dword ptr [esp+20h],00000000h mov [esp+18h],edi jmp L0009A1A3 L0009A17C: mov edx,[esi+00004860h] mov eax,[esp+48h] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+44h] mov dword ptr [esp+18h],00000000h mov edi,[esp+18h] mov [esp+20h],eax L0009A1A3: mov eax,[esp+4Ch] test eax,eax jbe L0009A474 xor eax,eax mov ax,[edx] xor ebp,ebp mov bp,[edx+02h] lea edx,[eax+edi] mov edi,[esp+48h] mov eax,edx imul eax,[esp+28h] add eax,edi mov [esp+24h],eax mov eax,[esp+20h] add eax,edx mov edx,[esp+4Ch] mov [esp+30h],eax jmp L0009A1EA L0009A1DE: mov edx,[esp+4Ch] mov eax,[esp+30h] mov ecx,[esp+40h] L0009A1EA: test eax,eax jl L0009A46A cmp eax,[esi+00000A34h] jge L0009A46A cmp edx,00000666h mov dword ptr [esp+10h],00000666h ja L0009A212 mov [esp+10h],edx L0009A212: mov edi,[esi+000005D4h] imul edi,[esp+10h] mov eax,[ecx+08h] shl edi,1 shr edi,02h mov edx,eax inc edi mov [esp+1Ch],edx lea edx,[edx+edi*4] cmp edx,[ecx+0Ch] jc L0009A287 push ecx call [ecx+10h] mov edx,[esp+40h] mov eax,[edx+08h] mov ecx,[edx+18h] mov edx,[edx+1Ch] cmp [ecx+74h],edx mov [esp+1Ch],eax jz L0009A283 mov eax,[esp+40h] mov [ecx+74h],edx mov ecx,[eax+1Ch] push ecx push eax call [eax+20h] mov edx,[esp+40h] mov eax,[edx+08h] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+edi*4] cmp ecx,[edx+0Ch] jc L0009A283 mov eax,edx push eax call [eax+10h] mov edx,[esp+40h] mov eax,[edx+08h] mov [esp+1Ch],eax L0009A283: mov ecx,[esp+40h] L0009A287: lea eax,[eax+edi*4] mov [ecx+08h],eax mov eax,[esp+4Ch] cmp eax,00000666h jbe L0009A2A3 mov ecx,00000666h mov [esp+14h],ecx jmp L0009A2A9 L0009A2A3: mov [esp+14h],eax mov ecx,eax L0009A2A9: mov edi,[esi+000005D4h] mov eax,[ebx+08h] imul edi,ecx shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,[ebx+0Ch] jc L0009A2F8 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0009A2F4 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0009A2F4 push ebx call [ebx+10h] mov eax,[ebx+08h] L0009A2F4: mov ecx,[esp+14h] L0009A2F8: lea edx,[eax+edi*4] mov [ebx+08h],edx mov edx,[esp+10h] add eax,00000004h cmp edx,ecx mov [esp+38h],eax mov edi,eax jc L0009A315 mov [esp+10h],ecx mov edx,ecx L0009A315: test edx,edx mov dword ptr [esp+2Ch],00000000h jbe L0009A3CF mov eax,[esp+20h] mov ecx,[esp+18h] add ecx,eax mov [esp+34h],ecx L0009A333: mov edx,[esp+18h] mov ecx,[esp+24h] lea eax,[edx+ebp] imul eax,[esp+28h] add eax,[esp+48h] mov edx,[esp+34h] mov [esp+24h],eax lea eax,[edx+ebp] test eax,eax jl L0009A446 cmp eax,[esi+00000A34h] jge L0009A446 push ecx push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+24h] shr eax,02h push ecx lea edi,[edi+eax*4] push edi push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+2Ch] shr edx,02h test al,01h lea edi,[edi+edx*4] jz L0009A3A6 mov ecx,[esp+44h] xor ebp,ebp mov bp,[ecx+02h] jmp L0009A3B6 L0009A3A6: mov ecx,[esp+44h] add ecx,00000004h xor ebp,ebp mov bp,[ecx] mov [esp+44h],ecx L0009A3B6: mov ecx,[esp+10h] inc eax cmp eax,ecx mov [esp+2Ch],eax jc L0009A333 mov ecx,[esp+14h] mov edx,[esp+10h] L0009A3CF: mov eax,[esp+4Ch] mov edi,[esp+1Ch] sub eax,edx mov [esp+4Ch],eax mov eax,[esi+000005D4h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h cmp edx,ecx mov [edi],eax mov eax,[esi+000005D4h] jz L0009A41B sub ecx,edx mov edi,eax shr edi,02h imul ecx,edi shl ecx,1 test edx,edx jnz L0009A40E inc ecx L0009A40E: mov edi,[ebx+08h] neg ecx shl ecx,02h add edi,ecx mov [ebx+08h],edi L0009A41B: mov ecx,[esp+38h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0009A1DE pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0009A446: mov edx,[esi+000005D4h] imul edx,[esp+10h] mov eax,[esp+40h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx L0009A46A: mov dword ptr [esi+000005B0h],00000001h L0009A474: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 4 L0009A480: sub esp,00000030h push ebx push ebp push esi mov esi,[esp+40h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+24h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov edi,[esi+0000017Ch] jnc L0009A4C8 mov ecx,[esp+48h] xor edx,edx mov dx,[ecx] add ecx,00000002h mov [esp+48h],ecx mov dword ptr [esp+1Ch],00000000h mov [esp+14h],edx jmp L0009A4EF L0009A4C8: mov ecx,[esi+00004860h] mov eax,[esp+4Ch] sub eax,ecx cdq idiv [esi+00004858h] mov ecx,[esp+48h] mov dword ptr [esp+14h],00000000h mov edx,[esp+14h] mov [esp+1Ch],eax L0009A4EF: mov eax,[esp+50h] test eax,eax jbe L0009A78B xor eax,eax mov ax,[ecx] xor ebp,ebp mov bp,[ecx+02h] lea ecx,[eax+edx] mov edx,[esp+4Ch] mov eax,ecx imul eax,[esp+28h] add eax,edx mov edx,[esp+1Ch] mov [esp+20h],eax lea eax,[ecx+edx] mov [esp+24h],ebp mov [esp+34h],eax jmp L0009A52F L0009A52B: mov eax,[esp+34h] L0009A52F: test eax,eax jl L0009A7E4 cmp eax,[esi+00000A34h] jge L0009A7E4 mov edx,[esp+50h] cmp edx,00000666h mov dword ptr [esp+44h],00000666h ja L0009A55B mov [esp+44h],edx L0009A55B: mov ebp,[esi+000005D4h] imul ebp,[esp+44h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h mov ecx,eax inc ebp mov [esp+18h],ecx lea ecx,[ecx+ebp*4] cmp ecx,[ebx+0Ch] jc L0009A5C0 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+18h],eax jz L0009A5BC mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+ebp*4] cmp ecx,edx jc L0009A5BC push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+18h],eax L0009A5BC: mov edx,[esp+50h] L0009A5C0: cmp edx,00000666h lea eax,[eax+ebp*4] mov [ebx+08h],eax jbe L0009A5D9 mov ecx,00000666h mov [esp+10h],ecx jmp L0009A5DF L0009A5D9: mov [esp+10h],edx mov ecx,edx L0009A5DF: mov ebp,[esi+000005D4h] mov eax,[edi+08h] imul ebp,ecx shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] jc L0009A62E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0009A62A mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009A62A push edi call [edi+10h] mov eax,[edi+08h] L0009A62A: mov ecx,[esp+10h] L0009A62E: lea edx,[eax+ebp*4] mov [edi+08h],edx mov edx,[esp+44h] add eax,00000004h cmp edx,ecx mov [esp+3Ch],eax mov [esp+2Ch],eax jc L0009A64D mov [esp+44h],ecx mov edx,ecx L0009A64D: test edx,edx mov dword ptr [esp+30h],00000000h jbe L0009A71D mov eax,[esp+1Ch] mov ecx,[esp+14h] add ecx,eax mov [esp+38h],ecx jmp L0009A671 L0009A66D: mov edx,[esp+44h] L0009A671: mov eax,[esp+24h] mov ebp,[esp+14h] mov ecx,[esp+20h] add ebp,eax imul ebp,[esp+28h] nop add ebp,[esp+4Ch] mov [esp+20h],ebp mov ebp,[esp+38h] add eax,ebp test eax,eax jl L0009A7C6 cmp eax,[esi+00000A34h] jge L0009A7C6 mov ebp,[esp+2Ch] push ecx push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+20h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push esi call SUB_L00040370 mov ecx,[esi+000005D4h] shr ecx,02h lea edx,[ebp+ecx*4+00h] mov ecx,[esp+30h] test cl,01h mov [esp+2Ch],edx jz L0009A6F2 mov edx,[esp+48h] xor eax,eax mov ax,[edx+02h] jmp L0009A702 L0009A6F2: mov edx,[esp+48h] add edx,00000004h xor eax,eax mov ax,[edx] mov [esp+48h],edx L0009A702: mov [esp+24h],eax mov eax,[esp+44h] inc ecx cmp ecx,eax mov [esp+30h],ecx jc L0009A66D mov ecx,[esp+10h] mov edx,eax L0009A71D: mov eax,[esp+50h] mov ebp,[esp+18h] sub eax,edx mov [esp+50h],eax mov eax,[esi+000005D4h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h cmp edx,ecx mov [ebp+00h],eax mov eax,[esi+000005D4h] jz L0009A76A sub ecx,edx mov ebp,eax shr ebp,02h imul ecx,ebp shl ecx,1 test edx,edx jnz L0009A75D inc ecx L0009A75D: mov ebp,[edi+08h] neg ecx shl ecx,02h add ebp,ecx mov [edi+08h],ebp L0009A76A: mov ecx,[esp+3Ch] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L0009A52B L0009A78B: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] xor ebp,ebp push ebp push edi push esi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],ebp mov [edi+08h],ebp mov [edi+04h],ebp pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0009A7C6: mov eax,[esi+000005D4h] imul eax,edx shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx mov [ebx+08h],eax L0009A7E4: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009A800: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] cmp dword ptr [esi+00000138h],00000004h mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] push edi mov [esp+24h],ecx jnc L0009A842 mov edx,[esp+38h] xor ebx,ebx mov bx,[edx] add edx,00000002h mov [esp+38h],edx mov dword ptr [esp+1Ch],00000000h mov [esp+14h],ebx jmp L0009A869 L0009A842: mov edx,[esi+00004860h] mov eax,[esp+3Ch] sub eax,edx cdq idiv [esi+00004858h] mov edx,[esp+38h] mov dword ptr [esp+14h],00000000h mov ebx,[esp+14h] mov [esp+1Ch],eax L0009A869: mov eax,[esp+40h] test eax,eax jbe L0009AA5B xor eax,eax mov ax,[edx] xor edi,edi mov di,[edx+02h] add eax,ebx mov ebx,eax imul ebx,ecx add ebx,[esp+3Ch] mov ecx,[esp+1Ch] add eax,ecx mov [esp+20h],eax jmp L0009A89B L0009A897: mov eax,[esp+20h] L0009A89B: test eax,eax jl L0009AA51 cmp eax,[esi+00000A34h] jge L0009AA51 mov eax,[esp+40h] cmp eax,00000666h mov dword ptr [esp+34h],00000666h ja L0009A8C6 mov [esp+34h],eax L0009A8C6: mov ecx,[esp+34h] imul ecx,[esi+000005D4h] mov eax,[ebp+08h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+10h],edx lea edx,[edx+ecx*4] cmp edx,[ebp+0Ch] mov [esp+18h],ecx jc L0009A931 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+10h],eax jz L0009A92D mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L0009A92D push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+10h],eax L0009A92D: mov ecx,[esp+18h] L0009A931: lea edx,[eax+ecx*4] mov eax,[esp+10h] mov ecx,[esp+34h] add eax,00000004h test ecx,ecx mov [ebp+08h],edx mov [esp+2Ch],eax mov [esp+18h],eax mov dword ptr [esp+10h],00000000h jbe L0009AA01 mov edx,[esp+1Ch] mov eax,[esp+14h] add eax,edx mov [esp+28h],eax L0009A968: mov edx,[esp+14h] mov eax,ebx lea ebx,[edi+edx] imul ebx,[esp+24h] add ebx,[esp+3Ch] mov edx,[esp+28h] add edi,edx test edi,edi jl L0009AA33 cmp edi,[esi+00000A34h] jge L0009AA33 push eax mov eax,[esp+1Ch] push eax push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov edx,[esp+18h] shr ecx,02h push ebx lea edi,[edx+ecx*4] push edi push esi call SUB_L00040370 mov eax,[esi+000005D4h] shr eax,02h lea ecx,[edi+eax*4] mov eax,[esp+10h] test al,01h mov [esp+18h],ecx jz L0009A9DC mov edx,[esp+38h] xor edi,edi mov di,[edx+02h] jmp L0009A9EC L0009A9DC: mov ecx,[esp+38h] add ecx,00000004h xor edi,edi mov di,[ecx] mov [esp+38h],ecx L0009A9EC: mov ecx,[esp+34h] inc eax cmp eax,ecx mov [esp+10h],eax jc L0009A968 mov eax,[esp+2Ch] L0009AA01: mov edx,[esp+40h] sub edx,ecx imul ecx,[esi+000005D4h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test edx,edx mov [esp+40h],edx mov [eax-04h],ecx ja L0009A897 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009AA33: mov eax,[esi+000005D4h] imul eax,ecx shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax L0009AA51: mov dword ptr [esi+000005B0h],00000001h L0009AA5B: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009AA70: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] push ebx push esi push edi mov edi,[esp+24h] mov ecx,[edi+000005D0h] mov esi,[edi+00000148h] mov ebx,[edi+0000017Ch] dec eax imul eax,ecx mov [esp+14h],ecx add eax,[esp+2Ch] mov ecx,[esp+30h] test ecx,ecx mov [esp+18h],esi mov [esp+0Ch],eax jbe L0009AC98 push ebp jmp L0009AABC L0009AAB8: mov ecx,[esp+34h] L0009AABC: cmp ecx,00000666h mov dword ptr [esp+28h],00000666h ja L0009AAD0 mov [esp+28h],ecx L0009AAD0: mov ebp,[edi+000005D4h] imul ebp,[esp+28h] mov eax,[esi+08h] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[esi+0Ch] mov [esp+30h],eax jc L0009AB31 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+30h],eax jz L0009AB2D mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+30h],eax jc L0009AB2D push esi call [esi+10h] mov eax,[esi+08h] mov [esp+30h],eax L0009AB2D: mov ecx,[esp+34h] L0009AB31: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [esi+08h],edx mov dword ptr [esp+2Ch],00000666h ja L0009AB4B mov [esp+2Ch],ecx L0009AB4B: mov ebp,[edi+000005D4h] imul ebp,[esp+2Ch] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+14h],ebp jc L0009ABA8 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0009ABA4 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+14h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009ABA8 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0009ABA8 L0009ABA4: mov ebp,[esp+14h] L0009ABA8: mov ecx,[esp+28h] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+20h],eax mov ebp,eax mov eax,[esp+2Ch] cmp ecx,eax mov [ebx+08h],edx jc L0009ABC9 mov [esp+28h],eax mov ecx,eax L0009ABC9: test ecx,ecx jbe L0009AC27 mov [esp+14h],ecx L0009ABD1: mov eax,[esp+10h] mov ecx,[esp+18h] lea esi,[eax+ecx] push esi push esi mov edx,ecx push ebp lea eax,[esi+edx] push edi mov [esp+20h],eax call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+10h] push esi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] dec [esp+14h] jnz L0009ABD1 mov esi,[esp+1Ch] mov ecx,[esp+28h] mov eax,[esp+2Ch] L0009AC27: mov edx,[esp+34h] mov ebp,[esp+30h] sub edx,ecx mov [esp+34h],edx mov edx,[edi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebp+00h],edx mov edx,[edi+000005D4h] jz L0009AC75 sub eax,ecx mov ebp,edx shr ebp,02h imul eax,ebp shl eax,1 test ecx,ecx jnz L0009AC68 inc eax L0009AC68: mov ebp,[ebx+08h] neg eax shl eax,02h add ebp,eax mov [ebx+08h],ebp L0009AC75: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+34h] test eax,eax ja L0009AAB8 pop ebp L0009AC98: pop edi pop esi pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009ACB0: sub esp,00000014h mov edx,[esp+1Ch] xor eax,eax mov ax,[edx] push ebx mov ebx,[esp+1Ch] mov ecx,[ebx+000005D0h] push ebp mov ebp,[ebx+00000148h] mov [esp+14h],ecx dec eax imul eax,ecx add eax,[esp+28h] mov ecx,[esp+2Ch] push esi xor esi,esi cmp ecx,esi push edi mov edi,[ebx+0000017Ch] mov [esp+14h],eax jbe L0009AEFC jmp L0009ACFA L0009ACF6: mov ecx,[esp+34h] L0009ACFA: cmp ecx,00000666h mov dword ptr [esp+28h],00000666h ja L0009AD0E mov [esp+28h],ecx L0009AD0E: mov esi,[ebx+000005D4h] imul esi,[esp+28h] mov eax,[ebp+08h] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,[ebp+0Ch] mov [esp+30h],eax jc L0009AD6F push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+30h],eax jz L0009AD6B mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+30h],eax jc L0009AD6B push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+30h],eax L0009AD6B: mov ecx,[esp+34h] L0009AD6F: cmp ecx,00000666h lea edx,[eax+esi*4] mov [ebp+08h],edx jbe L0009AD88 mov esi,00000666h mov [esp+18h],esi jmp L0009AD8E L0009AD88: mov [esp+18h],ecx mov esi,ecx L0009AD8E: mov ecx,[ebx+000005D4h] mov eax,[edi+08h] imul ecx,esi shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+2Ch],edx lea edx,[edx+ecx*4] cmp edx,[edi+0Ch] mov [esp+10h],ecx jc L0009ADF7 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+2Ch],eax jz L0009ADF3 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[esp+10h] mov ecx,eax mov [esp+2Ch],ecx lea ecx,[ecx+edx*4] cmp ecx,[edi+0Ch] jc L0009ADF3 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+2Ch],eax L0009ADF3: mov ecx,[esp+10h] L0009ADF7: lea edx,[eax+ecx*4] mov eax,[esp+2Ch] add eax,00000004h mov [esp+20h],eax mov [esp+2Ch],eax mov eax,[esp+28h] cmp eax,esi mov [edi+08h],edx jc L0009AE1A mov [esp+28h],esi mov eax,esi L0009AE1A: test eax,eax jbe L0009AE8B mov [esp+10h],eax L0009AE22: mov ecx,[esp+14h] mov edx,[esp+1Ch] lea esi,[ecx+edx] push esi mov eax,edx mov edx,[esp+30h] push esi push edx lea ecx,[esi+eax] push ebx mov [esp+24h],ecx call SUB_L0003EC00 mov eax,[ebx+000005D4h] mov ecx,[esp+2Ch] mov edx,[esp+14h] push esi shr eax,02h lea eax,[ecx+eax*4] push edx push eax push ebx mov [esp+3Ch],eax call SUB_L0003EC00 mov eax,[ebx+000005D4h] mov ecx,[esp+2Ch] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+10h] dec eax mov [esp+2Ch],edx mov [esp+10h],eax jnz L0009AE22 mov esi,[esp+18h] mov eax,[esp+28h] L0009AE8B: mov ecx,[esp+34h] mov edx,[esp+30h] sub ecx,eax mov [esp+34h],ecx mov ecx,[ebx+000005D4h] imul ecx,eax shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h cmp eax,esi mov [edx],ecx mov ecx,[ebx+000005D4h] jz L0009AED8 sub esi,eax mov edx,ecx shr edx,02h imul esi,edx shl esi,1 test eax,eax jnz L0009AECB inc esi L0009AECB: mov edx,[edi+08h] neg esi shl esi,02h add edx,esi mov [edi+08h],edx L0009AED8: imul ecx,eax mov eax,[esp+20h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+34h] test eax,eax ja L0009ACF6 xor esi,esi L0009AEFC: push 00000001h push ebp push ebx call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] push esi push edi push ebx mov [ebp+0Ch],esi mov [ebp+08h],esi mov [ebp+04h],esi call SUB_L000ABBE0 push 00000002h push edi call [edi+14h] mov [edi+0Ch],esi mov [edi+08h],esi mov [edi+04h],esi pop edi pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009AF40: sub esp,00000008h mov edx,[esp+10h] xor eax,eax mov ax,[edx] mov edx,[esp+14h] push ebx mov ebx,[esp+10h] mov ecx,[ebx+000005D0h] push esi mov esi,[ebx+00000148h] dec eax imul eax,ecx add eax,edx mov [esp+14h],eax mov eax,[esp+20h] test eax,eax mov [esp+08h],ecx jbe L0009B076 push ebp push edi L0009AF7E: cmp eax,00000666h jbe L0009AF90 mov edi,00000666h mov [esp+20h],edi jmp L0009AF96 L0009AF90: mov [esp+20h],eax mov edi,eax L0009AF96: mov ebp,[ebx+000005D4h] mov eax,[esi+08h] imul ebp,edi mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009AFE3 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009AFE3 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009AFE3 push esi call [esi+10h] mov eax,[esi+08h] L0009AFE3: test edi,edi lea edx,[eax+ebp*4] lea ebp,[eax+04h] mov [esi+08h],edx mov [esp+14h],ebp jbe L0009B04A mov [esp+24h],edi L0009AFF8: mov eax,[esp+1Ch] mov ecx,[esp+10h] lea edi,[eax+ecx] push edi push edi mov edx,ecx push ebp lea eax,[edi+edx] push ebx mov [esp+2Ch],eax call SUB_L0003EC00 mov ecx,[ebx+000005D4h] mov edx,[esp+1Ch] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push ebx call SUB_L0003EC00 mov eax,[ebx+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] dec [esp+24h] jnz L0009AFF8 mov ebp,[esp+14h] mov edi,[esp+20h] L0009B04A: mov ecx,[ebx+000005D4h] mov eax,[esp+28h] imul ecx,edi shl ecx,1 shr ecx,02h sub eax,edi dec ecx or ecx,7F140000h test eax,eax mov [esp+28h],eax mov [ebp-04h],ecx ja L0009AF7E pop edi pop ebp L0009B076: pop esi pop ebx add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0009B080: sub esp,00000010h mov edx,[esp+18h] xor eax,eax mov ax,[edx] mov edx,[esp+20h] push ebp push esi mov esi,[esp+1Ch] mov ecx,[esi+000005D0h] mov ebp,[esi+00000148h] dec eax imul eax,ecx mov [esp+10h],ecx add eax,[esp+24h] test edx,edx push edi mov edi,[esi+0000017Ch] mov [esp+0Ch],eax jbe L0009B2A0 push ebx jmp L0009B0C8 L0009B0C4: mov edx,[esp+30h] L0009B0C8: cmp edx,00000666h mov dword ptr [esp+24h],00000666h ja L0009B0DC mov [esp+24h],edx L0009B0DC: mov ebx,[esi+000005D4h] imul ebx,[esp+24h] mov eax,[ebp+08h] shl ebx,1 shr ebx,02h mov ecx,eax inc ebx mov [esp+2Ch],ecx lea ecx,[ecx+ebx*4] cmp ecx,[ebp+0Ch] jc L0009B141 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+2Ch],eax jz L0009B13D mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov ecx,eax mov [esp+2Ch],ecx lea ecx,[ecx+ebx*4] cmp ecx,edx jc L0009B13D push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+2Ch],eax L0009B13D: mov edx,[esp+30h] L0009B141: cmp edx,00000666h lea eax,[eax+ebx*4] mov [ebp+08h],eax mov dword ptr [esp+28h],00000666h ja L0009B15B mov [esp+28h],edx L0009B15B: mov ebx,[esi+000005D4h] imul ebx,[esp+28h] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+14h],ebx jc L0009B1B8 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0009B1B4 mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+14h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0009B1B8 push edi call [edi+10h] mov eax,[edi+08h] jmp L0009B1B8 L0009B1B4: mov ebx,[esp+14h] L0009B1B8: mov ecx,[esp+24h] lea edx,[eax+ebx*4] add eax,00000004h mov [esp+1Ch],eax mov ebx,eax mov eax,[esp+28h] cmp ecx,eax mov [edi+08h],edx jc L0009B1D9 mov [esp+24h],eax mov ecx,eax L0009B1D9: test ecx,ecx jbe L0009B230 mov [esp+14h],ecx L0009B1E1: mov eax,[esp+10h] mov ecx,[esp+18h] add eax,ecx push eax push ebx add ecx,eax push esi mov [esp+1Ch],ecx call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebx,[ebx+edx*4] push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+14h] shr ecx,02h dec eax lea ebx,[ebx+ecx*4] mov [esp+14h],eax jnz L0009B1E1 mov eax,[esp+28h] mov ecx,[esp+24h] L0009B230: mov edx,[esp+30h] mov ebx,[esp+2Ch] sub edx,ecx mov [esp+30h],edx mov edx,[esi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebx],edx mov edx,[esi+000005D4h] jz L0009B27D sub eax,ecx mov ebx,edx shr ebx,02h imul eax,ebx shl eax,1 test ecx,ecx jnz L0009B270 inc eax L0009B270: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0009B27D: mov eax,[esp+1Ch] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+30h] test eax,eax ja L0009B0C4 pop ebx L0009B2A0: pop edi pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0009B2B0: sub esp,00000010h mov edx,[esp+18h] xor eax,eax mov ax,[edx] push ebx push ebp push esi push edi mov edi,[esp+24h] mov ecx,[edi+000005D0h] mov ebx,[edi+00000148h] mov esi,[edi+0000017Ch] dec eax imul eax,ecx mov [esp+18h],ecx add eax,[esp+2Ch] mov ecx,[esp+30h] xor ebp,ebp cmp ecx,ebp mov [esp+10h],eax jbe L0009B4D2 jmp L0009B2FA L0009B2F6: mov ecx,[esp+30h] L0009B2FA: cmp ecx,00000666h mov dword ptr [esp+24h],00000666h ja L0009B30E mov [esp+24h],ecx L0009B30E: mov ebp,[edi+000005D4h] imul ebp,[esp+24h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+2Ch],eax jc L0009B36F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+2Ch],eax jz L0009B36B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+2Ch],eax jc L0009B36B push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+2Ch],eax L0009B36B: mov ecx,[esp+30h] L0009B36F: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [ebx+08h],edx mov dword ptr [esp+28h],00000666h ja L0009B389 mov [esp+28h],ecx L0009B389: mov ebp,[edi+000005D4h] imul ebp,[esp+28h] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+14h],ebp jc L0009B3E6 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009B3E2 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+14h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009B3E6 push esi call [esi+10h] mov eax,[esi+08h] jmp L0009B3E6 L0009B3E2: mov ebp,[esp+14h] L0009B3E6: mov ecx,[esp+24h] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+1Ch],eax mov ebp,eax mov eax,[esp+28h] cmp ecx,eax mov [esi+08h],edx jc L0009B407 mov [esp+24h],eax mov ecx,eax L0009B407: test ecx,ecx jbe L0009B460 mov [esp+14h],ecx L0009B40F: mov eax,[esp+10h] mov ecx,[esp+18h] add eax,ecx push eax push ebp add ecx,eax push edi mov [esp+1Ch],ecx call SUB_L00040370 mov edx,[edi+000005D4h] mov eax,[esp+10h] shr edx,02h push eax lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L00040370 mov ecx,[edi+000005D4h] mov eax,[esp+14h] shr ecx,02h dec eax lea ebp,[ebp+ecx*4+00h] mov [esp+14h],eax jnz L0009B40F mov eax,[esp+28h] mov ecx,[esp+24h] L0009B460: mov edx,[esp+30h] mov ebp,[esp+2Ch] sub edx,ecx mov [esp+30h],edx mov edx,[edi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebp+00h],edx mov edx,[edi+000005D4h] jz L0009B4AE sub eax,ecx mov ebp,edx shr ebp,02h imul eax,ebp shl eax,1 test ecx,ecx jnz L0009B4A1 inc eax L0009B4A1: mov ebp,[esi+08h] neg eax shl eax,02h add ebp,eax mov [esi+08h],ebp L0009B4AE: mov eax,[esp+1Ch] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+30h] test eax,eax ja L0009B2F6 xor ebp,ebp L0009B4D2: push 00000001h push ebx push edi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push esi push edi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push esi call [esi+14h] pop edi mov [esi+0Ch],ebp mov [esi+08h],ebp mov [esi+04h],ebp pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0009B510: push ecx mov ecx,[esp+0Ch] mov edx,[esp+14h] push ebp xor ebp,ebp mov bp,[ecx] mov ecx,[esp+14h] push esi push edi mov edi,[esp+14h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] dec ebp imul ebp,eax add ebp,ecx test edx,edx mov [esp+0Ch],eax jbe L0009B637 push ebx L0009B548: cmp edx,00000666h jbe L0009B55B mov ecx,00000666h mov [esp+18h],ecx jmp L0009B561 L0009B55B: mov [esp+18h],edx mov ecx,edx L0009B561: mov ebx,[edi+000005D4h] mov eax,[esi+08h] imul ebx,ecx shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,[esi+0Ch] jc L0009B5B0 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009B5AC mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0009B5AC push esi call [esi+10h] mov eax,[esi+08h] L0009B5AC: mov ecx,[esp+18h] L0009B5B0: lea edx,[eax+ebx*4] add eax,00000004h test ecx,ecx mov [esi+08h],edx mov [esp+20h],eax mov ebx,eax jbe L0009B60C mov [esp+1Ch],ecx L0009B5C7: mov ecx,[esp+10h] lea eax,[ecx+ebp] push eax push ebx push edi lea ebp,[eax+ecx] call SUB_L00040370 mov eax,[edi+000005D4h] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push edi call SUB_L00040370 mov ecx,[edi+000005D4h] mov eax,[esp+1Ch] shr ecx,02h dec eax lea ebx,[ebx+ecx*4] mov [esp+1Ch],eax jnz L0009B5C7 mov eax,[esp+20h] mov ecx,[esp+18h] L0009B60C: mov ebx,[edi+000005D4h] mov edx,[esp+24h] imul ebx,ecx shl ebx,1 shr ebx,02h sub edx,ecx dec ebx or ebx,7F140000h test edx,edx mov [esp+24h],edx mov [eax-04h],ebx ja L0009B548 pop ebx L0009B637: pop edi pop esi pop ebp pop ecx retn 0010h ;------------------------------------------------------------------------------ Align 4 L0009B640: sub esp,00000024h push ebx mov ebx,[esp+2Ch] mov eax,[ebx+000005D0h] push ebp mov ebp,[ebx+00000148h] push esi mov esi,[ebx+0000017Ch] mov [esp+20h],eax cmp dword ptr [ebx+00000138h],00000004h push edi mov dword ptr [esp+1Ch],00000000h mov [esp+10h],ebp mov [esp+2Ch],esi jc L0009B68F mov eax,[esp+40h] sub eax,[ebx+00004860h] cdq idiv [ebx+00004858h] mov [esp+1Ch],eax L0009B68F: mov edx,[esp+44h] test edx,edx jbe L0009B919 jmp L0009B6A1 L0009B69D: mov edx,[esp+44h] L0009B6A1: cmp edx,00000666h mov dword ptr [esp+38h],00000666h ja L0009B6B5 mov [esp+38h],edx L0009B6B5: mov edi,[ebx+000005D4h] imul edi,[esp+38h] mov eax,[ebp+08h] shl edi,1 shr edi,02h mov ecx,eax inc edi mov [esp+18h],ecx lea ecx,[ecx+edi*4] cmp ecx,[ebp+0Ch] jc L0009B718 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+18h],eax jz L0009B714 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+18h],eax jc L0009B714 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+18h],eax L0009B714: mov edx,[esp+44h] L0009B718: cmp edx,00000666h lea eax,[eax+edi*4] mov [ebp+08h],eax jbe L0009B731 mov edi,00000666h mov [esp+20h],edi jmp L0009B737 L0009B731: mov [esp+20h],edx mov edi,edx L0009B737: mov ecx,[ebx+000005D4h] mov eax,[esi+08h] imul ecx,edi shl ecx,1 shr ecx,02h inc ecx lea edx,[eax+ecx*4] cmp edx,[esi+0Ch] mov [esp+14h],ecx jc L0009B790 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009B788 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov ecx,[esp+14h] mov eax,[esi+08h] lea edx,[eax+ecx*4] cmp edx,[esi+0Ch] jc L0009B788 push esi call [esi+10h] mov eax,[esi+08h] L0009B788: mov ebp,[esp+10h] mov ecx,[esp+14h] L0009B790: mov edx,[esp+38h] lea ecx,[eax+ecx*4] add eax,00000004h cmp edx,edi mov [esi+08h],ecx mov [esp+30h],eax mov [esp+14h],eax jc L0009B7AF mov [esp+38h],edi mov edx,edi L0009B7AF: test edx,edx mov [esp+28h],edx jbe L0009B879 jmp L0009B7C5 L0009B7BD: mov ebp,[esp+10h] mov edx,[esp+38h] L0009B7C5: mov ecx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] add ecx,00000004h mov [esp+3Ch],ecx mov ecx,[esp+1Ch] mov esi,eax imul esi,[esp+24h] add esi,[esp+40h] add eax,ecx test eax,eax jl L0009B8F1 mov ecx,[ebx+00000A34h] cmp eax,ecx jge L0009B8F1 mov eax,[esp+1Ch] add eax,edi test eax,eax jl L0009B8F1 cmp eax,ecx jge L0009B8F1 mov ecx,[esp+14h] push esi push esi push ecx push ebx call SUB_L0003EC00 imul edi,[esp+24h] mov edx,[ebx+000005D4h] mov ecx,[esp+40h] mov eax,[esp+14h] push esi shr edx,02h add edi,ecx push edi lea ebp,[eax+edx*4] push ebp push ebx call SUB_L0003EC00 mov ecx,[ebx+000005D4h] mov eax,[esp+28h] shr ecx,02h lea edx,[ebp+ecx*4+00h] dec eax mov [esp+14h],edx mov [esp+28h],eax jnz L0009B7BD mov edi,[esp+20h] mov esi,[esp+2Ch] mov ebp,[esp+10h] mov edx,[esp+38h] L0009B879: mov eax,[esp+44h] mov ecx,[esp+18h] sub eax,edx mov [esp+44h],eax mov eax,[ebx+000005D4h] imul eax,edx shl eax,1 shr eax,02h dec eax or eax,7F140000h cmp edx,edi mov [ecx],eax mov ecx,[ebx+000005D4h] jz L0009B8C5 sub edi,edx mov eax,ecx shr eax,02h imul edi,eax shl edi,1 test edx,edx jnz L0009B8B8 inc edi L0009B8B8: mov eax,[esi+08h] neg edi shl edi,02h add eax,edi mov [esi+08h],eax L0009B8C5: mov eax,[esp+44h] imul ecx,edx mov edx,[esp+30h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [edx-04h],ecx ja L0009B69D pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0009B8F1: mov eax,[ebx+000005D4h] imul eax,edx shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax mov dword ptr [ebx+000005B0h],00000001h L0009B919: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009B930: sub esp,00000020h push ebx mov ebx,[esp+28h] mov eax,[ebx+000005D0h] push ebp mov ebp,[ebx+0000017Ch] push esi mov esi,[ebx+00000148h] mov [esp+24h],eax mov eax,[ebx+00000138h] push edi xor edi,edi cmp eax,00000004h mov [esp+24h],edi mov [esp+20h],esi jc L0009B97B mov eax,[esp+3Ch] sub eax,[ebx+00004860h] cdq idiv [ebx+00004858h] mov [esp+24h],eax L0009B97B: mov ecx,[esp+40h] cmp ecx,edi jbe L0009BBDC jmp L0009B98D L0009B989: mov ecx,[esp+40h] L0009B98D: cmp ecx,00000666h mov dword ptr [esp+34h],00000666h ja L0009B9A1 mov [esp+34h],ecx L0009B9A1: mov edi,[ebx+000005D4h] imul edi,[esp+34h] mov eax,[esi+08h] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,[esi+0Ch] mov [esp+14h],eax jc L0009BA02 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+14h],eax jz L0009B9FE mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+14h],eax jc L0009B9FE push esi call [esi+10h] mov eax,[esi+08h] mov [esp+14h],eax L0009B9FE: mov ecx,[esp+40h] L0009BA02: cmp ecx,00000666h lea edx,[eax+edi*4] mov [esi+08h],edx jbe L0009BA1B mov edi,00000666h mov [esp+1Ch],edi jmp L0009BA21 L0009BA1B: mov [esp+1Ch],ecx mov edi,ecx L0009BA21: mov ecx,[ebx+000005D4h] mov eax,[ebp+08h] imul ecx,edi shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+10h],edx lea edx,[edx+ecx*4] cmp edx,[ebp+0Ch] mov [esp+18h],ecx jc L0009BA8A push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+10h],eax jz L0009BA86 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L0009BA86 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+10h],eax L0009BA86: mov ecx,[esp+18h] L0009BA8A: lea edx,[eax+ecx*4] mov eax,[esp+10h] add eax,00000004h mov [esp+2Ch],eax mov [esp+18h],eax mov eax,[esp+34h] cmp eax,edi mov [ebp+08h],edx jc L0009BAAD mov [esp+34h],edi mov eax,edi L0009BAAD: test eax,eax mov [esp+10h],eax jbe L0009BB6B L0009BAB9: mov ecx,[esp+38h] mov edx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] add ecx,00000004h mov [esp+38h],ecx mov ecx,[esp+24h] mov esi,eax imul esi,[esp+28h] nop add eax,ecx add esi,edx test eax,eax jl L0009BC4D mov edx,[ebx+00000A34h] cmp eax,edx jge L0009BC4D lea eax,[edi+ecx] test eax,eax jl L0009BC15 cmp eax,edx jge L0009BC15 mov ecx,[esp+18h] push esi push esi push ecx push ebx call SUB_L0003EC00 imul edi,[esp+28h] mov edx,[ebx+000005D4h] mov eax,[esp+18h] shr edx,02h lea eax,[eax+edx*4] mov edx,[esp+3Ch] push esi add edi,edx push edi push eax push ebx mov [esp+28h],eax call SUB_L0003EC00 mov ecx,[ebx+000005D4h] mov edx,[esp+18h] shr ecx,02h lea eax,[edx+ecx*4] mov [esp+18h],eax dec [esp+10h] jnz L0009BAB9 mov edi,[esp+1Ch] mov esi,[esp+20h] mov eax,[esp+34h] L0009BB6B: mov ecx,[esp+40h] mov edx,[esp+14h] sub ecx,eax mov [esp+40h],ecx mov ecx,[ebx+000005D4h] imul ecx,eax shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h cmp eax,edi mov [edx],ecx mov ecx,[ebx+000005D4h] jz L0009BBB8 sub edi,eax mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test eax,eax jnz L0009BBAB inc edi L0009BBAB: mov edx,[ebp+08h] neg edi shl edi,02h add edx,edi mov [ebp+08h],edx L0009BBB8: imul ecx,eax mov eax,[esp+2Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+40h] test eax,eax ja L0009B989 xor edi,edi L0009BBDC: push 00000001h push esi push ebx call SUB_L000ABBE0 push 00000002h push esi call [esi+14h] push edi push ebp push ebx mov [esi+0Ch],edi mov [esi+08h],edi mov [esi+04h],edi call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] mov [ebp+0Ch],edi mov [ebp+08h],edi mov [ebp+04h],edi pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009BC15: mov ecx,[ebx+000005D4h] imul ecx,[esp+34h] mov eax,[esp+20h] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] pop edi shl edx,02h pop esi add ecx,edx mov [eax+08h],ecx pop ebp mov dword ptr [ebx+000005B0h],00000001h pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009BC4D: mov eax,[ebx+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+20h] mov edx,[eax+08h] pop edi shl ecx,02h pop esi add edx,ecx mov [eax+08h],edx pop ebp mov dword ptr [ebx+000005B0h],00000001h pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009BC90: sub esp,00000014h push ebx mov ebx,[esp+1Ch] mov eax,[ebx+000005D0h] push ebp mov ebp,[ebx+00000148h] mov [esp+10h],eax cmp dword ptr [ebx+00000138h],00000004h push esi push edi mov dword ptr [esp+14h],00000000h jc L0009BCD1 mov eax,[esp+30h] sub eax,[ebx+00004860h] cdq idiv [ebx+00004858h] mov [esp+14h],eax L0009BCD1: mov ecx,[esp+34h] test ecx,ecx jbe L0009BE9E L0009BCDD: cmp ecx,00000666h jbe L0009BCF0 mov esi,00000666h mov [esp+28h],esi jmp L0009BCF6 L0009BCF0: mov [esp+28h],ecx mov esi,ecx L0009BCF6: mov eax,[ebp+08h] mov ecx,esi imul ecx,[ebx+000005D4h] shl ecx,1 mov edi,ecx mov ecx,[ebp+0Ch] shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx mov [esp+10h],edi jc L0009BD53 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0009BD4F mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edi,[esp+10h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0009BD53 push ebp call [ebp+10h] mov eax,[ebp+08h] jmp L0009BD53 L0009BD4F: mov edi,[esp+10h] L0009BD53: lea edx,[eax+edi*4] add eax,00000004h test esi,esi mov [ebp+08h],edx mov [esp+20h],eax mov [esp+10h],eax mov [esp+1Ch],esi jbe L0009BE23 L0009BD70: mov ecx,[esp+2Ch] mov edx,[esp+30h] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] add ecx,00000004h mov [esp+2Ch],ecx mov ecx,[esp+14h] mov esi,eax imul esi,[esp+18h] nop add eax,ecx add esi,edx test eax,eax jl L0009BE74 mov edx,[ebx+00000A34h] cmp eax,edx jge L0009BE74 lea eax,[edi+ecx] test eax,eax jl L0009BE55 cmp eax,edx jge L0009BE55 mov eax,[esp+10h] push esi push esi push eax push ebx call SUB_L0003EC00 imul edi,[esp+18h] mov ecx,[ebx+000005D4h] mov edx,[esp+10h] shr ecx,02h lea eax,[edx+ecx*4] mov edx,[esp+30h] push esi add edi,edx push edi push eax push ebx mov [esp+20h],eax call SUB_L0003EC00 mov eax,[ebx+000005D4h] mov ecx,[esp+10h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+1Ch] dec eax mov [esp+10h],edx mov [esp+1Ch],eax jnz L0009BD70 mov eax,[esp+20h] mov esi,[esp+28h] L0009BE23: mov ecx,[esp+34h] sub ecx,esi imul esi,[ebx+000005D4h] shl esi,1 shr esi,02h dec esi or esi,7F140000h test ecx,ecx mov [esp+34h],ecx mov [eax-04h],esi ja L0009BCDD pop edi pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ L0009BE55: mov eax,[esp+28h] imul eax,[ebx+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx jmp L0009BE91 L0009BE74: mov eax,[esp+28h] imul eax,[ebx+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[ebp+08h] shl edx,02h add eax,edx L0009BE91: mov [ebp+08h],eax mov dword ptr [ebx+000005B0h],00000001h L0009BE9E: pop edi pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009BEB0: sub esp,0000001Ch push ebx push ebp push esi push edi mov edi,[esp+30h] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov ebp,[edi+0000017Ch] mov [esp+20h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+18h],00000000h mov [esp+1Ch],ebx jc L0009BEFB mov eax,[esp+38h] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+18h],eax L0009BEFB: mov edx,[esp+3Ch] test edx,edx jbe L0009C19D jmp L0009BF11 L0009BF09: mov ebx,[esp+1Ch] mov edx,[esp+3Ch] L0009BF11: cmp edx,00000666h mov dword ptr [esp+30h],00000666h ja L0009BF25 mov [esp+30h],edx L0009BF25: mov esi,[edi+000005D4h] imul esi,[esp+30h] mov eax,[ebx+08h] shl esi,1 shr esi,02h mov ecx,eax inc esi mov [esp+14h],ecx lea ecx,[ecx+esi*4] cmp ecx,[ebx+0Ch] jc L0009BF8A push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+14h],eax jz L0009BF86 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov ecx,eax mov [esp+14h],ecx lea ecx,[ecx+esi*4] cmp ecx,edx jc L0009BF86 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+14h],eax L0009BF86: mov edx,[esp+3Ch] L0009BF8A: cmp edx,00000666h lea eax,[eax+esi*4] mov [ebx+08h],eax mov dword ptr [esp+10h],00000666h ja L0009BFA4 mov [esp+10h],edx L0009BFA4: mov esi,[edi+000005D4h] imul esi,[esp+10h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx jc L0009BFF3 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0009BFF3 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0009BFF3 push ebp call [ebp+10h] mov eax,[ebp+08h] L0009BFF3: mov ecx,[esp+10h] lea edx,[eax+esi*4] mov [ebp+08h],edx mov edx,[esp+30h] add eax,00000004h cmp edx,ecx mov [esp+28h],eax mov ebx,eax jc L0009C014 mov [esp+30h],ecx mov edx,ecx L0009C014: test edx,edx mov [esp+24h],edx jbe L0009C0C0 jmp L0009C026 L0009C022: mov edx,[esp+30h] L0009C026: mov ecx,[esp+34h] xor eax,eax mov ax,[ecx] xor esi,esi mov si,[ecx+02h] add ecx,00000004h mov [esp+34h],ecx mov ecx,[esp+18h] add ecx,eax test ecx,ecx jl L0009C171 mov edx,[edi+00000A34h] cmp ecx,edx jge L0009C16D mov ecx,[esp+18h] add ecx,esi test ecx,ecx jl L0009C135 cmp ecx,edx jge L0009C135 imul eax,[esp+20h] add eax,[esp+38h] push eax push ebx push edi call SUB_L00040370 imul esi,[esp+20h] mov edx,[edi+000005D4h] mov ecx,[esp+38h] shr edx,02h add esi,ecx push esi lea ebx,[ebx+edx*4] push ebx push edi call SUB_L00040370 mov eax,[edi+000005D4h] shr eax,02h lea ebx,[ebx+eax*4] dec [esp+24h] jnz L0009C022 mov eax,[esp+28h] mov ecx,[esp+10h] mov edx,[esp+30h] L0009C0C0: mov esi,[esp+3Ch] mov ebx,[esp+14h] sub esi,edx mov [esp+3Ch],esi mov esi,[edi+000005D4h] imul esi,edx shl esi,1 shr esi,02h dec esi or esi,7F140000h cmp edx,ecx mov [ebx],esi mov esi,[edi+000005D4h] jz L0009C10D sub ecx,edx mov ebx,esi shr ebx,02h imul ecx,ebx shl ecx,1 test edx,edx jnz L0009C100 inc ecx L0009C100: mov ebx,[ebp+08h] neg ecx shl ecx,02h add ebx,ecx mov [ebp+08h],ebx L0009C10D: imul esi,edx shl esi,1 shr esi,02h dec esi or esi,7F140000h mov [eax-04h],esi mov eax,[esp+3Ch] test eax,eax ja L0009BF09 pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ L0009C135: mov ecx,[edi+000005D4h] imul ecx,[esp+30h] mov eax,[esp+1Ch] shl ecx,1 shr ecx,02h or edx,FFFFFFFFh sub edx,ecx mov ecx,[eax+08h] shl edx,02h add ecx,edx mov [eax+08h],ecx mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ L0009C16D: mov edx,[esp+30h] L0009C171: mov eax,[edi+000005D4h] imul eax,edx shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+1Ch] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [edi+000005B0h],00000001h L0009C19D: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009C1B0: sub esp,00000020h push ebx push ebp push esi push edi mov edi,[esp+34h] mov eax,[edi+000005D0h] mov ebp,[edi+00000148h] mov ebx,[edi+0000017Ch] mov [esp+24h],eax mov eax,[edi+00000138h] xor esi,esi cmp eax,00000004h mov [esp+1Ch],esi mov [esp+28h],ebp jc L0009C1FB mov eax,[esp+3Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+1Ch],eax L0009C1FB: mov ecx,[esp+40h] cmp ecx,esi jbe L0009C45B jmp L0009C20D L0009C209: mov ecx,[esp+40h] L0009C20D: cmp ecx,00000666h mov dword ptr [esp+34h],00000666h ja L0009C221 mov [esp+34h],ecx L0009C221: mov esi,[edi+000005D4h] imul esi,[esp+34h] mov eax,[ebp+08h] shl esi,1 shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,[ebp+0Ch] mov [esp+14h],eax jc L0009C282 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+14h],eax jz L0009C27E mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+14h],eax jc L0009C27E push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+14h],eax L0009C27E: mov ecx,[esp+40h] L0009C282: cmp ecx,00000666h lea edx,[eax+esi*4] mov [ebp+08h],edx jbe L0009C29B mov esi,00000666h mov [esp+20h],esi jmp L0009C2A1 L0009C29B: mov [esp+20h],ecx mov esi,ecx L0009C2A1: mov ecx,[edi+000005D4h] mov eax,[ebx+08h] imul ecx,esi shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+10h],edx lea edx,[edx+ecx*4] cmp edx,[ebx+0Ch] mov [esp+18h],ecx jc L0009C30A push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L0009C306 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebx+0Ch] jc L0009C306 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+10h],eax L0009C306: mov ecx,[esp+18h] L0009C30A: lea edx,[eax+ecx*4] mov eax,[esp+10h] add eax,00000004h mov [esp+2Ch],eax mov [esp+18h],eax mov eax,[esp+34h] cmp eax,esi mov [ebx+08h],edx jc L0009C32D mov [esp+34h],esi mov eax,esi L0009C32D: test eax,eax mov [esp+10h],eax jbe L0009C3EA jmp L0009C33F L0009C33B: mov ebp,[esp+28h] L0009C33F: mov ecx,[esp+38h] xor eax,eax mov ax,[ecx] xor esi,esi mov si,[ecx+02h] add ecx,00000004h mov [esp+38h],ecx mov ecx,[esp+1Ch] add ecx,eax test ecx,ecx jl L0009C4C8 mov edx,[edi+00000A34h] cmp ecx,edx jge L0009C4C8 mov ecx,[esp+1Ch] add ecx,esi test ecx,ecx jl L0009C494 cmp ecx,edx jge L0009C494 imul eax,[esp+24h] mov ecx,[esp+3Ch] mov ebp,[esp+18h] add eax,ecx push eax push ebp push edi call SUB_L00040370 imul esi,[esp+24h] mov edx,[edi+000005D4h] mov ecx,[esp+3Ch] shr edx,02h add esi,ecx push esi lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L00040370 mov eax,[edi+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov eax,[esp+10h] dec eax mov [esp+18h],ecx mov [esp+10h],eax jnz L0009C33B mov esi,[esp+20h] mov ebp,[esp+28h] mov eax,[esp+34h] L0009C3EA: mov edx,[esp+40h] mov ecx,[esp+14h] sub edx,eax mov [esp+40h],edx mov edx,[edi+000005D4h] imul edx,eax shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp eax,esi mov [ecx],edx mov ecx,[edi+000005D4h] jz L0009C437 sub esi,eax mov edx,ecx shr edx,02h imul esi,edx shl esi,1 test eax,eax jnz L0009C42A inc esi L0009C42A: mov edx,[ebx+08h] neg esi shl esi,02h add edx,esi mov [ebx+08h],edx L0009C437: imul ecx,eax mov eax,[esp+2Ch] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+40h] test eax,eax ja L0009C209 xor esi,esi L0009C45B: push 00000001h push ebp push edi call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] push esi push ebx push edi mov [ebp+0Ch],esi mov [ebp+08h],esi mov [ebp+04h],esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] pop edi mov [ebx+0Ch],esi mov [ebx+08h],esi mov [ebx+04h],esi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009C494: mov ecx,[edi+000005D4h] imul ecx,[esp+34h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx shl edx,02h add eax,edx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009C4C8: mov eax,[edi+000005D4h] imul eax,[esp+34h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] shl ecx,02h add eax,ecx mov [ebp+08h],eax mov dword ptr [edi+000005B0h],00000001h pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0009C500: sub esp,00000010h push ebx push ebp push esi push edi mov edi,[esp+24h] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov [esp+18h],eax cmp dword ptr [edi+00000138h],00000004h mov dword ptr [esp+10h],00000000h jc L0009C541 mov eax,[esp+2Ch] sub eax,[edi+00004860h] cdq idiv [edi+00004858h] mov [esp+10h],eax L0009C541: mov eax,[esp+30h] test eax,eax jbe L0009C6F6 jmp L0009C553 L0009C54F: mov eax,[esp+30h] L0009C553: cmp eax,00000666h jbe L0009C565 mov esi,00000666h mov [esp+24h],esi jmp L0009C56B L0009C565: mov [esp+24h],eax mov esi,eax L0009C56B: mov eax,[ebx+08h] mov ecx,esi imul ecx,[edi+000005D4h] shl ecx,1 mov ebp,ecx mov ecx,[ebx+0Ch] shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,ecx mov [esp+14h],ebp jc L0009C5C8 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0009C5C4 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+14h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009C5C8 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0009C5C8 L0009C5C4: mov ebp,[esp+14h] L0009C5C8: lea edx,[eax+ebp*4] add eax,00000004h test esi,esi mov [ebx+08h],edx mov [esp+1Ch],eax mov ebp,eax mov [esp+14h],esi jbe L0009C67B L0009C5E3: mov ecx,[esp+28h] xor eax,eax mov ax,[ecx] xor esi,esi mov si,[ecx+02h] add ecx,00000004h mov [esp+28h],ecx mov ecx,[esp+10h] add ecx,eax test ecx,ecx jl L0009C6CC mov edx,[edi+00000A34h] cmp ecx,edx jge L0009C6CC mov ecx,[esp+10h] add ecx,esi test ecx,ecx jl L0009C6AD cmp ecx,edx jge L0009C6AD imul eax,[esp+18h] add eax,[esp+2Ch] push eax push ebp push edi call SUB_L00040370 imul esi,[esp+18h] mov edx,[edi+000005D4h] mov ecx,[esp+2Ch] shr edx,02h add esi,ecx push esi lea ebp,[ebp+edx*4+00h] push ebp push edi call SUB_L00040370 mov eax,[edi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] dec [esp+14h] jnz L0009C5E3 mov eax,[esp+1Ch] mov esi,[esp+24h] L0009C67B: mov ecx,[esp+30h] sub ecx,esi imul esi,[edi+000005D4h] shl esi,1 shr esi,02h dec esi or esi,7F140000h test ecx,ecx mov [esp+30h],ecx mov [eax-04h],esi ja L0009C54F pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ L0009C6AD: mov eax,[esp+24h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx jmp L0009C6E9 L0009C6CC: mov eax,[esp+24h] imul eax,[edi+000005D4h] shl eax,1 shr eax,02h or edx,FFFFFFFFh sub edx,eax mov eax,[ebx+08h] shl edx,02h add eax,edx L0009C6E9: mov [ebx+08h],eax mov dword ptr [edi+000005B0h],00000001h L0009C6F6: pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ L0009C700: sub esp,0000002Ch push ebx mov ebx,[esp+34h] mov eax,[ebx+000005D0h] push ebp push esi mov esi,[ebx+0000017Ch] mov [esp+28h],eax cmp dword ptr [ebx+00000138h],00000004h push edi mov edi,[ebx+00000148h] mov [esp+18h],edi mov [esp+38h],esi jnc L0009C74F mov eax,[esp+44h] mov cx,[eax] add eax,00000002h mov [esp+20h],cx mov [esp+44h],eax mov dword ptr [esp+24h],00000000h jmp L0009C76C L0009C74F: mov eax,[esp+48h] sub eax,[ebx+00004860h] cdq idiv [ebx+00004858h] mov dword ptr [esp+20h],00000000h mov [esp+24h],eax L0009C76C: mov ecx,[esp+4Ch] test ecx,ecx jbe L0009CA0B jmp L0009C782 L0009C77A: mov edi,[esp+18h] mov ecx,[esp+4Ch] L0009C782: cmp ecx,00000666h mov dword ptr [esp+40h],00000666h ja L0009C796 mov [esp+40h],ecx L0009C796: mov ebp,[ebx+000005D4h] imul ebp,[esp+40h] mov eax,[edi+08h] shl ebp,1 shr ebp,02h mov edx,eax inc ebp mov [esp+10h],edx lea edx,[edx+ebp*4] cmp edx,[edi+0Ch] jc L0009C7F9 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0009C7F5 mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+10h],eax jc L0009C7F5 push edi call [edi+10h] mov eax,[edi+08h] mov [esp+10h],eax L0009C7F5: mov ecx,[esp+4Ch] L0009C7F9: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [edi+08h],edx jbe L0009C812 mov edi,00000666h mov [esp+14h],edi jmp L0009C818 L0009C812: mov [esp+14h],ecx mov edi,ecx L0009C818: mov ebp,[ebx+000005D4h] mov eax,[esi+08h] imul ebp,edi mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+1Ch],ebp jc L0009C873 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009C86F mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+1Ch] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009C873 push esi call [esi+10h] mov eax,[esi+08h] jmp L0009C873 L0009C86F: mov ebp,[esp+1Ch] L0009C873: lea edx,[eax+ebp*4] mov [esi+08h],edx mov edx,[esp+40h] add eax,00000004h cmp edx,edi mov [esp+34h],eax mov ebp,eax jc L0009C890 mov [esp+40h],edi mov edx,edi L0009C890: test edx,edx mov [esp+30h],edx jbe L0009C969 mov esi,[esp+20h] mov eax,[esp+24h] and esi,0000FFFFh lea ecx,[esi+eax] mov [esp+28h],esi mov [esp+1Ch],ecx jmp L0009C8BF L0009C8B7: mov esi,[esp+28h] mov edx,[esp+40h] L0009C8BF: mov ecx,[esp+44h] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] add ecx,00000004h mov [esp+44h],ecx mov ecx,[esp+1Ch] add esi,eax imul esi,[esp+2Ch] add esi,[esp+48h] add eax,ecx test eax,eax jl L0009C9DF mov ecx,[ebx+00000A34h] cmp eax,ecx jge L0009C9DF mov eax,[esp+1Ch] add eax,edi test eax,eax jl L0009C9DF cmp eax,ecx jge L0009C9DF push esi push esi push ebp push ebx call SUB_L0003EC00 mov edx,[esp+28h] mov ecx,[ebx+000005D4h] mov eax,[esp+48h] add edx,edi imul edx,[esp+2Ch] push esi shr ecx,02h add edx,eax push edx lea ebp,[ebp+ecx*4+00h] push ebp push ebx call SUB_L0003EC00 mov eax,[ebx+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] dec [esp+30h] jnz L0009C8B7 mov eax,[esp+34h] mov edi,[esp+14h] mov esi,[esp+38h] mov edx,[esp+40h] L0009C969: mov ecx,[esp+4Ch] mov ebp,[esp+10h] sub ecx,edx mov [esp+4Ch],ecx mov ecx,[ebx+000005D4h] imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h cmp edx,edi mov [ebp+00h],ecx mov ecx,[ebx+000005D4h] jz L0009C9B7 sub edi,edx mov ebp,ecx shr ebp,02h imul edi,ebp shl edi,1 test edx,edx jnz L0009C9AA inc edi L0009C9AA: mov ebp,[esi+08h] neg edi shl edi,02h add ebp,edi mov [esi+08h],ebp L0009C9B7: imul ecx,edx shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+4Ch] test eax,eax ja L0009C77A pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0009C9DF: mov eax,[ebx+000005D4h] imul eax,edx shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[esp+18h] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [ebx+000005B0h],00000001h L0009CA0B: pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009CA20: sub esp,00000030h push ebx mov ebx,[esp+38h] mov eax,[ebx+000005D0h] push ebp mov ebp,[ebx+00000148h] push esi mov esi,[ebx+0000017Ch] mov [esp+24h],eax cmp dword ptr [ebx+00000138h],00000004h push edi mov [esp+30h],ebp mov [esp+38h],esi jnc L0009CA6D mov eax,[esp+48h] mov cx,[eax] add eax,00000002h xor edi,edi mov [esp+20h],cx mov [esp+48h],eax mov [esp+24h],edi jmp L0009CA8C L0009CA6D: mov eax,[esp+4Ch] sub eax,[ebx+00004860h] cdq idiv [ebx+00004858h] mov dword ptr [esp+20h],00000000h xor edi,edi mov [esp+24h],eax L0009CA8C: mov edx,[esp+50h] cmp edx,edi jbe L0009CD16 jmp L0009CA9E L0009CA9A: mov edx,[esp+50h] L0009CA9E: cmp edx,00000666h mov dword ptr [esp+44h],00000666h ja L0009CAB2 mov [esp+44h],edx L0009CAB2: mov edi,[ebx+000005D4h] imul edi,[esp+44h] mov eax,[ebp+08h] shl edi,1 shr edi,02h mov ecx,eax inc edi mov [esp+14h],ecx lea ecx,[ecx+edi*4] cmp ecx,[ebp+0Ch] jc L0009CB15 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+14h],eax jz L0009CB11 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+14h],eax jc L0009CB11 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+14h],eax L0009CB11: mov edx,[esp+50h] L0009CB15: cmp edx,00000666h lea eax,[eax+edi*4] mov [ebp+08h],eax jbe L0009CB2E mov edi,00000666h mov [esp+1Ch],edi jmp L0009CB34 L0009CB2E: mov [esp+1Ch],edx mov edi,edx L0009CB34: mov ecx,[ebx+000005D4h] mov eax,[esi+08h] imul ecx,edi shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+10h],edx lea edx,[edx+ecx*4] cmp edx,[esi+0Ch] mov [esp+18h],ecx jc L0009CB9D push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+10h],eax jz L0009CB99 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+edx*4] cmp ecx,[esi+0Ch] jc L0009CB99 push esi call [esi+10h] mov eax,[esi+08h] mov [esp+10h],eax L0009CB99: mov ecx,[esp+18h] L0009CB9D: lea edx,[eax+ecx*4] mov eax,[esp+10h] mov ecx,[esp+44h] add eax,00000004h cmp ecx,edi mov [esi+08h],edx mov [esp+3Ch],eax mov [esp+18h],eax jc L0009CBC0 mov [esp+44h],edi mov ecx,edi L0009CBC0: test ecx,ecx mov [esp+2Ch],ecx jbe L0009CCA6 mov esi,[esp+20h] mov ecx,[esp+24h] and esi,0000FFFFh lea edx,[esi+ecx] mov [esp+10h],esi mov [esp+34h],edx jmp L0009CBF3 L0009CBE7: mov esi,[esp+10h] mov ebp,[esp+30h] mov edx,[esp+34h] L0009CBF3: mov ecx,[esp+48h] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] add ecx,00000004h mov [esp+48h],ecx add esi,eax imul esi,[esp+28h] add esi,[esp+4Ch] add eax,edx test eax,eax jl L0009CD83 mov ecx,[ebx+00000A34h] cmp eax,ecx jge L0009CD83 lea eax,[edx+edi] test eax,eax jl L0009CD4F cmp eax,ecx jge L0009CD4F mov edx,[esp+18h] push esi push esi push edx push ebx call SUB_L0003EC00 mov edx,[esp+10h] mov eax,[ebx+000005D4h] mov ecx,[esp+18h] add edx,edi imul edx,[esp+28h] shr eax,02h lea ebp,[ecx+eax*4] mov eax,[esp+4Ch] push esi add edx,eax push edx push ebp push ebx call SUB_L0003EC00 mov eax,[ebx+000005D4h] shr eax,02h lea ecx,[ebp+eax*4+00h] mov eax,[esp+2Ch] dec eax mov [esp+18h],ecx mov [esp+2Ch],eax jnz L0009CBE7 mov edi,[esp+1Ch] mov esi,[esp+38h] mov ebp,[esp+30h] mov ecx,[esp+44h] L0009CCA6: mov edx,[esp+50h] mov eax,[esp+14h] sub edx,ecx mov [esp+50h],edx mov edx,[ebx+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,edi mov [eax],edx mov eax,[ebx+000005D4h] jz L0009CCF3 sub edi,ecx mov edx,eax shr edx,02h imul edi,edx shl edi,1 test ecx,ecx jnz L0009CCE6 inc edi L0009CCE6: mov edx,[esi+08h] neg edi shl edi,02h add edx,edi mov [esi+08h],edx L0009CCF3: imul eax,ecx mov ecx,[esp+3Ch] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+50h] test eax,eax ja L0009CA9A xor edi,edi L0009CD16: push 00000001h push ebp push ebx call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] push edi push esi push ebx mov [ebp+0Ch],edi mov [ebp+08h],edi mov [ebp+04h],edi call SUB_L000ABBE0 push 00000002h push esi call [esi+14h] mov [esi+0Ch],edi mov [esi+08h],edi mov [esi+04h],edi pop edi pop esi pop ebp pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0009CD4F: mov edx,[ebx+000005D4h] imul edx,[esp+44h] mov ecx,[ebp+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx pop edi shl eax,02h add ecx,eax pop esi mov [ebp+08h],ecx pop ebp mov dword ptr [ebx+000005B0h],00000001h pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ L0009CD83: mov ecx,[ebx+000005D4h] imul ecx,[esp+44h] mov eax,[ebp+08h] shl ecx,1 or edx,FFFFFFFFh shr ecx,02h sub edx,ecx pop edi shl edx,02h add eax,edx pop esi mov [ebp+08h],eax pop ebp mov dword ptr [ebx+000005B0h],00000001h pop ebx add esp,00000030h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009CDC0: sub esp,00000024h push ebx mov ebx,[esp+2Ch] mov eax,[ebx+000005D0h] push ebp mov ebp,[ebx+00000148h] mov [esp+18h],eax cmp dword ptr [ebx+00000138h],00000004h push esi push edi mov [esp+28h],ebp jnc L0009CE05 mov eax,[esp+3Ch] mov cx,[eax] add eax,00000002h mov [esp+14h],cx mov [esp+3Ch],eax mov dword ptr [esp+18h],00000000h jmp L0009CE22 L0009CE05: mov eax,[esp+40h] sub eax,[ebx+00004860h] cdq idiv [ebx+00004858h] mov dword ptr [esp+14h],00000000h mov [esp+18h],eax L0009CE22: mov ecx,[esp+44h] test ecx,ecx jbe L0009D019 L0009CE2E: cmp ecx,00000666h jbe L0009CE41 mov esi,00000666h mov [esp+38h],esi jmp L0009CE47 L0009CE41: mov [esp+38h],ecx mov esi,ecx L0009CE47: mov edi,[ebx+000005D4h] mov eax,[ebp+08h] imul edi,esi mov ecx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,ecx jc L0009CE94 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0009CE94 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0009CE94 push ebp call [ebp+10h] mov eax,[ebp+08h] L0009CE94: lea edx,[eax+edi*4] add eax,00000004h test esi,esi mov [ebp+08h],edx mov [esp+30h],eax mov [esp+10h],eax mov [esp+24h],esi jbe L0009CF87 mov ecx,[esp+14h] mov eax,[esp+18h] and ecx,0000FFFFh lea edx,[ecx+eax] mov [esp+1Ch],ecx mov [esp+2Ch],edx jmp L0009CED8 L0009CECC: mov ebp,[esp+28h] mov ecx,[esp+1Ch] mov edx,[esp+2Ch] L0009CED8: mov esi,[esp+3Ch] xor eax,eax mov ax,[esi] xor edi,edi mov di,[esi+02h] lea esi,[ecx+eax] imul esi,[esp+20h] add esi,[esp+40h] mov ecx,[esp+3Ch] add ecx,00000004h add eax,edx test eax,eax mov [esp+3Ch],ecx jl L0009CFEF mov ecx,[ebx+00000A34h] cmp eax,ecx jge L0009CFEF lea eax,[edx+edi] test eax,eax jl L0009CFBB cmp eax,ecx jge L0009CFBB mov ecx,[esp+10h] push esi push esi push ecx push ebx call SUB_L0003EC00 mov ecx,[esp+1Ch] mov edx,[ebx+000005D4h] mov eax,[esp+10h] add ecx,edi imul ecx,[esp+20h] shr edx,02h lea ebp,[eax+edx*4] mov eax,[esp+40h] push esi add ecx,eax push ecx push ebp push ebx call SUB_L0003EC00 mov edx,[ebx+000005D4h] shr edx,02h lea eax,[ebp+edx*4+00h] mov [esp+10h],eax dec [esp+24h] jnz L0009CECC mov eax,[esp+30h] mov ebp,[esp+28h] mov esi,[esp+38h] L0009CF87: mov edx,[ebx+000005D4h] mov ecx,[esp+44h] imul edx,esi shl edx,1 shr edx,02h sub ecx,esi dec edx or edx,7F140000h test ecx,ecx mov [esp+44h],ecx mov [eax-04h],edx ja L0009CE2E pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0009CFBB: mov eax,[ebx+000005D4h] imul eax,[esp+38h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebp+08h] pop edi shl ecx,02h add eax,ecx pop esi mov [ebp+08h],eax pop ebp mov dword ptr [ebx+000005B0h],00000001h pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0009CFEF: mov edx,[ebx+000005D4h] imul edx,[esp+38h] mov ecx,[ebp+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebp+08h],ecx mov dword ptr [ebx+000005B0h],00000001h L0009D019: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009D030: sub esp,00000024h push ebx push ebp push esi mov esi,[esp+34h] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov ebp,[esi+0000017Ch] mov [esp+20h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+1Ch],ebx mov [esp+30h],ebp jnc L0009D07F mov eax,[esp+3Ch] mov cx,[eax] add eax,00000002h mov [esp+20h],cx mov [esp+3Ch],eax mov dword ptr [esp+18h],00000000h jmp L0009D09C L0009D07F: mov eax,[esp+40h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+20h],00000000h mov [esp+18h],eax L0009D09C: mov edx,[esp+44h] test edx,edx jbe L0009D332 jmp L0009D0B2 L0009D0AA: mov ebx,[esp+1Ch] mov edx,[esp+44h] L0009D0B2: cmp edx,00000666h mov dword ptr [esp+38h],00000666h ja L0009D0C6 mov [esp+38h],edx L0009D0C6: mov edi,[esi+000005D4h] imul edi,[esp+38h] mov eax,[ebx+08h] shl edi,1 shr edi,02h mov ecx,eax inc edi mov [esp+14h],ecx lea ecx,[ecx+edi*4] cmp ecx,[ebx+0Ch] jc L0009D12B push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+14h],eax jz L0009D127 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] mov ecx,eax mov [esp+14h],ecx lea ecx,[ecx+edi*4] cmp ecx,edx jc L0009D127 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+14h],eax L0009D127: mov edx,[esp+44h] L0009D12B: cmp edx,00000666h lea eax,[eax+edi*4] mov [ebx+08h],eax mov dword ptr [esp+10h],00000666h ja L0009D145 mov [esp+10h],edx L0009D145: mov edi,[esi+000005D4h] imul edi,[esp+10h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] shl edi,1 shr edi,02h inc edi lea ecx,[eax+edi*4] cmp ecx,edx jc L0009D194 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] jz L0009D194 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L0009D194 push ebp call [ebp+10h] mov eax,[ebp+08h] L0009D194: mov ecx,[esp+10h] lea edx,[eax+edi*4] mov [ebp+08h],edx mov edx,[esp+38h] add eax,00000004h cmp edx,ecx mov [esp+2Ch],eax mov ebx,eax jc L0009D1B5 mov [esp+38h],ecx mov edx,ecx L0009D1B5: test edx,edx mov [esp+28h],edx jbe L0009D278 mov ebp,[esp+20h] and ebp,0000FFFFh L0009D1CB: mov ecx,[esp+3Ch] xor eax,eax mov ax,[ecx] xor edi,edi mov di,[ecx+02h] add ecx,00000004h mov [esp+3Ch],ecx mov ecx,[esp+18h] add ecx,ebp add ecx,eax test ecx,ecx jl L0009D304 mov edx,[esi+00000A34h] cmp ecx,edx jge L0009D304 mov ecx,[esp+18h] add ecx,ebp add ecx,edi test ecx,ecx jl L0009D2ED cmp ecx,edx jge L0009D2ED lea edx,[eax+ebp] imul edx,[esp+24h] add edx,[esp+40h] push edx push ebx push esi call SUB_L00040370 mov eax,[esi+000005D4h] mov edx,[esp+40h] lea ecx,[edi+ebp] imul ecx,[esp+24h] shr eax,02h add ecx,edx push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+28h] shr edx,02h dec eax lea ebx,[ebx+edx*4] mov [esp+28h],eax jnz L0009D1CB mov eax,[esp+2Ch] mov ebp,[esp+30h] mov edx,[esp+38h] mov ecx,[esp+10h] L0009D278: mov edi,[esp+44h] mov ebx,[esp+14h] sub edi,edx mov [esp+44h],edi mov edi,[esi+000005D4h] imul edi,edx shl edi,1 shr edi,02h dec edi or edi,7F140000h cmp edx,ecx mov [ebx],edi mov edi,[esi+000005D4h] jz L0009D2C5 sub ecx,edx mov ebx,edi shr ebx,02h imul ecx,ebx shl ecx,1 test edx,edx jnz L0009D2B8 inc ecx L0009D2B8: mov ebx,[ebp+08h] neg ecx shl ecx,02h add ebx,ecx mov [ebp+08h],ebx L0009D2C5: imul edi,edx shl edi,1 shr edi,02h dec edi or edi,7F140000h mov [eax-04h],edi mov eax,[esp+44h] test eax,eax ja L0009D0AA pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ L0009D2ED: mov eax,[esi+000005D4h] imul eax,[esp+38h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax jmp L0009D319 L0009D304: mov edx,[esi+000005D4h] imul edx,[esp+38h] shl edx,1 shr edx,02h or ecx,FFFFFFFFh sub ecx,edx L0009D319: mov eax,[esp+1Ch] mov edx,[eax+08h] shl ecx,02h add edx,ecx mov [eax+08h],edx mov dword ptr [esi+000005B0h],00000001h L0009D332: pop edi pop esi pop ebp pop ebx add esp,00000024h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0009D340: sub esp,0000002Ch push ebx push ebp push esi mov esi,[esp+3Ch] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov ebp,[esi+0000017Ch] mov [esp+24h],eax cmp dword ptr [esi+00000138h],00000004h push edi mov [esp+34h],ebx jnc L0009D389 mov eax,[esp+44h] mov cx,[eax] add eax,00000002h xor edi,edi mov [esp+20h],cx mov [esp+44h],eax mov [esp+24h],edi jmp L0009D3A8 L0009D389: mov eax,[esp+48h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+20h],00000000h xor edi,edi mov [esp+24h],eax L0009D3A8: mov ecx,[esp+4Ch] cmp ecx,edi jbe L0009D627 jmp L0009D3BA L0009D3B6: mov ecx,[esp+4Ch] L0009D3BA: cmp ecx,00000666h mov dword ptr [esp+40h],00000666h ja L0009D3CE mov [esp+40h],ecx L0009D3CE: mov edi,[esi+000005D4h] imul edi,[esp+40h] mov eax,[ebx+08h] shl edi,1 shr edi,02h inc edi lea edx,[eax+edi*4] cmp edx,[ebx+0Ch] mov [esp+14h],eax jc L0009D42F push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+14h],eax jz L0009D42B mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx mov [esp+14h],eax jc L0009D42B push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+14h],eax L0009D42B: mov ecx,[esp+4Ch] L0009D42F: cmp ecx,00000666h lea edx,[eax+edi*4] mov [ebx+08h],edx jbe L0009D448 mov edi,00000666h mov [esp+1Ch],edi jmp L0009D44E L0009D448: mov [esp+1Ch],ecx mov edi,ecx L0009D44E: mov ecx,[esi+000005D4h] mov eax,[ebp+08h] imul ecx,edi shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+10h],edx lea edx,[edx+ecx*4] cmp edx,[ebp+0Ch] mov [esp+18h],ecx jc L0009D4B7 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+10h],eax jz L0009D4B3 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+edx*4] cmp ecx,[ebp+0Ch] jc L0009D4B3 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+10h],eax L0009D4B3: mov ecx,[esp+18h] L0009D4B7: lea edx,[eax+ecx*4] mov eax,[esp+10h] mov ecx,[esp+40h] add eax,00000004h cmp ecx,edi mov [ebp+08h],edx mov [esp+38h],eax mov [esp+2Ch],eax jc L0009D4DA mov [esp+40h],edi mov ecx,edi L0009D4DA: test ecx,ecx mov [esp+30h],ecx jbe L0009D5B8 mov eax,[esp+20h] mov edx,[esp+24h] and eax,0000FFFFh mov [esp+10h],eax add eax,edx mov [esp+18h],eax jmp L0009D507 L0009D4FF: mov ebx,[esp+34h] mov ecx,[esp+40h] L0009D507: mov edx,[esp+44h] xor eax,eax mov ax,[edx] xor edi,edi mov di,[edx+02h] add edx,00000004h mov [esp+44h],edx mov edx,[esp+18h] add edx,eax test edx,edx jl L0009D671 mov ecx,[esi+00000A34h] cmp edx,ecx jge L0009D66D mov edx,[esp+18h] add edx,edi test edx,edx jl L0009D660 cmp edx,ecx jge L0009D660 mov ecx,[esp+10h] mov ebx,[esp+2Ch] add ecx,eax imul ecx,[esp+28h] add ecx,[esp+48h] push ecx push ebx push esi call SUB_L00040370 mov eax,[esp+10h] mov edx,[esi+000005D4h] add eax,edi imul eax,[esp+28h] shr edx,02h lea ebx,[ebx+edx*4] add eax,[esp+48h] push eax push ebx push esi call SUB_L00040370 mov ecx,[esi+000005D4h] mov eax,[esp+30h] shr ecx,02h lea edx,[ebx+ecx*4] dec eax mov [esp+2Ch],edx mov [esp+30h],eax jnz L0009D4FF mov edi,[esp+1Ch] mov ebx,[esp+34h] mov ecx,[esp+40h] L0009D5B8: mov eax,[esp+4Ch] mov edx,[esp+14h] sub eax,ecx mov [esp+4Ch],eax mov eax,[esi+000005D4h] imul eax,ecx shl eax,1 shr eax,02h dec eax or eax,7F140000h cmp ecx,edi mov [edx],eax mov eax,[esi+000005D4h] jz L0009D604 sub edi,ecx mov edx,eax shr edx,02h imul edi,edx shl edi,1 test ecx,ecx jnz L0009D5F7 inc edi L0009D5F7: mov edx,[ebp+08h] neg edi shl edi,02h add edx,edi mov [ebp+08h],edx L0009D604: imul eax,ecx mov ecx,[esp+38h] shl eax,1 shr eax,02h dec eax or eax,7F140000h mov [ecx-04h],eax mov eax,[esp+4Ch] test eax,eax ja L0009D3B6 xor edi,edi L0009D627: push 00000001h push ebx push esi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push edi push ebp push esi mov [ebx+0Ch],edi mov [ebx+08h],edi mov [ebx+04h],edi call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] mov [ebp+0Ch],edi mov [ebp+08h],edi mov [ebp+04h],edi pop edi pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ L0009D660: mov edx,[esi+000005D4h] imul edx,[esp+40h] jmp L0009D67A L0009D66D: mov ecx,[esp+40h] L0009D671: mov edx,[esi+000005D4h] imul edx,ecx L0009D67A: mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax pop edi mov [ebx+08h],ecx mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000002Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009D6B0: sub esp,0000001Ch push ebx push ebp push esi mov esi,[esp+2Ch] mov eax,[esi+000005D0h] mov ebx,[esi+00000148h] mov [esp+1Ch],eax cmp dword ptr [esi+00000138h],00000004h push edi jnc L0009D6F1 mov eax,[esp+34h] mov cx,[eax] add eax,00000002h mov [esp+10h],cx mov [esp+34h],eax mov dword ptr [esp+14h],00000000h jmp L0009D70E L0009D6F1: mov eax,[esp+38h] sub eax,[esi+00004860h] cdq idiv [esi+00004858h] mov dword ptr [esp+10h],00000000h mov [esp+14h],eax L0009D70E: mov ecx,[esp+3Ch] test ecx,ecx jbe L0009D8EF L0009D71A: cmp ecx,00000666h jbe L0009D72D mov edi,00000666h mov [esp+30h],edi jmp L0009D733 L0009D72D: mov [esp+30h],ecx mov edi,ecx L0009D733: mov ebp,[esi+000005D4h] mov eax,[ebx+08h] imul ebp,edi mov ecx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,ecx jc L0009D780 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0009D780 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009D780 push ebx call [ebx+10h] mov eax,[ebx+08h] L0009D780: lea edx,[eax+ebp*4] add eax,00000004h test edi,edi mov [ebx+08h],edx mov [esp+28h],eax mov ebp,eax mov [esp+24h],edi jbe L0009D85D mov eax,[esp+10h] mov ecx,[esp+14h] and eax,0000FFFFh mov [esp+1Ch],eax add eax,ecx mov [esp+18h],eax L0009D7B2: mov edx,[esp+34h] xor eax,eax mov ax,[edx] xor edi,edi mov ecx,edx mov di,[ecx+02h] add ecx,00000004h mov [esp+34h],ecx mov ecx,[esp+18h] add ecx,eax test ecx,ecx jl L0009D8C5 mov edx,[esi+00000A34h] cmp ecx,edx jge L0009D8C5 mov ecx,[esp+18h] add ecx,edi test ecx,ecx jl L0009D891 cmp ecx,edx jge L0009D891 mov edx,[esp+1Ch] add edx,eax imul edx,[esp+20h] add edx,[esp+38h] push edx push ebp push esi call SUB_L00040370 mov ecx,[esp+1Ch] mov eax,[esi+000005D4h] mov edx,[esp+38h] add ecx,edi imul ecx,[esp+20h] shr eax,02h add ecx,edx push ecx lea ebp,[ebp+eax*4+00h] push ebp push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+24h] shr edx,02h dec eax lea ebp,[ebp+edx*4+00h] mov [esp+24h],eax jnz L0009D7B2 mov eax,[esp+28h] mov edi,[esp+30h] L0009D85D: mov edx,[esi+000005D4h] mov ecx,[esp+3Ch] imul edx,edi shl edx,1 shr edx,02h sub ecx,edi dec edx or edx,7F140000h test ecx,ecx mov [esp+3Ch],ecx mov [eax-04h],edx ja L0009D71A pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ L0009D891: mov eax,[esi+000005D4h] imul eax,[esp+30h] shl eax,1 shr eax,02h or ecx,FFFFFFFFh sub ecx,eax mov eax,[ebx+08h] shl ecx,02h add eax,ecx pop edi mov [ebx+08h],eax mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ L0009D8C5: mov edx,[esi+000005D4h] imul edx,[esp+30h] mov ecx,[ebx+08h] shl edx,1 or eax,FFFFFFFFh shr edx,02h sub eax,edx shl eax,02h add ecx,eax mov [ebx+08h],ecx mov dword ptr [esi+000005B0h],00000001h L0009D8EF: pop edi pop esi pop ebp pop ebx add esp,0000001Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L0009D900: sub esp,00000018h mov ecx,[esp+20h] push ebx push esi mov esi,[esp+24h] mov eax,[esi+000005D0h] mov ebx,[esi+0000017Ch] mov [esp+18h],eax lea eax,[ecx+03h] mov ecx,[esp+30h] push edi mov edi,[esi+00000148h] and eax,FFFFFFFCh test ecx,ecx mov [esp+18h],edi mov [esp+2Ch],eax jbe L0009DB19 push ebp jmp L0009D949 L0009D941: mov edi,[esp+1Ch] mov ecx,[esp+38h] L0009D949: cmp ecx,00000666h mov dword ptr [esp+2Ch],00000666h ja L0009D95D mov [esp+2Ch],ecx L0009D95D: mov ebp,[esi+000005D4h] imul ebp,[esp+2Ch] mov eax,[edi+08h] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[edi+0Ch] mov [esp+10h],eax jc L0009D9BE push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] mov [esp+10h],eax jz L0009D9BA mov [ecx+74h],edx mov eax,[edi+1Ch] push eax push edi call [edi+20h] mov eax,[edi+08h] mov edx,[edi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+10h],eax jc L0009D9BA push edi call [edi+10h] mov eax,[edi+08h] mov [esp+10h],eax L0009D9BA: mov ecx,[esp+38h] L0009D9BE: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [edi+08h],edx jbe L0009D9D7 mov edi,00000666h mov [esp+14h],edi jmp L0009D9DD L0009D9D7: mov [esp+14h],ecx mov edi,ecx L0009D9DD: mov ebp,[esi+000005D4h] mov eax,[ebx+08h] imul ebp,edi mov edx,[ebx+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+18h],ebp jc L0009DA38 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0009DA34 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov ebp,[esp+18h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009DA38 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0009DA38 L0009DA34: mov ebp,[esp+18h] L0009DA38: lea edx,[eax+ebp*4] lea ebp,[eax+04h] mov eax,[esp+2Ch] cmp eax,edi mov [ebx+08h],edx mov [esp+24h],ebp jc L0009DA53 mov [esp+2Ch],edi mov eax,edi L0009DA53: test eax,eax jbe L0009DAAD mov [esp+18h],eax L0009DA5B: mov edi,[esp+30h] mov eax,[esp+20h] push edi push edi mov ecx,edi push ebp add ecx,eax push esi mov [esp+40h],ecx call SUB_L0003EC00 mov ecx,[esi+000005D4h] mov edx,[esp+30h] push edi shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push esi call SUB_L0003EC00 mov eax,[esi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] dec [esp+18h] jnz L0009DA5B mov ebp,[esp+24h] mov edi,[esp+14h] mov eax,[esp+2Ch] L0009DAAD: mov ecx,[esp+38h] mov edx,[esp+10h] sub ecx,eax mov [esp+38h],ecx mov ecx,[esi+000005D4h] imul ecx,eax shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h cmp eax,edi mov [edx],ecx mov ecx,[esi+000005D4h] jz L0009DAFA sub edi,eax mov edx,ecx shr edx,02h imul edi,edx shl edi,1 test eax,eax jnz L0009DAED inc edi L0009DAED: mov edx,[ebx+08h] neg edi shl edi,02h add edx,edi mov [ebx+08h],edx L0009DAFA: imul ecx,eax mov eax,[esp+38h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h test eax,eax mov [ebp-04h],ecx ja L0009D941 pop ebp L0009DB19: pop edi pop esi pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009DB30: sub esp,00000018h mov ecx,[esp+20h] push ebx push ebp push esi push edi mov edi,[esp+2Ch] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov esi,[edi+0000017Ch] mov [esp+20h],eax lea eax,[ecx+03h] mov ecx,[esp+38h] and eax,FFFFFFFCh xor ebp,ebp cmp ecx,ebp mov [esp+10h],eax jbe L0009DD71 jmp L0009DB73 L0009DB6F: mov ecx,[esp+38h] L0009DB73: cmp ecx,00000666h mov dword ptr [esp+2Ch],00000666h ja L0009DB87 mov [esp+2Ch],ecx L0009DB87: mov ebp,[edi+000005D4h] imul ebp,[esp+2Ch] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+14h],eax jc L0009DBE8 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+14h],eax jz L0009DBE4 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+14h],eax jc L0009DBE4 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+14h],eax L0009DBE4: mov ecx,[esp+38h] L0009DBE8: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [ebx+08h],edx jbe L0009DC01 mov ebp,00000666h mov [esp+1Ch],ebp jmp L0009DC07 L0009DC01: mov [esp+1Ch],ecx mov ebp,ecx L0009DC07: mov ecx,[edi+000005D4h] mov eax,[esi+08h] imul ecx,ebp shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+30h],edx lea edx,[edx+ecx*4] cmp edx,[esi+0Ch] mov [esp+18h],ecx jc L0009DC70 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+30h],eax jz L0009DC6C mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+18h] mov ecx,eax mov [esp+30h],ecx lea ecx,[ecx+edx*4] cmp ecx,[esi+0Ch] jc L0009DC6C push esi call [esi+10h] mov eax,[esi+08h] mov [esp+30h],eax L0009DC6C: mov ecx,[esp+18h] L0009DC70: lea edx,[eax+ecx*4] mov eax,[esp+30h] add eax,00000004h mov [esp+24h],eax mov [esp+30h],eax mov eax,[esp+2Ch] cmp eax,ebp mov [esi+08h],edx jc L0009DC93 mov [esp+2Ch],ebp mov eax,ebp L0009DC93: test eax,eax jbe L0009DD00 mov [esp+18h],eax L0009DC9B: mov ebp,[esp+10h] mov edx,[esp+30h] mov ecx,[esp+20h] push ebp push ebp mov eax,ebp push edx add eax,ecx push edi mov [esp+20h],eax call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+30h] mov edx,[esp+10h] push ebp shr eax,02h lea eax,[ecx+eax*4] push edx push eax push edi mov [esp+40h],eax call SUB_L0003EC00 mov eax,[edi+000005D4h] mov ecx,[esp+30h] shr eax,02h lea edx,[ecx+eax*4] mov eax,[esp+18h] dec eax mov [esp+30h],edx mov [esp+18h],eax jnz L0009DC9B mov ebp,[esp+1Ch] mov eax,[esp+2Ch] L0009DD00: mov ecx,[esp+38h] mov edx,[esp+14h] sub ecx,eax mov [esp+38h],ecx mov ecx,[edi+000005D4h] imul ecx,eax shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h cmp eax,ebp mov [edx],ecx mov ecx,[edi+000005D4h] jz L0009DD4D sub ebp,eax mov edx,ecx shr edx,02h imul ebp,edx shl ebp,1 test eax,eax jnz L0009DD40 inc ebp L0009DD40: mov edx,[esi+08h] neg ebp shl ebp,02h add edx,ebp mov [esi+08h],edx L0009DD4D: imul ecx,eax mov eax,[esp+24h] shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+38h] test eax,eax ja L0009DB6F xor ebp,ebp L0009DD71: push 00000001h push ebx push edi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push esi push edi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push esi call [esi+14h] pop edi mov [esi+0Ch],ebp mov [esi+08h],ebp mov [esi+04h],ebp pop esi pop ebp pop ebx add esp,00000018h retn 0010h ;------------------------------------------------------------------------------ Align 8 L0009DDB0: sub esp,0000000Ch mov ecx,[esp+14h] push esi push edi mov edi,[esp+18h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] mov [esp+0Ch],eax lea eax,[ecx+03h] and eax,FFFFFFFCh mov [esp+18h],eax mov eax,[esp+24h] test eax,eax jbe L0009DED9 push ebx push ebp L0009DDE5: cmp eax,00000666h jbe L0009DDF7 mov ebx,00000666h mov [esp+24h],ebx jmp L0009DDFD L0009DDF7: mov [esp+24h],eax mov ebx,eax L0009DDFD: mov ebp,[edi+000005D4h] mov eax,[esi+08h] imul ebp,ebx mov ecx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,ecx jc L0009DE4A push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009DE4A mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009DE4A push esi call [esi+10h] mov eax,[esi+08h] L0009DE4A: test ebx,ebx lea edx,[eax+ebp*4] lea ebp,[eax+04h] mov [esi+08h],edx mov [esp+18h],ebp jbe L0009DEAD mov [esp+10h],ebx L0009DE5F: mov ebx,[esp+20h] mov eax,[esp+14h] push ebx push ebx mov ecx,ebx push ebp add ecx,eax push edi mov [esp+30h],ecx call SUB_L0003EC00 mov ecx,[edi+000005D4h] mov edx,[esp+20h] push ebx shr ecx,02h push edx lea ebp,[ebp+ecx*4+00h] push ebp push edi call SUB_L0003EC00 mov eax,[edi+000005D4h] shr eax,02h lea ebp,[ebp+eax*4+00h] dec [esp+10h] jnz L0009DE5F mov ebp,[esp+18h] mov ebx,[esp+24h] L0009DEAD: mov ecx,[edi+000005D4h] mov eax,[esp+2Ch] imul ecx,ebx shl ecx,1 shr ecx,02h sub eax,ebx dec ecx or ecx,7F140000h test eax,eax mov [esp+2Ch],eax mov [ebp-04h],ecx ja L0009DDE5 pop ebp pop ebx L0009DED9: pop edi pop esi add esp,0000000Ch retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009DEF0: sub esp,00000014h mov ecx,[esp+1Ch] mov edx,[esp+24h] push ebp push esi mov esi,[esp+20h] mov eax,[esi+000005D0h] mov ebp,[esi+00000148h] mov [esp+14h],eax lea eax,[ecx+03h] and eax,FFFFFFFCh test edx,edx push edi mov edi,[esi+0000017Ch] mov [esp+10h],eax jbe L0009E109 push ebx jmp L0009DF31 L0009DF2D: mov edx,[esp+34h] L0009DF31: cmp edx,00000666h mov dword ptr [esp+28h],00000666h ja L0009DF45 mov [esp+28h],edx L0009DF45: mov ebx,[esi+000005D4h] imul ebx,[esp+28h] mov eax,[ebp+08h] shl ebx,1 shr ebx,02h mov ecx,eax inc ebx mov [esp+10h],ecx lea ecx,[ecx+ebx*4] cmp ecx,[ebp+0Ch] jc L0009DFAA push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+10h],eax jz L0009DFA6 mov [ecx+74h],edx mov edx,[ebp+1Ch] push edx push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov ecx,eax mov [esp+10h],ecx lea ecx,[ecx+ebx*4] cmp ecx,edx jc L0009DFA6 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+10h],eax L0009DFA6: mov edx,[esp+34h] L0009DFAA: cmp edx,00000666h lea eax,[eax+ebx*4] mov [ebp+08h],eax mov dword ptr [esp+2Ch],00000666h ja L0009DFC4 mov [esp+2Ch],edx L0009DFC4: mov ebx,[esi+000005D4h] imul ebx,[esp+2Ch] mov eax,[edi+08h] mov edx,[edi+0Ch] shl ebx,1 shr ebx,02h inc ebx lea ecx,[eax+ebx*4] cmp ecx,edx mov [esp+18h],ebx jc L0009E021 push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0009E01D mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov ebx,[esp+18h] mov edx,[edi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0009E021 push edi call [edi+10h] mov eax,[edi+08h] jmp L0009E021 L0009E01D: mov ebx,[esp+18h] L0009E021: mov ecx,[esp+28h] lea edx,[eax+ebx*4] add eax,00000004h mov [esp+20h],eax mov ebx,eax mov eax,[esp+2Ch] cmp ecx,eax mov [edi+08h],edx jc L0009E042 mov [esp+28h],eax mov ecx,eax L0009E042: test ecx,ecx jbe L0009E099 mov [esp+18h],ecx L0009E04A: mov eax,[esp+14h] mov edx,[esp+1Ch] mov ecx,eax push ecx push ebx add eax,edx push esi mov [esp+20h],eax call SUB_L00040370 mov eax,[esi+000005D4h] mov ecx,[esp+14h] shr eax,02h push ecx lea ebx,[ebx+eax*4] push ebx push esi call SUB_L00040370 mov edx,[esi+000005D4h] mov eax,[esp+18h] shr edx,02h dec eax lea ebx,[ebx+edx*4] mov [esp+18h],eax jnz L0009E04A mov eax,[esp+2Ch] mov ecx,[esp+28h] L0009E099: mov edx,[esp+34h] mov ebx,[esp+10h] sub edx,ecx mov [esp+34h],edx mov edx,[esi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebx],edx mov edx,[esi+000005D4h] jz L0009E0E6 sub eax,ecx mov ebx,edx shr ebx,02h imul eax,ebx shl eax,1 test ecx,ecx jnz L0009E0D9 inc eax L0009E0D9: mov ebx,[edi+08h] neg eax shl eax,02h add ebx,eax mov [edi+08h],ebx L0009E0E6: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+34h] test eax,eax ja L0009DF2D pop ebx L0009E109: pop edi pop esi pop ebp add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009E120: sub esp,00000014h mov ecx,[esp+1Ch] push ebx push ebp push esi push edi mov edi,[esp+28h] mov eax,[edi+000005D0h] mov ebx,[edi+00000148h] mov esi,[edi+0000017Ch] mov [esp+1Ch],eax lea eax,[ecx+03h] mov ecx,[esp+34h] and eax,FFFFFFFCh xor ebp,ebp cmp ecx,ebp mov [esp+14h],eax jbe L0009E33B jmp L0009E163 L0009E15F: mov ecx,[esp+34h] L0009E163: cmp ecx,00000666h mov dword ptr [esp+28h],00000666h ja L0009E177 mov [esp+28h],ecx L0009E177: mov ebp,[edi+000005D4h] imul ebp,[esp+28h] mov eax,[ebx+08h] shl ebp,1 shr ebp,02h inc ebp lea edx,[eax+ebp*4] cmp edx,[ebx+0Ch] mov [esp+10h],eax jc L0009E1D8 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] mov [esp+10h],eax jz L0009E1D4 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+10h],eax jc L0009E1D4 push ebx call [ebx+10h] mov eax,[ebx+08h] mov [esp+10h],eax L0009E1D4: mov ecx,[esp+34h] L0009E1D8: cmp ecx,00000666h lea edx,[eax+ebp*4] mov [ebx+08h],edx mov dword ptr [esp+2Ch],00000666h ja L0009E1F2 mov [esp+2Ch],ecx L0009E1F2: mov ebp,[edi+000005D4h] imul ebp,[esp+2Ch] mov eax,[esi+08h] mov edx,[esi+0Ch] shl ebp,1 shr ebp,02h inc ebp lea ecx,[eax+ebp*4] cmp ecx,edx mov [esp+18h],ebp jc L0009E24F push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009E24B mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov ebp,[esp+18h] mov edx,[esi+0Ch] lea ecx,[eax+ebp*4] cmp ecx,edx jc L0009E24F push esi call [esi+10h] mov eax,[esi+08h] jmp L0009E24F L0009E24B: mov ebp,[esp+18h] L0009E24F: mov ecx,[esp+28h] lea edx,[eax+ebp*4] add eax,00000004h mov [esp+20h],eax mov ebp,eax mov eax,[esp+2Ch] cmp ecx,eax mov [esi+08h],edx jc L0009E270 mov [esp+28h],eax mov ecx,eax L0009E270: test ecx,ecx jbe L0009E2C9 mov [esp+18h],ecx L0009E278: mov eax,[esp+14h] mov edx,[esp+1Ch] mov ecx,eax push ecx push ebp add eax,edx push edi mov [esp+20h],eax call SUB_L00040370 mov eax,[edi+000005D4h] mov ecx,[esp+14h] shr eax,02h push ecx lea ebp,[ebp+eax*4+00h] push ebp push edi call SUB_L00040370 mov edx,[edi+000005D4h] mov eax,[esp+18h] shr edx,02h dec eax lea ebp,[ebp+edx*4+00h] mov [esp+18h],eax jnz L0009E278 mov eax,[esp+2Ch] mov ecx,[esp+28h] L0009E2C9: mov edx,[esp+34h] mov ebp,[esp+10h] sub edx,ecx mov [esp+34h],edx mov edx,[edi+000005D4h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp ecx,eax mov [ebp+00h],edx mov edx,[edi+000005D4h] jz L0009E317 sub eax,ecx mov ebp,edx shr ebp,02h imul eax,ebp shl eax,1 test ecx,ecx jnz L0009E30A inc eax L0009E30A: mov ebp,[esi+08h] neg eax shl eax,02h add ebp,eax mov [esi+08h],ebp L0009E317: mov eax,[esp+20h] imul edx,ecx shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+34h] test eax,eax ja L0009E15F xor ebp,ebp L0009E33B: push 00000001h push ebx push edi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] push ebp push esi push edi mov [ebx+0Ch],ebp mov [ebx+08h],ebp mov [ebx+04h],ebp call SUB_L000ABBE0 push 00000002h push esi call [esi+14h] pop edi mov [esi+0Ch],ebp mov [esi+08h],ebp mov [esi+04h],ebp pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009E380: sub esp,00000008h mov ecx,[esp+10h] mov edx,[esp+18h] push ebp push esi push edi mov edi,[esp+18h] mov eax,[edi+000005D0h] mov esi,[edi+00000148h] lea ebp,[ecx+03h] and ebp,FFFFFFFCh test edx,edx mov [esp+0Ch],eax jbe L0009E49E push ebx L0009E3B1: cmp edx,00000666h jbe L0009E3C4 mov ecx,00000666h mov [esp+1Ch],ecx jmp L0009E3CA L0009E3C4: mov [esp+1Ch],edx mov ecx,edx L0009E3CA: mov ebx,[edi+000005D4h] mov eax,[esi+08h] imul ebx,ecx shl ebx,1 shr ebx,02h inc ebx lea edx,[eax+ebx*4] cmp edx,[esi+0Ch] jc L0009E419 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L0009E415 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+ebx*4] cmp ecx,edx jc L0009E415 push esi call [esi+10h] mov eax,[esi+08h] L0009E415: mov ecx,[esp+1Ch] L0009E419: lea edx,[eax+ebx*4] add eax,00000004h test ecx,ecx mov [esi+08h],edx mov [esp+14h],eax mov ebx,eax jbe L0009E473 mov [esp+20h],ecx L0009E430: mov edx,[esp+10h] mov eax,ebp push eax push ebx push edi add ebp,edx call SUB_L00040370 mov eax,[edi+000005D4h] shr eax,02h push ebp lea ebx,[ebx+eax*4] push ebx push edi call SUB_L00040370 mov ecx,[edi+000005D4h] mov eax,[esp+20h] shr ecx,02h dec eax lea ebx,[ebx+ecx*4] mov [esp+20h],eax jnz L0009E430 mov eax,[esp+14h] mov ecx,[esp+1Ch] L0009E473: mov ebx,[edi+000005D4h] mov edx,[esp+28h] imul ebx,ecx shl ebx,1 shr ebx,02h sub edx,ecx dec ebx or ebx,7F140000h test edx,edx mov [esp+28h],edx mov [eax-04h],ebx ja L0009E3B1 pop ebx L0009E49E: pop edi pop esi pop ebp add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009E4B0: sub esp,00000020h push ebx push ebp mov ebp,[esp+2Ch] mov eax,[ebp+000005D0h] mov ebx,[ebp+0000017Ch] push esi mov esi,[ebp+00000148h] mov [esp+18h],eax cmp dword ptr [ebp+00000138h],00000004h push edi mov [esp+24h],esi jc L0009E4E8 mov dword ptr [esp+40h],00000001h jmp L0009E4F4 L0009E4E8: mov eax,[esp+40h] test eax,eax jbe L0009E7B6 L0009E4F4: mov edx,[esp+38h] xor eax,eax mov ax,[edx+02h] xor edi,edi mov di,[edx] add edx,00000004h mov [esp+38h],edx mov edx,[esp+40h] mov ecx,eax imul ecx,[esp+1Ch] add ecx,[esp+3Ch] dec edx test eax,eax mov [esp+10h],edi mov [esp+14h],ecx mov [esp+40h],edx jl L0009E7AC mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0009E7AC lea eax,[eax+edi-01h] test eax,eax jl L0009E7AC cmp eax,ecx jge L0009E7AC test edi,edi jbe L0009E796 jmp L0009E55E L0009E55A: mov edi,[esp+10h] L0009E55E: cmp edi,00000666h jbe L0009E56B mov edi,00000666h L0009E56B: mov eax,[esi+08h] mov ecx,edi imul ecx,[ebp+000005D4h] shl ecx,1 shr ecx,02h inc ecx mov edx,eax mov [esp+18h],edx lea edx,[edx+ecx*4] cmp edx,[esi+0Ch] mov [esp+34h],ecx jc L0009E5D4 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [esp+18h],eax jz L0009E5D0 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esp+34h] mov ecx,eax mov [esp+18h],ecx lea ecx,[ecx+edx*4] cmp ecx,[esi+0Ch] jc L0009E5D0 push esi call [esi+10h] mov eax,[esi+08h] mov [esp+18h],eax L0009E5D0: mov ecx,[esp+34h] L0009E5D4: lea edx,[eax+ecx*4] mov eax,[esp+10h] cmp eax,00000666h mov [esi+08h],edx jbe L0009E5F0 mov ecx,00000666h mov [esp+34h],ecx jmp L0009E5F6 L0009E5F0: mov [esp+34h],eax mov ecx,eax L0009E5F6: mov eax,ecx imul eax,[ebp+000005D4h] shl eax,1 mov esi,eax mov eax,[ebx+08h] shr esi,02h inc esi lea edx,[eax+esi*4] cmp edx,[ebx+0Ch] jc L0009E647 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0009E643 mov [ecx+74h],edx mov eax,[ebx+1Ch] push eax push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0009E643 push ebx call [ebx+10h] mov eax,[ebx+08h] L0009E643: mov ecx,[esp+34h] L0009E647: lea edx,[eax+esi*4] add eax,00000004h cmp edi,ecx mov [ebx+08h],edx mov [esp+2Ch],eax mov esi,eax jc L0009E65C mov edi,ecx L0009E65C: test edi,edi mov dword ptr [esp+20h],00000000h jbe L0009E727 L0009E66C: mov eax,[esp+14h] push eax push esi push ebp call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+14h] mov [esp+28h],eax fild dword ptr [esp+28h] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[ebp+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push ebp call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[ebp+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+20h] cmp eax,edi jnc L0009E71F mov edx,[esp+14h] mov ecx,[esp+1Ch] add edx,ecx inc eax cmp eax,edi mov [esp+14h],edx mov [esp+20h],eax jc L0009E66C L0009E71F: mov eax,[esp+2Ch] mov ecx,[esp+34h] L0009E727: mov edx,[esp+10h] mov esi,[esp+18h] sub edx,edi mov [esp+10h],edx mov edx,edi imul edx,[ebp+000005D4h] shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp edi,ecx mov [esi],edx mov edx,[ebp+000005D4h] jz L0009E774 sub ecx,edi mov esi,edx shr esi,02h imul ecx,esi shl ecx,1 test edi,edi jnz L0009E767 inc ecx L0009E767: mov esi,[ebx+08h] neg ecx shl ecx,02h add esi,ecx mov [ebx+08h],esi L0009E774: mov esi,[esp+24h] imul edx,edi shl edx,1 shr edx,02h dec edx or edx,7F140000h mov [eax-04h],edx mov eax,[esp+10h] test eax,eax ja L0009E55A L0009E796: mov eax,[esp+40h] test eax,eax ja L0009E4F4 pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009E7AC: mov dword ptr [ebp+000005B0h],00000001h L0009E7B6: pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009E7C0: sub esp,00000020h push ebx push ebp push esi mov esi,[esp+30h] mov eax,[esi+000005D0h] mov ebp,[esi+00000148h] mov ebx,[esi+0000017Ch] mov [esp+20h],eax cmp dword ptr [esi+00000138h],00000004h push edi jc L0009E7F4 mov dword ptr [esp+40h],00000001h jmp L0009E802 L0009E7F4: mov eax,[esp+40h] xor edi,edi cmp eax,edi jbe L0009EAE5 L0009E802: mov edi,[esp+38h] xor eax,eax mov ax,[edi+02h] xor ecx,ecx mov cx,[edi] add edi,00000004h mov [esp+38h],edi mov edi,[esp+40h] mov edx,eax imul edx,[esp+24h] add edx,[esp+3Ch] dec edi mov [esp+40h],edi xor edi,edi cmp eax,edi mov [esp+10h],ecx mov [esp+18h],edx jl L0009EAD1 mov edx,[esi+00000A34h] cmp eax,edx jge L0009EAD1 lea eax,[eax+ecx-01h] cmp eax,edi jl L0009EAD1 cmp eax,edx jge L0009EAD1 cmp ecx,edi jbe L0009EABC jmp L0009E872 L0009E86A: mov esi,[esp+34h] mov ecx,[esp+10h] L0009E872: cmp ecx,00000666h mov edi,00000666h ja L0009E881 mov edi,ecx L0009E881: mov eax,[ebp+08h] mov edx,edi imul edx,[esi+000005D4h] shl edx,1 mov esi,edx shr esi,02h mov edx,eax inc esi mov [esp+1Ch],edx lea edx,[edx+esi*4] cmp edx,[ebp+0Ch] jc L0009E8E6 push ebp call [ebp+10h] mov ecx,[ebp+18h] mov edx,[ebp+1Ch] cmp [ecx+74h],edx mov eax,[ebp+08h] mov [esp+1Ch],eax jz L0009E8E2 mov [ecx+74h],edx mov eax,[ebp+1Ch] push eax push ebp call [ebp+20h] mov eax,[ebp+08h] mov edx,[ebp+0Ch] mov ecx,eax mov [esp+1Ch],ecx lea ecx,[ecx+esi*4] cmp ecx,edx jc L0009E8E2 push ebp call [ebp+10h] mov eax,[ebp+08h] mov [esp+1Ch],eax L0009E8E2: mov ecx,[esp+10h] L0009E8E6: cmp ecx,00000666h lea edx,[eax+esi*4] mov [ebp+08h],edx mov dword ptr [esp+14h],00000666h ja L0009E900 mov [esp+14h],ecx L0009E900: mov eax,[esp+34h] mov esi,[esp+14h] imul esi,[eax+000005D4h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+20h],esi jc L0009E961 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L0009E95D mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov esi,[esp+20h] mov edx,[ebx+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0009E961 push ebx call [ebx+10h] mov eax,[ebx+08h] jmp L0009E961 L0009E95D: mov esi,[esp+20h] L0009E961: lea edx,[eax+esi*4] add eax,00000004h mov [esp+2Ch],eax mov esi,eax mov eax,[esp+14h] cmp edi,eax mov [ebx+08h],edx jc L0009E97A mov edi,eax L0009E97A: test edi,edi mov dword ptr [esp+20h],00000000h jbe L0009EAC8 L0009E98A: mov eax,[esp+18h] mov ecx,[esp+34h] push eax push esi push ecx call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+18h] mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+34h] push ecx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov edx,[eax+000005D4h] shr edx,02h lea esi,[esi+edx*4] push esi push eax call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+28h],eax fild dword ptr [esp+28h] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov ecx,[esp+34h] mov [esp+28h],eax fild dword ptr [esp+28h] mov eax,[esp+20h] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov edx,[ecx+000005D4h] shr edx,02h cmp eax,edi lea esi,[esi+edx*4] jnc L0009EA43 mov edx,[esp+24h] add [esp+18h],edx inc eax cmp eax,edi mov [esp+20h],eax jc L0009E98A L0009EA43: mov eax,[esp+14h] L0009EA47: mov edx,[esp+10h] mov esi,[esp+1Ch] sub edx,edi mov [esp+10h],edx mov edx,edi imul edx,[ecx+000005D4h] shl edx,1 shr edx,02h dec edx or edx,7F140000h cmp edi,eax mov [esi],edx mov ecx,[ecx+000005D4h] jz L0009EA94 sub eax,edi mov edx,ecx shr edx,02h imul eax,edx shl eax,1 test edi,edi jnz L0009EA87 inc eax L0009EA87: mov edx,[ebx+08h] neg eax shl eax,02h add edx,eax mov [ebx+08h],edx L0009EA94: mov eax,[esp+2Ch] imul ecx,edi shl ecx,1 shr ecx,02h dec ecx or ecx,7F140000h mov [eax-04h],ecx mov eax,[esp+10h] test eax,eax ja L0009E86A mov esi,[esp+34h] xor edi,edi L0009EABC: cmp [esp+40h],edi ja L0009E802 jmp L0009EAE5 L0009EAC8: mov ecx,[esp+34h] jmp L0009EA47 L0009EAD1: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ L0009EAE5: push 00000001h push ebp push esi call SUB_L000ABBE0 push 00000002h push ebp call [ebp+14h] push edi push ebx push esi mov [ebp+0Ch],edi mov [ebp+08h],edi mov [ebp+04h],edi call SUB_L000ABBE0 push 00000002h push ebx call [ebx+14h] mov [ebx+0Ch],edi mov [ebx+08h],edi mov [ebx+04h],edi pop edi pop esi pop ebp pop ebx add esp,00000020h retn 0010h ;------------------------------------------------------------------------------ Align 4 L0009EB20: sub esp,00000014h push ebx push ebp mov ebp,[esp+20h] mov eax,[ebp+000005D0h] mov [esp+10h],eax cmp dword ptr [ebp+00000138h],00000004h push esi push edi mov edi,[ebp+00000148h] jc L0009EB4E mov dword ptr [esp+34h],00000001h jmp L0009EB5A L0009EB4E: mov eax,[esp+34h] test eax,eax jbe L0009ED4E L0009EB5A: mov edx,[esp+2Ch] mov esi,[esp+30h] xor eax,eax mov ax,[edx+02h] xor ebx,ebx mov bx,[edx] add edx,00000004h mov [esp+2Ch],edx mov edx,[esp+34h] mov ecx,eax imul ecx,[esp+18h] add ecx,esi dec edx test eax,eax mov [esp+10h],ebx mov [esp+28h],ecx mov [esp+34h],edx jl L0009ED44 mov ecx,[ebp+00000A34h] cmp eax,ecx jge L0009ED44 lea eax,[eax+ebx-01h] test eax,eax jl L0009ED44 cmp eax,ecx jge L0009ED44 test ebx,ebx jbe L0009ED2E jmp L0009EBC6 L0009EBC2: mov ebx,[esp+10h] L0009EBC6: cmp ebx,00000666h jbe L0009EBD3 mov ebx,00000666h L0009EBD3: mov esi,[ebp+000005D4h] mov eax,[edi+08h] imul esi,ebx mov edx,[edi+0Ch] shl esi,1 shr esi,02h inc esi lea ecx,[eax+esi*4] cmp ecx,edx mov [esp+14h],esi jc L0009EC2E push edi call [edi+10h] mov ecx,[edi+18h] mov edx,[edi+1Ch] cmp [ecx+74h],edx mov eax,[edi+08h] jz L0009EC2A mov [ecx+74h],edx mov edx,[edi+1Ch] push edx push edi call [edi+20h] mov eax,[edi+08h] mov esi,[esp+14h] mov edx,[edi+0Ch] lea ecx,[eax+esi*4] cmp ecx,edx jc L0009EC2E push edi call [edi+10h] mov eax,[edi+08h] jmp L0009EC2E L0009EC2A: mov esi,[esp+14h] L0009EC2E: lea edx,[eax+esi*4] add eax,00000004h test ebx,ebx mov [edi+08h],edx mov [esp+20h],eax mov esi,eax mov dword ptr [esp+14h],00000000h jbe L0009ED04 L0009EC4D: mov eax,[esp+28h] push eax push esi push ebp call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fsub dword ptr [L000B2488] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov edx,[esp+28h] mov [esp+1Ch],eax fild dword ptr [esp+1Ch] push edx fsub dword ptr [L000B2488] fstp dword ptr [esi+04h] mov ecx,[ebp+000005D4h] shr ecx,02h lea esi,[esi+ecx*4] push esi push ebp call SUB_L00040370 fld dword ptr [esi] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi] fld dword ptr [esi+04h] call SUB_L000AF4EC mov [esp+1Ch],eax fild dword ptr [esp+1Ch] fadd dword ptr [L000B2484] fstp dword ptr [esi+04h] mov eax,[ebp+000005D4h] shr eax,02h lea esi,[esi+eax*4] mov eax,[esp+14h] cmp eax,ebx jnc L0009ED00 mov edx,[esp+28h] mov ecx,[esp+18h] add edx,ecx inc eax cmp eax,ebx mov [esp+28h],edx mov [esp+14h],eax jc L0009EC4D L0009ED00: mov eax,[esp+20h] L0009ED04: mov edx,[ebp+000005D4h] mov ecx,[esp+10h] imul edx,ebx shl edx,1 shr edx,02h sub ecx,ebx dec edx or edx,7F140000h test ecx,ecx mov [esp+10h],ecx mov [eax-04h],edx ja L0009EBC2 L0009ED2E: mov eax,[esp+34h] test eax,eax ja L0009EB5A pop edi pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ L0009ED44: mov dword ptr [ebp+000005B0h],00000001h L0009ED4E: pop edi pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 16 L0009ED60: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm0,[ecx] ; MMX movq [eax+10h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+18h],mm1 ; MMX movq mm0,[edx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+28h],mm1 ; MMX emms ; MMX add dword ptr [ebp+08h],00000030h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009EDB0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+14h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+1Ch],mm1 ; MMX movd [eax+24h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd [eax+38h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],0000003Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009EE10: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+14h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+1Ch],mm1 ; MMX movd mm5,[ecx+10h] ; MMX movq mm4,[L000B4AC8] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4AC0] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+24h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm5,[edx+10h] ; MMX movq mm4,[L000B4AC8] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4AC0] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+38h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],0000003Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L0009EEB0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movq mm5,[ecx+10h] ; MMX pand mm5,[L000B4AD8] ; MMX pand mm2,[L000B4AD0] ; MMX por mm2,mm5 ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movq mm5,[edx+10h] ; MMX pand mm5,[L000B4AD8] ; MMX pand mm2,[L000B4AD0] ; MMX por mm2,mm5 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009EF40: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4AF0] ; MMX movq mm7,[L000B4AE8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4AE0] ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movq mm2,[L000B4AE0] ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movq mm2,[L000B4AE0] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009EFC0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4B00] ; MMX movq mm7,[L000B4AF8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009F040: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5C9C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5C98],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5C94],ecx mov [L000B5C90],eax jnz L0009F096 cmp edi,eax jnz L0009F096 cmp ecx,eax jnz L0009F096 and [edx+10h],ebx L0009F096: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5C9C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5C98],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5C94],ecx mov [L000B5C8C],eax jnz L0009F0E1 cmp edi,eax jnz L0009F0E1 cmp ecx,eax jnz L0009F0E1 and [edx+10h],ebx L0009F0E1: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5C9C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5C98],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5C94],ecx mov [L000B5C88],eax jnz L0009F12C cmp edi,eax jnz L0009F12C cmp ecx,eax jnz L0009F12C and [edx+10h],ebx L0009F12C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4B18] ; MMX movq mm7,[L000B4B10] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4B08] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5C90] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4B08] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5C8C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4B08] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5C88] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009F200: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5CB4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5CB0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5CAC],ecx mov [L000B5CA8],eax jnz L0009F25C cmp esi,eax jnz L0009F25C cmp ecx,eax jnz L0009F25C mov [L000B4B40],ebx or edi,FFFFFFFFh jmp L0009F265 L0009F25C: or edi,FFFFFFFFh mov [L000B4B40],edi L0009F265: mov eax,[ebp+10h] xor edx,edx mov [L000B4B44],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5CB4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5CB0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5CAC],ecx mov [L000B5CA4],eax jnz L0009F2B7 cmp esi,eax jnz L0009F2B7 cmp ecx,eax mov [L000B4B38],ebx jz L0009F2BD L0009F2B7: mov [L000B4B38],edi L0009F2BD: mov eax,[ebp+14h] xor edx,edx mov [L000B4B3C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5CB4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5CB0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5CAC],ecx mov [L000B5CA0],eax jnz L0009F30F cmp esi,eax jnz L0009F30F cmp ecx,eax mov [L000B4B30],ebx jz L0009F315 L0009F30F: mov [L000B4B30],edi L0009F315: mov [L000B4B34],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4B28] ; MMX movq mm7,[L000B4B20] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4B40] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CA8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4B38] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CA4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4B30] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CA0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009F400: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+10h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+28h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+40h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009F480: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+1Ch],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+24h],mm1 ; MMX movd [eax+2Ch],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+30h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+38h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+40h],mm1 ; MMX movd [eax+48h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+4Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009F510: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+1Ch],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+24h],mm1 ; MMX movd mm5,[ecx+10h] ; MMX movq mm4,[L000B4B50] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4B48] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+2Ch],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+30h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+38h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+40h],mm1 ; MMX movd mm5,[edx+10h] ; MMX movq mm4,[L000B4B50] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4B48] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+48h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+4Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009F5E0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm5,[ecx+10h] ; MMX pand mm5,[L000B4B60] ; MMX pand mm2,[L000B4B58] ; MMX por mm2,mm5 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm5,[edx+10h] ; MMX pand mm5,[L000B4B60] ; MMX pand mm2,[L000B4B58] ; MMX por mm2,mm5 ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009F690: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4B78] ; MMX movq mm7,[L000B4B70] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4B68] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[L000B4B68] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[L000B4B68] ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L0009F730: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4B88] ; MMX movq mm7,[L000B4B80] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L0009F7D0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5CCC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5CC8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5CC4],ecx mov [L000B5CC0],eax jnz L0009F826 cmp edi,eax jnz L0009F826 cmp ecx,eax jnz L0009F826 and [edx+10h],ebx L0009F826: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5CCC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5CC8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5CC4],ecx mov [L000B5CBC],eax jnz L0009F871 cmp edi,eax jnz L0009F871 cmp ecx,eax jnz L0009F871 and [edx+10h],ebx L0009F871: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5CCC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5CC8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5CC4],ecx mov [L000B5CB8],eax jnz L0009F8BC cmp edi,eax jnz L0009F8BC cmp ecx,eax jnz L0009F8BC and [edx+10h],ebx L0009F8BC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4BA0] ; MMX movq mm7,[L000B4B98] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4B90] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CC0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4B90] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CBC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4B90] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CB8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009F9B0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5CE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5CE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5CDC],ecx mov [L000B5CD8],eax jnz L0009FA0C cmp esi,eax jnz L0009FA0C cmp ecx,eax jnz L0009FA0C mov [L000B4BC8],ebx or edi,FFFFFFFFh jmp L0009FA15 L0009FA0C: or edi,FFFFFFFFh mov [L000B4BC8],edi L0009FA15: mov eax,[ebp+10h] xor edx,edx mov [L000B4BCC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5CE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5CE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5CDC],ecx mov [L000B5CD4],eax jnz L0009FA67 cmp esi,eax jnz L0009FA67 cmp ecx,eax mov [L000B4BC0],ebx jz L0009FA6D L0009FA67: mov [L000B4BC0],edi L0009FA6D: mov eax,[ebp+14h] xor edx,edx mov [L000B4BC4],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5CE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5CE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5CDC],ecx mov [L000B5CD0],eax jnz L0009FABF cmp esi,eax jnz L0009FABF cmp ecx,eax mov [L000B4BB8],ebx jz L0009FAC5 L0009FABF: mov [L000B4BB8],edi L0009FAC5: mov [L000B4BBC],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4BB0] ; MMX movq mm7,[L000B4BA8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4BC8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CD8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4BC0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CD4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4BB8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CD0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009FBD0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX add ecx,edi movq mm3,[ecx+1Ch] ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd [eax+58h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+5Ch],mm3 ; MMX add edx,edi movq mm3,[edx+1Ch] ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009FC80: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd mm5,[ecx+10h] ; MMX movq mm4,[L000B4BD8] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4BD0] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX add ecx,edi movq mm3,[ecx+1Ch] ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd mm5,[edx+10h] ; MMX movq mm4,[L000B4BD8] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4BD0] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+58h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+5Ch],mm3 ; MMX add edx,edi movq mm3,[edx+1Ch] ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009FD70: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+20h] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm5,[ecx+10h] ; MMX pand mm5,[L000B4BE8] ; MMX pand mm2,[L000B4BE0] ; MMX por mm2,mm5 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+20h] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm5,[edx+10h] ; MMX pand mm5,[L000B4BE8] ; MMX pand mm2,[L000B4BE0] ; MMX por mm2,mm5 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+20h] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L0009FE40: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4C00] ; MMX movq mm7,[L000B4BF8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4BF0] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+18h] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[L000B4BF0] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+18h] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[L000B4BF0] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+18h] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009FF10: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4C10] ; MMX movq mm7,[L000B4C08] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+1Ch] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+1Ch] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L0009FFE0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5CFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5CF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5CF4],ecx mov [L000B5CF0],eax jnz L000A0036 cmp edi,eax jnz L000A0036 cmp ecx,eax jnz L000A0036 and [edx+10h],ebx L000A0036: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5CFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5CF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5CF4],ecx mov [L000B5CEC],eax jnz L000A0081 cmp edi,eax jnz L000A0081 cmp ecx,eax jnz L000A0081 and [edx+10h],ebx L000A0081: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5CFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5CF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5CF4],ecx mov [L000B5CE8],eax jnz L000A00CC cmp edi,eax jnz L000A00CC cmp ecx,eax jnz L000A00CC and [edx+10h],ebx L000A00CC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4C28] ; MMX movq mm7,[L000B4C20] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4C18] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CF0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4C18] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CEC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+1Ch] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4C18] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5CE8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+1Ch] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A01E0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5D14],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D10],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D0C],ecx mov [L000B5D08],eax jnz L000A023C cmp esi,eax jnz L000A023C cmp ecx,eax jnz L000A023C mov [L000B4C50],ebx or edi,FFFFFFFFh jmp L000A0245 L000A023C: or edi,FFFFFFFFh mov [L000B4C50],edi L000A0245: mov eax,[ebp+10h] xor edx,edx mov [L000B4C54],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5D14],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D10],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D0C],ecx mov [L000B5D04],eax jnz L000A0297 cmp esi,eax jnz L000A0297 cmp ecx,eax mov [L000B4C48],ebx jz L000A029D L000A0297: mov [L000B4C48],edi L000A029D: mov eax,[ebp+14h] xor edx,edx mov [L000B4C4C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5D14],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D10],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D0C],ecx mov [L000B5D00],eax jnz L000A02EF cmp esi,eax jnz L000A02EF cmp ecx,eax mov [L000B4C40],ebx jz L000A02F5 L000A02EF: mov [L000B4C40],edi L000A02F5: mov [L000B4C44],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4C38] ; MMX movq mm7,[L000B4C30] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4C50] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D08] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+20h] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4C48] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D04] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+20h] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4C40] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D00] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+20h] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A0420: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+1Ch],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+24h],mm1 ; MMX movd [eax+2Ch],mm2 ; MMX movq [eax+30h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+38h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+40h],mm1 ; MMX movd [eax+48h],mm2 ; MMX movq [eax+4Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A0490: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+1Ch],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+24h],mm1 ; MMX movd mm5,[ecx+10h] ; MMX movq mm4,[L000B4C60] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4C58] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+2Ch],mm2 ; MMX movq [eax+30h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+38h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+40h],mm1 ; MMX movd mm5,[edx+10h] ; MMX movq mm4,[L000B4C60] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4C58] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+48h],mm2 ; MMX movq [eax+4Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A0540: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm5,[ecx+10h] ; MMX pand mm5,[L000B4C70] ; MMX pand mm2,[L000B4C68] ; MMX por mm2,mm5 ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm5,[edx+10h] ; MMX pand mm5,[L000B4C70] ; MMX pand mm2,[L000B4C68] ; MMX por mm2,mm5 ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A05E0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4C88] ; MMX movq mm7,[L000B4C80] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4C78] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[L000B4C78] ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[L000B4C78] ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A0670: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4C98] ; MMX movq mm7,[L000B4C90] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A0700: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5D2C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D28],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D24],ecx mov [L000B5D20],eax jnz L000A0756 cmp edi,eax jnz L000A0756 cmp ecx,eax jnz L000A0756 and [edx+10h],ebx L000A0756: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5D2C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D28],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D24],ecx mov [L000B5D1C],eax jnz L000A07A1 cmp edi,eax jnz L000A07A1 cmp ecx,eax jnz L000A07A1 and [edx+10h],ebx L000A07A1: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5D2C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D28],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D24],ecx mov [L000B5D18],eax jnz L000A07EC cmp edi,eax jnz L000A07EC cmp ecx,eax jnz L000A07EC and [edx+10h],ebx L000A07EC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4CB0] ; MMX movq mm7,[L000B4CA8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4CA0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D20] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4CA0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D1C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4CA0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D18] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A08D0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5D44],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D40],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D3C],ecx mov [L000B5D38],eax jnz L000A092C cmp esi,eax jnz L000A092C cmp ecx,eax jnz L000A092C mov [L000B4CD8],ebx or edi,FFFFFFFFh jmp L000A0935 L000A092C: or edi,FFFFFFFFh mov [L000B4CD8],edi L000A0935: mov eax,[ebp+10h] xor edx,edx mov [L000B4CDC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5D44],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D40],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D3C],ecx mov [L000B5D34],eax jnz L000A0987 cmp esi,eax jnz L000A0987 cmp ecx,eax mov [L000B4CD0],ebx jz L000A098D L000A0987: mov [L000B4CD0],edi L000A098D: mov eax,[ebp+14h] xor edx,edx mov [L000B4CD4],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5D44],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D40],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D3C],ecx mov [L000B5D30],eax jnz L000A09DF cmp esi,eax jnz L000A09DF cmp ecx,eax mov [L000B4CC8],ebx jz L000A09E5 L000A09DF: mov [L000B4CC8],edi L000A09E5: mov [L000B4CCC],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4CC0] ; MMX movq mm7,[L000B4CB8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4CD8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D38] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4CD0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D34] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4CC8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D30] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A0AE0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm3,mm3 ; MMX movq [eax+10h],mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq [eax+30h],mm3 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq [eax+50h],mm3 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A0B50: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd [eax+34h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd [eax+58h],mm2 ; MMX movq [eax+5Ch],mm3 ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A0BD0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd mm5,[ecx+10h] ; MMX movq mm4,[L000B4CE8] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4CE0] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+34h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd mm5,[edx+10h] ; MMX movq mm4,[L000B4CE8] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4CE0] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+58h],mm2 ; MMX movq [eax+5Ch],mm3 ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A0C90: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm5,[ecx+10h] ; MMX pand mm5,[L000B4CF8] ; MMX pand mm2,[L000B4CF0] ; MMX por mm2,mm5 ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm5,[edx+10h] ; MMX pand mm5,[L000B4CF8] ; MMX pand mm2,[L000B4CF0] ; MMX por mm2,mm5 ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A0D30: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4D10] ; MMX movq mm7,[L000B4D08] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4D00] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[L000B4D00] ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[L000B4D00] ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A0DD0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4D20] ; MMX movq mm7,[L000B4D18] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A0E70: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5D5C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D58],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D54],ecx mov [L000B5D50],eax jnz L000A0EC6 cmp edi,eax jnz L000A0EC6 cmp ecx,eax jnz L000A0EC6 and [edx+10h],ebx L000A0EC6: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5D5C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D58],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D54],ecx mov [L000B5D4C],eax jnz L000A0F11 cmp edi,eax jnz L000A0F11 cmp ecx,eax jnz L000A0F11 and [edx+10h],ebx L000A0F11: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5D5C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D58],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D54],ecx mov [L000B5D48],eax jnz L000A0F5C cmp edi,eax jnz L000A0F5C cmp ecx,eax jnz L000A0F5C and [edx+10h],ebx L000A0F5C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4D38] ; MMX movq mm7,[L000B4D30] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4D28] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D50] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4D28] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D4C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4D28] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D48] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A1050: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5D74],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D70],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D6C],ecx mov [L000B5D68],eax jnz L000A10AC cmp esi,eax jnz L000A10AC cmp ecx,eax jnz L000A10AC mov [L000B4D60],ebx or edi,FFFFFFFFh jmp L000A10B5 L000A10AC: or edi,FFFFFFFFh mov [L000B4D60],edi L000A10B5: mov eax,[ebp+10h] xor edx,edx mov [L000B4D64],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5D74],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D70],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D6C],ecx mov [L000B5D64],eax jnz L000A1107 cmp esi,eax jnz L000A1107 cmp ecx,eax mov [L000B4D58],ebx jz L000A110D L000A1107: mov [L000B4D58],edi L000A110D: mov eax,[ebp+14h] xor edx,edx mov [L000B4D5C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5D74],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5D70],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D6C],ecx mov [L000B5D60],eax jnz L000A115F cmp esi,eax jnz L000A115F cmp ecx,eax mov [L000B4D50],ebx jz L000A1165 L000A115F: mov [L000B4D50],edi L000A1165: mov [L000B4D54],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4D48] ; MMX movq mm7,[L000B4D40] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4D60] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D68] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4D58] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D64] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4D50] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D60] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A1270: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+10h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+30h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+50h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A1300: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd [eax+58h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+5Ch],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A13A0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd mm5,[ecx+10h] ; MMX movq mm4,[L000B4D70] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4D68] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd mm5,[edx+10h] ; MMX movq mm4,[L000B4D70] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B4D68] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+58h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+5Ch],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A1480: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm5,[ecx+10h] ; MMX pand mm5,[L000B4D80] ; MMX pand mm2,[L000B4D78] ; MMX por mm2,mm5 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm5,[edx+10h] ; MMX pand mm5,[L000B4D80] ; MMX pand mm2,[L000B4D78] ; MMX por mm2,mm5 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A1540: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4D98] ; MMX movq mm7,[L000B4D90] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4D88] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[L000B4D88] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[L000B4D88] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A1600: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4DA8] ; MMX movq mm7,[L000B4DA0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A16C0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5D8C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D88],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D84],ecx mov [L000B5D80],eax jnz L000A1716 cmp edi,eax jnz L000A1716 cmp ecx,eax jnz L000A1716 and [edx+10h],ebx L000A1716: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5D8C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D88],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D84],ecx mov [L000B5D7C],eax jnz L000A1761 cmp edi,eax jnz L000A1761 cmp ecx,eax jnz L000A1761 and [edx+10h],ebx L000A1761: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5D8C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5D88],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5D84],ecx mov [L000B5D78],eax jnz L000A17AC cmp edi,eax jnz L000A17AC cmp ecx,eax jnz L000A17AC and [edx+10h],ebx L000A17AC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4DC0] ; MMX movq mm7,[L000B4DB8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4DB0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D80] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4DB0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D7C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4DB0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D78] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A18B0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5DA4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5DA0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D9C],ecx mov [L000B5D98],eax jnz L000A190C cmp esi,eax jnz L000A190C cmp ecx,eax jnz L000A190C mov [L000B4DE8],ebx or edi,FFFFFFFFh jmp L000A1915 L000A190C: or edi,FFFFFFFFh mov [L000B4DE8],edi L000A1915: mov eax,[ebp+10h] xor edx,edx mov [L000B4DEC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5DA4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5DA0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D9C],ecx mov [L000B5D94],eax jnz L000A1967 cmp esi,eax jnz L000A1967 cmp ecx,eax mov [L000B4DE0],ebx jz L000A196D L000A1967: mov [L000B4DE0],edi L000A196D: mov eax,[ebp+14h] xor edx,edx mov [L000B4DE4],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5DA4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5DA0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5D9C],ecx mov [L000B5D90],eax jnz L000A19BF cmp esi,eax jnz L000A19BF cmp ecx,eax mov [L000B4DD8],ebx jz L000A19C5 L000A19BF: mov [L000B4DD8],edi L000A19C5: mov [L000B4DDC],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4DD0] ; MMX movq mm7,[L000B4DC8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4DE8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D98] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4DE0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D94] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4DD8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5D90] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A1AE0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX emms ; MMX add dword ptr [ebp+08h],00000010h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A1B10: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000014h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A1B40: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+14h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+1Ch],mm1 ; MMX movd mm2,[ecx+10h] ; MMX movd [eax+24h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm2,[edx+10h] ; MMX movd [eax+38h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],0000003Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A1BB0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A1C20: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A1C50: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4E00] ; MMX movq mm7,[L000B4DF8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4DF0] ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movq mm2,[L000B4DF0] ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movq mm2,[L000B4DF0] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A1CD0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B4E18] ; MMX movq mm7,[L000B4E10] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4E08] ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A1D10: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4E28] ; MMX movq mm7,[L000B4E20] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A1D90: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B4E38] ; MMX movq mm7,[L000B4E30] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A1DD0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5DBC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5DB8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5DB4],ecx mov [L000B5DB0],eax jnz L000A1E26 cmp edi,eax jnz L000A1E26 cmp ecx,eax jnz L000A1E26 and [edx+10h],ebx L000A1E26: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5DBC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5DB8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5DB4],ecx mov [L000B5DAC],eax jnz L000A1E71 cmp edi,eax jnz L000A1E71 cmp ecx,eax jnz L000A1E71 and [edx+10h],ebx L000A1E71: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5DBC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5DB8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5DB4],ecx mov [L000B5DA8],eax jnz L000A1EBC cmp edi,eax jnz L000A1EBC cmp ecx,eax jnz L000A1EBC and [edx+10h],ebx L000A1EBC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4E50] ; MMX movq mm7,[L000B4E48] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4E40] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DB0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4E40] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DAC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4E40] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DA8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A1F90: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B5DCC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5DC8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5DC4],ecx mov [L000B5DC0],eax jnz L000A1FE5 cmp edi,eax jnz L000A1FE5 cmp ecx,eax jnz L000A1FE5 and dword ptr [edx+10h],FF000000h L000A1FE5: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B4E68] ; MMX movq mm7,[L000B4E60] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4E58] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DC0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A2040: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5DE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5DE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5DDC],ecx mov [L000B5DD8],eax jnz L000A209C cmp esi,eax jnz L000A209C cmp ecx,eax jnz L000A209C mov [L000B4E90],ebx or edi,FFFFFFFFh jmp L000A20A5 L000A209C: or edi,FFFFFFFFh mov [L000B4E90],edi L000A20A5: mov eax,[ebp+10h] xor edx,edx mov [L000B4E94],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5DE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5DE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5DDC],ecx mov [L000B5DD4],eax jnz L000A20F7 cmp esi,eax jnz L000A20F7 cmp ecx,eax mov [L000B4E88],ebx jz L000A20FD L000A20F7: mov [L000B4E88],edi L000A20FD: mov eax,[ebp+14h] xor edx,edx mov [L000B4E8C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5DE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5DE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5DDC],ecx mov [L000B5DD0],eax jnz L000A214F cmp esi,eax jnz L000A214F cmp ecx,eax mov [L000B4E80],ebx jz L000A2155 L000A214F: mov [L000B4E80],edi L000A2155: mov [L000B4E84],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B4E78] ; MMX movq mm7,[L000B4E70] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4E90] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DD8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4E88] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DD4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4E80] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DD0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A2240: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi mov [L000B5DF4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5DF0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5DEC],ecx mov [L000B5DE8],eax jnz L000A22A1 cmp esi,eax jnz L000A22A1 cmp ecx,eax jnz L000A22A1 mov dword ptr [L000B4EA8],FF000000h mov dword ptr [L000B4EAC],FFFFFFFFh jmp L000A22AE L000A22A1: or eax,FFFFFFFFh mov [L000B4EA8],eax mov [L000B4EAC],eax L000A22AE: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B4EA0] ; MMX movq mm7,[L000B4E98] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4EA8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DE8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A2310: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+10h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A2350: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+1Ch],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+24h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX movd [eax+2Ch],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+30h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+38h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+40h],mm1 ; MMX movd mm2,[edx+10h] ; MMX movd [eax+48h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+4Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A23E0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000001Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A2430: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A24C0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A2510: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4EC0] ; MMX movq mm7,[L000B4EB8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4EB0] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[L000B4EB0] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[L000B4EB0] ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A25B0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B4ED8] ; MMX movq mm7,[L000B4ED0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4EC8] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A2610: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4EE8] ; MMX movq mm7,[L000B4EE0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A26B0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B4EF8] ; MMX movq mm7,[L000B4EF0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A2710: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5E0C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E08],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E04],ecx mov [L000B5E00],eax jnz L000A2766 cmp edi,eax jnz L000A2766 cmp ecx,eax jnz L000A2766 and [edx+10h],ebx L000A2766: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5E0C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E08],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E04],ecx mov [L000B5DFC],eax jnz L000A27B1 cmp edi,eax jnz L000A27B1 cmp ecx,eax jnz L000A27B1 and [edx+10h],ebx L000A27B1: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5E0C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E08],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E04],ecx mov [L000B5DF8],eax jnz L000A27FC cmp edi,eax jnz L000A27FC cmp ecx,eax jnz L000A27FC and [edx+10h],ebx L000A27FC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4F10] ; MMX movq mm7,[L000B4F08] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4F00] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E00] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4F00] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DFC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4F00] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5DF8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A28F0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B5E1C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E18],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E14],ecx mov [L000B5E10],eax jnz L000A2945 cmp edi,eax jnz L000A2945 cmp ecx,eax jnz L000A2945 and dword ptr [edx+10h],FF000000h L000A2945: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B4F28] ; MMX movq mm7,[L000B4F20] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4F18] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E10] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A29B0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5E34],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E30],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E2C],ecx mov [L000B5E28],eax jnz L000A2A0C cmp esi,eax jnz L000A2A0C cmp ecx,eax jnz L000A2A0C mov [L000B4F50],ebx or edi,FFFFFFFFh jmp L000A2A15 L000A2A0C: or edi,FFFFFFFFh mov [L000B4F50],edi L000A2A15: mov eax,[ebp+10h] xor edx,edx mov [L000B4F54],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5E34],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E30],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E2C],ecx mov [L000B5E24],eax jnz L000A2A67 cmp esi,eax jnz L000A2A67 cmp ecx,eax mov [L000B4F48],ebx jz L000A2A6D L000A2A67: mov [L000B4F48],edi L000A2A6D: mov eax,[ebp+14h] xor edx,edx mov [L000B4F4C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5E34],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E30],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E2C],ecx mov [L000B5E20],eax jnz L000A2ABF cmp esi,eax jnz L000A2ABF cmp ecx,eax mov [L000B4F40],ebx jz L000A2AC5 L000A2ABF: mov [L000B4F40],edi L000A2AC5: mov [L000B4F44],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B4F38] ; MMX movq mm7,[L000B4F30] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4F50] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E28] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4F48] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E24] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4F40] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E20] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A2BD0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov [L000B5E44],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E40],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E3C],ecx mov [L000B5E38],eax jnz L000A2C32 cmp esi,eax jnz L000A2C32 cmp ecx,eax jnz L000A2C32 mov dword ptr [L000B4F68],FF000000h mov dword ptr [L000B4F6C],FFFFFFFFh jmp L000A2C3F L000A2C32: or eax,FFFFFFFFh mov [L000B4F68],eax mov [L000B4F6C],eax L000A2C3F: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B4F60] ; MMX movq mm7,[L000B4F58] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B4F68] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E38] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A2CB0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+10h],mm3 ; MMX add ebx,edi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+30h],mm3 ; MMX add ecx,edi movq mm3,[ecx+18h] ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+50h],mm3 ; MMX add edx,edi movq mm3,[edx+18h] ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A2D50: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+10h],mm3 ; MMX add ebx,edi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A2DA0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+1Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000024h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A2DF0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd mm2,[ecx+10h] ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX add ecx,edi movq mm3,[ecx+1Ch] ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd mm2,[edx+10h] ; MMX movd [eax+58h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+5Ch],mm3 ; MMX add edx,edi movq mm3,[edx+1Ch] ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A2EA0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+20h] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+20h] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+20h] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A2F50: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+20h] ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A2FA0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4F80] ; MMX movq mm7,[L000B4F78] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4F70] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+18h] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[L000B4F70] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+18h] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[L000B4F70] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+18h] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A3070: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4F98] ; MMX movq mm7,[L000B4F90] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B4F88] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+18h] ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A30D0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4FA8] ; MMX movq mm7,[L000B4FA0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+1Ch] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+1Ch] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A31A0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4FB8] ; MMX movq mm7,[L000B4FB0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A3200: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5E5C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E58],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E54],ecx mov [L000B5E50],eax jnz L000A3256 cmp edi,eax jnz L000A3256 cmp ecx,eax jnz L000A3256 and [edx+10h],ebx L000A3256: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5E5C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E58],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E54],ecx mov [L000B5E4C],eax jnz L000A32A1 cmp edi,eax jnz L000A32A1 cmp ecx,eax jnz L000A32A1 and [edx+10h],ebx L000A32A1: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5E5C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E58],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E54],ecx mov [L000B5E48],eax jnz L000A32EC cmp edi,eax jnz L000A32EC cmp ecx,eax jnz L000A32EC and [edx+10h],ebx L000A32EC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4FD0] ; MMX movq mm7,[L000B4FC8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4FC0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E50] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4FC0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E4C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+1Ch] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4FC0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E48] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+1Ch] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A3400: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B5E6C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5E68],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5E64],ecx mov [L000B5E60],eax jnz L000A3455 cmp edi,eax jnz L000A3455 cmp ecx,eax jnz L000A3455 and dword ptr [edx+10h],FF000000h L000A3455: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4FE8] ; MMX movq mm7,[L000B4FE0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B4FD8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E60] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+1Ch] ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A34D0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5E84],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E80],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E7C],ecx mov [L000B5E78],eax jnz L000A352C cmp esi,eax jnz L000A352C cmp ecx,eax jnz L000A352C mov [L000B5010],ebx or edi,FFFFFFFFh jmp L000A3535 L000A352C: or edi,FFFFFFFFh mov [L000B5010],edi L000A3535: mov eax,[ebp+10h] xor edx,edx mov [L000B5014],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5E84],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E80],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E7C],ecx mov [L000B5E74],eax jnz L000A3587 cmp esi,eax jnz L000A3587 cmp ecx,eax mov [L000B5008],ebx jz L000A358D L000A3587: mov [L000B5008],edi L000A358D: mov eax,[ebp+14h] xor edx,edx mov [L000B500C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5E84],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E80],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E7C],ecx mov [L000B5E70],eax jnz L000A35DF cmp esi,eax jnz L000A35DF cmp ecx,eax mov [L000B5000],ebx jz L000A35E5 L000A35DF: mov [L000B5000],edi L000A35E5: mov [L000B5004],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B4FF8] ; MMX movq mm7,[L000B4FF0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5010] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E78] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+20h] ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5008] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E74] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX add ecx,edi movq mm3,[ecx+20h] ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5000] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E70] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX add edx,edi movq mm3,[edx+20h] ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A3710: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov [L000B5E94],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5E90],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5E8C],ecx mov [L000B5E88],eax jnz L000A3772 cmp esi,eax jnz L000A3772 cmp ecx,eax jnz L000A3772 mov dword ptr [L000B5028],FF000000h mov dword ptr [L000B502C],FFFFFFFFh jmp L000A377F L000A3772: or eax,FFFFFFFFh mov [L000B5028],eax mov [L000B502C],eax L000A377F: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B5020] ; MMX movq mm7,[L000B5018] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5028] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E88] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX add ebx,edi movq mm3,[ebx+20h] ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A3800: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm3,mm3 ; MMX movq [eax+10h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+18h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+20h],mm1 ; MMX movq [eax+28h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+30h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+38h],mm1 ; MMX movq [eax+40h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A3860: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm3,mm3 ; MMX movq [eax+10h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A3890: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+1Ch],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+24h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX movd [eax+2Ch],mm2 ; MMX movq [eax+30h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+38h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+40h],mm1 ; MMX movd mm2,[edx+10h] ; MMX movd [eax+48h],mm2 ; MMX movq [eax+4Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A3910: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000001Ch mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A3950: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A39D0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A3A10: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5040] ; MMX movq mm7,[L000B5038] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B5030] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[L000B5030] ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[L000B5030] ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A3AA0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5058] ; MMX movq mm7,[L000B5050] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B5048] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A3AF0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5068] ; MMX movq mm7,[L000B5060] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A3B80: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5078] ; MMX movq mm7,[L000B5070] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A3BD0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5EAC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5EA8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5EA4],ecx mov [L000B5EA0],eax jnz L000A3C26 cmp edi,eax jnz L000A3C26 cmp ecx,eax jnz L000A3C26 and [edx+10h],ebx L000A3C26: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5EAC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5EA8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5EA4],ecx mov [L000B5E9C],eax jnz L000A3C71 cmp edi,eax jnz L000A3C71 cmp ecx,eax jnz L000A3C71 and [edx+10h],ebx L000A3C71: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5EAC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5EA8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5EA4],ecx mov [L000B5E98],eax jnz L000A3CBC cmp edi,eax jnz L000A3CBC cmp ecx,eax jnz L000A3CBC and [edx+10h],ebx L000A3CBC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5090] ; MMX movq mm7,[L000B5088] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5080] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EA0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5080] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E9C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5080] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5E98] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A3DA0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B5EBC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5EB8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5EB4],ecx mov [L000B5EB0],eax jnz L000A3DF5 cmp edi,eax jnz L000A3DF5 cmp ecx,eax jnz L000A3DF5 and dword ptr [edx+10h],FF000000h L000A3DF5: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B50A8] ; MMX movq mm7,[L000B50A0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5098] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EB0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A3E60: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5ED4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5ED0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5ECC],ecx mov [L000B5EC8],eax jnz L000A3EBC cmp esi,eax jnz L000A3EBC cmp ecx,eax jnz L000A3EBC mov [L000B50D0],ebx or edi,FFFFFFFFh jmp L000A3EC5 L000A3EBC: or edi,FFFFFFFFh mov [L000B50D0],edi L000A3EC5: mov eax,[ebp+10h] xor edx,edx mov [L000B50D4],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5ED4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5ED0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5ECC],ecx mov [L000B5EC4],eax jnz L000A3F17 cmp esi,eax jnz L000A3F17 cmp ecx,eax mov [L000B50C8],ebx jz L000A3F1D L000A3F17: mov [L000B50C8],edi L000A3F1D: mov eax,[ebp+14h] xor edx,edx mov [L000B50CC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5ED4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5ED0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5ECC],ecx mov [L000B5EC0],eax jnz L000A3F6F cmp esi,eax jnz L000A3F6F cmp ecx,eax mov [L000B50C0],ebx jz L000A3F75 L000A3F6F: mov [L000B50C0],edi L000A3F75: mov [L000B50C4],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B50B8] ; MMX movq mm7,[L000B50B0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B50D0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EC8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+20h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+28h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B50C8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EC4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+40h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+48h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B50C0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EC0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX movq [eax+58h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A4070: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi mov [L000B5EE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5EE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5EDC],ecx mov [L000B5ED8],eax jnz L000A40D1 cmp esi,eax jnz L000A40D1 cmp ecx,eax jnz L000A40D1 mov dword ptr [L000B50E8],FF000000h mov dword ptr [L000B50EC],FFFFFFFFh jmp L000A40DE L000A40D1: or eax,FFFFFFFFh mov [L000B50E8],eax mov [L000B50EC],eax L000A40DE: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B50E0] ; MMX movq mm7,[L000B50D8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B50E8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5ED8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A4150: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm3,mm3 ; MMX movq [eax+10h],mm3 ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A4190: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd mm2,[ecx+10h] ; MMX movd [eax+34h],mm2 ; MMX movq [eax+38h],mm3 ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd mm2,[edx+10h] ; MMX movd [eax+58h],mm2 ; MMX movq [eax+5Ch],mm3 ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A4210: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+14h],mm3 ; MMX movq [eax+1Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000024h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A4250: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A42D0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A4310: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5100] ; MMX movq mm7,[L000B50F8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B50F0] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[L000B50F0] ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[L000B50F0] ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A43B0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5118] ; MMX movq mm7,[L000B5110] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B5108] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A4400: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5128] ; MMX movq mm7,[L000B5120] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A44A0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5138] ; MMX movq mm7,[L000B5130] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A44F0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5EFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5EF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5EF4],ecx mov [L000B5EF0],eax jnz L000A4546 cmp edi,eax jnz L000A4546 cmp ecx,eax jnz L000A4546 and [edx+10h],ebx L000A4546: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5EFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5EF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5EF4],ecx mov [L000B5EEC],eax jnz L000A4591 cmp edi,eax jnz L000A4591 cmp ecx,eax jnz L000A4591 and [edx+10h],ebx L000A4591: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5EFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5EF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5EF4],ecx mov [L000B5EE8],eax jnz L000A45DC cmp edi,eax jnz L000A45DC cmp ecx,eax jnz L000A45DC and [edx+10h],ebx L000A45DC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5150] ; MMX movq mm7,[L000B5148] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5140] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EF0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5140] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EEC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5140] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5EE8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A46D0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B5F0C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F08],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F04],ecx mov [L000B5F00],eax jnz L000A4725 cmp edi,eax jnz L000A4725 cmp ecx,eax jnz L000A4725 and dword ptr [edx+10h],FF000000h L000A4725: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5168] ; MMX movq mm7,[L000B5160] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5158] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F00] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A4790: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5F24],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F20],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F1C],ecx mov [L000B5F18],eax jnz L000A47EC cmp esi,eax jnz L000A47EC cmp ecx,eax jnz L000A47EC mov [L000B5190],ebx or edi,FFFFFFFFh jmp L000A47F5 L000A47EC: or edi,FFFFFFFFh mov [L000B5190],edi L000A47F5: mov eax,[ebp+10h] xor edx,edx mov [L000B5194],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5F24],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F20],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F1C],ecx mov [L000B5F14],eax jnz L000A4847 cmp esi,eax jnz L000A4847 cmp ecx,eax mov [L000B5188],ebx jz L000A484D L000A4847: mov [L000B5188],edi L000A484D: mov eax,[ebp+14h] xor edx,edx mov [L000B518C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5F24],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F20],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F1C],ecx mov [L000B5F10],eax jnz L000A489F cmp esi,eax jnz L000A489F cmp ecx,eax mov [L000B5180],ebx jz L000A48A5 L000A489F: mov [L000B5180],edi L000A48A5: mov [L000B5184],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5178] ; MMX movq mm7,[L000B5170] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5190] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F18] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5188] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F14] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movq [eax+40h],mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5180] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F10] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX movq [eax+68h],mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A49B0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi mov [L000B5F34],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F30],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F2C],ecx mov [L000B5F28],eax jnz L000A4A11 cmp esi,eax jnz L000A4A11 cmp ecx,eax jnz L000A4A11 mov dword ptr [L000B51A8],FF000000h mov dword ptr [L000B51AC],FFFFFFFFh jmp L000A4A1E L000A4A11: or eax,FFFFFFFFh mov [L000B51A8],eax mov [L000B51AC],eax L000A4A1E: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B51A0] ; MMX movq mm7,[L000B5198] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B51A8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F28] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A4A90: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+10h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+18h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ L000A4AD0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+1Ch],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000024h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A4B20: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX movd [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+14h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+1Ch],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+24h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+2Ch],mm1 ; MMX movd mm2,[ecx+10h] ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+38h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+40h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+48h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+50h],mm1 ; MMX movd mm2,[edx+10h] ; MMX movd [eax+58h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+5Ch],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+64h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A4BC0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A4C60: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A4CB0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B51C0] ; MMX movq mm7,[L000B51B8] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B51B0] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[L000B51B0] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+10h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[L000B51B0] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+10h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A4D70: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B51D8] ; MMX movq mm7,[L000B51D0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[L000B51C8] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+10h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A4DD0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B51E8] ; MMX movq mm7,[L000B51E0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A4E90: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B51F8] ; MMX movq mm7,[L000B51F0] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A4EF0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5F4C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F48],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F44],ecx mov [L000B5F40],eax jnz L000A4F46 cmp edi,eax jnz L000A4F46 cmp ecx,eax jnz L000A4F46 and [edx+10h],ebx L000A4F46: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5F4C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F48],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F44],ecx mov [L000B5F3C],eax jnz L000A4F91 cmp edi,eax jnz L000A4F91 cmp ecx,eax jnz L000A4F91 and [edx+10h],ebx L000A4F91: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5F4C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F48],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F44],ecx mov [L000B5F38],eax jnz L000A4FDC cmp edi,eax jnz L000A4FDC cmp ecx,eax jnz L000A4FDC and [edx+10h],ebx L000A4FDC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5210] ; MMX movq mm7,[L000B5208] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5200] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F40] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5200] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F3C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+14h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5200] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F38] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+14h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A50E0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B5F5C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F58],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F54],ecx mov [L000B5F50],eax jnz L000A5135 cmp edi,eax jnz L000A5135 cmp ecx,eax jnz L000A5135 and dword ptr [edx+10h],FF000000h L000A5135: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B5228] ; MMX movq mm7,[L000B5220] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5218] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F50] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+14h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A51B0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5F74],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F70],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F6C],ecx mov [L000B5F68],eax jnz L000A520C cmp esi,eax jnz L000A520C cmp ecx,eax jnz L000A520C mov [L000B5250],ebx or edi,FFFFFFFFh jmp L000A5215 L000A520C: or edi,FFFFFFFFh mov [L000B5250],edi L000A5215: mov eax,[ebp+10h] xor edx,edx mov [L000B5254],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5F74],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F70],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F6C],ecx mov [L000B5F64],eax jnz L000A5267 cmp esi,eax jnz L000A5267 cmp ecx,eax mov [L000B5248],ebx jz L000A526D L000A5267: mov [L000B5248],edi L000A526D: mov eax,[ebp+14h] xor edx,edx mov [L000B524C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5F74],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F70],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F6C],ecx mov [L000B5F60],eax jnz L000A52BF cmp esi,eax jnz L000A52BF cmp ecx,eax mov [L000B5240],ebx jz L000A52C5 L000A52BF: mov [L000B5240],edi L000A52C5: mov [L000B5244],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5238] ; MMX movq mm7,[L000B5230] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5250] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F68] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX movq mm0,[ecx] ; MMX movq [eax+28h],mm0 ; MMX movq mm1,[ecx+08h] ; MMX movq [eax+30h],mm1 ; MMX movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5248] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F64] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movq mm3,[ecx+18h] ; MMX movq [eax+40h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+48h],mm3 ; MMX movq mm0,[edx] ; MMX movq [eax+50h],mm0 ; MMX movq mm1,[edx+08h] ; MMX movq [eax+58h],mm1 ; MMX movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5240] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F60] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX add edx,esi movq mm3,[edx+18h] ; MMX movq [eax+68h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+70h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A53E0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov [L000B5F84],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5F80],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5F7C],ecx mov [L000B5F78],eax jnz L000A5442 cmp esi,eax jnz L000A5442 cmp ecx,eax jnz L000A5442 mov dword ptr [L000B5268],FF000000h mov dword ptr [L000B526C],FFFFFFFFh jmp L000A544F L000A5442: or eax,FFFFFFFFh mov [L000B5268],eax mov [L000B526C],eax L000A544F: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B5260] ; MMX movq mm7,[L000B5258] ; MMX movq mm0,[ebx] ; MMX movq [eax],mm0 ; MMX movq mm1,[ebx+08h] ; MMX movq [eax+08h],mm1 ; MMX movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5268] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F78] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movq mm3,[ebx+18h] ; MMX movq [eax+18h],mm3 ; MMX pxor mm3,mm3 ; MMX movq [eax+20h],mm3 ; MMX emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A54D0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+14h],xmm0 ; SSE movlps [eax+1Ch],xmm1 ; SSE movd [eax+24h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq [eax+38h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],0000003Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A5530: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+14h],xmm0 ; SSE movlps [eax+1Ch],xmm1 ; SSE movd mm5,[ecx+10h] ; MMX movq mm4,[L000B5278] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5270] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+24h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movd mm5,[edx+10h] ; MMX movq mm4,[L000B5278] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5270] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movq [eax+38h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],0000003Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A55E0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movq mm5,[ecx+10h] ; MMX pand mm5,[L000B5288] ; MMX pand mm2,[L000B5280] ; MMX por mm2,mm5 ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movq mm5,[edx+10h] ; MMX pand mm5,[L000B5288] ; MMX pand mm2,[L000B5280] ; MMX por mm2,mm5 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A5670: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B52A0] ; MMX movq mm7,[L000B5298] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5290] ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movq mm2,[L000B5290] ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movq mm2,[L000B5290] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A56F0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B52B0] ; MMX movq mm7,[L000B52A8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A5770: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5F9C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F98],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F94],ecx mov [L000B5F90],eax jnz L000A57C6 cmp edi,eax jnz L000A57C6 cmp ecx,eax jnz L000A57C6 and [edx+10h],ebx L000A57C6: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5F9C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F98],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F94],ecx mov [L000B5F8C],eax jnz L000A5811 cmp edi,eax jnz L000A5811 cmp ecx,eax jnz L000A5811 and [edx+10h],ebx L000A5811: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5F9C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5F98],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5F94],ecx mov [L000B5F88],eax jnz L000A585C cmp edi,eax jnz L000A585C cmp ecx,eax jnz L000A585C and [edx+10h],ebx L000A585C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B52C8] ; MMX movq mm7,[L000B52C0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B52B8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F90] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B52B8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F8C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B52B8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5F88] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A5930: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5FB4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5FB0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5FAC],ecx mov [L000B5FA8],eax jnz L000A598C cmp esi,eax jnz L000A598C cmp ecx,eax jnz L000A598C mov [L000B52F0],ebx or edi,FFFFFFFFh jmp L000A5995 L000A598C: or edi,FFFFFFFFh mov [L000B52F0],edi L000A5995: mov eax,[ebp+10h] xor edx,edx mov [L000B52F4],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5FB4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5FB0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5FAC],ecx mov [L000B5FA4],eax jnz L000A59E7 cmp esi,eax jnz L000A59E7 cmp ecx,eax mov [L000B52E8],ebx jz L000A59ED L000A59E7: mov [L000B52E8],edi L000A59ED: mov eax,[ebp+14h] xor edx,edx mov [L000B52EC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5FB4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5FB0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5FAC],ecx mov [L000B5FA0],eax jnz L000A5A3F cmp esi,eax jnz L000A5A3F cmp ecx,eax mov [L000B52E0],ebx jz L000A5A45 L000A5A3F: mov [L000B52E0],edi L000A5A45: mov [L000B52E4],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B52D8] ; MMX movq mm7,[L000B52D0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B52F0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FA8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B52E8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FA4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B52E0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FA0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A5B30: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+1Ch],xmm0 ; SSE movlps [eax+24h],xmm1 ; SSE movd [eax+2Ch],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+30h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+38h],xmm0 ; SSE movlps [eax+40h],xmm1 ; SSE movq [eax+48h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+4Ch],xmm1 ; SSE add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A5BC0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+1Ch],xmm0 ; SSE movlps [eax+24h],xmm1 ; SSE movd mm5,[ecx+10h] ; MMX movq mm4,[L000B5300] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B52F8] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+2Ch],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+30h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+38h],xmm0 ; SSE movlps [eax+40h],xmm1 ; SSE movd mm5,[edx+10h] ; MMX movq mm4,[L000B5300] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B52F8] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movq [eax+48h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+4Ch],xmm1 ; SSE add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A5C90: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm5,[ecx+10h] ; MMX pand mm5,[L000B5310] ; MMX pand mm2,[L000B5308] ; MMX por mm2,mm5 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm5,[edx+10h] ; MMX pand mm5,[L000B5310] ; MMX pand mm2,[L000B5308] ; MMX por mm2,mm5 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A5D40: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5328] ; MMX movq mm7,[L000B5320] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5318] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[L000B5318] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[L000B5318] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A5DE0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5338] ; MMX movq mm7,[L000B5330] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A5E80: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5FCC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5FC8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5FC4],ecx mov [L000B5FC0],eax jnz L000A5ED6 cmp edi,eax jnz L000A5ED6 cmp ecx,eax jnz L000A5ED6 and [edx+10h],ebx L000A5ED6: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5FCC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5FC8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5FC4],ecx mov [L000B5FBC],eax jnz L000A5F21 cmp edi,eax jnz L000A5F21 cmp ecx,eax jnz L000A5F21 and [edx+10h],ebx L000A5F21: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5FCC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5FC8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5FC4],ecx mov [L000B5FB8],eax jnz L000A5F6C cmp edi,eax jnz L000A5F6C cmp ecx,eax jnz L000A5F6C and [edx+10h],ebx L000A5F6C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5350] ; MMX movq mm7,[L000B5348] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5340] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FC0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5340] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FBC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5340] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FB8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A6060: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B5FE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5FE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5FDC],ecx mov [L000B5FD8],eax jnz L000A60BC cmp esi,eax jnz L000A60BC cmp ecx,eax jnz L000A60BC mov [L000B5378],ebx or edi,FFFFFFFFh jmp L000A60C5 L000A60BC: or edi,FFFFFFFFh mov [L000B5378],edi L000A60C5: mov eax,[ebp+10h] xor edx,edx mov [L000B537C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5FE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5FE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5FDC],ecx mov [L000B5FD4],eax jnz L000A6117 cmp esi,eax jnz L000A6117 cmp ecx,eax mov [L000B5370],ebx jz L000A611D L000A6117: mov [L000B5370],edi L000A611D: mov eax,[ebp+14h] xor edx,edx mov [L000B5374],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B5FE4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B5FE0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B5FDC],ecx mov [L000B5FD0],eax jnz L000A616F cmp esi,eax jnz L000A616F cmp ecx,eax mov [L000B5368],ebx jz L000A6175 L000A616F: mov [L000B5368],edi L000A6175: mov [L000B536C],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5360] ; MMX movq mm7,[L000B5358] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5378] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FD8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5370] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FD4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5368] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FD0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A6280: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+1Ch],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movd [eax+34h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+1Ch] ; SSE movhps [eax+40h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movq [eax+58h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+5Ch],xmm1 ; SSE add edx,edi movhps xmm1,[edx+1Ch] ; SSE movhps [eax+64h],xmm1 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A6330: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+1Ch],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movd mm5,[ecx+10h] ; MMX movq mm4,[L000B5388] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5380] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+1Ch] ; SSE movhps [eax+40h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movd mm5,[edx+10h] ; MMX movq mm4,[L000B5388] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5380] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movq [eax+58h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+5Ch],xmm1 ; SSE add edx,edi movhps xmm1,[edx+1Ch] ; SSE movhps [eax+64h],xmm1 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A6420: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+20h] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm5,[ecx+10h] ; MMX pand mm5,[L000B5398] ; MMX pand mm2,[L000B5390] ; MMX por mm2,mm5 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+20h] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm5,[edx+10h] ; MMX pand mm5,[L000B5398] ; MMX pand mm2,[L000B5390] ; MMX por mm2,mm5 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+20h] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A64F0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B53B0] ; MMX movq mm7,[L000B53A8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B53A0] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+18h] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[L000B53A0] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+18h] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[L000B53A0] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+18h] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A65C0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B53C0] ; MMX movq mm7,[L000B53B8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+1Ch] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+1Ch] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A6690: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B5FFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5FF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5FF4],ecx mov [L000B5FF0],eax jnz L000A66E6 cmp edi,eax jnz L000A66E6 cmp ecx,eax jnz L000A66E6 and [edx+10h],ebx L000A66E6: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5FFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5FF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5FF4],ecx mov [L000B5FEC],eax jnz L000A6731 cmp edi,eax jnz L000A6731 cmp ecx,eax jnz L000A6731 and [edx+10h],ebx L000A6731: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B5FFC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B5FF8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B5FF4],ecx mov [L000B5FE8],eax jnz L000A677C cmp edi,eax jnz L000A677C cmp ecx,eax jnz L000A677C and [edx+10h],ebx L000A677C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B53D8] ; MMX movq mm7,[L000B53D0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B53C8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FF0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B53C8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FEC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+1Ch] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B53C8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B5FE8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+1Ch] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A6890: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B6014],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6010],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B600C],ecx mov [L000B6008],eax jnz L000A68EC cmp esi,eax jnz L000A68EC cmp ecx,eax jnz L000A68EC mov [L000B5400],ebx or edi,FFFFFFFFh jmp L000A68F5 L000A68EC: or edi,FFFFFFFFh mov [L000B5400],edi L000A68F5: mov eax,[ebp+10h] xor edx,edx mov [L000B5404],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6014],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6010],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B600C],ecx mov [L000B6004],eax jnz L000A6947 cmp esi,eax jnz L000A6947 cmp ecx,eax mov [L000B53F8],ebx jz L000A694D L000A6947: mov [L000B53F8],edi L000A694D: mov eax,[ebp+14h] xor edx,edx mov [L000B53FC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6014],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6010],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B600C],ecx mov [L000B6000],eax jnz L000A699F cmp esi,eax jnz L000A699F cmp ecx,eax mov [L000B53F0],ebx jz L000A69A5 L000A699F: mov [L000B53F0],edi L000A69A5: mov [L000B53F4],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B53E8] ; MMX movq mm7,[L000B53E0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5400] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6008] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+20h] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B53F8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6004] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+20h] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B53F0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6000] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+20h] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A6AD0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+1Ch],xmm0 ; SSE movlps [eax+24h],xmm1 ; SSE movd [eax+2Ch],mm2 ; MMX movlps [eax+30h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+38h],xmm0 ; SSE movlps [eax+40h],xmm1 ; SSE movq [eax+48h],mm2 ; MMX emms ; MMX movlps [eax+4Ch],xmm3 ; SSE add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A6B40: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+1Ch],xmm0 ; SSE movlps [eax+24h],xmm1 ; SSE movd mm5,[ecx+10h] ; MMX movq mm4,[L000B5410] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5408] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+2Ch],mm2 ; MMX movlps [eax+30h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+38h],xmm0 ; SSE movlps [eax+40h],xmm1 ; SSE movd mm5,[edx+10h] ; MMX movq mm4,[L000B5410] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5408] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movq [eax+48h],mm2 ; MMX emms ; MMX movlps [eax+4Ch],xmm3 ; SSE add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A6C00: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm5,[ecx+10h] ; MMX pand mm5,[L000B5420] ; MMX pand mm2,[L000B5418] ; MMX por mm2,mm5 ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm5,[edx+10h] ; MMX pand mm5,[L000B5420] ; MMX pand mm2,[L000B5418] ; MMX por mm2,mm5 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A6CA0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5438] ; MMX movq mm7,[L000B5430] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5428] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[L000B5428] ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[L000B5428] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A6D30: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5448] ; MMX movq mm7,[L000B5440] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A6DC0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B602C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6028],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6024],ecx mov [L000B6020],eax jnz L000A6E16 cmp edi,eax jnz L000A6E16 cmp ecx,eax jnz L000A6E16 and [edx+10h],ebx L000A6E16: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B602C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6028],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6024],ecx mov [L000B601C],eax jnz L000A6E61 cmp edi,eax jnz L000A6E61 cmp ecx,eax jnz L000A6E61 and [edx+10h],ebx L000A6E61: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B602C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6028],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6024],ecx mov [L000B6018],eax jnz L000A6EAC cmp edi,eax jnz L000A6EAC cmp ecx,eax jnz L000A6EAC and [edx+10h],ebx L000A6EAC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5460] ; MMX movq mm7,[L000B5458] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5450] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6020] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5450] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B601C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5450] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6018] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A6F90: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B6044],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6040],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B603C],ecx mov [L000B6038],eax jnz L000A6FEC cmp esi,eax jnz L000A6FEC cmp ecx,eax jnz L000A6FEC mov [L000B5488],ebx or edi,FFFFFFFFh jmp L000A6FF5 L000A6FEC: or edi,FFFFFFFFh mov [L000B5488],edi L000A6FF5: mov eax,[ebp+10h] xor edx,edx mov [L000B548C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6044],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6040],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B603C],ecx mov [L000B6034],eax jnz L000A7047 cmp esi,eax jnz L000A7047 cmp ecx,eax mov [L000B5480],ebx jz L000A704D L000A7047: mov [L000B5480],edi L000A704D: mov eax,[ebp+14h] xor edx,edx mov [L000B5484],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6044],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6040],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B603C],ecx mov [L000B6030],eax jnz L000A709F cmp esi,eax jnz L000A709F cmp ecx,eax mov [L000B5478],ebx jz L000A70A5 L000A709F: mov [L000B5478],edi L000A70A5: mov [L000B547C],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5470] ; MMX movq mm7,[L000B5468] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5488] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6038] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5480] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6034] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5478] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6030] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A71A0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movd [eax+34h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps [eax+40h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movq [eax+58h],mm2 ; MMX emms ; MMX movlps [eax+5Ch],xmm3 ; SSE movlps [eax+64h],xmm3 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A7220: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movd mm5,[ecx+10h] ; MMX movq mm4,[L000B5498] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5490] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+34h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps [eax+40h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movd mm5,[edx+10h] ; MMX movq mm4,[L000B5498] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5490] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movq [eax+58h],mm2 ; MMX emms ; MMX movlps [eax+5Ch],xmm3 ; SSE movlps [eax+64h],xmm3 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A72E0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm5,[ecx+10h] ; MMX pand mm5,[L000B54A8] ; MMX pand mm2,[L000B54A0] ; MMX por mm2,mm5 ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm5,[edx+10h] ; MMX pand mm5,[L000B54A8] ; MMX pand mm2,[L000B54A0] ; MMX por mm2,mm5 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A7380: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B54C0] ; MMX movq mm7,[L000B54B8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B54B0] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[L000B54B0] ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[L000B54B0] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A7420: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B54D0] ; MMX movq mm7,[L000B54C8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A74C0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B605C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6058],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6054],ecx mov [L000B6050],eax jnz L000A7516 cmp edi,eax jnz L000A7516 cmp ecx,eax jnz L000A7516 and [edx+10h],ebx L000A7516: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B605C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6058],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6054],ecx mov [L000B604C],eax jnz L000A7561 cmp edi,eax jnz L000A7561 cmp ecx,eax jnz L000A7561 and [edx+10h],ebx L000A7561: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B605C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6058],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6054],ecx mov [L000B6048],eax jnz L000A75AC cmp edi,eax jnz L000A75AC cmp ecx,eax jnz L000A75AC and [edx+10h],ebx L000A75AC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B54E8] ; MMX movq mm7,[L000B54E0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B54D8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6050] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B54D8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B604C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B54D8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6048] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A76A0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B6074],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6070],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B606C],ecx mov [L000B6068],eax jnz L000A76FC cmp esi,eax jnz L000A76FC cmp ecx,eax jnz L000A76FC mov [L000B5510],ebx or edi,FFFFFFFFh jmp L000A7705 L000A76FC: or edi,FFFFFFFFh mov [L000B5510],edi L000A7705: mov eax,[ebp+10h] xor edx,edx mov [L000B5514],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6074],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6070],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B606C],ecx mov [L000B6064],eax jnz L000A7757 cmp esi,eax jnz L000A7757 cmp ecx,eax mov [L000B5508],ebx jz L000A775D L000A7757: mov [L000B5508],edi L000A775D: mov eax,[ebp+14h] xor edx,edx mov [L000B550C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6074],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6070],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B606C],ecx mov [L000B6060],eax jnz L000A77AF cmp esi,eax jnz L000A77AF cmp ecx,eax mov [L000B5500],ebx jz L000A77B5 L000A77AF: mov [L000B5500],edi L000A77B5: mov [L000B5504],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B54F8] ; MMX movq mm7,[L000B54F0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5510] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6068] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5508] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6064] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5500] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6060] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A78C0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movd [eax+34h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps [eax+40h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movq [eax+58h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+5Ch],xmm1 ; SSE movlps [eax+64h],xmm3 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A7960: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movd mm5,[ecx+10h] ; MMX movq mm4,[L000B5520] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5518] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movd [eax+34h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps [eax+40h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movd mm5,[edx+10h] ; MMX movq mm4,[L000B5520] ; MMX psrlq mm4,20h ; MMX pand mm5,mm4 ; MMX movq mm4,[L000B5518] ; MMX psrlq mm4,20h ; MMX pand mm2,mm4 ; MMX por mm2,mm5 ; MMX movq [eax+58h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+5Ch],xmm1 ; SSE movlps [eax+64h],xmm3 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A7A40: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm5,[ecx+10h] ; MMX pand mm5,[L000B5530] ; MMX pand mm2,[L000B5528] ; MMX por mm2,mm5 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm5,[edx+10h] ; MMX pand mm5,[L000B5530] ; MMX pand mm2,[L000B5528] ; MMX por mm2,mm5 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A7B00: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5548] ; MMX movq mm7,[L000B5540] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5538] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[L000B5538] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[L000B5538] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A7BB0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5558] ; MMX movq mm7,[L000B5550] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A7C60: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B608C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6088],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6084],ecx mov [L000B6080],eax jnz L000A7CB6 cmp edi,eax jnz L000A7CB6 cmp ecx,eax jnz L000A7CB6 and [edx+10h],ebx L000A7CB6: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B608C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6088],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6084],ecx mov [L000B607C],eax jnz L000A7D01 cmp edi,eax jnz L000A7D01 cmp ecx,eax jnz L000A7D01 and [edx+10h],ebx L000A7D01: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B608C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6088],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6084],ecx mov [L000B6078],eax jnz L000A7D4C cmp edi,eax jnz L000A7D4C cmp ecx,eax jnz L000A7D4C and [edx+10h],ebx L000A7D4C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5570] ; MMX movq mm7,[L000B5568] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5560] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6080] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5560] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B607C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5560] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6078] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A7E50: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B60A4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B60A0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B609C],ecx mov [L000B6098],eax jnz L000A7EAC cmp esi,eax jnz L000A7EAC cmp ecx,eax jnz L000A7EAC mov [L000B5598],ebx or edi,FFFFFFFFh jmp L000A7EB5 L000A7EAC: or edi,FFFFFFFFh mov [L000B5598],edi L000A7EB5: mov eax,[ebp+10h] xor edx,edx mov [L000B559C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B60A4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B60A0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B609C],ecx mov [L000B6094],eax jnz L000A7F07 cmp esi,eax jnz L000A7F07 cmp ecx,eax mov [L000B5590],ebx jz L000A7F0D L000A7F07: mov [L000B5590],edi L000A7F0D: mov eax,[ebp+14h] xor edx,edx mov [L000B5594],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B60A4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B60A0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B609C],ecx mov [L000B6090],eax jnz L000A7F5F cmp esi,eax jnz L000A7F5F cmp ecx,eax mov [L000B5588],ebx jz L000A7F65 L000A7F5F: mov [L000B5588],edi L000A7F65: mov [L000B558C],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5580] ; MMX movq mm7,[L000B5578] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5598] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6098] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5590] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6094] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5588] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6090] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A8080: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+10h],xmm0 ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE add dword ptr [ebp+08h],00000030h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A80D0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000010h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A8100: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+14h],xmm0 ; SSE movlps [eax+1Ch],xmm1 ; SSE movss xmm1,[ecx+10h] ; SSE movss [eax+24h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movss xmm1,[edx+10h] ; SSE movss [eax+38h],xmm1 ; SSE add dword ptr [ebp+08h],0000003Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A8170: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm1,[ebx+10h] ; SSE movss [eax+10h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000014h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ L000A81A0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movlps xmm1,[ecx+10h] ; SSE movlps [eax+28h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm1,[edx+10h] ; SSE movlps [eax+40h],xmm1 ; SSE add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A8200: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A8230: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B55B0] ; MMX movq mm7,[L000B55A8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B55A0] ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movq mm2,[L000B55A0] ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movq mm2,[L000B55A0] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A82B0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B55C8] ; MMX movq mm7,[L000B55C0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B55B8] ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A82F0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B55D8] ; MMX movq mm7,[L000B55D0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A8370: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B55E8] ; MMX movq mm7,[L000B55E0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A83B0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B60BC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B60B8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B60B4],ecx mov [L000B60B0],eax jnz L000A8406 cmp edi,eax jnz L000A8406 cmp ecx,eax jnz L000A8406 and [edx+10h],ebx L000A8406: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B60BC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B60B8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B60B4],ecx mov [L000B60AC],eax jnz L000A8451 cmp edi,eax jnz L000A8451 cmp ecx,eax jnz L000A8451 and [edx+10h],ebx L000A8451: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B60BC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B60B8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B60B4],ecx mov [L000B60A8],eax jnz L000A849C cmp edi,eax jnz L000A849C cmp ecx,eax jnz L000A849C and [edx+10h],ebx L000A849C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5600] ; MMX movq mm7,[L000B55F8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B55F0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60B0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B55F0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60AC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B55F0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60A8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A8570: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B60CC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B60C8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B60C4],ecx mov [L000B60C0],eax jnz L000A85C5 cmp edi,eax jnz L000A85C5 cmp ecx,eax jnz L000A85C5 and dword ptr [edx+10h],FF000000h L000A85C5: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5618] ; MMX movq mm7,[L000B5610] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5608] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60C0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A8620: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B60E4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B60E0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B60DC],ecx mov [L000B60D8],eax jnz L000A867C cmp esi,eax jnz L000A867C cmp ecx,eax jnz L000A867C mov [L000B5640],ebx or edi,FFFFFFFFh jmp L000A8685 L000A867C: or edi,FFFFFFFFh mov [L000B5640],edi L000A8685: mov eax,[ebp+10h] xor edx,edx mov [L000B5644],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B60E4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B60E0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B60DC],ecx mov [L000B60D4],eax jnz L000A86D7 cmp esi,eax jnz L000A86D7 cmp ecx,eax mov [L000B5638],ebx jz L000A86DD L000A86D7: mov [L000B5638],edi L000A86DD: mov eax,[ebp+14h] xor edx,edx mov [L000B563C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B60E4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B60E0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B60DC],ecx mov [L000B60D0],eax jnz L000A872F cmp esi,eax jnz L000A872F cmp ecx,eax mov [L000B5630],ebx jz L000A8735 L000A872F: mov [L000B5630],edi L000A8735: mov [L000B5634],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5628] ; MMX movq mm7,[L000B5620] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5640] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60D8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5638] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60D4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+28h],mm2 ; MMX movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5630] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60D0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+40h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A8820: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi mov [L000B60F4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B60F0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B60EC],ecx mov [L000B60E8],eax jnz L000A8881 cmp esi,eax jnz L000A8881 cmp ecx,eax jnz L000A8881 mov dword ptr [L000B5658],FF000000h mov dword ptr [L000B565C],FFFFFFFFh jmp L000A888E L000A8881: or eax,FFFFFFFFh mov [L000B5658],eax mov [L000B565C],eax L000A888E: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5650] ; MMX movq mm7,[L000B5648] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5658] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60E8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A88F0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+28h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+40h],xmm1 ; SSE add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A8960: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A89A0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+1Ch],xmm0 ; SSE movlps [eax+24h],xmm1 ; SSE movss xmm1,[ecx+10h] ; SSE movss [eax+2Ch],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+30h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+38h],xmm0 ; SSE movlps [eax+40h],xmm1 ; SSE movss xmm1,[edx+10h] ; SSE movss [eax+48h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+4Ch],xmm1 ; SSE add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A8A30: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm1,[ebx+10h] ; SSE movss [eax+10h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],0000001Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A8A80: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movlps xmm1,[ecx+10h] ; SSE movlps [eax+30h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movlps xmm1,[edx+10h] ; SSE movlps [eax+50h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A8B10: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A8B60: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5670] ; MMX movq mm7,[L000B5668] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5660] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[L000B5660] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[L000B5660] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A8C00: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B5688] ; MMX movq mm7,[L000B5680] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5678] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A8C60: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5698] ; MMX movq mm7,[L000B5690] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A8D00: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B56A8] ; MMX movq mm7,[L000B56A0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A8D60: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B610C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6108],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6104],ecx mov [L000B6100],eax jnz L000A8DB6 cmp edi,eax jnz L000A8DB6 cmp ecx,eax jnz L000A8DB6 and [edx+10h],ebx L000A8DB6: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B610C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6108],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6104],ecx mov [L000B60FC],eax jnz L000A8E01 cmp edi,eax jnz L000A8E01 cmp ecx,eax jnz L000A8E01 and [edx+10h],ebx L000A8E01: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B610C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6108],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6104],ecx mov [L000B60F8],eax jnz L000A8E4C cmp edi,eax jnz L000A8E4C cmp ecx,eax jnz L000A8E4C and [edx+10h],ebx L000A8E4C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B56C0] ; MMX movq mm7,[L000B56B8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B56B0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6100] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B56B0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60FC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B56B0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B60F8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A8F40: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B611C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6118],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6114],ecx mov [L000B6110],eax jnz L000A8F95 cmp edi,eax jnz L000A8F95 cmp ecx,eax jnz L000A8F95 and dword ptr [edx+10h],FF000000h L000A8F95: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B56D8] ; MMX movq mm7,[L000B56D0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B56C8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6110] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A9000: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B6134],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6130],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B612C],ecx mov [L000B6128],eax jnz L000A905C cmp esi,eax jnz L000A905C cmp ecx,eax jnz L000A905C mov [L000B5700],ebx or edi,FFFFFFFFh jmp L000A9065 L000A905C: or edi,FFFFFFFFh mov [L000B5700],edi L000A9065: mov eax,[ebp+10h] xor edx,edx mov [L000B5704],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6134],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6130],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B612C],ecx mov [L000B6124],eax jnz L000A90B7 cmp esi,eax jnz L000A90B7 cmp ecx,eax mov [L000B56F8],ebx jz L000A90BD L000A90B7: mov [L000B56F8],edi L000A90BD: mov eax,[ebp+14h] xor edx,edx mov [L000B56FC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6134],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6130],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B612C],ecx mov [L000B6120],eax jnz L000A910F cmp esi,eax jnz L000A910F cmp ecx,eax mov [L000B56F0],ebx jz L000A9115 L000A910F: mov [L000B56F0],edi L000A9115: mov [L000B56F4],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B56E8] ; MMX movq mm7,[L000B56E0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5700] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6128] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B56F8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6124] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B56F0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6120] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A9220: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov [L000B6144],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6140],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B613C],ecx mov [L000B6138],eax jnz L000A9282 cmp esi,eax jnz L000A9282 cmp ecx,eax jnz L000A9282 mov dword ptr [L000B5718],FF000000h mov dword ptr [L000B571C],FFFFFFFFh jmp L000A928F L000A9282: or eax,FFFFFFFFh mov [L000B5718],eax mov [L000B571C],eax L000A928F: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B5710] ; MMX movq mm7,[L000B5708] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5718] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6138] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A9300: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+18h] ; SSE movhps [eax+18h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+30h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+18h] ; SSE movhps [eax+38h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+50h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+18h] ; SSE movhps [eax+58h],xmm1 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ L000A9390: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+18h] ; SSE movhps [eax+18h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A93E0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+1Ch],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movss xmm1,[ecx+10h] ; SSE movss [eax+34h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+1Ch] ; SSE movhps [eax+40h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movss xmm1,[edx+10h] ; SSE movss [eax+58h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+5Ch],xmm1 ; SSE add edx,edi movhps xmm1,[edx+1Ch] ; SSE movhps [eax+64h],xmm1 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000A9490: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm1,[ebx+10h] ; SSE movss [eax+10h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+1Ch],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000024h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ L000A94E0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+20h] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movlps xmm1,[ecx+10h] ; SSE movlps [eax+38h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+20h] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movlps xmm1,[edx+10h] ; SSE movlps [eax+60h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+20h] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A9590: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+20h] ; SSE movhps [eax+20h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A95E0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B5730] ; MMX movq mm7,[L000B5728] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5720] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+18h] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[L000B5720] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+18h] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[L000B5720] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+18h] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A96B0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B5748] ; MMX movq mm7,[L000B5740] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5738] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+18h] ; SSE movhps [eax+20h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A9710: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B5758] ; MMX movq mm7,[L000B5750] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+1Ch] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+1Ch] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A97E0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B5768] ; MMX movq mm7,[L000B5760] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+20h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A9840: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B615C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6158],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6154],ecx mov [L000B6150],eax jnz L000A9896 cmp edi,eax jnz L000A9896 cmp ecx,eax jnz L000A9896 and [edx+10h],ebx L000A9896: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B615C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6158],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6154],ecx mov [L000B614C],eax jnz L000A98E1 cmp edi,eax jnz L000A98E1 cmp ecx,eax jnz L000A98E1 and [edx+10h],ebx L000A98E1: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B615C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6158],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6154],ecx mov [L000B6148],eax jnz L000A992C cmp edi,eax jnz L000A992C cmp ecx,eax jnz L000A992C and [edx+10h],ebx L000A992C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B5780] ; MMX movq mm7,[L000B5778] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5770] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6150] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5770] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B614C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+1Ch] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5770] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6148] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+1Ch] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A9A40: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B616C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6168],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6164],ecx mov [L000B6160],eax jnz L000A9A95 cmp edi,eax jnz L000A9A95 cmp ecx,eax jnz L000A9A95 and dword ptr [edx+10h],FF000000h L000A9A95: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B5798] ; MMX movq mm7,[L000B5790] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5788] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6160] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+1Ch] ; SSE movhps [eax+20h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A9B10: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B6184],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6180],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B617C],ecx mov [L000B6178],eax jnz L000A9B6C cmp esi,eax jnz L000A9B6C cmp ecx,eax jnz L000A9B6C mov [L000B57C0],ebx or edi,FFFFFFFFh jmp L000A9B75 L000A9B6C: or edi,FFFFFFFFh mov [L000B57C0],edi L000A9B75: mov eax,[ebp+10h] xor edx,edx mov [L000B57C4],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6184],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6180],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B617C],ecx mov [L000B6174],eax jnz L000A9BC7 cmp esi,eax jnz L000A9BC7 cmp ecx,eax mov [L000B57B8],ebx jz L000A9BCD L000A9BC7: mov [L000B57B8],edi L000A9BCD: mov eax,[ebp+14h] xor edx,edx mov [L000B57BC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6184],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6180],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B617C],ecx mov [L000B6170],eax jnz L000A9C1F cmp esi,eax jnz L000A9C1F cmp ecx,eax mov [L000B57B0],ebx jz L000A9C25 L000A9C1F: mov [L000B57B0],edi L000A9C25: mov [L000B57B4],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B57A8] ; MMX movq mm7,[L000B57A0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B57C0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6178] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+20h] ; SSE movhps [eax+20h],xmm1 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B57B8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6174] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE add ecx,edi movhps xmm1,[ecx+20h] ; SSE movhps [eax+48h],xmm1 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B57B0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6170] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE add edx,edi movhps xmm1,[edx+20h] ; SSE movhps [eax+70h],xmm1 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000A9D50: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov [L000B6194],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6190],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B618C],ecx mov [L000B6188],eax jnz L000A9DB2 cmp esi,eax jnz L000A9DB2 cmp ecx,eax jnz L000A9DB2 mov dword ptr [L000B57D8],FF000000h mov dword ptr [L000B57DC],FFFFFFFFh jmp L000A9DBF L000A9DB2: or eax,FFFFFFFFh mov [L000B57D8],eax mov [L000B57DC],eax L000A9DBF: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] mov edi,[edi+04h] movq mm6,[L000B57D0] ; MMX movq mm7,[L000B57C8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B57D8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6188] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE add ebx,edi movhps xmm1,[ebx+20h] ; SSE movhps [eax+20h],xmm1 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000A9E40: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+10h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+18h],xmm0 ; SSE movlps [eax+20h],xmm1 ; SSE movlps [eax+28h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+30h],xmm0 ; SSE movlps [eax+38h],xmm1 ; SSE movlps [eax+40h],xmm3 ; SSE add dword ptr [ebp+08h],00000048h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A9EA0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+10h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000018h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000A9ED0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+1Ch],xmm0 ; SSE movlps [eax+24h],xmm1 ; SSE movss xmm1,[ecx+10h] ; SSE movss [eax+2Ch],xmm1 ; SSE movlps [eax+30h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+38h],xmm0 ; SSE movlps [eax+40h],xmm1 ; SSE movss xmm1,[edx+10h] ; SSE movss [eax+48h],xmm1 ; SSE movlps [eax+4Ch],xmm3 ; SSE add dword ptr [ebp+08h],00000054h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000A9F50: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm1,[ebx+10h] ; SSE movss [eax+10h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],0000001Ch mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000A9F90: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movlps xmm1,[ecx+10h] ; SSE movlps [eax+30h],xmm1 ; SSE movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movlps xmm1,[edx+10h] ; SSE movlps [eax+50h],xmm1 ; SSE movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000AA000: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AA040: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B57F0] ; MMX movq mm7,[L000B57E8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B57E0] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[L000B57E0] ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[L000B57E0] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AA0D0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5808] ; MMX movq mm7,[L000B5800] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B57F8] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AA120: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5818] ; MMX movq mm7,[L000B5810] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AA1B0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5828] ; MMX movq mm7,[L000B5820] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AA200: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B61AC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B61A8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B61A4],ecx mov [L000B61A0],eax jnz L000AA256 cmp edi,eax jnz L000AA256 cmp ecx,eax jnz L000AA256 and [edx+10h],ebx L000AA256: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B61AC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B61A8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B61A4],ecx mov [L000B619C],eax jnz L000AA2A1 cmp edi,eax jnz L000AA2A1 cmp ecx,eax jnz L000AA2A1 and [edx+10h],ebx L000AA2A1: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B61AC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B61A8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B61A4],ecx mov [L000B6198],eax jnz L000AA2EC cmp edi,eax jnz L000AA2EC cmp ecx,eax jnz L000AA2EC and [edx+10h],ebx L000AA2EC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5840] ; MMX movq mm7,[L000B5838] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5830] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61A0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5830] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B619C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5830] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6198] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AA3D0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B61BC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B61B8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B61B4],ecx mov [L000B61B0],eax jnz L000AA425 cmp edi,eax jnz L000AA425 cmp ecx,eax jnz L000AA425 and dword ptr [edx+10h],FF000000h L000AA425: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5858] ; MMX movq mm7,[L000B5850] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5848] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61B0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AA490: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B61D4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B61D0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B61CC],ecx mov [L000B61C8],eax jnz L000AA4EC cmp esi,eax jnz L000AA4EC cmp ecx,eax jnz L000AA4EC mov [L000B5880],ebx or edi,FFFFFFFFh jmp L000AA4F5 L000AA4EC: or edi,FFFFFFFFh mov [L000B5880],edi L000AA4F5: mov eax,[ebp+10h] xor edx,edx mov [L000B5884],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B61D4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B61D0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B61CC],ecx mov [L000B61C4],eax jnz L000AA547 cmp esi,eax jnz L000AA547 cmp ecx,eax mov [L000B5878],ebx jz L000AA54D L000AA547: mov [L000B5878],edi L000AA54D: mov eax,[ebp+14h] xor edx,edx mov [L000B587C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B61D4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B61D0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B61CC],ecx mov [L000B61C0],eax jnz L000AA59F cmp esi,eax jnz L000AA59F cmp ecx,eax mov [L000B5870],ebx jz L000AA5A5 L000AA59F: mov [L000B5870],edi L000AA5A5: mov [L000B5874],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5868] ; MMX movq mm7,[L000B5860] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5880] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61C8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5878] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61C4] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+30h],mm2 ; MMX movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5870] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61C0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+50h],mm2 ; MMX emms ; MMX movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AA6A0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi mov [L000B61E4],edx mov cl,[eax+15h] mov esi,ecx mov [L000B61E0],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B61DC],ecx mov [L000B61D8],eax jnz L000AA701 cmp esi,eax jnz L000AA701 cmp ecx,eax jnz L000AA701 mov dword ptr [L000B5898],FF000000h mov dword ptr [L000B589C],FFFFFFFFh jmp L000AA70E L000AA701: or eax,FFFFFFFFh mov [L000B5898],eax mov [L000B589C],eax L000AA70E: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5890] ; MMX movq mm7,[L000B5888] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5898] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61D8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AA780: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+10h],xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE movlps [eax+30h],xmm3 ; SSE movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE movlps [eax+50h],xmm3 ; SSE movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AA7F0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+10h],xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AA830: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movss xmm1,[ecx+10h] ; SSE movss [eax+34h],xmm1 ; SSE movlps [eax+38h],xmm3 ; SSE movlps [eax+40h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movss xmm1,[edx+10h] ; SSE movss [eax+58h],xmm1 ; SSE movlps [eax+5Ch],xmm3 ; SSE movlps [eax+64h],xmm3 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AA8C0: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm1,[ebx+10h] ; SSE movss [eax+10h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+14h],xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000024h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AA900: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movlps xmm1,[ecx+10h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movlps xmm1,[edx+10h] ; SSE movlps [eax+60h],xmm1 ; SSE movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000AA980: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AA9C0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B58B0] ; MMX movq mm7,[L000B58A8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B58A0] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[L000B58A0] ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[L000B58A0] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AAA60: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B58C8] ; MMX movq mm7,[L000B58C0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B58B8] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AAAB0: push ebp mov ebp,esp push ebx mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B58D8] ; MMX movq mm7,[L000B58D0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AAB50: push ebp mov ebp,esp push ebx mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B58E8] ; MMX movq mm7,[L000B58E0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AABA0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B61FC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B61F8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B61F4],ecx mov [L000B61F0],eax jnz L000AABF6 cmp edi,eax jnz L000AABF6 cmp ecx,eax jnz L000AABF6 and [edx+10h],ebx L000AABF6: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B61FC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B61F8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B61F4],ecx mov [L000B61EC],eax jnz L000AAC41 cmp edi,eax jnz L000AAC41 cmp ecx,eax jnz L000AAC41 and [edx+10h],ebx L000AAC41: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B61FC],esi mov cl,[edx+11h] mov edi,ecx mov [L000B61F8],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B61F4],ecx mov [L000B61E8],eax jnz L000AAC8C cmp edi,eax jnz L000AAC8C cmp ecx,eax jnz L000AAC8C and [edx+10h],ebx L000AAC8C: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5900] ; MMX movq mm7,[L000B58F8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B58F0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61F0] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B58F0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61EC] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B58F0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B61E8] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AAD80: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B620C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6208],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6204],ecx mov [L000B6200],eax jnz L000AADD5 cmp edi,eax jnz L000AADD5 cmp ecx,eax jnz L000AADD5 and dword ptr [edx+10h],FF000000h L000AADD5: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5918] ; MMX movq mm7,[L000B5910] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B5908] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6200] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AAE40: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B6224],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6220],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B621C],ecx mov [L000B6218],eax jnz L000AAE9C cmp esi,eax jnz L000AAE9C cmp ecx,eax jnz L000AAE9C mov [L000B5940],ebx or edi,FFFFFFFFh jmp L000AAEA5 L000AAE9C: or edi,FFFFFFFFh mov [L000B5940],edi L000AAEA5: mov eax,[ebp+10h] xor edx,edx mov [L000B5944],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6224],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6220],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B621C],ecx mov [L000B6214],eax jnz L000AAEF7 cmp esi,eax jnz L000AAEF7 cmp ecx,eax mov [L000B5938],ebx jz L000AAEFD L000AAEF7: mov [L000B5938],edi L000AAEFD: mov eax,[ebp+14h] xor edx,edx mov [L000B593C],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6224],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6220],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B621C],ecx mov [L000B6210],eax jnz L000AAF4F cmp esi,eax jnz L000AAF4F cmp ecx,eax mov [L000B5930],ebx jz L000AAF55 L000AAF4F: mov [L000B5930],edi L000AAF55: mov [L000B5934],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] movq mm6,[L000B5928] ; MMX movq mm7,[L000B5920] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5940] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6218] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5938] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6214] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX movlps [eax+40h],xmm3 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5930] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6210] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX movlps [eax+68h],xmm3 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AB060: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi mov [L000B6234],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6230],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B622C],ecx mov [L000B6228],eax jnz L000AB0C1 cmp esi,eax jnz L000AB0C1 cmp ecx,eax jnz L000AB0C1 mov dword ptr [L000B5958],FF000000h mov dword ptr [L000B595C],FFFFFFFFh jmp L000AB0CE L000AB0C1: or eax,FFFFFFFFh mov [L000B5958],eax mov [L000B595C],eax L000AB0CE: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] movq mm6,[L000B5950] ; MMX movq mm7,[L000B5948] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5958] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6228] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AB140: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+20h],xmm0 ; SSE movlps [eax+28h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+30h],xmm1 ; SSE movlps [eax+38h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+40h],xmm0 ; SSE movlps [eax+48h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+50h],xmm1 ; SSE movlps [eax+58h],xmm3 ; SSE add dword ptr [ebp+08h],00000060h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000AB1C0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+18h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000020h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ L000AB200: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm2,[ebx+10h] ; SSE movss [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+24h],xmm0 ; SSE movlps [eax+2Ch],xmm1 ; SSE movss xmm1,[ecx+10h] ; SSE movss [eax+34h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+38h],xmm1 ; SSE movlps [eax+40h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+48h],xmm0 ; SSE movlps [eax+50h],xmm1 ; SSE movss xmm1,[edx+10h] ; SSE movss [eax+58h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+5Ch],xmm1 ; SSE movlps [eax+64h],xmm3 ; SSE add dword ptr [ebp+08h],0000006Ch mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000AB2A0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movss xmm1,[ebx+10h] ; SSE movss [eax+10h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+14h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+1Ch],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000024h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AB2F0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm2,[ebx+10h] ; SSE movlps [eax+10h],xmm2 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movlps xmm1,[ecx+10h] ; SSE movlps [eax+38h],xmm1 ; SSE add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movlps xmm1,[edx+10h] ; SSE movlps [eax+60h],xmm1 ; SSE add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 16 L000AB390: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movlps xmm1,[ebx+10h] ; SSE movlps [eax+10h],xmm1 ; SSE add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AB3E0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5970] ; MMX movq mm7,[L000B5968] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5960] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[L000B5960] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+10h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[L000B5960] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+10h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000AB490: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B5988] ; MMX movq mm7,[L000B5980] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[L000B5978] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+10h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AB4F0: push ebp mov ebp,esp push ebx push esi push edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B5998] ; MMX movq mm7,[L000B5990] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ecx+10h] ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[edx+10h] ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 4 L000AB5A0: push ebp mov ebp,esp push ebx push esi push edi mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B59A8] ; MMX movq mm7,[L000B59A0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE pxor mm2,mm2 ; MMX movd mm2,[ebx+10h] ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 8 L000AB600: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov ebx,FF000000h mov esi,eax mov [L000B624C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6248],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6244],ecx mov [L000B6240],eax jnz L000AB656 cmp edi,eax jnz L000AB656 cmp ecx,eax jnz L000AB656 and [edx+10h],ebx L000AB656: mov edx,[ebp+10h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B624C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6248],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6244],ecx mov [L000B623C],eax jnz L000AB6A1 cmp edi,eax jnz L000AB6A1 cmp ecx,eax jnz L000AB6A1 and [edx+10h],ebx L000AB6A1: mov edx,[ebp+14h] xor eax,eax mov al,[edx+12h] xor ecx,ecx mov esi,eax mov [L000B624C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6248],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6244],ecx mov [L000B6238],eax jnz L000AB6EC cmp edi,eax jnz L000AB6EC cmp ecx,eax jnz L000AB6EC and [edx+10h],ebx L000AB6EC: mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B59C0] ; MMX movq mm7,[L000B59B8] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B59B0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6240] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movd mm2,[ecx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B59B0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B623C] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+14h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movd mm2,[edx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B59B0] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6238] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+14h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000AB7F0: push ebp mov ebp,esp mov edx,[ebp+0Ch] xor eax,eax mov al,[edx+12h] push ebx xor ecx,ecx push esi push edi mov esi,eax mov [L000B625C],esi mov cl,[edx+11h] mov edi,ecx mov [L000B6258],edi mov ecx,[edx+10h] and ecx,000000FFh mov eax,ecx and eax,edi and eax,esi and eax,000000FFh cmp esi,eax mov [L000B6254],ecx mov [L000B6250],eax jnz L000AB845 cmp edi,eax jnz L000AB845 cmp ecx,eax jnz L000AB845 and dword ptr [edx+10h],FF000000h L000AB845: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B59D8] ; MMX movq mm7,[L000B59D0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movd mm2,[ebx+10h] ; MMX psllq mm2,20h ; MMX movd mm4,[L000B59C8] ; MMX por mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6250] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+14h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AB8C0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov ebx,FF000000h mov [L000B6274],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6270],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B626C],ecx mov [L000B6268],eax jnz L000AB91C cmp esi,eax jnz L000AB91C cmp ecx,eax jnz L000AB91C mov [L000B5A00],ebx or edi,FFFFFFFFh jmp L000AB925 L000AB91C: or edi,FFFFFFFFh mov [L000B5A00],edi L000AB925: mov eax,[ebp+10h] xor edx,edx mov [L000B5A04],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6274],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6270],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B626C],ecx mov [L000B6264],eax jnz L000AB977 cmp esi,eax jnz L000AB977 cmp ecx,eax mov [L000B59F8],ebx jz L000AB97D L000AB977: mov [L000B59F8],edi L000AB97D: mov eax,[ebp+14h] xor edx,edx mov [L000B59FC],edi mov dl,[eax+16h] xor ecx,ecx mov [L000B6274],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6270],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B626C],ecx mov [L000B6260],eax jnz L000AB9CF cmp esi,eax jnz L000AB9CF cmp ecx,eax mov [L000B59F0],ebx jz L000AB9D5 L000AB9CF: mov [L000B59F0],edi L000AB9D5: mov [L000B59F4],edi mov ebx,[ebp+0Ch] mov ecx,[ebp+10h] mov edx,[ebp+14h] mov eax,[ebp+08h] mov edi,[ebp+18h] mov esi,[edi] movq mm6,[L000B59E8] ; MMX movq mm7,[L000B59E0] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5A00] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6268] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE movlps xmm0,[ecx] ; SSE movlps xmm1,[ecx+08h] ; SSE movlps [eax+28h],xmm0 ; SSE movlps [eax+30h],xmm1 ; SSE movq mm2,[ecx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B59F8] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6264] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+38h],mm2 ; MMX add ecx,esi movlps xmm1,[ecx+18h] ; SSE movlps [eax+40h],xmm1 ; SSE movlps [eax+48h],xmm3 ; SSE movlps xmm0,[edx] ; SSE movlps xmm1,[edx+08h] ; SSE movlps [eax+50h],xmm0 ; SSE movlps [eax+58h],xmm1 ; SSE movq mm2,[edx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B59F0] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6260] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+60h],mm2 ; MMX emms ; MMX add edx,esi movlps xmm1,[edx+18h] ; SSE movlps [eax+68h],xmm1 ; SSE movlps [eax+70h],xmm3 ; SSE add dword ptr [ebp+08h],00000078h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 0014h ;------------------------------------------------------------------------------ Align 8 L000ABAF0: push ebp mov ebp,esp mov eax,[ebp+0Ch] xor edx,edx mov dl,[eax+16h] xor ecx,ecx push ebx push esi push edi mov [L000B6284],edx mov cl,[eax+15h] mov esi,ecx mov [L000B6280],esi mov ecx,[eax+14h] and ecx,000000FFh mov eax,ecx and eax,esi and eax,edx and eax,000000FFh cmp edx,eax mov [L000B627C],ecx mov [L000B6278],eax jnz L000ABB52 cmp esi,eax jnz L000ABB52 cmp ecx,eax jnz L000ABB52 mov dword ptr [L000B5A18],FF000000h mov dword ptr [L000B5A1C],FFFFFFFFh jmp L000ABB5F L000ABB52: or eax,FFFFFFFFh mov [L000B5A18],eax mov [L000B5A1C],eax L000ABB5F: mov eax,[ebp+08h] mov ebx,[ebp+0Ch] mov edi,[ebp+10h] mov esi,[edi] movq mm6,[L000B5A10] ; MMX movq mm7,[L000B5A08] ; MMX movlps xmm0,[ebx] ; SSE movlps xmm1,[ebx+08h] ; SSE movlps [eax],xmm0 ; SSE movlps [eax+08h],xmm1 ; SSE movq mm2,[ebx+10h] ; MMX movq mm4,mm2 ; MMX psrlq mm4,20h ; MMX pand mm4,mm6 ; MMX pand mm4,[L000B5A18] ; MMX paddusb mm2,mm4 ; MMX pand mm2,mm7 ; MMX movd mm4,[L000B6278] ; MMX psllq mm4,20h ; MMX por mm2,mm4 ; MMX movq [eax+10h],mm2 ; MMX add ebx,esi movlps xmm1,[ebx+18h] ; SSE movlps [eax+18h],xmm1 ; SSE xorps xmm3,xmm3 ; SSE movlps [eax+20h],xmm3 ; SSE emms ; MMX add dword ptr [ebp+08h],00000028h mov eax,[ebp+08h] pop edi pop esi pop ebx pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000ABBE0: retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000ABBF0: mov eax,[L000B6F24] test eax,eax jz L000ABC03 mov eax,[esp+04h] push eax call SUB_L000368B0 L000ABC03: retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000ABC10: mov eax,00000001h retn 0004h ;------------------------------------------------------------------------------ Align 16 L000ABC20: push ebp mov ebp,esp push FFFFFFFFh push L000B2490 push L000AF82C mov eax,fs:[00000000h] push eax mov fs:[00000000h],esp sub esp,0000004Ch push ebx push esi push edi mov [ebp-18h],esp mov eax,[ebp+08h] mov esi,[eax+04h] mov [ebp-58h],esi mov ebx,[eax+08h] mov edi,[esi] mov [ebp-24h],edi mov dword ptr [eax+0Ch],00000000h test ebx,ebx jz L000AC053 test esi,esi jz L000AC053 mov eax,[ebx+08h] test eax,00823000h jz L000AC053 test eax,00800000h jz L000ABC90 mov ecx,[ebx+20h] test byte ptr [ecx+0Ch],40h jnz L000AC053 L000ABC90: test ah,10h jz L000ABCC2 mov edx,[ebx] mov eax,[edx+1Ch] push eax call SUB_L00035AF0 test eax,eax jz L000ABCB3 mov ecx,[ebx] mov edx,[ecx+18h] push edx call SUB_L00035AF0 test eax,eax jnz L000ABCC2 L000ABCB3: mov eax,[ebp+08h] mov dword ptr [eax+0Ch],80004001h jmp L000AC053 L000ABCC2: mov eax,[ebx+08h] mov ecx,eax and ecx,00000800h jz L000ABD45 mov edx,[ebx] cmp dword ptr [edx+08h],00000000h jnz L000ABD45 push esi call SUB_L000ACFB0 mov ecx,[ebx+20h] mov ecx,[ecx+18h] test eax,eax jz L000AC053 mov eax,[eax] test eax,eax jz L000AC053 test ecx,ecx jbe L000AC053 cmp ecx,[eax] jnc L000AC053 mov edx,[eax+ecx*4] mov dword ptr [eax+ecx*4],00000000h test edx,edx jz L000AC053 mov dword ptr [ebp-04h],00000000h push edx call OsFreeMem mov dword ptr [ebp-04h],FFFFFFFFh jmp L000AC053 L000ABD30: mov eax,00000001h retn ;------------------------------------------------------------------------------ L000ABD36: mov esp,[ebp-18h] mov dword ptr [ebp-04h],FFFFFFFFh jmp L000AC053 L000ABD45: test eax,00400000h jz L000ABD95 test ecx,ecx jnz L000ABD95 push edi call GetDriverData mov esi,eax push esi call SUB_L00017390 mov edx,[ebx] mov ecx,[edx+20h] test ecx,ecx jnz L000ABD6A lea ecx,[eax+3Ch] L000ABD6A: test dword ptr [ebx+08h],00400000h jz L000ABD95 mov eax,[ecx+1Ch] test eax,eax jnz L000ABD95 push ebx push ecx push esi call SUB_L000B1530 test eax,eax jnz L000ABD95 mov eax,[ebp+08h] mov dword ptr [eax+0Ch],8876017Ch jmp L000AC053 L000ABD95: mov ecx,[ebx+20h] mov eax,[ecx+18h] test eax,eax jz L000AC053 L000ABDA3: mov esi,[ebp-58h] push esi call SUB_L000ACF80 mov edi,eax mov edx,[ebx+20h] mov eax,[edx+18h] push eax push esi call SUB_L000AD250 mov esi,eax test esi,esi jnz L000ABE4C cmp edi,eax jz L000ABDE4 cmp dword ptr [edi+00000138h],00000001h ja L000ABDE4 mov [edi+00004878h],eax mov [edi+00004874h],eax mov [edi+0000487Ch],eax L000ABDE4: mov eax,[ebx+08h] test ah,10h jz L000ABDF5 push ebx push edi call SUB_L000ACE80 jmp L000ABE01 L000ABDF5: push 00000114h push 00000001h call OsAllocMem L000ABE01: mov esi,eax test esi,esi jz L000AC049 mov dword ptr [esi+6Ch],4C544E49h test edi,edi jz L000ABE19 mov [esi+14h],edi L000ABE19: push esi push ebx mov ecx,[ebp-58h] push ecx call SUB_L000AD120 test eax,eax jz L000AC037 or dword ptr [esi+18h],00000001h mov eax,[esi+14h] test eax,eax jz L000ABFED mov edx,eax mov dword ptr [edx+000005D8h],FFFFFFFFh jmp L000ABFED L000ABE4C: mov eax,[ebx+08h] test ah,10h jz L000ABFE3 mov ecx,00000001h mov [esi+18h],ecx test edi,edi jz L000ABEFF cmp [edi+00000138h],ecx ja L000ABEFF mov eax,[edi+00004874h] test eax,eax jnz L000ABEB0 mov edx,[edi+00004878h] test edx,edx jnz L000ABEB0 test dword ptr [ebx+08h],00400000h jnz L000ABEB0 mov eax,[ebx+20h] mov edx,[eax+18h] mov [edi+00004874h],edx mov eax,[ebx] mov edx,[eax+08h] mov [edi+00004878h],edx mov [edi+0000487Ch],ecx jmp L000ABEFF L000ABEB0: mov ecx,[edi+0000487Ch] test ecx,ecx jz L000ABEFF mov ecx,[edi+00004878h] cmp ecx,[esi+000000BCh] jnz L000ABEEB push edi push eax call SUB_L000AD0C0 test eax,eax jz L000ABEEB mov ecx,[esi+000000A4h] mov edx,[eax+000000A4h] mov [esi+000000A4h],edx mov [eax+000000A4h],ecx L000ABEEB: xor eax,eax mov [edi+00004874h],eax mov [edi+00004878h],eax mov [edi+0000487Ch],eax L000ABEFF: push ebx call SUB_L000B11A0 mov [esi+1Ch],eax add eax,FFFFFFFEh cmp eax,00000012h ja CASE_000AC06C_PROC0005 xor ecx,ecx mov cl,[eax+CASE_000AC084] jmp [CASE_PROCTABLE_000AC06C+ecx*4] CASE_000AC06C_PROC0001: mov dword ptr [esi+64h],00000100h jmp L000ABF51 CASE_000AC06C_PROC0002: mov dword ptr [esi+64h],00000010h jmp L000ABF51 CASE_000AC06C_PROC0003: mov dword ptr [esi+64h],00000004h jmp L000ABF51 CASE_000AC06C_PROC0004: mov dword ptr [esi+64h],00000002h jmp L000ABF51 CASE_000AC06C_PROC0000: or dword ptr [esi+18h],00000080h CASE_000AC06C_PROC0005: mov dword ptr [esi+64h],00000000h L000ABF51: test edi,edi jz L000ABFA4 lea eax,[edi+000005DCh] mov dword ptr [ebp-5Ch],00000002h L000ABF62: mov edx,[ebx+20h] mov ecx,[eax] cmp ecx,[edx+18h] jnz L000ABF9C test byte ptr [esi+18h],02h jnz L000ABF85 mov ecx,[esi+64h] test ecx,ecx jbe L000ABF7F inc [edi+00000984h] L000ABF7F: test byte ptr [esi+18h],02h jz L000ABF92 L000ABF85: mov ecx,[esi+64h] test ecx,ecx jnz L000ABF92 dec [edi+00000984h] L000ABF92: mov dword ptr [edi+000005D8h],FFFFFFFFh L000ABF9C: add eax,00000074h dec [ebp-5Ch] jnz L000ABF62 L000ABFA4: xor ecx,ecx cmp [esi+64h],ecx mov eax,[esi+18h] jz L000ABFB3 or eax,00000002h jmp L000ABFB6 L000ABFB3: and eax,FFFFFFFDh L000ABFB6: mov [esi+18h],eax mov [esi+78h],ecx mov [esi+74h],ecx mov edx,[ebx] mov eax,[edx+1Ch] shr eax,1 jz L000ABFD1 L000ABFC8: shr eax,1 inc [esi+78h] cmp eax,ecx ja L000ABFC8 L000ABFD1: mov eax,[ebx] mov eax,[eax+18h] shr eax,1 jz L000ABFE3 L000ABFDA: shr eax,1 inc [esi+74h] cmp eax,ecx ja L000ABFDA L000ABFE3: mov dword ptr [esi+6Ch],4C544E49h mov [esi+14h],edi L000ABFED: mov ecx,[esi+000000B8h] mov [ebx+0Ch],ecx mov edx,[ebp-24h] push edx push ebx push esi call SUB_L000AD290 push ebx call SUB_L000B11A0 mov [esi+1Ch],eax mov eax,[ebx+04h] test ah,40h jz L000AC019 or dword ptr [esi+18h],00000400h L000AC019: mov ebx,[ebx+24h] test ebx,ebx jz L000AC053 mov ebx,[ebx+04h] test ebx,ebx jz L000AC053 mov eax,[ebx+20h] mov ecx,[eax+18h] test ecx,ecx jnz L000ABDA3 jmp L000AC053 L000AC037: push esi call OsFreeMem mov ecx,[ebp+08h] mov dword ptr [ecx+0Ch],8007000Eh jmp L000AC053 L000AC049: mov edx,[ebp+08h] mov dword ptr [edx+0Ch],8007000Eh L000AC053: mov eax,00000001h mov ecx,[ebp-10h] mov fs:[00000000h],ecx pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_000AC06C: dd CASE_000AC06C_PROC0000 dd CASE_000AC06C_PROC0001 dd CASE_000AC06C_PROC0002 dd CASE_000AC06C_PROC0003 dd CASE_000AC06C_PROC0004 dd CASE_000AC06C_PROC0005 CASE_000AC084: db 00h, 05h, 00h, 00h, 00h, 01h, 02h, 03h, 04h, 05h, 05h, 05h, 05h, 00h, 00h, 00h db 00h, 00h, 00h Align 16 SUB_L000AC0A0: mov ecx,[esp+04h] mov eax,[esp+08h] cmp eax,[ecx+000005C0h] ja L000AC0BD mov ecx,[ecx+000005BCh] mov eax,[ecx+eax*4-04h] retn 0008h ;------------------------------------------------------------------------------ L000AC0BD: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000AC0D0: push ebx push ebp mov ebp,[esp+0Ch] mov eax,[ebp+000005C0h] push edi mov edi,[esp+14h] cmp edi,eax jbe L000AC15D lea ebx,[edi+000003FFh] shr ebx,0Ah shl ebx,0Ah lea eax,[00000000h+ebx*4] push eax push 00000001h call OsAllocMem test eax,eax mov [esp+10h],eax jnz L000AC118 mov ecx,[esp+18h] push ecx call OsFreeMem pop edi pop ebp pop ebx retn 000Ch ;------------------------------------------------------------------------------ L000AC118: push esi mov esi,[ebp+000005BCh] test esi,esi jz L000AC150 mov ecx,[ebp+000005C0h] shl ecx,02h mov edx,ecx shr ecx,02h mov edi,eax rep movsd mov ecx,edx and ecx,00000003h rep movsb mov eax,[ebp+000005BCh] push eax call OsFreeMem mov eax,[esp+14h] mov edi,[esp+18h] L000AC150: mov [ebp+000005BCh],eax mov [ebp+000005C0h],ebx pop esi L000AC15D: mov ecx,[ebp+000005BCh] mov edx,[esp+18h] mov [ecx+edi*4-04h],edx pop edi pop ebp pop ebx retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000AC180: push ecx push ebx push ebp push esi push edi mov edi,[esp+1Ch] xor ebx,ebx xor esi,esi xor eax,eax L000AC18F: mov ecx,eax and ecx,0000001Fh mov edx,00000001h shl edx,cl mov ecx,eax shr ecx,05h test [edi+ecx*4+0000072Ch],edx jz L000AC1AA inc esi L000AC1AA: inc eax cmp eax,00000100h jc L000AC18F xor edx,edx L000AC1B4: xor eax,eax L000AC1B6: mov ecx,eax and ecx,0000001Fh mov ebp,00000001h shl ebp,cl mov ecx,eax shr ecx,05h add ecx,edx test [edi+ecx*4+00000750h],ebp jz L000AC1D3 inc esi L000AC1D3: inc eax cmp eax,00000018h jbe L000AC1B6 inc edx cmp edx,00000008h jc L000AC1B4 lea edx,[esi+esi*2] lea eax,[00000014h+edx*4] cmp eax,00000770h jnc L000AC2F4 push eax push 00000001h call OsAllocMem mov esi,eax cmp esi,ebx jz L000AC2F4 mov dword ptr [esi+04h],00000001h mov eax,[edi] mov [esi],eax mov ecx,[edi+08h] mov [esi+08h],ecx lea ecx,[edi+0Ch] mov [esi+0Ch],ebx mov [esi+10h],ebx xor eax,eax lea edx,[esi+18h] mov [esp+1Ch],ecx L000AC229: mov ecx,eax and ecx,0000001Fh mov ebp,00000001h shl ebp,cl mov ecx,eax shr ecx,05h test [edi+ecx*4+0000072Ch],ebp jz L000AC259 mov ecx,[esp+1Ch] mov [edx-04h],eax mov ecx,[ecx] mov [edx],ecx mov ecx,[esi+0Ch] inc ecx inc ebx mov [esi+0Ch],ecx add edx,0000000Ch L000AC259: mov ebp,[esp+1Ch] inc eax add ebp,00000004h cmp eax,00000100h mov [esp+1Ch],ebp jc L000AC229 mov dword ptr [esp+1Ch],00000000h mov dword ptr [esp+10h],00000103h L000AC27C: lea edx,[ebx+ebx*2+06h] xor eax,eax lea edx,[esi+edx*4] L000AC285: mov ecx,eax and ecx,0000001Fh mov ebp,00000001h shl ebp,cl mov ecx,eax shr ecx,05h add ecx,[esp+1Ch] test [edi+ecx*4+00000750h],ebp jz L000AC2C3 mov ecx,[esp+10h] add ecx,eax mov [edx-04h],eax mov ecx,[edi+ecx*4] mov [edx],ecx mov ecx,[esp+1Ch] mov [edx+04h],ecx mov ecx,[esi+10h] inc ecx inc ebx mov [esi+10h],ecx add edx,0000000Ch L000AC2C3: inc eax cmp eax,00000018h jbe L000AC285 mov eax,[esp+10h] mov ebp,[esp+1Ch] add eax,00000019h inc ebp cmp eax,000001CBh mov [esp+1Ch],ebp mov [esp+10h],eax jc L000AC27C push edi call OsFreeMem pop edi mov eax,esi pop esi pop ebp pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ L000AC2F4: mov [edi+04h],ebx mov eax,edi pop edi pop esi pop ebp pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000AC310: push edi mov edi,[esp+08h] mov eax,[edi+000005BCh] test eax,eax jz L000AC357 mov eax,[edi+000005C0h] push esi xor esi,esi test eax,eax jbe L000AC34A L000AC32C: mov eax,[edi+000005BCh] mov eax,[eax+esi*4] test eax,eax jz L000AC33F push eax call OsFreeMem L000AC33F: mov eax,[edi+000005C0h] inc esi cmp esi,eax jc L000AC32C L000AC34A: mov ecx,[edi+000005BCh] push ecx call OsFreeMem pop esi L000AC357: pop edi retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000AC360: push 00000770h push 00000001h call OsAllocMem xor ecx,ecx cmp eax,ecx jz L000AC392 mov edx,[esp+08h] mov [eax+04h],ecx mov [eax+08h],ecx mov ecx,[esp+04h] mov [eax],edx mov [ecx+000005B8h],eax mov dword ptr [ecx+000005B4h],00000001h L000AC392: retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000AC3A0: push ebx push esi mov esi,[esp+0Ch] mov eax,[esi+000005B8h] xor ebx,ebx cmp eax,ebx jz L000AC3D6 push edi mov edi,[eax] push eax push esi call SUB_L000AC180 push eax push edi push esi call SUB_L000AC0D0 pop edi mov [esi+000005B8h],ebx mov [esi+000005B4h],ebx pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ L000AC3D6: mov [esi+000005B8h],ebx mov [esi+000005B4h],ebx pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000AC3F0: push esi mov esi,[esp+0Ch] push edi mov edi,[esp+0Ch] push esi push edi call SUB_L000AC0A0 test eax,eax jz L000AC419 mov ecx,[edi+000005BCh] push eax mov dword ptr [ecx+esi*4-04h],00000000h call OsFreeMem L000AC419: pop edi pop esi retn 0008h ;------------------------------------------------------------------------------ Align 4 SUB_L000AC420: push ecx mov eax,[esp+0Ch] push ebx push ebp push esi mov esi,[esp+14h] push edi push eax push esi call SUB_L000AC0A0 mov ebx,eax test ebx,ebx jz L000AC690 mov eax,[ebx+04h] test eax,eax jnz L000AC595 lea ecx,[esi+00000180h] xor edi,edi mov [esp+1Ch],ecx lea ebp,[ebx+0Ch] L000AC458: mov ecx,edi and ecx,0000001Fh mov edx,00000001h shl edx,cl mov eax,edi shr eax,05h test [ebx+eax*4+0000072Ch],edx jz L000AC497 mov eax,[ebp+00h] mov ecx,[esp+1Ch] push eax push edi mov [ecx],eax push esi mov dword ptr [esi+000005D8h],FFFFFFFFh call SUB_L00036990 mov dword ptr [esi+000005D8h],FFFFFFFFh L000AC497: mov ecx,[esp+1Ch] inc edi add ecx,00000004h add ebp,00000004h cmp edi,00000100h mov [esp+1Ch],ecx jc L000AC458 lea edx,[esi+000005DCh] mov dword ptr [esp+1Ch],00000000h mov dword ptr [esp+18h],00000177h mov ebp,00000103h mov [esp+10h],edx L000AC4CD: xor edi,edi L000AC4CF: mov edx,[esp+1Ch] mov ecx,edi and ecx,0000001Fh mov eax,00000001h shl eax,cl mov ecx,edi shr ecx,05h add ecx,edx test [ebx+ecx*4+00000750h],eax jz L000AC555 mov eax,[esp+18h] lea edx,[edi+ebp] mov ecx,[ebx+edx*4] mov edx,[esp+10h] add eax,edi mov [esi+eax*4],ecx mov eax,[edx] test eax,eax jz L000AC517 mov edx,[esi+000005A4h] mov edx,[edx] mov eax,[edx+eax*4] or dword ptr [eax+18h],00000001h L000AC517: mov dword ptr [esi+000005D8h],FFFFFFFFh mov eax,[ebx+08h] test eax,eax jz L000AC534 mov dword ptr [esi+00004870h],00000001h jmp L000AC53E L000AC534: mov dword ptr [esi+00004870h],00000000h L000AC53E: mov eax,[esp+1Ch] push ecx push edi push eax push esi call SUB_L0003B4C0 mov dword ptr [esi+00004870h],00000000h L000AC555: inc edi cmp edi,00000018h jbe L000AC4CF mov eax,[esp+1Ch] mov edx,[esp+18h] mov ecx,[esp+10h] inc eax add ebp,00000019h add edx,0000001Dh add ecx,00000074h cmp ebp,000001CBh mov [esp+1Ch],eax mov [esp+18h],edx mov [esp+10h],ecx jc L000AC4CD pop edi pop esi pop ebp pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ L000AC595: mov eax,[ebx+0Ch] xor edi,edi test eax,eax jbe L000AC5D5 lea ebp,[ebx+18h] L000AC5A1: mov ecx,[ebp+00h] mov eax,[ebp-04h] push ecx push eax mov [esi+eax*4+00000180h],ecx push esi mov dword ptr [esi+000005D8h],FFFFFFFFh call SUB_L00036990 mov dword ptr [esi+000005D8h],FFFFFFFFh mov eax,[ebx+0Ch] inc edi add ebp,0000000Ch cmp edi,eax jc L000AC5A1 L000AC5D5: mov ecx,[ebx+10h] add ecx,[ebx+0Ch] cmp edi,ecx jnc L000AC690 lea edx,[edi+edi*2] lea ebp,[ebx+edx*4+14h] L000AC5EA: mov eax,[ebp+08h] mov edx,[ebp+04h] mov ecx,[ebp+00h] mov [esp+1Ch],edx mov [esp+18h],ecx add ecx,eax lea edx,[00000000h+eax*8] sub edx,eax lea ecx,[ecx+edx*4] mov edx,[esp+1Ch] mov [esi+ecx*4+000005DCh],edx lea ecx,[00000000h+eax*8] sub ecx,eax lea edx,[eax+ecx*4] mov ecx,[esi+edx*4+000005DCh] test ecx,ecx jz L000AC63A mov edx,[esi+000005A4h] mov edx,[edx] mov ecx,[edx+ecx*4] or dword ptr [ecx+18h],00000001h L000AC63A: mov dword ptr [esi+000005D8h],FFFFFFFFh mov ecx,[ebx+08h] test ecx,ecx jz L000AC657 mov dword ptr [esi+00004870h],00000001h jmp L000AC661 L000AC657: mov dword ptr [esi+00004870h],00000000h L000AC661: mov ecx,[esp+1Ch] mov edx,[esp+18h] push ecx push edx push eax push esi call SUB_L0003B4C0 mov dword ptr [esi+00004870h],00000000h mov eax,[ebx+10h] mov edx,[ebx+0Ch] inc edi add eax,edx add ebp,0000000Ch cmp edi,eax jc L000AC5EA L000AC690: pop edi pop esi pop ebp pop ebx pop ecx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000AC6A0: mov eax,[esp+08h] push ebx mov ebx,[esp+08h] push ebp push esi push edi push eax push ebx call SUB_L000AC0A0 test eax,eax jz L000AC7C6 mov ecx,[eax+04h] test ecx,ecx mov dword ptr [eax+08h],00000001h jnz L000AC765 xor edx,edx lea edi,[eax+0Ch] lea esi,[ebx+00000180h] L000AC6D8: mov ecx,edx and ecx,0000001Fh mov ebp,00000001h shl ebp,cl mov ecx,edx shr ecx,05h test [eax+ecx*4+0000072Ch],ebp jz L000AC6F6 mov ecx,[esi] mov [edi],ecx L000AC6F6: inc edx add esi,00000004h add edi,00000004h cmp edx,00000100h jc L000AC6D8 xor edi,edi mov dword ptr [esp+18h],00000103h mov esi,00000177h L000AC714: xor edx,edx L000AC716: mov ecx,edx and ecx,0000001Fh mov ebp,00000001h shl ebp,cl mov ecx,edx shr ecx,05h add ecx,edi test [eax+ecx*4+00000750h],ebp jz L000AC741 mov ebp,[esp+18h] lea ecx,[esi+edx] mov ecx,[ebx+ecx*4] add ebp,edx mov [eax+ebp*4],ecx L000AC741: inc edx cmp edx,00000018h jbe L000AC716 mov edx,[esp+18h] add esi,0000001Dh add edx,00000019h inc edi cmp esi,0000025Fh mov [esp+18h],edx jc L000AC714 pop edi pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ L000AC765: mov edx,[eax+0Ch] xor ecx,ecx test edx,edx jbe L000AC788 lea edx,[eax+18h] L000AC771: mov esi,[edx-04h] mov esi,[ebx+esi*4+00000180h] mov [edx],esi mov esi,[eax+0Ch] inc ecx add edx,0000000Ch cmp ecx,esi jc L000AC771 L000AC788: mov edx,[eax+0Ch] add edx,[eax+10h] cmp ecx,edx jnc L000AC7C6 lea edx,[ecx+ecx*2] lea edx,[eax+edx*4+14h] L000AC799: mov esi,[edx+08h] mov ebp,[edx] lea edi,[00000000h+esi*8] sub edi,esi lea esi,[esi+edi*4] add esi,ebp mov esi,[ebx+esi*4+000005DCh] mov [edx+04h],esi mov esi,[eax+0Ch] mov ebp,[eax+10h] inc ecx add esi,ebp add edx,0000000Ch cmp ecx,esi jc L000AC799 L000AC7C6: pop edi pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 4 L000AC7D0: push esi push edi mov edi,[esp+0Ch] mov eax,[edi] mov esi,[L000B6BF0+eax*4] mov ecx,[esi+0000014Ch] mov dword ptr [ecx+00000690h],00000001h mov edx,[esi+00000144h] push edx call SUB_L00029670 mov eax,[esi+00000144h] push eax call SUB_L00036460 push esi call SUB_L000ABBF0 push esi call SUB_L000AC310 mov ecx,[esi+00000148h] push ecx call HALDestroyCommandStream push esi call HAL3DDestroyContext mov edx,[edi] xor eax,eax mov [L000B6BF0+edx*4],eax mov [edi],eax mov [edi+04h],eax pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L000AC840: push ebp mov ebp,esp sub esp,00000034h push ebx push esi mov esi,[ebp+08h] mov eax,[esi] mov ebx,[eax] push edi push ebx call GetDriverData mov ecx,[esi+10h] xor edi,edi mov [esi+10h],edi mov edx,[ebx] mov [ebp-08h],eax mov [L000B6F14],eax push 00000004h lea eax,[ebp-0Ch] push eax push SSZ000B24D0_NullHardware mov [ebp-1Ch],ecx mov [ebp-20h],edx mov [ebp-0Ch],edi mov [L000B6288],edi mov [ebp-14h],edi call SUB_L000AE460 push 00000004h push L000B6288 push SSZ000B24C0_RenderToPrimary call SUB_L000AE460 push 00000004h lea ecx,[ebp-14h] push ecx push SSZ000B24B4_Tlhal_Dll call SUB_L000AE460 mov eax,[esi+04h] cmp eax,edi mov [ebp-18h],eax jz L000ACE6E push eax call SUB_L0003B480 cmp eax,edi mov [esi+14h],eax jl L000ACE6E mov eax,[esi+08h] cmp eax,edi jz L000AC8E7 push eax mov [ebp-04h],eax call SUB_L0003B4A0 cmp eax,edi mov [esi+14h],eax jl L000ACE6E jmp L000AC8EA L000AC8E7: mov [ebp-04h],edi L000AC8EA: mov ecx,00000001h mov [ebp-10h],ecx mov eax,L000B6BF4 L000AC8F7: cmp [eax],edi jz L000AC906 add eax,00000004h inc ecx cmp eax,L000B6F10 jc L000AC8F7 L000AC906: cmp ecx,000000C8h mov [ebp-10h],ecx jnz L000AC926 mov dword ptr [esi+14h],00000201h mov eax,00000001h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L000AC926: mov edx,[ebp-08h] push 000049D0h push edx call HAL3DCreateContext mov ebx,eax cmp ebx,edi jnz L000AC94F mov dword ptr [esi+14h],00000201h mov eax,00000001h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L000AC94F: mov ecx,[L000B70A0] mov edx,[ebx+00000144h] xor eax,eax cmp ecx,edi mov ecx,[ebp-1Ch] push 00000001h setnz al push L000B1CA0 push edx push ebx mov [ebx+00000138h],ecx mov [ebx+00000A30h],eax call HALCreateCommandStream cmp eax,edi mov [ebx+00000148h],eax jnz L000AC99E mov dword ptr [esi+14h],00000201h mov eax,00000001h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L000AC99E: mov ecx,[ebp-20h] mov dword ptr [ebx+00000134h],00000001h mov eax,[esi+0Ch] mov [ebx+00000150h],eax mov eax,[ebp-10h] mov [ebx+000005A8h],ecx mov [esi+10h],eax mov [ebx+000005ACh],eax mov [L000B6BF0+eax*4],ebx mov edx,[esi] mov [ebx+000005A0h],edx mov eax,[esi] push eax call SUB_L000ACFB0 cmp eax,edi mov [ebx+000005A4h],eax jnz L000AC9FC mov dword ptr [esi+14h],8007000Eh mov eax,00000001h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L000AC9FC: mov ecx,[ebp-18h] mov edx,[ecx+20h] mov eax,[edx+18h] push ebx push eax call SUB_L000AD0C0 cmp eax,edi mov [ebx+00000174h],eax jnz L000ACA2B mov dword ptr [esi+14h],00000200h mov eax,00000001h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L000ACA2B: mov eax,[ebp-04h] cmp eax,edi jz L000ACA6B mov ecx,[eax+20h] mov edx,[ecx+18h] push ebx push edx call SUB_L000AD0C0 cmp eax,edi mov [ebx+00000178h],eax jnz L000ACA5E mov dword ptr [esi+14h],00000200h mov eax,00000001h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ L000ACA5E: mov eax,[ebp-04h] mov ecx,[eax] mov edx,[ecx+30h] mov [ebp-10h],edx jmp L000ACA78 L000ACA6B: mov [ebx+00000178h],edi mov dword ptr [ebp-10h],00000010h L000ACA78: mov esi,[ebp-18h] mov [ebx+00000158h],eax mov eax,[ebx+000005A4h] mov [ebx+00000154h],esi mov eax,[eax] mov edx,[eax] mov ecx,00000001h cmp edx,ecx jbe L000ACAB9 L000ACA9A: mov eax,[eax+ecx*4] cmp eax,edi jz L000ACAAA mov [eax+08h],edi mov [eax+0Ch],edi mov [eax+14h],ebx L000ACAAA: mov edx,[ebx+000005A4h] mov eax,[edx] mov edx,[eax] inc ecx cmp ecx,edx jc L000ACA9A L000ACAB9: mov eax,[ebp-08h] mov [ebx+000005B4h],edi mov [ebx+000005B8h],edi mov [ebx+000005BCh],edi mov [ebx+000005C0h],edi mov ecx,[eax+58h] mov [ebx+0000014Ch],ecx mov edx,ecx mov dword ptr [ebx+000005D8h],FFFFFFFFh mov dword ptr [edx+00000690h],00000001h mov eax,[ebx+0000014Ch] push 00000004h add eax,00000690h push eax push SSZ000B24A8_MaxFlips call SUB_L000AE460 mov ecx,[ebx+0000014Ch] mov dword ptr [ecx+00000694h],00000005h mov edx,[ebx+0000014Ch] mov [edx+00000698h],edi mov eax,[ebx+0000014Ch] mov [eax+0000069Ch],edi mov ecx,[ebx+0000014Ch] push 00000004h add ecx,00000694h push ecx push SSZ000B249C_MaxBlits call SUB_L000AE460 mov ecx,[ebp-0Ch] mov eax,[ebp-08h] xor edx,edx cmp ecx,edi setz dl push edx push eax push ebx call HAL3DEnableHardware push ebx call SUB_L000B18C0 mov eax,[esi+04h] test ah,20h jz L000ACB82 mov eax,[esi] mov edx,[eax+30h] lea ecx,[eax+24h] mov [ebp-1Ch],edx mov edx,[ebp-08h] mov [ebp-18h],ecx jmp L000ACB8E L000ACB82: mov edx,[ebp-08h] mov eax,[edx+28h] mov [ebp-18h],edi mov [ebp-1Ch],eax L000ACB8E: mov eax,[esi] mov ecx,[eax+1Ch] mov [ebp-24h],ecx mov ecx,[eax+18h] mov [ebp-20h],ecx cmp [L000B6288],edi jz L000ACBB2 mov eax,[edx+3Ch] mov ecx,[edx+40h] mov [ebp-08h],eax mov eax,[edx+4Ch] jmp L000ACBCE L000ACBB2: mov ecx,[eax+08h] mov edx,[ebx+0000014Ch] mov [ebp-08h],ecx mov ecx,[eax+20h] cmp ecx,edi jnz L000ACBC8 lea ecx,[edx+3Ch] L000ACBC8: mov ecx,[ecx+3Ch] mov eax,[eax+0Ch] L000ACBCE: mov edx,[ebp-10h] push edx mov edx,[ebp-18h] push edx mov edx,[ebp-24h] push eax mov eax,[ebp-20h] push eax mov eax,[ebp-1Ch] push edx mov edx,[ebx+00000148h] push eax push ecx mov ecx,[ebp-08h] push ecx push edx push ebx call SUB_L0003B0A0 mov [ebp-34h],edi mov [ebp-30h],edi mov eax,[esi] mov ecx,[eax+1Ch] mov [ebp-2Ch],ecx mov edx,[esi] mov eax,[edx+18h] lea ecx,[ebp-34h] push ecx push ebx mov [ebp-28h],eax call SUB_L0003DB00 mov eax,[ebx+74h] mov esi,[ebx+00000148h] and eax,FFFFFFFEh mov edx,eax mov [ebx+74h],eax mov eax,[esi+08h] mov [ebp-24h],edx mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000ACC69 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000ACC67 mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000ACC67 push esi call [esi+10h] mov eax,[esi+08h] L000ACC67: xor edi,edi L000ACC69: mov ecx,[ebp-24h] lea edx,[eax+04h] mov [esi+08h],edx mov [eax],ecx cmp [L000B7078],edi jz L000ACD4B mov eax,[ebx+74h] mov esi,[ebx+00000148h] and eax,FFEFFFFFh mov edx,eax mov [ebx+74h],eax mov eax,[esi+08h] mov ecx,eax mov [ebp-20h],edx lea edx,[ecx+04h] cmp edx,[esi+0Ch] jc L000ACCDE push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] mov [ebp-24h],eax jz L000ACCDB mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov ecx,eax lea edx,[ecx+04h] cmp edx,[esi+0Ch] jc L000ACCDE push esi call [esi+10h] mov eax,[esi+08h] mov ecx,eax jmp L000ACCDE L000ACCDB: mov ecx,[ebp-24h] L000ACCDE: add eax,00000004h mov [esi+08h],eax mov eax,[ebp-20h] mov [ecx],eax mov edx,[ebx+78h] mov esi,[ebx+00000148h] and edx,FFEFFFFFh mov [ebx+78h],edx mov eax,[esi+08h] mov ecx,edx mov [ebp-24h],ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L000ACD40 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000ACD3E mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000ACD3E push esi call [esi+10h] mov eax,[esi+08h] L000ACD3E: xor edi,edi L000ACD40: mov ecx,[ebp-24h] lea edx,[eax+04h] mov [esi+08h],edx mov [eax],ecx L000ACD4B: mov esi,[ebp-04h] cmp esi,edi jz L000ACE25 mov eax,[esi] mov ecx,[eax+20h] cmp ecx,edi mov edx,[ebx+0000014Ch] jnz L000ACD68 lea ecx,[edx+3Ch] L000ACD68: mov edx,[eax+0Ch] mov eax,[ecx+3Ch] mov ecx,[ebx+00000148h] push edx push eax push ecx push ebx call SUB_L0003B390 cmp [L000B70B0],edi jz L000ACE1A push ebx call [L000B6F54] mov eax,[eax+44h] mov edx,[ebx+000000D4h] mov esi,[ebx+00000148h] shr eax,02h and edx,FF000FFFh or edx,eax lea eax,[ebx+000000D0h] mov [ebx+000000D4h],edx mov edx,[esi+0Ch] mov [ebp-20h],eax mov eax,[esi+08h] lea ecx,[eax+0Ch] cmp ecx,edx mov dword ptr [ebp-1Ch],00000003h jc L000ACDFE push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000ACDFE mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+0Ch] cmp ecx,edx jc L000ACDFE push esi call [esi+10h] mov eax,[esi+08h] L000ACDFE: lea edx,[eax+0Ch] mov [esi+08h],edx mov [ebp-24h],eax cld push ecx mov ecx,[ebp-1Ch] mov esi,[ebp-20h] mov edi,[ebp-24h] rep movsd pop ecx mov esi,[ebp-04h] xor edi,edi L000ACE1A: mov eax,[esi] mov ecx,[eax+08h] mov [ebx+00000140h],ecx L000ACE25: mov [ebx+000005C8h],edi mov [ebx+000005CCh],edi mov dword ptr [ebx+00004868h],00000002h mov [ebx+00004870h],edi mov [ebx+00004878h],edi mov [ebx+00004874h],edi mov [ebx+0000487Ch],edi mov ebx,[ebx+00000148h] push 00000002h push ebx call [ebx+14h] mov edx,[ebp+08h] mov [ebx+0Ch],edi mov [ebx+08h],edi mov [ebx+04h],edi mov [edx+14h],edi L000ACE6E: pop edi pop esi mov eax,00000001h pop ebx mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000ACE80: push esi push 00000114h push 00000001h call OsAllocMem mov esi,eax test esi,esi jnz L000ACE97 pop esi retn 0008h ;------------------------------------------------------------------------------ L000ACE97: push edi or dword ptr [esi+18h],00000001h mov edi,[esp+10h] push edi mov dword ptr [esi+08h],00000000h mov dword ptr [esi+0Ch],00000000h call SUB_L000B11A0 mov [esi+1Ch],eax add eax,FFFFFFFEh cmp eax,00000012h ja CASE_000ACF4C_PROC0005 xor ecx,ecx mov cl,[eax+CASE_000ACF64] jmp [CASE_PROCTABLE_000ACF4C+ecx*4] CASE_000ACF4C_PROC0001: mov dword ptr [esi+64h],00000100h jmp L000ACF00 CASE_000ACF4C_PROC0002: mov dword ptr [esi+64h],00000010h jmp L000ACF00 CASE_000ACF4C_PROC0003: mov dword ptr [esi+64h],00000004h jmp L000ACF00 CASE_000ACF4C_PROC0004: mov dword ptr [esi+64h],00000002h jmp L000ACF00 CASE_000ACF4C_PROC0000: or dword ptr [esi+18h],00000080h CASE_000ACF4C_PROC0005: mov dword ptr [esi+64h],00000000h L000ACF00: mov eax,[esi+64h] test eax,eax jz L000ACF0B or dword ptr [esi+18h],00000002h L000ACF0B: mov edx,[edi] mov eax,[edx+1Ch] shr eax,1 jz L000ACF21 L000ACF14: mov edx,[esi+78h] shr eax,1 inc edx test eax,eax mov [esi+78h],edx ja L000ACF14 L000ACF21: mov eax,[edi] mov eax,[eax+18h] shr eax,1 jz L000ACF37 L000ACF2A: mov edx,[esi+74h] shr eax,1 inc edx test eax,eax mov [esi+74h],edx ja L000ACF2A L000ACF37: mov ecx,[edi+14h] mov edx,[edi+10h] push ecx push edx push esi call SUB_L000B1F70 pop edi mov eax,esi pop esi retn 0008h ;------------------------------------------------------------------------------ CASE_PROCTABLE_000ACF4C: dd CASE_000ACF4C_PROC0000 dd CASE_000ACF4C_PROC0001 dd CASE_000ACF4C_PROC0002 dd CASE_000ACF4C_PROC0003 dd CASE_000ACF4C_PROC0004 dd CASE_000ACF4C_PROC0005 CASE_000ACF64: db 00h, 05h, 00h, 00h, 00h, 01h, 02h, 03h, 04h, 05h, 05h, 05h, 05h, 00h, 00h, 00h db 00h, 00h, 00h Align 16 SUB_L000ACF80: mov edx,[esp+04h] mov ecx,L000B6BF4 L000ACF89: mov eax,[ecx] test eax,eax jz L000ACF97 cmp [eax+000005A0h],edx jz L000ACFA2 L000ACF97: add ecx,00000004h cmp ecx,L000B6F10 jl L000ACF89 L000ACFA2: retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000ACFB0: mov edx,[esp+04h] xor ecx,ecx mov eax,L000B6298 L000ACFBB: cmp [eax],edx jz L000ACFCF add eax,0000000Ch inc ecx cmp eax,L000B6BF8 jc L000ACFBB xor eax,eax retn 0004h ;------------------------------------------------------------------------------ L000ACFCF: lea eax,[ecx+ecx*2] lea eax,[L000B6290+eax*4] retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000ACFE0: mov edx,[esp+04h] push esi push edi xor ecx,ecx mov eax,L000B6298 L000ACFED: cmp [eax],edx jz L000AD001 add eax,0000000Ch inc ecx cmp eax,L000B6BF8 jc L000ACFED pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ L000AD001: lea edi,[ecx+ecx*2] shl edi,02h mov eax,[edi+L000B6290] test eax,eax jz L000AD06B mov ecx,[eax] push ebx mov ebx,00000001h cmp ecx,ebx jbe L000AD054 L000AD01D: mov esi,[eax+ebx*4] test esi,esi jz L000AD047 cmp dword ptr [esi+6Ch],4C544E49h jnz L000AD047 mov eax,[esi+60h] test eax,eax jz L000AD03A push esi call SUB_L00036570 L000AD03A: push esi mov dword ptr [esi+6Ch],00000000h call OsFreeMem L000AD047: mov eax,[edi+L000B6290] mov ecx,[eax] inc ebx cmp ebx,ecx jc L000AD01D L000AD054: mov eax,[edi+L000B6290] push eax call OsFreeMem mov dword ptr [edi+L000B6290],00000000h pop ebx L000AD06B: mov dword ptr [edi+L000B6298],00000000h mov eax,[edi+L000B6294] test eax,eax jz L000AD0BA mov ecx,[eax] mov esi,00000001h cmp ecx,esi jbe L000AD0A4 L000AD08A: mov eax,[eax+esi*4] test eax,eax jz L000AD097 push eax call OsFreeMem L000AD097: mov eax,[edi+L000B6294] mov ecx,[eax] inc esi cmp esi,ecx jc L000AD08A L000AD0A4: mov ecx,[edi+L000B6294] push ecx call OsFreeMem mov dword ptr [edi+L000B6294],00000000h L000AD0BA: pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L000AD0C0: mov eax,[esp+08h] mov ecx,[eax+000005A4h] mov eax,[ecx] test eax,eax jz L000AD0E2 mov ecx,[esp+04h] cmp [eax],ecx jbe L000AD0E2 test ecx,ecx jz L000AD0E2 mov eax,[eax+ecx*4] retn 0008h ;------------------------------------------------------------------------------ L000AD0E2: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000AD0F0: mov eax,[esp+08h] mov ecx,[eax+000005A4h] mov eax,[ecx+04h] test eax,eax jz L000AD113 mov ecx,[esp+04h] cmp [eax],ecx jbe L000AD113 test ecx,ecx jz L000AD113 mov eax,[eax+ecx*4] retn 0008h ;------------------------------------------------------------------------------ L000AD113: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000AD120: push ecx mov eax,[esp+0Ch] mov ecx,[eax+20h] push ebx mov ebx,[ecx+18h] push ebp push esi or esi,FFFFFFFFh xor ecx,ecx push edi mov edi,[esp+18h] mov [esp+10h],ebx mov [esp+1Ch],ecx mov eax,L000B6298 L000AD145: mov edx,[eax] cmp edi,edx jz L000AD167 test edx,edx jnz L000AD156 cmp esi,FFFFFFFFh jnz L000AD156 mov esi,ecx L000AD156: add eax,0000000Ch inc ecx cmp eax,L000B6BF8 jl L000AD145 mov [esp+1Ch],ecx jmp L000AD173 L000AD167: cmp ecx,000000C8h mov [esp+1Ch],ecx jl L000AD188 L000AD173: cmp esi,FFFFFFFFh jz L000AD1C3 lea edx,[esi+esi*2] mov [esp+1Ch],esi mov [L000B6298+edx*4],edi mov ecx,esi L000AD188: lea esi,[ecx+ecx*2] mov eax,[L000B6290+esi*4] test eax,eax mov [esp+18h],esi jz L000AD1A2 cmp ebx,[eax] jc L000AD22A L000AD1A2: add ebx,00000400h shr ebx,0Ah shl ebx,0Ah lea eax,[00000000h+ebx*4] push eax push 00000001h call OsAllocMem mov ebp,eax test ebp,ebp jnz L000AD1CD L000AD1C3: pop edi pop esi pop ebp xor eax,eax pop ebx pop ecx retn 000Ch ;------------------------------------------------------------------------------ L000AD1CD: mov ecx,ebx mov edx,ecx shr ecx,02h xor eax,eax mov edi,ebp rep stosd mov ecx,edx and ecx,00000003h rep stosb mov eax,[L000B6290+esi*4] test eax,eax jz L000AD218 mov ecx,[eax] shl ecx,02h mov esi,eax mov eax,ecx shr ecx,02h mov edi,ebp rep movsd mov ecx,eax and ecx,00000003h rep movsb mov ecx,[esp+18h] mov edx,[L000B6290+ecx*4] push edx call OsFreeMem mov esi,[esp+18h] L000AD218: mov ecx,[esp+1Ch] mov [L000B6290+esi*4],ebp mov [ebp+00h],ebx mov ebx,[esp+10h] L000AD22A: mov edx,[L000B6290+esi*4] mov eax,[esp+20h] pop edi pop esi mov [edx+ebx*4],eax pop ebp mov [eax+000000B8h],ecx mov eax,00000001h pop ebx pop ecx retn 000Ch ;------------------------------------------------------------------------------ Align 8 SUB_L000AD250: mov edx,[esp+04h] xor ecx,ecx mov eax,L000B6298 L000AD25B: cmp [eax],edx jz L000AD26F add eax,0000000Ch inc ecx cmp eax,L000B6BF8 jc L000AD25B L000AD26A: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ L000AD26F: lea eax,[ecx+ecx*2] mov eax,[L000B6290+eax*4] test eax,eax jz L000AD26A mov ecx,[esp+08h] cmp [eax],ecx jbe L000AD26A mov eax,[eax+ecx*4] retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L000AD290: mov eax,[esp+0Ch] push esi push edi push eax call GetDriverData push eax call SUB_L00017390 mov esi,[esp+10h] mov ecx,[esi+04h] mov edi,[esp+0Ch] mov [edi+0000008Ch],ecx mov ecx,[esi+04h] test ch,20h jz L000AD2CF mov ecx,[esi] test byte ptr [ecx+28h],04h jz L000AD2CA mov ecx,00000010h jmp L000AD2D2 L000AD2CA: mov ecx,[ecx+30h] jmp L000AD2D2 L000AD2CF: mov ecx,[eax+10h] L000AD2D2: mov [edi+00000090h],ecx mov edx,[esi] mov cx,[edx+1Ch] mov [edi+000000A8h],cx mov edx,[esi] mov cx,[edx+18h] mov [edi+000000AAh],cx mov edx,[esi+08h] mov [edi+00000088h],edx mov ecx,[esi+20h] mov edx,[ecx+18h] mov [edi+00000098h],edx mov ecx,[esi] mov ecx,[ecx+20h] test ecx,ecx jnz L000AD313 lea ecx,[eax+3Ch] L000AD313: mov [edi+0000009Ch],ecx mov [edi+000000A0h],esi mov eax,[esi+04h] test ah,08h jz L000AD33C or dword ptr [edi+18h],00000200h mov edx,[esi+10h] mov eax,[esi+14h] push edx push eax push edi call SUB_L000B1F70 L000AD33C: mov eax,[esi+08h] test ah,40h mov eax,[edi+18h] jnz L000AD34C or eax,00000010h jmp L000AD34F L000AD34C: or eax,0000000Ch L000AD34F: mov [edi+18h],eax test dword ptr [esi+08h],00400000h jz L000AD399 xor edx,edx test esi,esi mov eax,esi jz L000AD38E lea ecx,[edi+000000E8h] L000AD369: mov esi,[eax] mov esi,[esi+08h] mov [ecx-2Ch],esi mov esi,[eax] mov esi,[esi+0Ch] mov [ecx],esi mov eax,[eax+24h] test eax,eax jz L000AD384 mov eax,[eax+04h] jmp L000AD386 L000AD384: xor eax,eax L000AD386: inc edx add ecx,00000004h test eax,eax jnz L000AD369 L000AD38E: mov [edi+00000084h],edx pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ L000AD399: mov ecx,[esi] mov edx,[ecx+08h] mov [edi+000000BCh],edx mov eax,[esi] mov ecx,[eax+0Ch] mov [edi+000000E8h],ecx mov dword ptr [edi+00000084h],00000001h pop edi pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 4 L000AD3C0: mov eax,[esp+04h] push eax mov dword ptr [eax+6Ch],00000000h call OsFreeMem retn 0004h ;------------------------------------------------------------------------------ Align 16 L000AD3E0: mov eax,[esp+04h] test eax,eax jz L000AD418 mov edx,[esp+08h] test edx,edx jz L000AD418 mov eax,[eax+000005A4h] test eax,eax jz L000AD418 mov ecx,[eax] test ecx,ecx jz L000AD418 mov eax,[edx+20h] test eax,eax jz L000AD418 mov eax,[eax+18h] test eax,eax jz L000AD418 cmp eax,[ecx] jnc L000AD418 mov eax,[ecx+eax*4] retn 0008h ;------------------------------------------------------------------------------ L000AD418: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 4 L000AD420: mov eax,[esp+04h] mov ecx,[eax+00000178h] mov edx,[ecx+0000009Ch] mov eax,[edx+34h] retn 0004h ;------------------------------------------------------------------------------ Align 16 L000AD440: mov eax,[L000B70B0] test eax,eax push esi mov esi,[esp+08h] push edi mov edi,[esi+04h] jz L000AD482 test dword ptr [edi+08h],L00020000 jz L000AD482 push esi call SUB_L000351E0 mov eax,[esi] push eax call GetDriverData push eax call SUB_L00017390 mov ecx,[edi] mov ecx,[ecx+20h] test ecx,ecx jnz L000AD47B lea ecx,[eax+3Ch] L000AD47B: mov dword ptr [ecx+34h],00000000h L000AD482: mov esi,[esi+04h] mov edx,[esi+20h] mov eax,[edx+18h] test eax,eax mov esi,[esi+0Ch] jz L000AD4D5 lea ecx,[esi+esi*2] mov ecx,[L000B6290+ecx*4] test ecx,ecx jz L000AD4D5 cmp eax,[ecx] jnc L000AD4D5 mov eax,[ecx+eax*4] test eax,eax jz L000AD4D5 mov ecx,[edi+08h] test ch,08h jnz L000AD4D5 test ecx,00401000h jz L000AD4D5 mov edx,[edi] mov dword ptr [edx+08h],FFD3DBADh mov dword ptr [eax+0000009Ch],00000000h mov dword ptr [eax+7Ch],00000001h L000AD4D5: pop edi mov eax,00000001h pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 L000AD4E0: push ebp mov ebp,esp push ecx push ebx push esi mov esi,[ebp+08h] mov ebx,[esi+000000A4h] push edi mov edi,[esi+14h] push edi push ebx call SUB_L000AD0F0 mov edi,[edi+000005A4h] mov edi,[edi+04h] mov edx,[esi+64h] mov edi,[edi+ebx*4] mov ecx,[esi+60h] mov ebx,[edi] add eax,00000008h push edx add ecx,00000004h test bh,20h push eax push ecx jz L000AD52B call SUB_L000364D0 mov eax,[esi+18h] or eax,00000080h jmp L000AD538 L000AD52B: call SUB_L00036520 mov eax,[esi+18h] and eax,FFFFFF7Fh L000AD538: mov ebx,[ebp+0Ch] mov edi,[esi+5Ch] mov [esi+18h],eax mov eax,[ebx+08h] test al,04h mov [ebp+08h],edi jz L000AD595 mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000AD589 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000AD586 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000AD586 push ebx call [ebx+10h] mov eax,[ebx+08h] L000AD586: mov edi,[ebp+08h] L000AD589: lea edx,[eax+04h] mov [ebx+08h],edx mov dword ptr [eax],00000000h L000AD595: mov eax,[esi+60h] mov edx,[ebx+0Ch] mov [ebp-04h],eax mov eax,[ebx+08h] lea ecx,[eax+edi*4] cmp ecx,edx jc L000AD5D9 push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000AD5D9 mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+edi*4] cmp ecx,edx jc L000AD5D9 push ebx call [ebx+10h] mov eax,[ebx+08h] L000AD5D9: lea edx,[eax+edi*4] mov [ebx+08h],edx mov [ebp+0Ch],eax cld push ecx mov ecx,[ebp+08h] mov esi,[ebp-04h] mov edi,[ebp+0Ch] rep movsd pop ecx mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000AD62E push ebx call [ebx+10h] mov ecx,[ebx+18h] mov edx,[ebx+1Ch] cmp [ecx+74h],edx mov eax,[ebx+08h] jz L000AD62E mov [ecx+74h],edx mov edx,[ebx+1Ch] push edx push ebx call [ebx+20h] mov eax,[ebx+08h] mov edx,[ebx+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000AD62E push ebx call [ebx+10h] mov eax,[ebx+08h] L000AD62E: pop edi lea edx,[eax+04h] mov [ebx+08h],edx pop esi mov dword ptr [eax],02000001h pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 16 L000AD650: mov eax,[esp+04h] mov ecx,[eax+64h] push ecx push eax call SUB_L000B0A90 retn 0008h ;------------------------------------------------------------------------------ Align 16 L000AD670: push ebx push esi mov esi,[esp+10h] push edi xor edi,edi cmp esi,edi jnz L000AD688 pop edi pop esi mov eax,887601B3h pop ebx retn 0008h ;------------------------------------------------------------------------------ L000AD688: mov eax,[esp+10h] cmp eax,edi jz L000AD7BF mov eax,[eax+00000144h] cmp eax,edi jz L000AD7BF cmp [eax+58h],edi jz L000AD7BF mov ebx,[esi+0000009Ch] mov dword ptr [esi+38h],7D000002h mov dword ptr [esi+34h],00000004h mov [esi+3Ch],edi mov eax,[esi+1Ch] dec eax cmp eax,00000013h ja CASE_000AD7CC_PROC0002 jmp [CASE_PROCTABLE_000AD7CC+eax*4] CASE_000AD7CC_PROC0006: mov [esi+3Ch],edi mov eax,[esi+18h] and eax,00000080h shl eax,0Fh mov [esi+3Ch],eax jmp L000AD74A CASE_000AD7CC_PROC0000: mov dword ptr [esi+3Ch],02000000h jmp L000AD74A CASE_000AD7CC_PROC0001: mov dword ptr [esi+3Ch],02200000h jmp L000AD74A CASE_000AD7CC_PROC0003: mov dword ptr [esi+3Ch],02400000h jmp L000AD74A CASE_000AD7CC_PROC0004: mov dword ptr [esi+3Ch],03000000h jmp L000AD74A CASE_000AD7CC_PROC0005: mov dword ptr [esi+3Ch],03100000h jmp L000AD74A CASE_000AD7CC_PROC000E: mov dword ptr [esi+3Ch],02600000h jmp L000AD74A CASE_000AD7CC_PROC000A: mov dword ptr [esi+3Ch],05240000h jmp L000AD74A CASE_000AD7CC_PROC000B: mov dword ptr [esi+3Ch],05040000h jmp L000AD74A CASE_000AD7CC_PROC000F: mov dword ptr [esi+3Ch],06000000h jmp L000AD74A CASE_000AD7CC_PROC0010: mov dword ptr [esi+3Ch],06200000h jmp L000AD74A CASE_000AD7CC_PROC0012: mov dword ptr [esi+3Ch],06400000h L000AD74A: push esi call [L000B70C4] shr eax,03h test al,01h jnz L000AD75F L000AD758: shr eax,1 inc edi test al,01h jz L000AD758 L000AD75F: mov edx,[esi+3Ch] or edx,edi mov [esi+3Ch],edx test dword ptr [ebx+50h],L00080000 mov eax,edx jz L000AD777 or eax,00000400h L000AD777: mov [esi+3Ch],eax mov dword ptr [esi+40h],80000000h mov eax,[esi+74h] or eax,FFFF8000h shl eax,10h mov [esi+40h],eax mov ecx,[esi+78h] or ecx,eax mov [esi+40h],ecx mov edx,[esi+0000009Ch] mov eax,[edx+3Ch] mov [esi+44h],eax mov eax,[esi+18h] and eax,FFFFFFFEh pop edi mov [esi+18h],eax pop esi xor eax,eax pop ebx retn 0008h ;------------------------------------------------------------------------------ CASE_000AD7CC_PROC0002: pop edi pop esi mov eax,88760091h pop ebx retn 0008h ;------------------------------------------------------------------------------ L000AD7BF: pop edi pop esi mov eax,887601C2h pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_000AD7CC: dd CASE_000AD7CC_PROC0000 dd CASE_000AD7CC_PROC0001 dd CASE_000AD7CC_PROC0002 dd CASE_000AD7CC_PROC0003 dd CASE_000AD7CC_PROC0004 dd CASE_000AD7CC_PROC0005 dd CASE_000AD7CC_PROC0006 dd CASE_000AD7CC_PROC0002 dd CASE_000AD7CC_PROC0002 dd CASE_000AD7CC_PROC0002 dd CASE_000AD7CC_PROC000A dd CASE_000AD7CC_PROC000B dd CASE_000AD7CC_PROC0002 dd CASE_000AD7CC_PROC0002 dd CASE_000AD7CC_PROC000E dd CASE_000AD7CC_PROC000F dd CASE_000AD7CC_PROC0010 dd CASE_000AD7CC_PROC0010 dd CASE_000AD7CC_PROC0012 dd CASE_000AD7CC_PROC0012 Align 8 L000AD820: mov eax,[esp+04h] mov ecx,[eax] mov eax,[L000B6BF0+ecx*4] retn 0004h ;------------------------------------------------------------------------------ L000AD830: sub esp,00000008h push ebx push ebp push esi mov esi,[esp+18h] mov eax,[esi] push edi push eax call GetDriverData mov esi,[esi+04h] mov ecx,[esi] mov edi,eax mov eax,[ecx+20h] test eax,eax mov ebx,[edi+58h] mov [esp+14h],esi jnz L000AD861 lea ebp,[ebx+3Ch] mov [esp+1Ch],ebp jmp L000AD867 L000AD861: mov [esp+1Ch],eax mov ebp,eax L000AD867: test dword ptr [esi+08h],00400000h jz L000AD96B mov eax,[ebp+20h] test eax,eax jnz L000AD96B mov edx,[ebp+24h] cmp edx,[ebp+44h] jz L000AD96B L000AD88B: mov eax,[esi] mov eax,[eax+20h] test eax,eax jnz L000AD897 lea eax,[ebx+3Ch] L000AD897: mov eax,[eax+08h] push eax push edi call SUB_L00029710 test eax,eax jnz L000AD88B mov eax,[esi+04h] test ah,20h jz L000AD8C1 mov eax,[esi] test byte ptr [eax+28h],04h jz L000AD8BC mov ecx,00000010h jmp L000AD8C4 L000AD8BC: mov ecx,[eax+30h] jmp L000AD8C4 L000AD8C1: mov ecx,[ebx+10h] L000AD8C4: mov eax,[esi] test dword ptr [esi+08h],20000000h mov edx,[eax+18h] mov ebx,[eax+08h] mov [esp+10h],edx jz L000AD8DE mov esi,[ebp+38h] jmp L000AD8E1 L000AD8DE: mov esi,[ebp+3Ch] L000AD8E1: mov edi,[eax+1Ch] imul edi,ecx shr edi,03h cmp edi,00000002h ja L000AD8F4 mov edi,00000002h L000AD8F4: xor ebp,ebp test edx,edx jbe L000AD91D L000AD8FA: push edi push ebx push esi call SUB_L0003E510 test eax,eax jz L000AD91D mov eax,[esp+1Ch] mov ecx,[eax+24h] mov edx,[eax+44h] mov eax,[esp+10h] add ebx,ecx add esi,edx inc ebp cmp ebp,eax jc L000AD8FA L000AD91D: mov esi,[esp+14h] mov ecx,[esi] mov edx,[ecx+08h] push edx call SUB_L00017340 test dword ptr [esi+08h],20000000h jz L000AD950 mov edx,[esi] mov eax,[esp+1Ch] mov eax,[eax+38h] pop edi pop esi pop ebp mov [edx+08h],eax mov eax,00000001h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L000AD950: mov edx,[esi] mov ecx,[esp+1Ch] mov eax,[ecx+3Ch] pop edi pop esi pop ebp mov [edx+08h],eax mov eax,00000001h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L000AD96B: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ Align 16 L000AD980: sub esp,00000008h push ebx push ebp mov ebp,[esp+14h] mov eax,[ebp+00h] push esi push edi push eax call GetDriverData mov edx,[ebp+04h] mov ecx,[edx] mov edi,[ecx+20h] test edi,edi mov ebx,[eax+58h] mov [esp+14h],edx jnz L000AD9AC add ebx,0000003Ch jmp L000AD9AE L000AD9AC: mov ebx,edi L000AD9AE: test dword ptr [edx+08h],00400000h jz L000ADA2E mov esi,[ebx+20h] test esi,esi jnz L000ADA2E mov esi,[ebx+24h] cmp esi,[ebx+44h] jz L000ADA2E test dword ptr [edx+04h],00002000h jz L000AD9E1 test byte ptr [ecx+28h],04h jz L000AD9DC mov edx,00000010h jmp L000AD9E7 L000AD9DC: mov edx,[ecx+30h] jmp L000AD9E7 L000AD9E1: mov edx,[eax+58h] mov edx,[edx+10h] L000AD9E7: mov esi,[ecx+18h] mov [esp+1Ch],esi mov esi,[ecx+1Ch] shr edx,03h imul esi,edx cmp esi,00000008h mov [esp+10h],esi ja L000ADA09 mov esi,00000008h mov [esp+10h],esi L000ADA09: test byte ptr [ebp+28h],01h jnz L000ADA3A test edi,edi jnz L000ADA19 mov edi,[eax+58h] add edi,0000003Ch L000ADA19: mov edi,[edi+08h] push edi push eax call SUB_L00029710 test eax,eax jz L000ADA3A mov dword ptr [ebp+20h],8876021Ch L000ADA2E: pop edi pop esi pop ebp xor eax,eax pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L000ADA3A: mov ecx,[ebx+24h] imul ecx,[esp+1Ch] push ecx push 00000000h call SUB_L000172E0 test eax,eax mov [ebp+1Ch],eax jnz L000ADA62 pop edi pop esi mov dword ptr [ebp+20h],8007000Eh pop ebp pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ L000ADA62: mov ecx,[esp+14h] mov edx,[ecx] mov [edx+08h],eax test dword ptr [ecx+08h],20000000h jz L000ADA79 mov edx,[ebx+38h] jmp L000ADA7C L000ADA79: mov edx,[ebx+3Ch] L000ADA7C: mov ecx,[esp+1Ch] test ecx,ecx mov eax,[ebp+1Ch] jbe L000ADABA mov [esp+1Ch],ecx jmp L000ADA91 L000ADA8D: mov esi,[esp+10h] L000ADA91: mov ecx,esi mov ebp,ecx shr ecx,02h mov esi,edx mov edi,eax rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov edi,[ebx+44h] mov esi,[ebx+24h] mov ecx,[esp+1Ch] add edx,edi add eax,esi dec ecx mov [esp+1Ch],ecx jnz L000ADA8D L000ADABA: pop edi pop esi pop ebp mov eax,00000001h pop ebx add esp,00000008h retn 0004h ;------------------------------------------------------------------------------ Align 8 L000ADAD0: push ebx push esi mov esi,[esp+0Ch] mov eax,[esi] push edi push eax call GetDriverData mov ebx,[esi+04h] mov ecx,[ebx+20h] mov edi,[ecx+18h] test edi,edi mov edx,[eax+58h] jz L000ADBBF mov ecx,[ebx+0Ch] lea ecx,[ecx+ecx*2] mov edi,[L000B6290+ecx*4] test edi,edi jz L000ADBBF test byte ptr [esi+08h],08h jz L000ADBC6 mov ecx,[ebx+08h] test ch,10h jz L000ADBC6 test ch,40h jz L000ADBC6 mov ecx,[ebx] mov ecx,[ecx+20h] test ecx,ecx jnz L000ADB3B lea ecx,[edx+3Ch] test ecx,ecx jz L000ADBC6 L000ADB3B: mov edi,[eax+70h] test edi,edi jz L000ADBC6 L000ADB46: push ebx push edi call [L000B6F70] mov esi,eax test esi,esi jz L000ADB5D cmp dword ptr [esi+6Ch],4C544E49h jz L000ADB67 L000ADB5D: mov edi,[edi+00000130h] test edi,edi jnz L000ADB46 L000ADB67: test esi,esi jz L000ADBC6 mov edx,[esp+10h] mov eax,[edx+04h] mov ecx,[eax+04h] test ch,08h jz L000ADB91 or dword ptr [esi+18h],00000200h mov ecx,[ebx+14h] mov edx,[ebx+10h] push ecx push edx push esi call SUB_L000B1F70 jmp L000ADB98 L000ADB91: and dword ptr [esi+18h],FFFFFDFFh L000ADB98: mov eax,[esi+18h] test ah,01h jz L000ADBC6 mov esi,[esi+14h] mov eax,[esi+000005D8h] or eax,10000000h pop edi mov [esi+000005D8h],eax pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000ADBBF: mov dword ptr [esi+14h],887601C2h L000ADBC6: pop edi pop esi mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000ADBE0: push ebp mov ebp,esp sub esp,00000058h push ebx push esi push edi mov edi,[ebp+0Ch] test edi,edi jnz L000ADBFE mov eax,80070057h pop edi pop esi pop ebx mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ L000ADBFE: mov ebx,[ebp+08h] mov esi,[ebx+00000148h] push 00000002h push esi call [esi+14h] xor eax,eax mov [esi+0Ch],eax mov [esi+08h],eax mov [esi+04h],eax mov eax,[ebx+00000144h] push ebx push edi mov [ebp-08h],eax call SUB_L000AD0C0 mov esi,eax mov eax,[ebp+10h] test eax,eax mov [ebp-04h],esi jz L000ADC42 push ebx push eax call SUB_L000AD0C0 mov edi,eax mov [ebp+0Ch],edi jmp L000ADC4C L000ADC42: mov dword ptr [ebp+0Ch],00000000h mov edi,[ebp+0Ch] L000ADC4C: mov ecx,[esi+0000009Ch] mov eax,[ebx+0000014Ch] mov edx,[ecx+3Ch] cmp [eax+000006A0h],edx jz L000ADC6B cmp [eax+000006A4h],edx jnz L000ADC93 L000ADC6B: mov ecx,[ecx+0Ch] mov eax,[eax+000002A4h] push ecx push eax call GHAL_UpdateFlipStatus test eax,eax jz L000ADC93 mov eax,[ebx+00000148h] push 00000001h push eax call SUB_L000377E0 mov dword ptr [eax],01800004h L000ADC93: test edi,edi jz L000ADCA3 push edi call [L000B6F40] mov [ebp+08h],eax jmp L000ADCAA L000ADCA3: mov dword ptr [ebp+08h],00000010h L000ADCAA: push esi call [L000B7088] test ah,20h jz L000ADD93 mov esi,[esi+1Ch] sub esi,00000002h mov dword ptr [ebp-34h],00000040h jz L000ADD14 dec esi jz L000ADD0B dec esi jz L000ADCE6 mov dword ptr [ebp-1Ch],00000000h mov dword ptr [ebp-28h],0000F800h mov dword ptr [ebp-24h],000007E0h jmp L000ADD30 L000ADCE6: mov dword ptr [ebp-34h],00000041h mov dword ptr [ebp-1Ch],0000F000h mov dword ptr [ebp-28h],00000F00h mov dword ptr [ebp-24h],000000F0h mov dword ptr [ebp-20h],0000000Fh jmp L000ADD37 L000ADD0B: mov dword ptr [ebp-1Ch],00000000h jmp L000ADD22 L000ADD14: mov dword ptr [ebp-34h],00000041h mov dword ptr [ebp-1Ch],00008000h L000ADD22: mov dword ptr [ebp-28h],00007C00h mov dword ptr [ebp-24h],000003E0h L000ADD30: mov dword ptr [ebp-20h],0000001Fh L000ADD37: mov edx,[ebp+08h] mov ecx,00000008h lea esi,[ebp-38h] lea edi,[ebp-58h] rep movsd mov esi,[ebp-04h] mov ecx,[esi+0000009Ch] mov edi,[ecx+3Ch] push edx lea eax,[ebp-58h] push eax push esi call [L000B70C4] push eax push esi call [L000B6F84] push eax push esi call [L000B6F60] push eax push esi call [L000B6F40] push eax push edi push esi call [L000B70B4] mov ecx,[ebx+00000148h] push eax push ecx push ebx call SUB_L0003B0A0 mov edi,[ebp+0Ch] jmp L000ADDDD L000ADD93: mov ecx,[ebp+08h] mov edx,[esi+0000009Ch] mov eax,[edx+3Ch] push ecx push 00000000h push esi mov [ebp+10h],eax call [L000B70C4] push eax push esi call [L000B6F84] push eax push esi call [L000B6F60] mov edx,[ebp-08h] mov ecx,[ebp+10h] push eax mov eax,[edx+28h] push eax push ecx push esi call [L000B70B4] mov edx,[ebx+00000148h] push eax push edx push ebx call SUB_L0003B0A0 L000ADDDD: xor eax,eax push esi mov [ebx+00000174h],esi mov [ebp-18h],eax mov [ebp-14h],eax call [L000B6F60] push esi mov [ebp-10h],eax call [L000B6F84] mov [ebp-0Ch],eax lea eax,[ebp-18h] push eax push ebx call SUB_L0003DB00 test edi,edi jz L000ADEC6 mov ecx,[edi+0000009Ch] mov esi,[ecx+3Ch] push edi call [L000B70C4] mov edx,[ebx+00000148h] push eax push esi push edx push ebx call SUB_L0003B390 mov eax,[L000B70B0] test eax,eax jz L000ADE8E mov eax,[edi+0000009Ch] mov ecx,[eax+34h] mov eax,[ecx+44h] mov edx,[ebx+000000D4h] mov ecx,[ebx+00000148h] shr eax,02h and edx,FF000FFFh or edx,eax push 00000003h lea eax,[ebx+000000D0h] push ecx mov [ebx+000000D4h],edx mov dword ptr [ebp-08h],00000003h mov [ebp+10h],eax call SUB_L000377E0 mov [ebp+08h],eax cld push ecx mov ecx,[ebp-08h] mov esi,[ebp+10h] mov edi,[ebp+08h] rep movsd pop ecx mov edi,[ebp+0Ch] L000ADE8E: mov edx,[ebx+0000019Ch] mov eax,[ebx+00000148h] mov ecx,00000001h cmp edx,ecx mov edx,[ebx+74h] jnz L000ADEAA or edx,ecx jmp L000ADEAD L000ADEAA: and edx,FFFFFFFEh L000ADEAD: push ecx push eax mov [ebx+74h],edx mov esi,edx call SUB_L000377E0 mov [eax],esi mov [ebx+00000178h],edi jmp L000ADFA5 L000ADEC6: mov edx,[ebx+74h] mov esi,[ebx+00000148h] and edx,FFFFFFFEh mov [ebx+74h],edx mov eax,[esi+08h] mov ecx,edx mov [ebp+0Ch],ecx mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L000ADF18 push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000ADF18 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000ADF18 push esi call [esi+10h] mov eax,[esi+08h] L000ADF18: mov ecx,[ebp+0Ch] lea edx,[eax+04h] mov [esi+08h],edx mov [eax],ecx mov eax,[L000B7078] test eax,eax jz L000ADFA5 mov esi,[ebx+74h] mov eax,[ebx+00000148h] mov edi,FFEFFFFFh push 00000001h and esi,edi push eax mov [ebx+74h],esi call SUB_L000377E0 mov [eax],esi mov eax,[ebx+78h] mov esi,[ebx+00000148h] and eax,edi mov edx,eax mov [ebx+78h],eax mov eax,[esi+08h] mov [ebp+0Ch],edx mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000ADF9A push esi call [esi+10h] mov ecx,[esi+18h] mov edx,[esi+1Ch] cmp [ecx+74h],edx mov eax,[esi+08h] jz L000ADF9A mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000ADF9A push esi call [esi+10h] mov eax,[esi+08h] L000ADF9A: mov ecx,[ebp+0Ch] lea edx,[eax+04h] mov [esi+08h],edx mov [eax],ecx L000ADFA5: mov ebx,[ebx+00000148h] push 00000002h push ebx call [ebx+14h] xor eax,eax pop edi pop esi mov [ebx+0Ch],eax mov [ebx+08h],eax mov [ebx+04h],eax pop ebx mov esp,ebp pop ebp retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000ADFD0: mov eax,[esp+04h] push esi xor esi,esi dec eax cmp eax,00000005h push edi ja L000AE1A9 jmp [CASE_PROCTABLE_000AE1B8+eax*4] CASE_000AE1B8_PROC0000: mov edi,[esp+10h] mov eax,[edi+000005D8h] test eax,eax jz L000AE00E mov ecx,[edi+00000148h] push ecx push edi call SUB_L0003B7F0 mov esi,eax test esi,esi jl L000AE1AE L000AE00E: mov edx,[esp+1Ch] mov eax,[esp+18h] mov ecx,[esp+14h] push edx push eax push ecx push edi mov dword ptr [edi+000005CCh],FFFFFFFFh call [edi+000009C0h] pop edi mov eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ CASE_000AE1B8_PROC0001: mov edi,[esp+10h] mov eax,[edi+000005D8h] test eax,eax jz L000AE05A mov edx,[edi+00000148h] push edx push edi call SUB_L0003B7F0 mov esi,eax test esi,esi jl L000AE1AE L000AE05A: mov eax,[esp+1Ch] mov ecx,[esp+18h] mov edx,[esp+14h] push eax push ecx push edx push edi mov dword ptr [edi+000005CCh],FFFFFFFFh call [edi+000009E0h] pop edi mov eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ CASE_000AE1B8_PROC0002: mov edi,[esp+10h] mov eax,[edi+000005D8h] test eax,eax jz L000AE0A6 mov eax,[edi+00000148h] push eax push edi call SUB_L0003B7F0 mov esi,eax test esi,esi jl L000AE1AE L000AE0A6: mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,[esp+14h] push ecx push edx push eax push edi mov dword ptr [edi+000005CCh],FFFFFFFFh call [edi+000009E4h] pop edi mov eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ CASE_000AE1B8_PROC0003: mov edi,[esp+10h] mov eax,[edi+000005D8h] test eax,eax jz L000AE0F2 mov ecx,[edi+00000148h] push ecx push edi call SUB_L0003B7F0 mov esi,eax test esi,esi jl L000AE1AE L000AE0F2: mov edx,[esp+1Ch] mov eax,[esp+18h] mov ecx,[esp+14h] push edx push eax push ecx push edi mov dword ptr [edi+000005CCh],FFFFFFFFh call [edi+000009D8h] pop edi mov eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ CASE_000AE1B8_PROC0004: mov edi,[esp+10h] mov eax,[edi+000005D8h] test eax,eax jz L000AE13A mov edx,[edi+00000148h] push edx push edi call SUB_L0003B7F0 mov esi,eax test esi,esi jl L000AE1AE L000AE13A: mov eax,[esp+1Ch] mov ecx,[esp+18h] mov edx,[esp+14h] push eax push ecx push edx push edi mov dword ptr [edi+000005CCh],FFFFFFFFh call [edi+000009D0h] pop edi mov eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ CASE_000AE1B8_PROC0005: mov edi,[esp+10h] mov eax,[edi+000005D8h] test eax,eax jz L000AE182 mov eax,[edi+00000148h] push eax push edi call SUB_L0003B7F0 mov esi,eax test esi,esi jl L000AE1AE L000AE182: mov ecx,[esp+1Ch] mov edx,[esp+18h] mov eax,[esp+14h] push ecx push edx push eax push edi mov dword ptr [edi+000005CCh],FFFFFFFFh call [edi+000009CCh] pop edi mov eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ L000AE1A9: mov esi,887602E0h L000AE1AE: pop edi mov eax,esi pop esi retn 0014h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_000AE1B8: dd CASE_000AE1B8_PROC0000 dd CASE_000AE1B8_PROC0001 dd CASE_000AE1B8_PROC0002 dd CASE_000AE1B8_PROC0003 dd CASE_000AE1B8_PROC0004 dd CASE_000AE1B8_PROC0005 L000AE1D0: mov edx,[esp+0Ch] mov eax,[esp+04h] push ebx push ebp push esi mov esi,[esp+14h] mov ebx,[esi+00004860h] push edi xor ebp,ebp xor edi,edi add ebx,edx dec eax cmp eax,00000005h ja L000AE3B0 jmp [CASE_PROCTABLE_000AE3C0+eax*4] CASE_000AE3C0_PROC0000: cmp [esi+000005D8h],ebp jz L000AE21C mov ecx,[esi+00000148h] push ecx push esi call SUB_L0003B7F0 mov edi,eax cmp edi,ebp jl L000AE3B5 L000AE21C: mov eax,[esp+20h] push eax push ebx lea edx,[esp+24h] push edx push esi mov dword ptr [esi+000005CCh],FFFFFFFFh mov [esp+2Eh],bp mov [esp+2Ch],ax call [esi+000009C0h] mov eax,edi pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ CASE_000AE3C0_PROC0001: cmp [esi+000005D8h],ebp mov [esp+18h],bp jz L000AE26F mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 mov edi,eax cmp edi,ebp jl L000AE3B5 L000AE26F: mov ecx,[esp+20h] push ecx push ebx lea edx,[esp+20h] push edx push esi mov dword ptr [esi+000005CCh],FFFFFFFFh call [esi+000009B8h] mov eax,edi pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ CASE_000AE3C0_PROC0002: cmp [esi+000005D8h],ebp mov [esp+18h],bp jz L000AE2B8 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 mov edi,eax cmp edi,ebp jl L000AE3B5 L000AE2B8: mov ecx,[esp+20h] push ecx push ebx lea edx,[esp+20h] push edx push esi mov dword ptr [esi+000005CCh],FFFFFFFFh call [esi+000009BCh] mov eax,edi pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ CASE_000AE3C0_PROC0003: cmp [esi+000005D8h],ebp mov [esp+18h],bp jz L000AE301 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 mov edi,eax cmp edi,ebp jl L000AE3B5 L000AE301: mov ecx,[esp+20h] push ecx push ebx lea edx,[esp+20h] push edx push esi mov dword ptr [esi+000005CCh],FFFFFFFFh call [esi+000009B4h] mov eax,edi pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ CASE_000AE3C0_PROC0004: cmp [esi+000005D8h],ebp mov [esp+18h],bp jz L000AE346 mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 mov edi,eax cmp edi,ebp jl L000AE3B5 L000AE346: mov ecx,[esp+20h] push ecx push ebx lea edx,[esp+20h] push edx push esi mov dword ptr [esi+000005CCh],FFFFFFFFh call [esi+000009B0h] mov eax,edi pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ CASE_000AE3C0_PROC0005: cmp [esi+000005D8h],ebp mov [esp+18h],bp jz L000AE38B mov eax,[esi+00000148h] push eax push esi call SUB_L0003B7F0 mov edi,eax cmp edi,ebp jl L000AE3B5 L000AE38B: mov ecx,[esp+20h] push ecx push ebx lea edx,[esp+20h] push edx push esi mov dword ptr [esi+000005CCh],FFFFFFFFh call [esi+000009ACh] mov eax,edi pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ L000AE3B0: mov edi,887602E0h L000AE3B5: mov eax,edi pop edi pop esi pop ebp pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_000AE3C0: dd CASE_000AE3C0_PROC0000 dd CASE_000AE3C0_PROC0001 dd CASE_000AE3C0_PROC0002 dd CASE_000AE3C0_PROC0003 dd CASE_000AE3C0_PROC0004 dd CASE_000AE3C0_PROC0005 Align 16 L000AE3E0: mov eax,[esp+04h] sub eax,00000010h jz L000AE417 dec eax jz L000AE40E dec eax jnz L000AE440 mov eax,[esp+08h] sub eax,00000000h jz CASE_000AE448_PROC0000 L000AE3F8: dec eax jz CASE_000AE448_PROC0001 dec eax jnz L000AE440 CASE_000AE448_PROC0003: mov eax,00000003h retn 0008h ;------------------------------------------------------------------------------ CASE_000AE448_PROC0001: mov eax,00000002h retn 0008h ;------------------------------------------------------------------------------ L000AE40E: mov eax,[esp+08h] dec eax jz CASE_000AE448_PROC0000 jmp L000AE3F8 L000AE417: mov eax,[esp+08h] dec eax cmp eax,00000004h ja L000AE440 jmp [CASE_PROCTABLE_000AE448+eax*4] CASE_000AE448_PROC0000: mov eax,00000001h retn 0008h ;------------------------------------------------------------------------------ CASE_000AE448_PROC0004: mov eax,00000004h retn 0008h ;------------------------------------------------------------------------------ CASE_000AE448_PROC0002: mov eax,00000005h retn 0008h ;------------------------------------------------------------------------------ L000AE440: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_000AE448: dd CASE_000AE448_PROC0000 dd CASE_000AE448_PROC0001 dd CASE_000AE448_PROC0002 dd CASE_000AE448_PROC0003 dd CASE_000AE448_PROC0004 Align 8 SUB_L000AE460: xor eax,eax retn 000Ch ;------------------------------------------------------------------------------ Align 16 L000AE470: mov eax,[esp+04h] mov ecx,[esp+0Ch] fld dword ptr [ecx+04h] mov edx,[esp+08h] fsub dword ptr [eax+04h] fld dword ptr [edx] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,01h jnz L000AE4AB mov eax,00000001h retn 000Ch ;------------------------------------------------------------------------------ L000AE4AB: xor eax,eax retn 000Ch ;------------------------------------------------------------------------------ L000AE4B0: mov eax,[esp+04h] mov ecx,[esp+0Ch] fld dword ptr [ecx+04h] mov edx,[esp+08h] fsub dword ptr [eax+04h] fld dword ptr [edx] fsub dword ptr [eax] fmulp ST(1),ST fld dword ptr [edx+04h] fsub dword ptr [eax+04h] fld dword ptr [ecx] fsub dword ptr [eax] fmulp ST(1),ST fsubp ST(1),ST fcomp dword ptr [L000B23F0] fnstsw ax test ah,41h jz L000AE4EB mov eax,00000001h retn 000Ch ;------------------------------------------------------------------------------ L000AE4EB: xor eax,eax retn 000Ch ;------------------------------------------------------------------------------ SUB_L000AE4F0: sub esp,00000220h push ebx mov ebx,[esp+00000228h] mov eax,[ebx+000005D0h] mov ecx,[ebx+00004884h] push esi push edi mov [esp+28h],eax lea edx,[esp+10h] push edx lea eax,[esp+18h] push eax mov [esp+2Ch],ecx lea ecx,[esp+20h] push ecx lea edx,[esp+28h] push edx lea eax,[esp+3Ch] push eax push ebx call SUB_L000AE8D0 test byte ptr [ebx+00000A00h],20h jz L000AE666 mov eax,[ebx+00004888h] mov edi,[esp+1Ch] mov edx,[esp+00000234h] fld dword ptr [eax+edx] push ebp mov ecx,eax mov [esp+10h],ecx lea esi,[ecx+04h] mov ebp,ecx mov eax,[ebx+000005D0h] shr ecx,02h sub eax,esi mov [esp+24h],esi mov esi,edx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ebp,[esp+10h] mov edi,[esp+20h] mov ecx,[esp+24h] lea esi,[ecx+edx] add edi,ebp mov [esp+24h],esi mov ecx,eax mov ebp,ecx shr ecx,02h rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ecx,[esp+10h] mov edi,[esp+1Ch] mov ebp,ecx shr ecx,02h mov esi,edx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ebp,[esp+10h] mov edi,[esp+1Ch] mov esi,[esp+24h] add edi,ebp mov ecx,eax mov ebp,ecx shr ecx,02h rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ecx,[esp+10h] mov edi,[esp+18h] mov ebp,ecx shr ecx,02h mov esi,edx rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ebp,[esp+10h] mov edi,[esp+18h] mov esi,[esp+24h] add edi,ebp mov ecx,eax mov ebp,ecx shr ecx,02h rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov ecx,[esp+10h] mov edi,[esp+14h] mov esi,edx mov edx,ecx shr ecx,02h rep movsd mov ecx,edx and ecx,00000003h rep movsb mov ecx,eax mov eax,[esp+14h] mov edx,[esp+10h] mov esi,[esp+24h] lea edi,[edx+eax] mov eax,ecx shr ecx,02h rep movsd mov ecx,eax and ecx,00000003h rep movsb mov edx,[ebx+000005D0h] mov ecx,[ebx+00004884h] mov eax,FFFFFFFCh add edx,eax add ecx,eax mov [ebx+000005D0h],edx mov [ebx+00004884h],ecx pop ebp jmp L000AE6DB L000AE666: mov ecx,[ebx+000005D0h] fld dword ptr [ebx+00004890h] mov edi,[esp+1Ch] mov eax,[esp+00000234h] mov edx,ecx shr ecx,02h mov esi,eax rep movsd mov ecx,edx and ecx,00000003h rep movsb mov ecx,[ebx+000005D0h] mov edi,[esp+18h] mov edx,ecx shr ecx,02h mov esi,eax rep movsd mov ecx,edx and ecx,00000003h rep movsb mov ecx,[ebx+000005D0h] mov edi,[esp+14h] mov edx,ecx shr ecx,02h mov esi,eax rep movsd mov ecx,edx and ecx,00000003h rep movsb mov ecx,[ebx+000005D0h] mov edi,[esp+10h] mov esi,eax mov eax,ecx shr ecx,02h rep movsd mov ecx,eax and ecx,00000003h rep movsb L000AE6DB: fld dword ptr [ebx+000048A4h] fcomp ST(1) fnstsw ax test ah,41h jnz L000AE6F2 fstp ST(0) fld dword ptr [ebx+000048A4h] L000AE6F2: fld dword ptr [ebx+000048A8h] fcomp dword ptr [L000B2470] fnstsw ax test ah,01h jz L000AE70D fld dword ptr [ebx+000048A8h] jmp L000AE713 L000AE70D: fld dword ptr [L000B2470] L000AE713: fcomp ST(1) fnstsw ax test ah,01h jz L000AE73F fstp ST(0) fld dword ptr [ebx+000048A8h] fcomp dword ptr [L000B2470] fnstsw ax test ah,01h jz L000AE739 fld dword ptr [ebx+000048A8h] jmp L000AE73F L000AE739: fld dword ptr [L000B2470] L000AE73F: fmul dword ptr [L000B2414] fcom dword ptr [L000B23F0] fnstsw ax test ah,40h jnz L000AE8BF mov eax,[esp+1Ch] fld dword ptr [eax] xor ecx,ecx fsub ST,ST(1) fstp dword ptr [eax] mov eax,[esp+1Ch] fld dword ptr [eax+04h] fsub ST,ST(1) fstp dword ptr [eax+04h] mov eax,[esp+18h] fld ST(0) fadd dword ptr [eax] fstp dword ptr [eax] mov eax,[esp+18h] fld dword ptr [eax+04h] fsub ST,ST(1) fstp dword ptr [eax+04h] mov eax,[esp+14h] fld dword ptr [eax] fsub ST,ST(1) fstp dword ptr [eax] mov eax,[esp+14h] fld ST(0) fadd dword ptr [eax+04h] fstp dword ptr [eax+04h] mov eax,[esp+10h] fld ST(0) fadd dword ptr [eax] fstp dword ptr [eax] mov eax,[esp+10h] fadd dword ptr [eax+04h] fstp dword ptr [eax+04h] mov eax,[ebx+0000488Ch] cmp eax,ecx jz L000AE831 mov eax,[ebx+00000A00h] test ah,0Fh jnz L000AE7CA add dword ptr [ebx+000005D0h],00000008h L000AE7CA: mov eax,[ebx+00004884h] mov edx,[esp+1Ch] mov [esp+0Ch],eax mov [eax+edx],ecx mov eax,[esp+0Ch] mov edx,[esp+1Ch] mov [eax+edx+04h],ecx mov edx,[esp+0Ch] mov esi,[esp+18h] mov eax,3F800000h mov [edx+esi],eax mov edx,[esp+0Ch] mov esi,[esp+18h] mov [edx+esi+04h],ecx mov edx,[esp+0Ch] mov esi,[esp+14h] mov [edx+esi],ecx mov edx,[esp+0Ch] mov esi,[esp+14h] mov [edx+esi+04h],eax mov edx,[esp+0Ch] mov esi,[esp+10h] mov [edx+esi],eax mov edx,[esp+10h] mov esi,[esp+0Ch] mov [esi+edx+04h],eax L000AE831: mov eax,[esp+00000238h] cmp eax,ecx jz L000AE888 mov edx,[eax] mov esi,[esp+1Ch] mov [esi+10h],edx mov edx,[eax+04h] mov esi,[esp+1Ch] mov [esi+14h],edx mov edx,[eax] mov esi,[esp+18h] mov [esi+10h],edx mov edx,[eax+04h] mov esi,[esp+18h] mov [esi+14h],edx mov edx,[eax] mov esi,[esp+14h] mov [esi+10h],edx mov edx,[eax+04h] mov esi,[esp+14h] mov [esi+14h],edx mov edx,[eax] mov esi,[esp+10h] mov [esi+10h],edx mov eax,[eax+04h] mov edx,[esp+10h] mov [edx+14h],eax L000AE888: push 00000002h lea eax,[esp+30h] mov [esp+10h],ecx push eax lea ecx,[esp+14h] push ecx push ebx call [ebx+00004880h] mov edx,[esp+28h] mov eax,[esp+24h] pop edi pop esi mov [ebx+000005D0h],edx mov [ebx+00004884h],eax pop ebx add esp,00000220h retn 000Ch ;------------------------------------------------------------------------------ L000AE8BF: pop edi fstp ST(0) pop esi pop ebx add esp,00000220h retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L000AE8D0: mov ecx,[esp+04h] mov edx,[ecx+0000488Ch] test edx,edx mov eax,[ecx+000005D0h] jz L000AE8F2 mov edx,[ecx+00000A00h] test dh,0Fh jnz L000AE8F2 add eax,00000008h L000AE8F2: test byte ptr [ecx+00000A00h],20h jz L000AE8FE sub eax,00000004h L000AE8FE: mov edx,[esp+0Ch] push edi mov edi,[esp+0Ch] lea ecx,[eax+edi] mov [edx],ecx lea ecx,[edi+eax*2] mov edx,eax add edx,ecx mov ecx,[esp+14h] mov [ecx],edx mov edx,[esp+18h] mov ecx,[esp+1Ch] lea eax,[edi+eax*2] mov [edx],edi mov [ecx],eax mov ecx,00000080h xor eax,eax rep stosd pop edi retn 0018h ;------------------------------------------------------------------------------ Align 16 SUB_L000AE940: mov eax,[esp+04h] push edi mov edi,[eax+000001D8h] cmp edi,00000001h jz L000AE9C2 mov ecx,[eax+70h] and ecx,FFFFFFF9h or ecx,00000001h push esi mov esi,[eax+00000148h] mov [eax+70h],ecx mov eax,[esi+08h] mov ecx,[esi+0Ch] lea edx,[eax+04h] cmp edx,ecx jc L000AE9A5 push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L000AE9A5 mov [ecx+74h],edx mov eax,[esi+1Ch] push eax push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000AE9A5 push esi call [esi+10h] mov eax,[esi+08h] L000AE9A5: lea edx,[eax+04h] mov [esi+08h],edx mov dword ptr [eax],62000009h mov eax,[L000B5A6C+edi*4] pop esi mov [L000B70C8],eax pop edi retn 0004h ;------------------------------------------------------------------------------ L000AE9C2: mov ecx,[L000B5A6C+edi*4] mov [L000B70C8],ecx pop edi retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000AE9E0: mov ecx,[esp+04h] mov eax,[ecx+000001D8h] cmp eax,00000001h jz L000AEA55 mov edx,[ecx+70h] and edx,FFFFFFF8h or edx,eax push esi mov esi,[ecx+00000148h] or eax,62000008h mov [ecx+70h],edx mov edx,[esi+0Ch] push edi mov edi,eax mov eax,[esi+08h] lea ecx,[eax+04h] cmp ecx,edx jc L000AEA4B push ebx push esi call [esi+10h] mov ecx,[esi+18h] mov ebx,[ecx+74h] mov edx,[esi+1Ch] mov eax,[esi+08h] cmp ebx,edx pop ebx jz L000AEA4B mov [ecx+74h],edx mov edx,[esi+1Ch] push edx push esi call [esi+20h] mov eax,[esi+08h] mov edx,[esi+0Ch] lea ecx,[eax+04h] cmp ecx,edx jc L000AEA4B push esi call [esi+10h] mov eax,[esi+08h] L000AEA4B: lea edx,[eax+04h] mov [esi+08h],edx mov [eax],edi pop edi pop esi L000AEA55: retn 0004h ;------------------------------------------------------------------------------ Align 16 L000AEA60: sub esp,00000010h push ebp mov ebp,[esp+18h] push esi push ebp mov dword ptr [esp+0Ch],00000000h call SUB_L000AE940 mov ecx,[esp+20h] mov eax,[ebp+000005D0h] xor esi,esi mov si,[ecx] mov ecx,[esp+24h] mov [esp+0Ch],eax imul esi,eax add esi,ecx mov ecx,[esp+28h] mov edx,ecx dec ecx test edx,edx jz L000AEB1D push ebx lea edx,[eax+eax*2] inc ecx push edi mov [esp+28h],edx mov [esp+24h],ecx jmp L000AEAB2 L000AEAAE: mov eax,[esp+14h] L000AEAB2: mov edx,[esp+28h] lea ebx,[esi+eax] add eax,ebx push eax mov edi,esi push ebx push edi mov [esp+38h],eax add esi,edx call [L000B70C8] test eax,eax jnz L000AEB15 push eax push edi push ebp call SUB_L000AE4F0 cmp dword ptr [ebp+000001A4h],00000001h jnz L000AEAF5 mov eax,[edi+10h] mov [esp+18h],eax mov ecx,[edi+14h] mov [esp+1Ch],ecx lea edi,[esp+18h] jmp L000AEAF9 L000AEAF5: mov edi,[esp+10h] L000AEAF9: push edi push ebx push ebp call SUB_L000AE4F0 mov edx,[esp+2Ch] push edi push edx push ebp call SUB_L000AE4F0 mov dword ptr [esp+10h],00000000h L000AEB15: dec [esp+24h] jnz L000AEAAE pop edi pop ebx L000AEB1D: push ebp call SUB_L000AE9E0 pop esi pop ebp add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 8 L000AEB30: sub esp,0000000Ch push ebx push ebp push esi mov esi,[esp+1Ch] push edi push esi xor ebp,ebp call SUB_L000AE940 mov ecx,[esp+24h] mov eax,[esi+000005D0h] mov edx,[esp+28h] xor ebx,ebx mov bx,[ecx] mov [esp+10h],eax imul ebx,eax add ebx,edx lea edi,[ebx+eax] add eax,edi push eax push edi push ebx mov [esp+2Ch],eax call [L000B70C8] test eax,eax jnz L000AEC19 push eax push ebx push esi call SUB_L000AE4F0 mov ecx,[esp+2Ch] mov eax,00000001h cmp ecx,eax jnz L000AEBA8 cmp [esi+000001A4h],eax jnz L000AEBA8 mov edx,[ebx+10h] mov [esp+14h],edx mov eax,[ebx+14h] mov [esp+18h],eax lea ebp,[esp+14h] L000AEBA8: push ebp push edi push esi call SUB_L000AE4F0 mov ebx,[esp+20h] push ebp push ebx push esi call SUB_L000AE4F0 dec [esp+2Ch] jz L000AEC19 L000AEBC2: mov ecx,[esp+10h] mov eax,edi push ebp push eax mov edi,ebx push esi mov [esp+2Ch],eax add ebx,ecx call SUB_L000AE4F0 mov ecx,[esp+2Ch] mov eax,00000001h cmp ecx,eax jnz L000AEC03 cmp [esi+000001A4h],eax jnz L000AEC03 mov eax,[esp+20h] mov ecx,[eax+10h] mov [esp+14h],ecx mov edx,[eax+14h] mov [esp+18h],edx lea ebp,[esp+14h] L000AEC03: push ebp push edi push esi call SUB_L000AE4F0 push ebp push ebx push esi call SUB_L000AE4F0 dec [esp+2Ch] jnz L000AEBC2 L000AEC19: push esi call SUB_L000AE9E0 pop edi pop esi pop ebp pop ebx add esp,0000000Ch retn 0010h ;------------------------------------------------------------------------------ Align 8 L000AEC30: sub esp,00000008h push ebx push ebp push esi mov esi,[esp+18h] push edi push esi xor edi,edi call SUB_L000AE940 mov ecx,[esp+20h] mov eax,[esi+000005D0h] mov ebx,[esp+24h] xor ebp,ebp mov bp,[ecx] mov [esp+1Ch],eax imul ebp,eax add ebp,ebx lea ecx,[eax+ebp] lea ebx,[ecx+eax] push ebx push ecx push ebp call [L000B70C8] test eax,eax jnz L000AED20 mov ecx,[esp+28h] mov eax,00000001h cmp ecx,eax jnz L000AECA5 cmp [esi+000001A4h],eax jnz L000AECA5 mov edx,[esp+1Ch] mov ecx,[edx+ebp+10h] lea eax,[edx+ebp] mov [esp+10h],ecx mov edx,[eax+14h] mov [esp+14h],edx lea edi,[esp+10h] L000AECA5: mov eax,[esp+1Ch] push edi add eax,ebp push eax push esi call SUB_L000AE4F0 push edi push ebx push esi call SUB_L000AE4F0 dec [esp+28h] jz L000AED18 L000AECC1: mov edx,[esp+1Ch] push edi push ebp mov [esp+28h],ebx push esi add ebx,edx call SUB_L000AE4F0 mov ecx,[esp+20h] push edi push ecx push esi call SUB_L000AE4F0 mov ecx,[esp+28h] mov eax,00000001h cmp ecx,eax jnz L000AED0A cmp [esi+000001A4h],eax jnz L000AED0A mov eax,[esp+20h] mov edx,[eax+10h] mov [esp+10h],edx mov eax,[eax+14h] mov [esp+14h],eax lea edi,[esp+10h] L000AED0A: push edi push ebx push esi call SUB_L000AE4F0 dec [esp+28h] jnz L000AECC1 L000AED18: push edi push ebp push esi call SUB_L000AE4F0 L000AED20: push esi call SUB_L000AE9E0 pop edi pop esi pop ebp pop ebx add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ L000AED30: sub esp,00000014h push ebx push ebp mov ebp,[esp+20h] push esi push edi push ebp mov dword ptr [esp+14h],00000000h call SUB_L000AE940 mov esi,[ebp+00004860h] mov eax,[esp+30h] sub eax,esi cdq idiv [ebp+00004858h] mov ebx,[ebp+000005D0h] mov [esp+14h],ebx mov esi,eax mov eax,[esp+34h] mov ecx,eax dec eax test ecx,ecx mov [esp+18h],esi mov [esp+34h],eax jz L000AEE7A mov edx,[esp+2Ch] lea edi,[edx+04h] mov [esp+28h],edi jmp L000AED98 L000AED8C: mov ebx,[esp+14h] mov esi,[esp+18h] mov edi,[esp+28h] L000AED98: xor edx,edx mov dx,[edi-04h] lea eax,[edx+esi] test eax,eax jl L000AEE8A cmp eax,[ebp+00000A34h] jge L000AEE8A xor ecx,ecx mov cx,[edi-02h] lea eax,[ecx+esi] test eax,eax jl L000AEE8A cmp eax,[ebp+00000A34h] jge L000AEE8A mov edi,[esp+28h] xor eax,eax mov ax,[edi] add esi,eax test esi,esi jl L000AEE8A cmp esi,[ebp+00000A34h] jge L000AEE8A mov edi,[esp+30h] imul edx,ebx imul eax,ebx imul ecx,ebx mov ebx,[esp+30h] add edx,edi add eax,ebx mov esi,edx mov edx,[esp+28h] add ecx,edi mov ebx,eax push ebx mov edi,ecx push edi add edx,00000006h push esi mov [esp+34h],edx call [L000B70C8] test eax,eax jnz L000AEE67 push eax push esi push ebp call SUB_L000AE4F0 cmp dword ptr [ebp+000001A4h],00000001h jnz L000AEE4B mov eax,[esi+10h] mov [esp+1Ch],eax mov ecx,[esi+14h] mov [esp+20h],ecx lea esi,[esp+1Ch] jmp L000AEE4F L000AEE4B: mov esi,[esp+10h] L000AEE4F: push esi push edi push ebp call SUB_L000AE4F0 push esi push ebx push ebp call SUB_L000AE4F0 mov dword ptr [esp+10h],00000000h L000AEE67: mov eax,[esp+34h] mov edx,eax dec eax test edx,edx mov [esp+34h],eax jnz L000AED8C L000AEE7A: push ebp call SUB_L000AE9E0 pop edi pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ L000AEE8A: pop edi pop esi mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000AEEA0: sub esp,00000014h push ebx push ebp mov ebp,[esp+20h] push esi push edi push ebp mov dword ptr [esp+14h],00000000h call SUB_L000AE940 mov esi,[ebp+00004860h] mov eax,[esp+30h] sub eax,esi cdq idiv [ebp+00004858h] mov ebx,[ebp+000005D0h] mov [esp+14h],ebx mov esi,eax mov eax,[esp+34h] mov ecx,eax dec eax test ecx,ecx mov [esp+18h],esi mov [esp+34h],eax jz L000AEFEA mov edx,[esp+2Ch] lea edi,[edx+04h] mov [esp+28h],edi jmp L000AEF08 L000AEEFC: mov ebx,[esp+14h] mov esi,[esp+18h] mov edi,[esp+28h] L000AEF08: xor edx,edx mov dx,[edi-04h] lea eax,[edx+esi] test eax,eax jl L000AEFFA cmp eax,[ebp+00000A34h] jge L000AEFFA xor ecx,ecx mov cx,[edi-02h] lea eax,[ecx+esi] test eax,eax jl L000AEFFA cmp eax,[ebp+00000A34h] jge L000AEFFA mov edi,[esp+28h] xor eax,eax mov ax,[edi] add esi,eax test esi,esi jl L000AEFFA cmp esi,[ebp+00000A34h] jge L000AEFFA mov edi,[esp+30h] imul edx,ebx imul eax,ebx imul ecx,ebx mov ebx,[esp+30h] add edx,edi add eax,ebx mov esi,edx mov edx,[esp+28h] add ecx,edi mov ebx,eax push ebx mov edi,ecx push edi add edx,00000008h push esi mov [esp+34h],edx call [L000B70C8] test eax,eax jnz L000AEFD7 push eax push esi push ebp call SUB_L000AE4F0 cmp dword ptr [ebp+000001A4h],00000001h jnz L000AEFBB mov eax,[esi+10h] mov [esp+1Ch],eax mov ecx,[esi+14h] mov [esp+20h],ecx lea esi,[esp+1Ch] jmp L000AEFBF L000AEFBB: mov esi,[esp+10h] L000AEFBF: push esi push edi push ebp call SUB_L000AE4F0 push esi push ebx push ebp call SUB_L000AE4F0 mov dword ptr [esp+10h],00000000h L000AEFD7: mov eax,[esp+34h] mov edx,eax dec eax test edx,edx mov [esp+34h],eax jnz L000AEEFC L000AEFEA: push ebp call SUB_L000AE9E0 pop edi pop esi pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ L000AEFFA: pop edi pop esi mov dword ptr [ebp+000005B0h],00000001h pop ebp pop ebx add esp,00000014h retn 0010h ;------------------------------------------------------------------------------ Align 4 L000AF010: sub esp,00000010h push ebx push ebp push esi mov esi,[esp+20h] push edi push esi mov dword ptr [esp+14h],00000000h call SUB_L000AE940 mov eax,[esi+000005D0h] mov ebx,[esi+00004860h] mov [esp+24h],eax mov eax,[esp+2Ch] sub eax,ebx cdq idiv [esi+00004858h] mov edx,[esp+28h] mov ebp,eax xor eax,eax mov ax,[edx] mov [esp+14h],ebp lea ecx,[eax+ebp] test ecx,ecx jl L000AF1D0 mov ebx,[esi+00000A34h] cmp ecx,ebx jge L000AF1D0 xor ecx,ecx mov cx,[edx+02h] lea edi,[ecx+ebp] test edi,edi jl L000AF1D0 cmp edi,ebx jge L000AF1D0 xor edi,edi mov di,[edx+04h] add ebp,edi test ebp,ebp jl L000AF1D0 cmp ebp,ebx jge L000AF1D0 mov ebx,[esp+24h] imul edi,[esp+24h] mov ebp,[esp+2Ch] imul eax,ebx imul ecx,ebx mov ebx,[esp+2Ch] add eax,ebp mov ebp,eax mov eax,[esp+2Ch] add ecx,ebx add edi,eax push edi mov ebx,ecx push ebx add edx,00000006h push ebp mov [esp+34h],edx call [L000B70C8] test eax,eax jnz L000AF1C0 push eax push ebp push esi call SUB_L000AE4F0 mov ecx,[esp+30h] mov eax,00000001h cmp ecx,eax jnz L000AF10F cmp [esi+000001A4h],eax jnz L000AF10F mov ecx,[ebp+10h] mov [esp+18h],ecx mov edx,[ebp+14h] lea eax,[esp+18h] mov [esp+1Ch],edx mov [esp+10h],eax L000AF10F: mov ebp,[esp+10h] push ebp push ebx push esi call SUB_L000AE4F0 push ebp push edi push esi call SUB_L000AE4F0 dec [esp+30h] jz L000AF1C0 L000AF12D: mov ecx,[esp+28h] mov edx,[esp+14h] xor eax,eax mov ax,[ecx] mov ebp,ebx mov ebx,edi lea ecx,[eax+edx] test ecx,ecx jl L000AF1D0 cmp ecx,[esi+00000A34h] jge L000AF1D0 imul eax,[esp+24h] mov edi,[esp+2Ch] mov edx,[esp+28h] add eax,edi mov edi,eax mov eax,[esp+10h] push eax push ebp add edx,00000002h push esi mov [esp+34h],edx call SUB_L000AE4F0 mov ecx,[esp+30h] mov eax,00000001h cmp ecx,eax jnz L000AF1A2 cmp [esi+000001A4h],eax jnz L000AF1A2 mov ecx,[ebp+10h] mov [esp+18h],ecx mov edx,[ebp+14h] lea ebp,[esp+18h] mov [esp+1Ch],edx mov [esp+10h],ebp jmp L000AF1A6 L000AF1A2: mov ebp,[esp+10h] L000AF1A6: push ebp push ebx push esi call SUB_L000AE4F0 push ebp push edi push esi call SUB_L000AE4F0 dec [esp+30h] jnz L000AF12D L000AF1C0: push esi call SUB_L000AE9E0 pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ L000AF1D0: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000AF1F0: sub esp,00000010h push ebx push ebp push esi mov esi,[esp+20h] push edi push esi xor ebp,ebp call SUB_L000AE940 mov eax,[esi+000005D0h] mov ebx,[esi+00004860h] mov [esp+24h],eax mov eax,[esp+2Ch] sub eax,ebx cdq idiv [esi+00004858h] mov ebx,[esp+28h] mov edx,eax xor eax,eax mov ax,[ebx] mov [esp+10h],edx lea ecx,[eax+edx] test ecx,ecx jl L000AF38E cmp ecx,[esi+00000A34h] jge L000AF38E xor edi,edi mov di,[ebx+02h] lea ecx,[edi+edx] test ecx,ecx jl L000AF38E cmp ecx,[esi+00000A34h] jge L000AF38E mov ecx,[esp+28h] xor ebx,ebx mov bx,[ecx+04h] lea ecx,[ebx+edx] test ecx,ecx jl L000AF38E cmp ecx,[esi+00000A34h] jge L000AF38E mov ecx,[esp+24h] mov edx,[esp+2Ch] imul ebx,ecx imul eax,ecx imul edi,ecx add ebx,edx add eax,edx add edi,edx mov edx,[esp+28h] push ebx push edi add edx,00000006h push eax mov [esp+20h],eax mov [esp+34h],edx call [L000B70C8] test eax,eax jnz L000AF37E mov ecx,[esp+30h] mov eax,00000001h cmp ecx,eax jnz L000AF2E2 cmp [esi+000001A4h],eax jnz L000AF2E2 mov eax,[edi+10h] mov [esp+18h],eax mov ecx,[edi+14h] mov [esp+1Ch],ecx lea ebp,[esp+18h] L000AF2E2: push ebp push edi push esi call SUB_L000AE4F0 push ebp push ebx push esi call SUB_L000AE4F0 dec [esp+30h] jz L000AF372 L000AF2F8: mov edx,[esp+28h] xor eax,eax mov ax,[edx] mov edx,[esp+10h] mov ecx,edi mov edi,ebx add edx,eax test edx,edx jl L000AF38E cmp edx,[esi+00000A34h] jge L000AF38E imul eax,[esp+24h] add eax,[esp+2Ch] mov ebx,eax mov eax,[esp+28h] push ebp push ecx add eax,00000002h push esi mov [esp+34h],eax call SUB_L000AE4F0 push ebp push edi push esi call SUB_L000AE4F0 mov ecx,[esp+30h] mov eax,00000001h cmp ecx,eax jnz L000AF364 cmp [esi+000001A4h],eax jnz L000AF364 mov eax,[edi+10h] mov [esp+18h],eax mov ecx,[edi+14h] mov [esp+1Ch],ecx lea ebp,[esp+18h] L000AF364: push ebp push ebx push esi call SUB_L000AE4F0 dec [esp+30h] jnz L000AF2F8 L000AF372: mov edx,[esp+14h] push ebp push edx push esi call SUB_L000AE4F0 L000AF37E: push esi call SUB_L000AE9E0 pop edi pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ L000AF38E: pop edi mov dword ptr [esi+000005B0h],00000001h pop esi pop ebp pop ebx add esp,00000010h retn 0010h ;------------------------------------------------------------------------------ Align 16 L000AF3B0: push ebx push esi push edi mov edi,[esp+10h] push edi call SUB_L000AE940 mov eax,[esp+14h] mov ebx,[edi+000005D0h] xor esi,esi mov si,[eax+02h] mov eax,[esp+18h] imul esi,ebx add esi,eax mov eax,[esp+1Ch] mov ecx,eax dec eax test ecx,ecx jz L000AF3F4 push ebp lea ebp,[eax+01h] L000AF3E5: push 00000000h push esi push edi call SUB_L000AE4F0 add esi,ebx dec ebp jnz L000AF3E5 pop ebp L000AF3F4: push edi call SUB_L000AE9E0 pop edi pop esi pop ebx retn 0010h ;------------------------------------------------------------------------------ SUB_L000AF400: mov eax,[esp+08h] mov ecx,[esp+10h] or ecx,eax mov ecx,[esp+0Ch] jnz L000AF419 mov eax,[esp+04h] mul ecx retn 0010h ;------------------------------------------------------------------------------ L000AF419: push ebx mul ecx mov ebx,eax mov eax,[esp+08h] mul [esp+14h] add ebx,eax mov eax,[esp+08h] mul ecx add edx,ebx pop ebx retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L000AF440: push edi push esi push ebx xor edi,edi mov eax,[esp+14h] or eax,eax jge L000AF461 inc edi mov edx,[esp+10h] neg eax neg edx sbb eax,00000000h mov [esp+14h],eax mov [esp+10h],edx L000AF461: mov eax,[esp+1Ch] or eax,eax jge L000AF47D inc edi mov edx,[esp+18h] neg eax neg edx sbb eax,00000000h mov [esp+1Ch],eax mov [esp+18h],edx L000AF47D: or eax,eax jnz L000AF499 mov ecx,[esp+18h] mov eax,[esp+14h] xor edx,edx div ecx mov ebx,eax mov eax,[esp+10h] div ecx mov edx,ebx jmp L000AF4DA L000AF499: mov ebx,eax mov ecx,[esp+18h] mov edx,[esp+14h] mov eax,[esp+10h] L000AF4A7: shr ebx,1 rcr ecx,1 shr edx,1 rcr eax,1 or ebx,ebx jnz L000AF4A7 div ecx mov esi,eax mul [esp+1Ch] mov ecx,eax mov eax,[esp+18h] mul esi add edx,ecx jc L000AF4D5 cmp edx,[esp+14h] ja L000AF4D5 jc L000AF4D6 cmp eax,[esp+10h] jbe L000AF4D6 L000AF4D5: dec esi L000AF4D6: xor edx,edx mov eax,esi L000AF4DA: dec edi jnz L000AF4E4 neg edx neg eax sbb edx,00000000h L000AF4E4: pop ebx pop esi pop edi retn 0010h ;------------------------------------------------------------------------------ Align 4 SUB_L000AF4EC: push ebp mov ebp,esp add esp,FFFFFFF4h fstcw word ptr [ebp-02h] wait mov ax,[ebp-02h] or ah,0Ch mov [ebp-04h],ax fldcw word ptr [ebp-04h] fistp qword ptr [ebp-0Ch] fldcw word ptr [ebp-02h] mov eax,[ebp-0Ch] mov edx,[ebp-08h] leave retn ;------------------------------------------------------------------------------ Align 4 SUB_L000AF514: sub esp,00000010h fxch ST(1) fstp qword ptr [esp] fst qword ptr [esp+08h] mov eax,[esp+0Ch] call SUB_L000AF536 add esp,00000010h retn ;------------------------------------------------------------------------------ lea edx,[esp+0Ch] call SUB_L000AFD61 SUB_L000AF536: mov ecx,eax push eax fstcw word ptr [esp] cmp word ptr [esp],027Fh jz L000AF54A call SUB_L000AFD31 L000AF54A: and ecx,7FF00000h lea edx,[esp+08h] cmp ecx,7FF00000h jz L000AF5FD call SUB_L000AFD61 jz L000AF5F9 test eax,7FF00000h jz L000AF66C L000AF576: mov cl,[esp+0Fh] and cl,80h jnz L000AF6E4 L000AF583: fyl2x call SUB_L000AFD1C cmp cl,01h jnz L000AF591 fchs L000AF591: cmp dword ptr [L000B6F10],00000000h jnz L000AFDBA lea ecx,[L000B5A90] mov edx,0000001Dh jmp L000AFE05 L000AF5AE: cmp dword ptr [L000B6F10],00000000h jnz L000AFDBA lea ecx,[L000B5A90] mov edx,0000001Dh call SUB_L000AFCC8 pop edx retn ;------------------------------------------------------------------------------ L000AF5CD: lea edx,[esp+08h] call SUB_L000AFD61 test byte ptr [esp+16h],08h jnz L000AF5E0 inc ecx jmp L000AF613 L000AF5E0: faddp ST(1),ST mov eax,00000001h jmp L000AF5AE L000AF5E9: test byte ptr [esp+0Eh],08h jnz L000AF5E0 L000AF5F0: faddp ST(1),ST mov eax,00000007h jmp L000AF5AE L000AF5F9: xor ecx,ecx jmp L000AF613 L000AF5FD: xor ecx,ecx and eax,000FFFFFh or eax,[esp+10h] jnz L000AF5CD lea edx,[esp+08h] call SUB_L000AFD61 L000AF613: mov eax,[esp+0Ch] mov edx,eax and eax,7FF00000h and edx,000FFFFFh cmp eax,7FF00000h jnz L000AF631 or edx,[esp+08h] jnz L000AF5E9 L000AF631: test ecx,ecx jnz L000AF5F0 sub esp,00000074h mov ecx,esp push ecx sub esp,00000010h fstp qword ptr [esp] fstp qword ptr [esp+08h] fsave [ecx+08h] call SUB_L000AFEA8 add esp,00000010h pop ecx frstor [ecx+08h] fld qword ptr [ecx] add esp,00000074h test eax,eax jz L000AFDBA mov eax,00000001h jmp L000AF5AE L000AF66C: mov eax,[esp+0Ch] and eax,000FFFFFh or eax,[esp+08h] jnz L000AF576 fstp ST(0) mov eax,[esp+14h] test eax,7FF00000h jz L000AF6C9 call SUB_L000AF709 mov ch,[esp+0Fh] shr ch,07h test dword ptr [esp+17h],00000080h jz L000AF6B8 fld tbyte ptr [L000B5AA4] test ch,cl jz L000AF6AE fchs L000AF6AE: mov eax,00000002h jmp L000AF5AE L000AF6B8: fldz test ch,cl jz L000AFDBA fchs jmp L000AFDBA L000AF6C9: fstp ST(0) and eax,000FFFFFh or eax,[esp+10h] jnz L000AF6DD fld1 jmp L000AFDBA L000AF6DD: fldz jmp L000AFDBA L000AF6E4: fld ST(1) call SUB_L000AF709 fchs test cl,cl jnz L000AF583 fstp ST(0) fstp ST(0) fld tbyte ptr [L000B5B08] mov eax,00000001h jmp L000AF5AE SUB_L000AF709: fld ST(0) frndint fcomp ST(1) mov cl,00h fstsw ax sahf jnz L000AF72E fmul qword ptr [L000B5A88] inc cl fld ST(0) frndint fcompp ST,ST(1) fstsw ax sahf jnz L000AF72D inc cl L000AF72D: retn ;------------------------------------------------------------------------------ L000AF72E: fstp ST(0) retn ;------------------------------------------------------------------------------ Align 4 SUB_L000AF734: push ebp mov ebp,esp push ebx push esi push edi push ebp push 00000000h push 00000000h push L000AF74C push [ebp+08h] call jmp_WIN32K.SYS!RtlUnwind L000AF74C: pop ebp pop edi pop esi pop ebx mov esp,ebp pop ebp retn ;------------------------------------------------------------------------------ L000AF754: mov ecx,[esp+04h] test dword ptr [ecx+04h],00000006h mov eax,00000001h jz L000AF775 mov eax,[esp+08h] mov edx,[esp+10h] mov [edx],eax mov eax,00000003h L000AF775: retn ;------------------------------------------------------------------------------ SUB_L000AF776: push ebx push esi push edi mov eax,[esp+10h] push eax push FFFFFFFEh push L000AF754 push fs:[00000000h] mov fs:[00000000h],esp L000AF793: mov eax,[esp+20h] mov ebx,[eax+08h] mov esi,[eax+0Ch] cmp esi,FFFFFFFFh jz L000AF7D0 cmp esi,[esp+24h] jz L000AF7D0 lea esi,[esi+esi*2] mov ecx,[ebx+esi*4] mov [esp+08h],ecx mov [eax+0Ch],ecx cmp dword ptr [ebx+esi*4+04h],00000000h jnz L000AF7CE push 00000101h mov eax,[ebx+esi*4+08h] call SUB_L000AF80A call [ebx+esi*4+08h] L000AF7CE: jmp L000AF793 L000AF7D0: pop fs:[00000000h] add esp,0000000Ch pop edi pop esi pop ebx retn ;------------------------------------------------------------------------------ xor eax,eax mov ecx,fs:[00000000h] cmp dword ptr [ecx+04h],L000AF754 jnz L000AF800 mov edx,[ecx+0Ch] mov edx,[edx+0Ch] cmp [ecx+08h],edx jnz L000AF800 mov eax,00000001h L000AF800: retn ;------------------------------------------------------------------------------ db 53h; 'S' db 51h; 'Q' db BBh; '>' dd L000B5A94 jmp L000AF814 SUB_L000AF80A: push ebx push ecx mov ebx,L000B5A94 mov ecx,[ebp+08h] L000AF814: mov [ebx+08h],ecx mov [ebx+04h],eax mov [ebx+0Ch],ebp pop ecx pop ebx retn 0004h ;------------------------------------------------------------------------------ db CCh; 'Œ' db CCh; 'Œ' db 56h; 'V' db 43h; 'C' db 32h; '2' db 30h; '0' db 58h; 'X' db 43h; 'C' db 30h; '0' db 30h; '0' L000AF82C: push ebp mov ebp,esp sub esp,00000008h push ebx push esi push edi push ebp cld mov ebx,[ebp+0Ch] mov eax,[ebp+08h] test dword ptr [eax+04h],00000006h jnz L000AF8CC mov [ebp-08h],eax mov eax,[ebp+10h] mov [ebp-04h],eax lea eax,[ebp-08h] mov [ebx-04h],eax mov esi,[ebx+0Ch] mov edi,[ebx+08h] L000AF85F: cmp esi,FFFFFFFFh jz L000AF8C5 lea ecx,[esi+esi*2] cmp dword ptr [edi+ecx*4+04h],00000000h jz L000AF8B3 push esi push ebp lea ebp,[ebx+10h] call [edi+ecx*4+04h] pop ebp pop esi mov ebx,[ebp+0Ch] or eax,eax jz L000AF8B3 js L000AF8BE mov edi,[ebx+08h] push ebx call SUB_L000AF734 add esp,00000004h lea ebp,[ebx+10h] push esi push ebx call SUB_L000AF776 add esp,00000008h lea ecx,[esi+esi*2] push 00000001h mov eax,[edi+ecx*4+08h] call SUB_L000AF80A mov eax,[edi+ecx*4] mov [ebx+0Ch],eax call [edi+ecx*4+08h] L000AF8B3: mov edi,[ebx+08h] lea ecx,[esi+esi*2] mov esi,[edi+ecx*4] jmp L000AF85F L000AF8BE: mov eax,00000000h jmp L000AF8E1 L000AF8C5: mov eax,00000001h jmp L000AF8E1 L000AF8CC: push ebp lea ebp,[ebx+10h] push FFFFFFFFh push ebx call SUB_L000AF776 add esp,00000008h pop ebp mov eax,00000001h L000AF8E1: pop ebp pop edi pop esi pop ebx mov esp,ebp pop ebp retn ;------------------------------------------------------------------------------ push ebp mov ecx,[esp+08h] mov ebp,[ecx] mov eax,[ecx+1Ch] push eax mov eax,[ecx+18h] push eax call SUB_L000AF776 add esp,00000008h pop ebp retn 0004h ;------------------------------------------------------------------------------ db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FEh; 'î' db 0Ah; db EDh; '­' db 75h; 'u' db 3Bh; ';' db D9h; '™' db C9h; '‰' db D9h; '™' db F1h; 'á' db EBh; '«' db 0Dh; L000AF915: db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FEh; 'î' db 32h; '2' db EDh; '­' db D9h; '™' db EAh; 'ª' db DEh; 'ž' db C9h; '‰' db E8h; '¨' db 2Bh; '+' db 01h; db 00h; db 00h; db D9h; '™' db E8h; '¨' db DEh; 'ž' db C1h; '' db F6h; 'æ' db 85h; ':' db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 01h; db 74h; 't' db 04h; db D9h; '™' db E8h; '¨' db DEh; 'ž' db F1h; 'á' db F6h; 'æ' db C2h; '‚' db 40h; '@' db 75h; 'u' db 02h; db D9h; '™' db FDh; 'í' db 0Ah; db EDh; '­' db 74h; 't' db 02h; db D9h; '™' db E0h; ' ' db E9h; '©' db AAh; 'ò' db 02h; db 00h; db 00h; db E8h; '¨' db 46h; 'F' db 01h; db 00h; db 00h; db 0Bh; db C0h; '€' db 74h; 't' db 14h; db 32h; '2' db EDh; '­' db 83h; '?' db F8h; 'è' db 02h; db 74h; 't' db 02h; db F6h; 'æ' db D5h; '•' db D9h; '™' db C9h; '‰' db D9h; '™' db E1h; '¡' db EBh; '«' db AFh; 'ô' db E9h; '©' db A0h; 'ÿ' db 02h; db 00h; db 00h; db E9h; '©' db 36h; '6' db 03h; db 00h; db 00h; db DDh; '' db D8h; '˜' db DDh; '' db D8h; '˜' db DBh; '›' db 2Dh; '-' dd L000B5AA4 db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 02h; db C3h; 'ƒ' db D9h; '™' db EDh; '­' db D9h; '™' db C9h; '‰' db D9h; '™' db E4h; '¤' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 9Bh; '>' db F6h; 'æ' db 85h; ':' db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 41h; 'A' db 75h; 'u' db D2h; '’' db D9h; '™' db F1h; 'á' db C3h; 'ƒ' db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 02h; db DDh; '' db D8h; '˜' db DBh; '›' db 2Dh; '-' dd L000B5AAE db C3h; 'ƒ' db 0Ah; db C9h; '‰' db 75h; 'u' db 53h; 'S' db C3h; 'ƒ' db D9h; '™' db ECh; '¬' db EBh; '«' db 02h; db D9h; '™' db EDh; '­' db D9h; '™' db C9h; '‰' db 0Ah; db C9h; '‰' db 75h; 'u' db AEh; 'R' db D9h; '™' db F1h; 'á' db C3h; 'ƒ' db E9h; '©' db 46h; 'F' db 02h; db 00h; db 00h; db E8h; '¨' db CFh; '' db 00h; db 00h; db 00h; db DDh; '' db D8h; '˜' db DDh; '' db D8h; '˜' db 0Ah; db C9h; '‰' db 75h; 'u' db 0Eh; db D9h; '™' db EEh; '®' db 83h; '?' db F8h; 'è' db 01h; db 75h; 'u' db 06h; db 0Ah; db EDh; '­' db 74h; 't' db 02h; db D9h; '™' db E0h; ' ' L000AF9DB: retn ;------------------------------------------------------------------------------ db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 02h; db DBh; '›' db 2Dh; '-' dd L000B5AA4 cmp eax,00000001h jnz L000AF9DB or ch,ch jz L000AF9DB fchs jmp L000AF9DB db DDh; '' db D8h; '˜' db E9h; '©' db 05h; db 02h; db 00h; db 00h; db DDh; '' db D8h; '˜' db E9h; '©' db A0h; 'ÿ' db 02h; db 00h; db 00h; db 58h; 'X' db D9h; '™' db E4h; '¤' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 9Bh; '>' db F6h; 'æ' db 85h; ':' db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 01h; db 75h; 'u' db 0Fh; db DDh; '' db D8h; '˜' db DBh; '›' db 2Dh; '-' dd L000B5AA4 db 0Ah; db EDh; '­' db 74h; 't' db 02h; db D9h; '™' db E0h; ' ' db C3h; 'ƒ' db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 04h; db E9h; '©' db CFh; '' db 01h; db 00h; db 00h; db DDh; '' db D8h; '˜' db DDh; '' db D8h; '˜' db DBh; '›' db 2Dh; '-' dd L000B5AA4 db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 03h; db C3h; 'ƒ' L000AFA45: db 0Ah; db C9h; '‰' db 75h; 'u' db AFh; 'ô' db DDh; '' db D8h; '˜' db DBh; '›' db 2Dh; '-' dd L000B5AA4 db C3h; 'ƒ' db D9h; '™' db C0h; '€' db D9h; '™' db E1h; '¡' db DBh; '›' db 2Dh; '-' dd L000B5AC2 db DEh; 'ž' db D9h; '™' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 9Bh; '>' db F6h; 'æ' db 85h; ':' db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 41h; 'A' db 75h; 'u' db 95h; db D9h; '™' db C0h; '€' db D9h; '™' db FCh; 'ì' db D9h; '™' db E4h; '¤' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 9Bh; '>' db 8Ah; '?' db 95h; db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D9h; '™' db C9h; '‰' db D8h; '˜' db E1h; '¡' db D9h; '™' db E4h; '¤' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D9h; '™' db E1h; '¡' db D9h; '™' db F0h; 'à' db C3h; 'ƒ' db D9h; '™' db C0h; '€' db D9h; '™' db FCh; 'ì' db D8h; '˜' db D9h; '™' db 9Bh; '>' db DFh; 'Ÿ' db E0h; ' ' db 9Eh; '?' db 75h; 'u' db 1Ah; db D9h; '™' db C0h; '€' db DCh; 'œ' db 0Dh; dd L000B5AD6 db D9h; '™' db C0h; '€' db D9h; '™' db FCh; 'ì' db DEh; 'ž' db D9h; '™' db 9Bh; '>' db DFh; 'Ÿ' db E0h; ' ' db 9Eh; '?' db 74h; 't' db 0Dh; db B8h; 'ñ' db 01h; db 00h; db 00h; db 00h; db C3h; 'ƒ' db B8h; 'ñ' db 00h; db 00h; db 00h; db 00h; db EBh; '«' db F8h; 'è' db B8h; 'ñ' db 02h; db 00h; db 00h; db 00h; db EBh; '«' db F1h; 'á' db 56h; 'V' db 83h; '?' db ECh; '¬' db 74h; 't' db 8Bh; '<' db F4h; 'ä' db 56h; 'V' sub esp,00000008h fstp qword ptr [esp] sub esp,00000008h fstp qword ptr [esp] fsave [esi+08h] call SUB_L000AFEA8 add esp,00000014h frstor [esi+08h] fld qword ptr [esi] add esp,00000074h pop esi test eax,eax jz L000AFAFA jmp L000AFCB5 L000AFAFA: retn ;------------------------------------------------------------------------------ db CCh; 'Œ' db 80h; '?' db 7Ah; 'z' db 0Eh; db 05h; db 75h; 'u' db 11h; db 66h; 'f' db 8Bh; '<' db 9Dh; '?' db 5Ch; '\' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 80h; '?' db CFh; '' db 02h; db 80h; '?' db E7h; '§' db FEh; 'î' db B3h; 'i' db 3Fh; '?' db EBh; '«' db 04h; db 66h; 'f' db BBh; '>' db 3Fh; '?' db 13h; db 66h; 'f' db 89h; '%' db 9Dh; '?' db 5Eh; '^' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D9h; '™' db ADh; '-' db 5Eh; '^' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db BBh; '>' dd L000B5B25 db D9h; '™' db E5h; '¥' db 89h; '%' db 95h; db 6Ch; 'l' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 9Bh; '>' db 8Ah; '?' db 8Dh; '?' db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D0h; '' db E1h; '¡' db D0h; '' db F9h; 'é' db D0h; '' db C1h; '' db 8Ah; '?' db C1h; '' db 24h; '$' db 0Fh; db D7h; '—' db 0Fh; db BEh; '?' db C0h; '€' db 81h; '?' db E1h; '¡' db 04h; db 04h; db 00h; db 00h; db 8Bh; '<' db DAh; 'š' db 03h; db D8h; '˜' db 83h; '?' db C3h; 'ƒ' db 10h; db FFh; 'ï' db 23h; '#' db 80h; '?' db 7Ah; 'z' db 0Eh; db 05h; db 75h; 'u' db 11h; db 66h; 'f' db 8Bh; '<' db 9Dh; '?' db 5Ch; '\' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 80h; '?' db CFh; '' db 02h; db 80h; '?' db E7h; '§' db FEh; 'î' db B3h; 'i' db 3Fh; '?' db EBh; '«' db 04h; db 66h; 'f' db BBh; '>' db 3Fh; '?' db 13h; db 66h; 'f' db 89h; '%' db 9Dh; '?' db 5Eh; '^' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D9h; '™' db ADh; '-' db 5Eh; '^' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db BBh; '>' dd L000B5B25 db D9h; '™' db E5h; '¥' db 89h; '%' db 95h; db 6Ch; 'l' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db D9h; '™' db C9h; '‰' db 8Ah; '?' db 8Dh; '?' db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D9h; '™' db E5h; '¥' db 9Bh; '>' db DDh; '' db BDh; '?' db 60h; '`' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D9h; '™' db C9h; '‰' db 8Ah; '?' db ADh; '-' db 61h; 'a' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db D0h; '' db E5h; '¥' db D0h; '' db FDh; 'í' db D0h; '' db C5h; '…' db 8Ah; '?' db C5h; '…' db 24h; '$' db 0Fh; db D7h; '—' db 8Ah; '?' db E0h; ' ' db D0h; '' db E1h; '¡' db D0h; '' db F9h; 'é' db D0h; '' db C1h; '' db 8Ah; '?' db C1h; '' db 24h; '$' db 0Fh; db D7h; '—' db D0h; '' db E4h; '¤' db D0h; '' db E4h; '¤' db 0Ah; db C4h; '„' db 0Fh; db BEh; '?' db C0h; '€' db 81h; '?' db E1h; '¡' db 04h; db 04h; db 00h; db 00h; db 8Bh; '<' db DAh; 'š' db 03h; db D8h; '˜' db 83h; '?' db C3h; 'ƒ' db 10h; db FFh; 'ï' db 23h; '#' db E8h; '¨' db C1h; '' db 00h; db 00h; db 00h; db D9h; '™' db C9h; '‰' db DDh; '' db D8h; '˜' db C3h; 'ƒ' db E8h; '¨' db B7h; 'ú' db 00h; db 00h; db 00h; db EBh; '«' db F6h; 'æ' db DDh; '' db D8h; '˜' db DDh; '' db D8h; '˜' db D9h; '™' db EEh; '®' db C3h; 'ƒ' db DDh; '' db D8h; '˜' L000AFC09: db DDh; '' db D8h; '˜' db D9h; '™' db E8h; '¨' db C3h; 'ƒ' L000AFC0E: db DBh; '›' db BDh; '?' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db DBh; '›' db ADh; '-' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db F6h; 'æ' db 85h; ':' db 69h; 'i' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 40h; '@' db 74h; 't' db 08h; db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 07h; db C3h; 'ƒ' db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 01h; db DCh; 'œ' db 05h; dd L000B5B1C db C3h; 'ƒ' db D9h; '™' db C9h; '‰' db DBh; '›' db BDh; '?' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db DBh; '›' db ADh; '-' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db F6h; 'æ' db 85h; ':' db 69h; 'i' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 40h; '@' db 74h; 't' db 09h; db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 07h; db EBh; '«' db 07h; db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 01h; db DEh; 'ž' db C1h; '' db C3h; 'ƒ' db DBh; '›' db BDh; '?' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db DBh; '›' db ADh; '-' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db F6h; 'æ' db 85h; ':' db 69h; 'i' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 40h; '@' db 74h; 't' db 20h; ' ' db D9h; '™' db C9h; '‰' db DBh; '›' db BDh; '?' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db DBh; '›' db ADh; '-' db 62h; 'b' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db F6h; 'æ' db 85h; ':' db 69h; 'i' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 40h; '@' db 74h; 't' db 09h; db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 07h; db EBh; '«' db 07h; db C6h; '†' db 85h; ':' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 01h; db DEh; 'ž' db C1h; '' db C3h; 'ƒ' db DDh; '' db D8h; '˜' db DDh; '' db D8h; '˜' db DBh; '›' db 2Dh; '-' dd L000B5B08 db 80h; '?' db BDh; '?' db 70h; 'p' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 7Fh; '' db 07h; L000AFCB5: mov byte ptr [ebp-00000090h],01h or cl,cl retn ;------------------------------------------------------------------------------ db 0Ah; db C9h; '‰' db 74h; 't' db 02h; db D9h; '™' db E0h; ' ' db C3h; 'ƒ' db CCh; 'Œ' db CCh; 'Œ' SUB_L000AFCC8: push ebp mov ebp,esp add esp,FFFFFFE0h mov [ebp-20h],eax mov eax,[ebp+18h] mov [ebp-10h],eax mov eax,[ebp+1Ch] mov [ebp-0Ch],eax jmp L000AFCE8 SUB_L000AFCDF: push ebp mov ebp,esp add esp,FFFFFFE0h mov [ebp-20h],eax L000AFCE8: fstp qword ptr [ebp-08h] mov [ebp-1Ch],ecx mov eax,[ebp+10h] mov ecx,[ebp+14h] mov [ebp-18h],eax mov [ebp-14h],ecx lea eax,[ebp+08h] lea ecx,[ebp-20h] push eax push ecx push edx call SUB_L000B001F add esp,0000000Ch fld qword ptr [ebp-08h] cmp word ptr [ebp+08h],027Fh jz L000AFD19 fldcw word ptr [ebp+08h] L000AFD19: leave retn ;------------------------------------------------------------------------------ Align 4 SUB_L000AFD1C: fld ST(0) frndint fsubr ST(1),ST fxch ST(1) fchs f2xm1 fld1 faddp ST(1),ST fscale fstp ST(1) retn ;------------------------------------------------------------------------------ SUB_L000AFD31: mov edx,[esp+04h] and edx,00000300h or edx,0000007Fh mov [esp+06h],dx fldcw word ptr [esp+06h] retn ;------------------------------------------------------------------------------ db A9h; 'c' db 00h; db 00h; db 08h; db 00h; db 74h; 't' db 06h; db B8h; 'ñ' db 07h; db 00h; db 00h; db 00h; db C3h; 'ƒ' db DCh; 'œ' db 05h; dd L000B24E0 mov eax,00000001h retn ;------------------------------------------------------------------------------ SUB_L000AFD61: mov eax,[edx+04h] and eax,7FF00000h cmp eax,7FF00000h jz L000AFD73 fld qword ptr [edx] retn ;------------------------------------------------------------------------------ L000AFD73: mov eax,[edx+04h] sub esp,0000000Ah or eax,7FFF0000h mov [esp+06h],eax mov eax,[edx+04h] mov ecx,[edx] shld eax,ecx,0Bh shl ecx,0Bh mov [esp+04h],eax mov [esp],ecx fld tbyte ptr [esp] add esp,0000000Ah test eax,00000000h mov eax,[edx+04h] retn ;------------------------------------------------------------------------------ mov eax,[esp+08h] and eax,7FF00000h cmp eax,7FF00000h jz L000AFDB5 retn ;------------------------------------------------------------------------------ L000AFDB5: mov eax,[esp+08h] retn ;------------------------------------------------------------------------------ L000AFDBA: cmp word ptr [esp],027Fh jz L000AFDC5 fldcw word ptr [esp] L000AFDC5: pop edx retn ;------------------------------------------------------------------------------ mov ax,[esp] cmp ax,027Fh jz L000AFDEF and ax,0020h jz L000AFDEC fstsw ax and ax,0020h jz L000AFDEC mov eax,00000008h call SUB_L000AFCDF pop edx retn ;------------------------------------------------------------------------------ L000AFDEC: fldcw word ptr [esp] L000AFDEF: pop edx retn ;------------------------------------------------------------------------------ sub esp,00000008h fst qword ptr [esp] mov eax,[esp+04h] add esp,00000008h and eax,7FF00000h jmp L000AFE19 L000AFE05: sub esp,00000008h fst qword ptr [esp] mov eax,[esp+04h] add esp,00000008h and eax,7FF00000h jz L000AFE56 L000AFE19: cmp eax,7FF00000h jz L000AFE7F mov ax,[esp] cmp ax,027Fh jz L000AFE54 and ax,0020h jnz L000AFE51 fstsw ax and ax,0020h jz L000AFE51 mov eax,00000008h L000AFE3E: cmp edx,0000001Dh jz L000AFE4A call SUB_L000AFCDF pop edx retn ;------------------------------------------------------------------------------ L000AFE4A: call SUB_L000AFCC8 pop edx retn ;------------------------------------------------------------------------------ L000AFE51: fldcw word ptr [esp] L000AFE54: pop edx retn ;------------------------------------------------------------------------------ L000AFE56: fld qword ptr [L000B250C] fxch ST(1) fscale fstp ST(1) fld ST(0) fabs fcomp qword ptr [L000B24FC] fstsw ax sahf mov eax,00000004h jnc L000AFE3E fmul qword ptr [L000B251C] jmp L000AFE3E L000AFE7F: fld qword ptr [L000B2504] fxch ST(1) fscale fstp ST(1) fld ST(0) fabs fcomp qword ptr [L000B24F4] fstsw ax sahf mov eax,00000003h jbe L000AFE3E fmul qword ptr [L000B2514] jmp L000AFE3E SUB_L000AFEA8: push ebp mov ebp,esp fld qword ptr [ebp+08h] fcom qword ptr [L000B2528] push esi xor esi,esi fnstsw ax sahf jnc L000AFEBE fchs L000AFEBE: mov eax,7FF00000h cmp [ebp+14h],eax jnz L000AFEE9 cmp [ebp+10h],esi jnz L000AFEE9 fcom qword ptr [L000B2530] fnstsw ax sahf jbe L000AFEDC fstp ST(0) jmp L000AFF3F L000AFEDC: fcomp qword ptr [L000B2530] fnstsw ax sahf jnc L000AFF12 jmp L000AFF55 L000AFEE9: mov ecx,FFF00000h cmp [ebp+14h],ecx jnz L000AFF25 cmp [ebp+10h],esi jnz L000AFF25 fcom qword ptr [L000B2530] fnstsw ax sahf jbe L000AFF07 fstp ST(0) jmp L000AFF55 L000AFF07: fcomp qword ptr [L000B2530] fnstsw ax sahf jc L000AFF3F L000AFF12: fld qword ptr [L000B5B40] mov eax,[ebp+18h] push 00000001h pop esi fstp qword ptr [eax] jmp L000AFFC0 L000AFF25: cmp [ebp+0Ch],eax fstp ST(0) jnz L000AFF59 cmp [ebp+08h],esi jnz L000AFF59 fld qword ptr [ebp+10h] fcomp qword ptr [L000B2528] fnstsw ax sahf jbe L000AFF47 L000AFF3F: fld qword ptr [L000B5B38] jmp L000AFFBB L000AFF47: fld qword ptr [ebp+10h] fcomp qword ptr [L000B2528] fnstsw ax sahf jnc L000AFFB9 L000AFF55: fldz jmp L000AFFBB L000AFF59: cmp [ebp+0Ch],ecx jnz L000AFFC0 cmp [ebp+08h],esi jnz L000AFFC0 fld qword ptr [ebp+10h] push ecx push ecx fstp qword ptr [esp] call SUB_L000AFFC5 fld qword ptr [ebp+10h] fcomp qword ptr [L000B2528] pop ecx pop ecx mov ecx,eax fnstsw ax sahf jbe L000AFF91 fld qword ptr [L000B5B38] cmp ecx,00000001h jnz L000AFFAE fchs jmp L000AFFAE L000AFF91: fld qword ptr [ebp+10h] fcomp qword ptr [L000B2528] fnstsw ax sahf jnc L000AFFB9 cmp ecx,00000001h jnz L000AFFAC fld qword ptr [L000B5B58] jmp L000AFFAE L000AFFAC: fldz L000AFFAE: mov eax,[ebp+18h] fld ST(0) fstp qword ptr [eax] fstp ST(0) jmp L000AFFC0 L000AFFB9: fld1 L000AFFBB: mov eax,[ebp+18h] fstp qword ptr [eax] L000AFFC0: mov eax,esi pop esi pop ebp retn ;------------------------------------------------------------------------------ SUB_L000AFFC5: push ebp mov ebp,esp fld qword ptr [ebp+08h] push ecx push ecx fstp qword ptr [esp] call SUB_L000B0238 pop ecx test al,90h pop ecx jnz L000B001B fld qword ptr [ebp+08h] push ecx push ecx fstp qword ptr [esp] call SUB_L000B0226 fcomp qword ptr [ebp+08h] pop ecx pop ecx fnstsw ax sahf jnz L000B001B fld qword ptr [ebp+08h] fmul qword ptr [L000B2538] push ecx push ecx fst qword ptr [ebp+08h] fstp qword ptr [esp] call SUB_L000B0226 fcomp qword ptr [ebp+08h] pop ecx pop ecx fnstsw ax sahf jnz L000B0016 push 00000002h jmp L000B0018 L000B0016: push 00000001h L000B0018: pop eax pop ebp retn ;------------------------------------------------------------------------------ L000B001B: xor eax,eax pop ebp retn ;------------------------------------------------------------------------------ SUB_L000B001F: push ebp mov ebp,esp sub esp,00000058h mov eax,[ebp+10h] push ebx push esi mov esi,[ebp+0Ch] movzx ecx,[eax] mov eax,[esi] push edi dec eax mov [ebp+10h],ecx jz L000B0064 dec eax jz L000B0060 dec eax jz L000B005C dec eax jz L000B0058 dec eax jz L000B0064 dec eax dec eax jz L000B0050 dec eax jnz L000B00BA push 00000010h jmp L000B0066 L000B0050: mov dword ptr [esi],00000001h jmp L000B00BA L000B0058: push 00000012h jmp L000B0066 L000B005C: push 00000011h jmp L000B0066 L000B0060: push 00000004h jmp L000B0066 L000B0064: push 00000008h L000B0066: pop ebx lea edi,[esi+18h] push ecx push edi push ebx call SUB_L000B05D7 add esp,0000000Ch test eax,eax jnz L000B00BA mov eax,[ebp+08h] cmp eax,00000010h jz L000B0091 cmp eax,00000016h jz L000B0091 cmp eax,0000001Dh jz L000B0091 and dword ptr [ebp-20h],FFFFFFFEh jmp L000B00A3 L000B0091: mov ecx,[ebp-20h] fld qword ptr [esi+10h] and ecx,FFFFFFE3h fstp qword ptr [ebp-30h] or ecx,00000003h mov [ebp-20h],ecx L000B00A3: lea ecx,[esi+08h] push edi push ecx push eax lea eax,[ebp+10h] push ebx push eax lea eax,[ebp-58h] push eax call SUB_L000B0325 add esp,00000018h L000B00BA: push 0000FFFFh push [ebp+10h] call SUB_L000B0801 pop ecx xor eax,eax cmp dword ptr [esi],00000008h pop ecx jz L000B00DF cmp [L000B5C38],eax jnz L000B00DF push esi call SUB_L000B07E1 pop ecx L000B00DF: test eax,eax jnz L000B00EB push [esi] call SUB_L000B07BB pop ecx L000B00EB: pop edi pop esi pop ebx leave retn ;------------------------------------------------------------------------------ SUB_L000B00F0: push ebp mov ebp,esp push ecx push ecx mov eax,[ebp+10h] mov ecx,[ebp+0Eh] fld qword ptr [ebp+08h] add eax,000003FEh and cx,800Fh fstp qword ptr [ebp-08h] shl eax,04h or ecx,eax mov [ebp-02h],cx fld qword ptr [ebp-08h] leave retn ;------------------------------------------------------------------------------ SUB_L000B0119: push ebp mov ebp,esp xor edx,edx cmp dword ptr [ebp+0Ch],7FF00000h jnz L000B0130 cmp [ebp+08h],edx jnz L000B0130 push 00000001h jmp L000B016C L000B0130: cmp dword ptr [ebp+0Ch],FFF00000h jnz L000B0142 cmp [ebp+08h],edx jnz L000B0142 push 00000002h jmp L000B016C L000B0142: mov ecx,[ebp+0Eh] mov eax,00007FF8h and ecx,eax cmp cx,ax jnz L000B0155 push 00000003h jmp L000B016C L000B0155: cmp cx,7FF0h jnz L000B016F test dword ptr [ebp+0Ch],L0007FFFF jnz L000B016A cmp [ebp+08h],edx jz L000B016F L000B016A: push 00000004h L000B016C: pop eax pop ebp retn ;------------------------------------------------------------------------------ L000B016F: xor eax,eax pop ebp retn ;------------------------------------------------------------------------------ SUB_L000B0173: push ebp mov ebp,esp fld qword ptr [ebp+08h] fcomp qword ptr [L000B2540] push esi fnstsw ax sahf jnz L000B018E fldz xor esi,esi jmp L000B021E L000B018E: xor ecx,ecx test word ptr [ebp+0Eh],7FF0h jnz L000B01FA test dword ptr [ebp+0Ch],000FFFFFh jnz L000B01A6 cmp [ebp+08h],ecx jz L000B01FA L000B01A6: fld qword ptr [ebp+08h] fcomp qword ptr [L000B2540] mov esi,FFFFFC03h fnstsw ax sahf jnc L000B01BE push 00000001h pop eax jmp L000B01C0 L000B01BE: xor eax,eax L000B01C0: test byte ptr [ebp+0Eh],10h jnz L000B01D9 shl dword ptr [ebp+0Ch],1 test byte ptr [ebp+0Bh],80h jz L000B01D3 or dword ptr [ebp+0Ch],00000001h L000B01D3: shl dword ptr [ebp+08h],1 dec esi jmp L000B01C0 L000B01D9: and word ptr [ebp+0Eh],FFEFh cmp eax,ecx jz L000B01E7 or byte ptr [ebp+0Fh],80h L000B01E7: fld qword ptr [ebp+08h] push ecx push ecx push ecx fstp qword ptr [esp] call SUB_L000B00F0 add esp,0000000Ch jmp L000B021E L000B01FA: fld qword ptr [ebp+08h] push ecx push ecx push ecx fstp qword ptr [esp] call SUB_L000B00F0 mov eax,[ebp+0Eh] add esp,0000000Ch shr eax,04h and ax,07FFh movsx esi,ax sub esi,000003FEh L000B021E: mov eax,[ebp+10h] mov [eax],esi pop esi pop ebp retn ;------------------------------------------------------------------------------ SUB_L000B0226: push ebp mov ebp,esp push ecx push ecx fld qword ptr [ebp+08h] frndint fstp qword ptr [ebp-08h] fld qword ptr [ebp-08h] leave retn ;------------------------------------------------------------------------------ SUB_L000B0238: push ebp mov ebp,esp mov eax,[ebp+0Eh] mov ecx,00007FF0h mov edx,eax and edx,ecx cmp dx,cx jnz L000B0278 fld qword ptr [ebp+08h] push ecx push ecx fstp qword ptr [esp] call SUB_L000B0119 pop ecx dec eax pop ecx jz L000B0271 dec eax jz L000B026C dec eax jz L000B0268 push 00000001h jmp L000B026E L000B0268: push 00000002h jmp L000B026E L000B026C: push 00000004h L000B026E: pop eax pop ebp retn ;------------------------------------------------------------------------------ L000B0271: mov eax,00000200h pop ebp retn ;------------------------------------------------------------------------------ L000B0278: and eax,00008000h test dx,dx mov ecx,eax jnz L000B02A2 test dword ptr [ebp+0Ch],000FFFFFh jnz L000B0293 cmp dword ptr [ebp+08h],00000000h jz L000B02A2 L000B0293: mov eax,ecx neg eax sbb eax,eax and al,90h add eax,00000080h pop ebp retn ;------------------------------------------------------------------------------ L000B02A2: fld qword ptr [ebp+08h] fcomp qword ptr [L000B2550] fnstsw ax sahf mov eax,ecx jnz L000B02BD neg eax sbb eax,eax and al,E0h add eax,00000040h pop ebp retn ;------------------------------------------------------------------------------ L000B02BD: neg eax sbb eax,eax and al,08h add eax,00000100h pop ebp retn ;------------------------------------------------------------------------------ SUB_L000B02CA: push ebp mov ebp,esp sub esp,00000050h mov eax,[ebp+08h] and dword ptr [ebp-48h],00000000h mov [ebp-50h],eax mov eax,[ebp+0Ch] push esi mov esi,[ebp+14h] and eax,00000001h push edi test esi,esi mov [ebp-4Ch],eax mov dword ptr [ebp-44h],SUB_L000B02CA jz L000B0312 mov eax,[ebp+10h] cmp eax,0000000Fh jbe L000B02FE push 0000000Fh pop eax L000B02FE: mov [ebp-40h],eax mov ecx,eax dec eax test ecx,ecx jz L000B0316 lea ecx,[eax+01h] lea edi,[ebp-3Ch] rep movsd jmp L000B0316 L000B0312: and dword ptr [ebp-40h],00000000h L000B0316: lea eax,[ebp-50h] push eax call jmp_WIN32K.SYS!RtlRaiseException pop edi pop esi leave retn 0010h ;------------------------------------------------------------------------------ SUB_L000B0325: push ebp mov ebp,esp mov ecx,[ebp+08h] xor eax,eax push ebx push esi mov [ecx+04h],eax mov ecx,[ebp+08h] push edi push 00000001h mov [ecx+08h],eax mov ecx,[ebp+08h] pop ebx mov [ecx+0Ch],eax mov cl,[ebp+10h] test cl,10h jz L000B0357 mov eax,[ebp+08h] mov dword ptr [ebp+10h],C000008Fh or [eax+04h],ebx L000B0357: test cl,02h jz L000B036A mov eax,[ebp+08h] mov dword ptr [ebp+10h],C0000093h or dword ptr [eax+04h],00000002h L000B036A: test bl,cl jz L000B037C mov eax,[ebp+08h] mov dword ptr [ebp+10h],C0000091h or dword ptr [eax+04h],00000004h L000B037C: test cl,04h jz L000B038F mov eax,[ebp+08h] mov dword ptr [ebp+10h],C000008Eh or dword ptr [eax+04h],00000008h L000B038F: test cl,08h jz L000B03A2 mov eax,[ebp+08h] mov dword ptr [ebp+10h],C0000090h or dword ptr [eax+04h],00000010h L000B03A2: mov esi,[ebp+0Ch] mov eax,[ebp+08h] push 00000002h mov ecx,[esi] mov edx,[eax+08h] not ecx and ecx,ebx and edx,FFFFFFEFh shl ecx,04h or ecx,edx pop edi mov [eax+08h],ecx mov ecx,[esi] mov eax,[ebp+08h] not ecx mov edx,[eax+08h] and ecx,00000004h shl ecx,1 and edx,FFFFFFF7h or ecx,edx mov [eax+08h],ecx mov ecx,[esi] mov eax,[ebp+08h] not ecx mov edx,[eax+08h] shr ecx,1 and ecx,00000004h and edx,FFFFFFFBh or ecx,edx mov [eax+08h],ecx mov ecx,[esi] mov eax,[ebp+08h] not ecx mov edx,[eax+08h] shr ecx,03h and ecx,edi and edx,FFFFFFFDh or ecx,edx mov [eax+08h],ecx mov ecx,[esi] mov eax,[ebp+08h] not ecx mov edx,[eax+08h] shr ecx,05h and ecx,ebx and edx,FFFFFFFEh or ecx,edx mov [eax+08h],ecx call SUB_L000B07E4 test bl,al jz L000B042B mov ecx,[ebp+08h] or dword ptr [ecx+0Ch],00000010h L000B042B: test al,04h jz L000B0436 mov ecx,[ebp+08h] or dword ptr [ecx+0Ch],00000008h L000B0436: test al,08h jz L000B0441 mov ecx,[ebp+08h] or dword ptr [ecx+0Ch],00000004h L000B0441: test al,10h jz L000B044B mov ecx,[ebp+08h] or [ecx+0Ch],edi L000B044B: test al,20h jz L000B0455 mov eax,[ebp+08h] or [eax+0Ch],ebx L000B0455: mov eax,[esi] mov ecx,00000C00h and eax,ecx jz L000B0494 cmp eax,00000400h jz L000B0486 cmp eax,00000800h jz L000B047A cmp eax,ecx jnz L000B049A mov eax,[ebp+08h] or dword ptr [eax],00000003h jmp L000B049A L000B047A: mov eax,[ebp+08h] mov ecx,[eax] and ecx,FFFFFFFEh or ecx,edi jmp L000B0490 L000B0486: mov eax,[ebp+08h] mov ecx,[eax] and ecx,FFFFFFFDh or ecx,ebx L000B0490: mov [eax],ecx jmp L000B049A L000B0494: mov eax,[ebp+08h] and dword ptr [eax],FFFFFFFCh L000B049A: mov eax,[esi] mov ecx,00000300h and eax,ecx jz L000B04C5 cmp eax,00000200h jz L000B04B8 cmp eax,ecx jnz L000B04D2 mov eax,[ebp+08h] and dword ptr [eax],FFFFFFE3h jmp L000B04D2 L000B04B8: mov eax,[ebp+08h] mov ecx,[eax] and ecx,FFFFFFE7h or ecx,00000004h jmp L000B04D0 L000B04C5: mov eax,[ebp+08h] mov ecx,[eax] and ecx,FFFFFFEBh or ecx,00000008h L000B04D0: mov [eax],ecx L000B04D2: mov eax,[ebp+08h] mov edx,[ebp+14h] and edx,00000FFFh mov ecx,[eax] and ecx,FFFE001Fh shl edx,05h or ecx,edx mov [eax],ecx mov eax,[ebp+08h] or [eax+20h],ebx mov eax,[ebp+08h] mov ecx,[eax+20h] and ecx,FFFFFFE3h or ecx,edi mov [eax+20h],ecx mov eax,[ebp+18h] fld qword ptr [eax] mov eax,[ebp+08h] fstp qword ptr [eax+10h] mov eax,[ebp+08h] or [eax+50h],ebx mov eax,[ebp+08h] mov ecx,[eax+50h] and ecx,FFFFFFE3h or ecx,edi mov edi,[ebp+1Ch] mov [eax+50h],ecx mov eax,[ebp+08h] fld qword ptr [edi] fstp qword ptr [eax+40h] call SUB_L000B07F2 lea eax,[ebp+08h] push eax push ebx push 00000000h push [ebp+10h] call SUB_L000B02CA mov eax,[ebp+08h] test byte ptr [eax+08h],10h jz L000B054B and dword ptr [esi],FFFFFFFEh L000B054B: test byte ptr [eax+08h],08h jz L000B0554 and dword ptr [esi],FFFFFFFBh L000B0554: test byte ptr [eax+08h],04h jz L000B055D and dword ptr [esi],FFFFFFF7h L000B055D: test byte ptr [eax+08h],02h jz L000B0566 and dword ptr [esi],FFFFFFEFh L000B0566: test [eax+08h],bl jz L000B056E and dword ptr [esi],FFFFFFDFh L000B056E: mov ecx,[eax] mov edx,FFFFF3FFh and ecx,00000003h sub ecx,00000000h jz L000B05A2 dec ecx jz L000B0596 dec ecx jz L000B058C dec ecx jnz L000B05A4 or byte ptr [esi+01h],0Ch jmp L000B05A4 L000B058C: mov ecx,[esi] and ch,FBh or ch,08h jmp L000B059E L000B0596: mov ecx,[esi] and ch,F7h or ch,04h L000B059E: mov [esi],ecx jmp L000B05A4 L000B05A2: and [esi],edx L000B05A4: mov ecx,[eax] shr ecx,02h and ecx,00000007h sub ecx,00000000h jz L000B05C4 dec ecx jz L000B05BB dec ecx jnz L000B05CD and [esi],edx jmp L000B05CD L000B05BB: mov ecx,[esi] and ecx,edx or ch,02h jmp L000B05CB L000B05C4: mov ecx,[esi] and ecx,edx or ch,03h L000B05CB: mov [esi],ecx L000B05CD: fld qword ptr [eax+40h] fstp qword ptr [edi] pop edi pop esi pop ebx pop ebp retn ;------------------------------------------------------------------------------ SUB_L000B05D7: push ebp mov ebp,esp sub esp,0000000Ch mov eax,[ebp+08h] push ebx push esi push edi mov edi,eax push 00000001h and edi,0000001Fh pop ebx test al,08h jz L000B0603 test [ebp+10h],bl jz L000B0603 push ebx call SUB_L000B0824 pop ecx and edi,FFFFFFF7h jmp L000B0798 L000B0603: test al,04h jz L000B061D test byte ptr [ebp+10h],04h jz L000B061D push 00000004h call SUB_L000B0824 pop ecx and edi,FFFFFFFBh jmp L000B0798 L000B061D: test bl,al jz L000B06D1 test byte ptr [ebp+10h],08h jz L000B06D1 push 00000008h call SUB_L000B0824 pop ecx mov eax,00000C00h mov ecx,[ebp+10h] and ecx,eax jz L000B06A7 cmp ecx,00000400h jz L000B068F cmp ecx,00000800h jz L000B066F cmp ecx,eax jnz L000B06C9 mov ecx,[ebp+0Ch] fld qword ptr [ecx] fcomp qword ptr [L000B2610] fld qword ptr [L000B5B48] fnstsw ax sahf ja L000B06C7 jmp L000B06C5 L000B066F: mov ecx,[ebp+0Ch] fld qword ptr [ecx] fcomp qword ptr [L000B2610] fnstsw ax sahf jbe L000B0687 fld qword ptr [L000B5B38] jmp L000B06C7 L000B0687: fld qword ptr [L000B5B48] jmp L000B06C5 L000B068F: mov ecx,[ebp+0Ch] fld qword ptr [ecx] fcomp qword ptr [L000B2610] fnstsw ax sahf jbe L000B06BF fld qword ptr [L000B5B48] jmp L000B06C7 L000B06A7: mov ecx,[ebp+0Ch] fld qword ptr [ecx] fcomp qword ptr [L000B2610] fnstsw ax sahf jbe L000B06BF fld qword ptr [L000B5B38] jmp L000B06C7 L000B06BF: fld qword ptr [L000B5B38] L000B06C5: fchs L000B06C7: fstp qword ptr [ecx] L000B06C9: and edi,FFFFFFFEh jmp L000B0798 L000B06D1: test al,02h jz L000B0798 test byte ptr [ebp+10h],10h jz L000B0798 xor esi,esi test al,10h jz L000B06EB mov esi,ebx L000B06EB: mov eax,[ebp+0Ch] fld qword ptr [eax] fcom qword ptr [L000B2610] fnstsw ax sahf jz L000B0785 lea eax,[ebp-04h] push eax push ecx fld ST(0) push ecx fstp qword ptr [esp] fstp ST(0) call SUB_L000B0173 mov eax,[ebp-04h] add esp,0000000Ch fst qword ptr [ebp-0Ch] lea ecx,[eax-00000600h] cmp ecx,FFFFFBCEh jge L000B0730 fstp ST(0) fldz mov esi,ebx jmp L000B077E L000B0730: fcomp qword ptr [L000B2610] fnstsw ax sahf jnc L000B073F mov edx,ebx jmp L000B0741 L000B073F: xor edx,edx L000B0741: mov al,[ebp-06h] and eax,0000000Fh or al,10h mov [ebp-06h],ax mov eax,FFFFFC03h cmp ecx,eax jge L000B0775 sub eax,ecx L000B0758: test [ebp-0Ch],bl jz L000B0763 test esi,esi jnz L000B0763 mov esi,ebx L000B0763: shr dword ptr [ebp-0Ch],1 test [ebp-08h],bl jz L000B076F or byte ptr [ebp-09h],80h L000B076F: shr dword ptr [ebp-08h],1 dec eax jnz L000B0758 L000B0775: fld qword ptr [ebp-0Ch] test edx,edx jz L000B077E fchs L000B077E: mov eax,[ebp+0Ch] fstp qword ptr [eax] jmp L000B0789 L000B0785: fstp ST(0) mov esi,ebx L000B0789: test esi,esi jz L000B0795 push 00000010h call SUB_L000B0824 pop ecx L000B0795: and edi,FFFFFFFDh L000B0798: test byte ptr [ebp+08h],10h jz L000B07AF test byte ptr [ebp+10h],20h jz L000B07AF push 00000020h call SUB_L000B0824 pop ecx and edi,FFFFFFEFh L000B07AF: xor eax,eax test edi,edi pop edi pop esi setz al pop ebx leave retn ;------------------------------------------------------------------------------ SUB_L000B07BB: mov eax,[esp+04h] cmp eax,00000001h jz L000B07D6 jle L000B07E0 cmp eax,00000003h jg L000B07E0 mov dword ptr [L000B70CC],00000022h retn ;------------------------------------------------------------------------------ L000B07D6: mov dword ptr [L000B70CC],00000021h L000B07E0: retn ;------------------------------------------------------------------------------ SUB_L000B07E1: xor eax,eax retn ;------------------------------------------------------------------------------ SUB_L000B07E4: push ebp mov ebp,esp push ecx fstsw word ptr [ebp-02h] movsx eax,[ebp-02h] leave retn ;------------------------------------------------------------------------------ SUB_L000B07F2: push ebp mov ebp,esp push ecx fnstsw word ptr [ebp-02h] fnclex movsx eax,[ebp-02h] leave retn ;------------------------------------------------------------------------------ SUB_L000B0801: push ebp mov ebp,esp push ecx fstcw word ptr [ebp-04h] mov eax,[ebp+0Ch] mov ecx,eax and eax,[ebp+08h] not ecx and ecx,[ebp-04h] or ecx,eax mov [ebp+0Ch],ecx fldcw word ptr [ebp+0Ch] movsx eax,[ebp-04h] leave retn ;------------------------------------------------------------------------------ SUB_L000B0824: push ebp mov ebp,esp push ecx push ecx mov cl,[ebp+08h] test cl,01h jz L000B083B fld tbyte ptr [L000B5C40] fistp dword ptr [ebp+08h] wait L000B083B: test cl,08h jz L000B0850 fstsw ax fld tbyte ptr [L000B5C40] fstp qword ptr [ebp-08h] wait fstsw ax L000B0850: test cl,10h jz L000B085F fld tbyte ptr [L000B5C50] fstp qword ptr [ebp-08h] wait L000B085F: test cl,04h jz L000B086D fldz fld1 fdivrp ST(1),ST fstp ST(0) wait L000B086D: test cl,20h jz L000B0878 fldpi fstp qword ptr [ebp-08h] wait L000B0878: leave retn ;------------------------------------------------------------------------------ jmp_WIN32K.SYS!EngFreeMem: jmp [WIN32K.SYS!EngFreeMem] jmp_WIN32K.SYS!EngAllocMem: jmp [WIN32K.SYS!EngAllocMem] jmp_WIN32K.SYS!EngDeleteSurface: jmp [WIN32K.SYS!EngDeleteSurface] jmp_WIN32K.SYS!EngModifySurface: jmp [WIN32K.SYS!EngModifySurface] jmp_WIN32K.SYS!EngCreateDeviceSurface: jmp [WIN32K.SYS!EngCreateDeviceSurface] jmp_WIN32K.SYS!EngCreateDeviceBitmap: jmp [WIN32K.SYS!EngCreateDeviceBitmap] jmp_WIN32K.SYS!EngUnlockSurface: jmp [WIN32K.SYS!EngUnlockSurface] jmp_WIN32K.SYS!EngLockSurface: jmp [WIN32K.SYS!EngLockSurface] jmp_WIN32K.SYS!EngAssociateSurface: jmp [WIN32K.SYS!EngAssociateSurface] jmp_WIN32K.SYS!EngGetLastError: jmp [WIN32K.SYS!EngGetLastError] jmp_WIN32K.SYS!EngCreateBitmap: jmp [WIN32K.SYS!EngCreateBitmap] jmp_WIN32K.SYS!EngDebugPrint: jmp [WIN32K.SYS!EngDebugPrint] jmp_WIN32K.SYS!CLIPOBJ_bEnum: jmp [WIN32K.SYS!CLIPOBJ_bEnum] jmp_WIN32K.SYS!CLIPOBJ_cEnumStart: jmp [WIN32K.SYS!CLIPOBJ_cEnumStart] jmp_WIN32K.SYS!EngTransparentBlt: jmp [WIN32K.SYS!EngTransparentBlt] jmp_WIN32K.SYS!EngCreatePalette: jmp [WIN32K.SYS!EngCreatePalette] jmp_WIN32K.SYS!EngDeviceIoControl: jmp [WIN32K.SYS!EngDeviceIoControl] jmp_WIN32K.SYS!EngDeletePalette: jmp [WIN32K.SYS!EngDeletePalette] jmp_WIN32K.SYS!PALOBJ_cGetColors: jmp [WIN32K.SYS!PALOBJ_cGetColors] jmp_WIN32K.SYS!BRUSHOBJ_pvAllocRbrush: jmp [WIN32K.SYS!BRUSHOBJ_pvAllocRbrush] jmp_WIN32K.SYS!EngLineTo: jmp [WIN32K.SYS!EngLineTo] jmp_WIN32K.SYS!EngStrokePath: jmp [WIN32K.SYS!EngStrokePath] jmp_WIN32K.SYS!STROBJ_bEnum: jmp [WIN32K.SYS!STROBJ_bEnum] jmp_WIN32K.SYS!EngTextOut: jmp [WIN32K.SYS!EngTextOut] jmp_WIN32K.SYS!BRUSHOBJ_pvGetRbrush: jmp [WIN32K.SYS!BRUSHOBJ_pvGetRbrush] jmp_WIN32K.SYS!EngBitBlt: jmp [WIN32K.SYS!EngBitBlt] jmp_WIN32K.SYS!EngCopyBits: jmp [WIN32K.SYS!EngCopyBits] jmp_WIN32K.SYS!EngAllocUserMem: jmp [WIN32K.SYS!EngAllocUserMem] jmp_WIN32K.SYS!EngFreeUserMem: jmp [WIN32K.SYS!EngFreeUserMem] jmp_WIN32K.SYS!EngQueryPerformanceCounter: jmp [WIN32K.SYS!EngQueryPerformanceCounter] jmp_WIN32K.SYS!EngQueryPerformanceFrequency: jmp [WIN32K.SYS!EngQueryPerformanceFrequency] jmp_WIN32K.SYS!EngDeleteDriverObj: jmp [WIN32K.SYS!EngDeleteDriverObj] jmp_WIN32K.SYS!EngCreateDriverObj: jmp [WIN32K.SYS!EngCreateDriverObj] jmp_WIN32K.SYS!RtlUnwind: jmp [WIN32K.SYS!RtlUnwind] jmp_WIN32K.SYS!RtlRaiseException: jmp [WIN32K.SYS!RtlRaiseException] Align 8 SUB_L000B0950: mov al,[SSZ000B2768_i81x] test al,al mov ecx,[esp+04h] mov edx,SSZ000B2768_i81x jz L000B0974 L000B0962: movzx ax,al mov [ecx],ax mov al,[edx+01h] add ecx,00000002h inc edx test al,al jnz L000B0962 L000B0974: mov word ptr [ecx],0000h retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000B0980: mov ecx,[L000B2770] mov eax,[esp+04h] mov [eax],ecx mov edx,[L000B2774] mov [eax+04h],edx mov ecx,[L000B2778] mov [eax+08h],ecx mov dl,[L000B277C] mov [eax+0Ch],dl retn 0004h ;------------------------------------------------------------------------------ Align 8 HAL3DCreateContext: mov eax,[esp+08h] push eax push 00000001h call OsAllocMem test eax,eax jz L000B09F4 mov ecx,[esp+04h] mov dword ptr [eax+0000012Ch],00000000h mov edx,[ecx+70h] test edx,edx jnz L000B09D8 mov [ecx+74h],edx L000B09D8: mov [eax+00000130h],edx mov edx,[ecx+70h] test edx,edx jz L000B09EB mov [edx+0000012Ch],eax L000B09EB: mov [ecx+70h],eax mov [eax+00000144h],ecx L000B09F4: retn 0008h ;------------------------------------------------------------------------------ Align 16 HAL3DDestroyContext: mov eax,[esp+04h] mov ecx,[eax+00000130h] test ecx,ecx mov edx,[eax+00000144h] push esi jz L000B0A21 mov esi,[eax+0000012Ch] mov [ecx+0000012Ch],esi L000B0A21: mov ecx,[eax+0000012Ch] test ecx,ecx jz L000B0A39 mov esi,[eax+00000130h] mov [ecx+00000130h],esi jmp L000B0A42 L000B0A39: mov ecx,[eax+00000130h] mov [edx+70h],ecx L000B0A42: cmp eax,[edx+74h] pop esi jnz L000B0A4F mov dword ptr [edx+74h],00000000h L000B0A4F: push eax call OsFreeMem retn 0004h ;------------------------------------------------------------------------------ Align 16 HAL3DEnableHardware: mov eax,[esp+08h] mov ecx,[esp+0Ch] mov eax,[eax+04h] test ecx,ecx mov cl,[eax+000020C0h] jz L000B0A81 and cl,F8h mov [eax+000020C0h],cl retn 000Ch ;------------------------------------------------------------------------------ L000B0A81: or cl,07h mov [eax+000020C0h],cl retn 000Ch ;------------------------------------------------------------------------------ Align 4 SUB_L000B0A90: push esi mov esi,[esp+08h] mov eax,[esi+64h] lea ecx,[00000004h+eax*4] push ecx push 00000001h call OsAllocMem test eax,eax mov [esi+60h],eax jz L000B0AC5 mov edx,[esi+64h] inc edx mov [esi+5Ch],edx mov dword ptr [eax],7D8200FFh mov eax,[esi+60h] add eax,00000004h pop esi retn 0008h ;------------------------------------------------------------------------------ L000B0AC5: xor eax,eax pop esi retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L000B0AD0: mov eax,[esp+04h] mov ecx,[eax+60h] push ecx call OsFreeMem retn 0004h ;------------------------------------------------------------------------------ SUB_L000B0AE0: push ecx mov eax,[esp+08h] mov ecx,[esp+0Ch] push esi lea esi,[eax+03h] shr esi,02h add ecx,00000003h shr ecx,02h mov [esp+04h],esi jz L000B0B72 mov edx,[esp+18h] push ebx mov ebx,[esp+20h] push ebp push edi mov edi,[esp+20h] lea eax,[edx+edx] mov [esp+18h],edi mov [esp+28h],eax add edi,edx mov [esp+1Ch],ecx L000B0B1C: test esi,esi jbe L000B0B52 mov edx,[esp+18h] mov ecx,edi mov eax,ebx sub edx,edi L000B0B2A: mov ebp,[eax] mov [edx+ecx],ebp mov ebp,[eax+04h] mov [edx+ecx+04h],ebp mov ebp,[eax+08h] mov [ecx],ebp mov ebp,[eax+0Ch] mov [ecx+04h],ebp add eax,00000010h add ecx,00000008h dec esi jnz L000B0B2A mov eax,[esp+28h] mov esi,[esp+10h] L000B0B52: mov ecx,[esp+2Ch] mov ebp,[esp+18h] add ebx,ecx mov ecx,[esp+1Ch] add ebp,eax add edi,eax dec ecx mov [esp+18h],ebp mov [esp+1Ch],ecx jnz L000B0B1C pop edi pop ebp pop ebx L000B0B72: pop esi pop ecx retn ;------------------------------------------------------------------------------ Align 16 SUB_L000B0B80: push ecx mov eax,[esp+08h] mov ecx,[esp+0Ch] push esi lea esi,[eax+03h] shr esi,02h add ecx,00000003h shr ecx,02h mov [esp+04h],esi jz L000B0C12 mov edx,[esp+20h] push ebx mov ebx,[esp+18h] push ebp push edi mov edi,[esp+28h] lea eax,[edx+edx] mov [esp+18h],edi mov [esp+20h],eax add edi,edx mov [esp+1Ch],ecx L000B0BBC: test esi,esi jbe L000B0BF2 mov edx,[esp+18h] mov ecx,ebx mov eax,edi sub edx,edi L000B0BCA: mov ebp,[edx+eax] mov [ecx],ebp mov ebp,[edx+eax+04h] mov [ecx+04h],ebp mov ebp,[eax] mov [ecx+08h],ebp mov ebp,[eax+04h] mov [ecx+0Ch],ebp add eax,00000008h add ecx,00000010h dec esi jnz L000B0BCA mov eax,[esp+20h] mov esi,[esp+10h] L000B0BF2: mov ecx,[esp+24h] mov ebp,[esp+18h] add ebx,ecx mov ecx,[esp+1Ch] add ebp,eax add edi,eax dec ecx mov [esp+18h],ebp mov [esp+1Ch],ecx jnz L000B0BBC pop edi pop ebp pop ebx L000B0C12: pop esi pop ecx retn ;------------------------------------------------------------------------------ Align 16 HALCreateCommandStream: push esi push edi mov edi,[esp+18h] and edi,000000FFh mov eax,edi dec eax jz L000B0C39 dec eax mov eax,0000002Ch jz L000B0C3E L000B0C39: mov eax,00000024h L000B0C3E: push eax push 00000001h call OsAllocMem mov esi,eax test esi,esi jz L000B0D04 mov eax,[esp+0Ch] mov ecx,[esp+10h] mov [esi+1Ch],eax mov eax,edi dec eax mov [esi+18h],ecx mov dword ptr [esi+04h],00000000h mov dword ptr [esi+08h],00000000h mov dword ptr [esi+0Ch],00000000h jz L000B0CD7 dec eax jz L000B0C96 pop edi mov dword ptr [esi+10h],L000B0DC0 mov dword ptr [esi+14h],SUB_L000B0D20 mov dword ptr [esi],00000001h mov eax,esi pop esi retn 0010h ;------------------------------------------------------------------------------ L000B0C96: push ecx call SUB_L000B0FE0 test eax,eax jz L000B0CCA mov eax,[esp+14h] test eax,eax mov dword ptr [esi+10h],L000B0E30 mov dword ptr [esi+14h],SUB_L000B0E80 mov dword ptr [esi],00000002h jnz L000B0D01 pop edi mov dword ptr [esi+20h],L000B0E20 mov eax,esi pop esi retn 0010h ;------------------------------------------------------------------------------ L000B0CCA: push esi call OsFreeMem pop edi xor eax,eax pop esi retn 0010h ;------------------------------------------------------------------------------ L000B0CD7: mov eax,[esp+14h] test eax,eax mov dword ptr [esi+10h],L000B0DC0 mov dword ptr [esi+14h],SUB_L000B0D20 mov dword ptr [esi],00000001h jnz L000B0D01 pop edi mov dword ptr [esi+20h],L000B0E20 mov eax,esi pop esi retn 0010h ;------------------------------------------------------------------------------ L000B0D01: mov [esi+20h],eax L000B0D04: pop edi mov eax,esi pop esi retn 0010h ;------------------------------------------------------------------------------ Align 8 HALDestroyCommandStream: mov eax,[esp+04h] push eax call OsFreeMem retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L000B0D20: push ebx push ebp push esi mov esi,[esp+10h] mov eax,[esi+08h] mov edx,[esi+04h] mov ebp,[esi+18h] mov ebx,eax sub ebx,edx sar ebx,02h push edi mov edi,[ebp+000000ACh] jz L000B0D8D mov dword ptr [eax],02000001h mov eax,[esi+08h] add eax,00000004h mov [esi+08h],eax mov ecx,[edi+54h] mov edx,[edi+50h] push ecx push eax add edx,00000002h push edx push ebp call SUB_L0002DD30 add dword ptr [edi+50h],00000002h mov eax,[esi+08h] add eax,0000000Ch add ebx,00000004h test bl,01h mov [esi+08h],eax jz L000B0D7D mov dword ptr [eax],00000000h inc ebx L000B0D7D: push ebx push ebp call HS_FireRing lea eax,[ebp+00000104h] push eax jmp L000B0D9A L000B0D8D: push ebp call HS_MM_CancelGetRingSpace lea ecx,[ebp+00000104h] push ecx L000B0D9A: call SUB_L000B7110 xor eax,eax mov [esi+0Ch],eax mov [esi+08h],eax mov [esi+04h],eax mov [ebp+0Eh],ax mov eax,[edi+50h] pop edi pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 16 L000B0DC0: push esi mov esi,[esp+08h] push edi mov edi,[esi+18h] push 00000008h push esi call SUB_L000B0D20 mov eax,[esi+18h] add edi,00000104h push edi mov word ptr [eax+0Eh],FFFFh call SUB_L000B70E0 test eax,eax jnz L000B0DF4 L000B0DEA: push edi call SUB_L000B70E0 test eax,eax jz L000B0DEA L000B0DF4: mov ecx,[esi+18h] push 00008000h push ecx call HS_MM_GetRingSpace mov [esi+04h],eax mov [esi+08h],eax add eax,L0001FFF0 pop edi mov [esi+0Ch],eax pop esi retn 0004h ;------------------------------------------------------------------------------ Align 16 L000B0E20: retn 0008h ;------------------------------------------------------------------------------ Align 16 L000B0E30: push esi mov esi,[esp+08h] push edi mov edi,[esi+18h] push 00000008h push esi call SUB_L000B0E80 mov eax,[esi+18h] push edi push esi mov word ptr [eax+0Eh],FFFFh call SUB_L000B1040 mov ecx,[esi+28h] test ecx,ecx jz L000B0E5B mov [ecx+50h],eax L000B0E5B: mov [esi+28h],eax mov ecx,[eax] mov [esi+04h],ecx mov edx,[eax+44h] lea eax,[ecx+edx*4] mov [esi+0Ch],eax add eax,FFFFFFFCh pop edi mov [esi+08h],ecx mov [esi+0Ch],eax pop esi retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000B0E80: push ebx push ebp push esi mov esi,[esp+10h] mov edx,[esi+18h] mov eax,[edx+000000ACh] mov ebx,[eax+50h] mov eax,[esp+14h] add ebx,00000002h dec eax push edi mov edi,[edx+78h] mov [esp+14h],edx jz L000B0EFC dec eax jz L000B0EDC sub eax,00000006h jnz L000B0ED3 mov eax,[esi+28h] xor ebp,ebp cmp eax,ebp jz L000B0ECA cmp [esi+24h],ebp jnz L000B0EBE mov [esi+24h],eax L000B0EBE: mov ecx,[esi+08h] sub ecx,[esi+04h] sar ecx,02h mov [eax+48h],ecx L000B0ECA: mov [esi+04h],ebp mov [esi+08h],ebp mov [esi+0Ch],ebp L000B0ED3: pop edi pop esi pop ebp mov eax,ebx pop ebx retn 0008h ;------------------------------------------------------------------------------ L000B0EDC: mov eax,[esi+28h] test eax,eax jz L000B0ED3 push edx call SUB_L000ABC10 test eax,eax jz L000B0ED3 push 00000001h push esi call SUB_L000B0E80 pop edi pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ L000B0EFC: mov eax,[esi+24h] xor ebp,ebp cmp eax,ebp jnz L000B0F1B mov eax,[esi+28h] cmp eax,ebp jz L000B0F1B mov ecx,[esi+08h] sub ecx,[esi+04h] mov [esi+24h],eax sar ecx,02h mov [eax+48h],ecx L000B0F1B: mov ecx,[esi+24h] cmp ecx,ebp jz L000B0ED3 L000B0F22: mov edx,[ecx+48h] test dl,01h mov eax,[ecx] lea eax,[eax+edx*4] jz L000B0F3B mov [eax],ebp mov edx,[ecx+48h] add eax,00000004h inc edx mov [ecx+48h],edx L000B0F3B: mov dword ptr [eax],10000001h mov edx,[edi+14h] mov [eax+04h],edx mov edx,[edi+10h] inc edx mov [eax+08h],edx mov [eax+0Ch],ebp mov [eax+10h],ebp mov [eax+14h],ebp mov [eax+18h],ebp mov [eax+1Ch],ebp mov edx,[edi+10h] inc edx mov [edi+10h],edx mov ebx,[ecx+48h] mov [ecx+4Ch],edx mov edx,[ecx+50h] add ebx,00000007h cmp edx,ebp mov [ecx+48h],ebx jz L000B0F8F mov ebx,[edx+04h] mov edx,[edx+48h] add edx,00000008h shr edx,1 dec edx or edx,18000001h mov [eax+18h],edx mov [eax+1Ch],ebx L000B0F8F: mov ecx,[ecx+50h] cmp ecx,ebp jnz L000B0F22 mov ecx,[esi+24h] mov eax,[ecx+48h] mov ecx,[ecx+04h] mov edx,[esp+14h] shr eax,1 shl eax,03h push eax push ecx push edx call SUB_L0002DE30 mov ecx,[esi+28h] mov edx,[esi+24h] push ecx mov edi,eax mov eax,[esp+18h] push edx push eax call SUB_L000B1110 mov eax,edi pop edi mov [esi+24h],ebp mov [esi+28h],ebp mov [esi+04h],ebp mov [esi+08h],ebp mov [esi+0Ch],ebp pop esi pop ebp pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 8 SUB_L000B0FE0: push ebx mov ebx,[esp+08h] push ebp push esi mov esi,[ebx+78h] mov eax,[esi+04h] xor ebp,ebp test eax,eax jnz L000B102D mov eax,[esi+08h] test eax,eax jnz L000B102D push edi push ebx call SUB_L000B10A0 test eax,eax jz L000B1024 mov edi,00000001h mov [esi+04h],eax mov ebp,edi L000B100F: cmp edi,00000040h jnc L000B1024 push ebx mov esi,eax call SUB_L000B10A0 inc edi test eax,eax mov [esi+50h],eax jnz L000B100F L000B1024: pop edi pop esi mov eax,ebp pop ebp pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B102D: pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000B1040: push ebx push esi push edi mov edi,[esp+14h] mov ebx,[edi+78h] L000B104A: push edi call SUB_L000B1150 mov esi,[ebx+04h] test esi,esi jz L000B105F mov eax,[esi+50h] mov [ebx+04h],eax jmp L000B1077 L000B105F: push edi call SUB_L000B10A0 mov esi,eax test esi,esi jnz L000B107B mov ecx,[esp+10h] push 00000001h push ecx call SUB_L000B0E80 L000B1077: test esi,esi jz L000B104A L000B107B: pop edi mov dword ptr [esi+50h],00000000h mov dword ptr [esi+48h],00000000h mov eax,esi pop esi pop ebx retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000B10A0: push ebx mov ebx,[esp+08h] push esi push edi mov edi,[ebx+78h] push 00000054h push 00000001h call OsAllocMem mov esi,eax test esi,esi jz L000B10F9 mov eax,[ebx+000000A8h] push esi push L00021000 push 02000800h push eax call SUB_L00026250 test eax,eax jnz L000B10E2 push esi call OsFreeMem pop edi pop esi xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B10E2: mov dword ptr [esi+50h],00000000h mov dword ptr [esi+48h],00000000h mov dword ptr [esi+44h],00008000h inc [edi] L000B10F9: pop edi mov eax,esi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 SUB_L000B1110: mov eax,[esp+04h] mov eax,[eax+78h] mov ecx,[eax+08h] test ecx,ecx jnz L000B112F mov ecx,[esp+08h] mov edx,[esp+0Ch] mov [eax+08h],ecx mov [eax+0Ch],edx retn 000Ch ;------------------------------------------------------------------------------ L000B112F: mov ecx,[eax+0Ch] mov edx,[esp+08h] mov [ecx+50h],edx mov ecx,[esp+0Ch] mov [eax+0Ch],ecx retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000B1150: mov eax,[esp+04h] push esi mov esi,[eax+78h] mov edx,[esi+08h] test edx,edx push edi mov edi,[eax+000000ACh] jz L000B1199 mov eax,[edi+18h] cmp [edx+4Ch],eax ja L000B1199 mov eax,[edx+50h] test eax,eax push ebx mov ecx,edx jz L000B1189 L000B1178: mov ebx,[edi+18h] cmp [eax+4Ch],ebx ja L000B1189 mov ecx,eax mov eax,[ecx+50h] test eax,eax jnz L000B1178 L000B1189: mov eax,[ecx+50h] mov [esi+08h],eax mov eax,[esi+04h] mov [ecx+50h],eax mov [esi+04h],edx pop ebx L000B1199: pop edi pop esi retn 0004h ;------------------------------------------------------------------------------ Align 4 SUB_L000B11A0: mov eax,[esp+04h] mov ecx,[eax+04h] mov eax,[eax] mov edx,[eax+34h] add eax,00000024h push ebx mov ebx,[eax+18h] push ebp test ch,20h mov ecx,[eax+04h] test cl,03h push esi mov esi,[eax+14h] push edi mov edi,[eax+0Ch] jz L000B11CC mov ebp,[eax+1Ch] jmp L000B11CE L000B11CC: xor ebp,ebp L000B11CE: test cl,20h jz L000B11DF pop edi pop esi pop ebp mov eax,00000007h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B11DF: test cl,08h jz L000B11F0 pop edi pop esi pop ebp mov eax,00000008h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B11F0: test ch,10h jz L000B1201 pop edi pop esi pop ebp mov eax,00000009h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1201: test ch,08h jz L000B1212 pop edi pop esi pop ebp mov eax,0000000Ah pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1212: test cl,40h jz L000B1301 xor edi,edi test edx,edx mov eax,edx jbe L000B122E L000B1223: test al,01h jnz L000B122E shr eax,1 inc edi test eax,eax ja L000B1223 L000B122E: xor ecx,ecx test esi,esi mov eax,esi jbe L000B1241 L000B1236: test al,01h jnz L000B1241 shr eax,1 inc ecx test eax,eax ja L000B1236 L000B1241: test ebx,ebx mov eax,ebx jbe L000B124F L000B1247: test al,01h jnz L000B124F shr eax,1 jnz L000B1247 L000B124F: test ebp,ebp mov eax,ebp jbe L000B125F L000B1255: test al,01h jnz L000B125D shr eax,1 jnz L000B1255 L000B125D: test ebp,ebp L000B125F: jz L000B12C9 cmp edi,0000000Ah jnz L000B127B cmp ecx,00000005h jnz L000B13D3 pop edi pop esi pop ebp mov eax,00000002h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B127B: cmp edi,00000008h jnz L000B1292 cmp ecx,00000004h jnz L000B13D3 pop edi pop esi pop ebp mov eax,ecx pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1292: cmp edi,00000010h jnz L000B12AC cmp ecx,00000008h jnz L000B13D3 pop edi pop esi pop ebp mov eax,00000005h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B12AC: test edi,edi jnz L000B13D3 cmp ecx,00000008h jnz L000B13D3 pop edi pop esi pop ebp mov eax,00000006h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B12C9: cmp edi,0000000Ah jnz L000B12E3 cmp ecx,00000005h jnz L000B13D3 pop edi pop esi pop ebp mov eax,00000003h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B12E3: cmp edi,0000000Bh jnz L000B13D3 cmp ecx,00000005h jnz L000B13D3 pop edi pop esi pop ebp mov eax,00000001h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1301: test ecx,L00020001 jz L000B1336 cmp edi,00000010h jnz L000B13D3 cmp edx,000000FFh jnz L000B13D3 cmp ebp,0000FF00h jnz L000B13D3 pop edi pop esi pop ebp mov eax,0000000Fh pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1336: test cl,04h jz L000B13D3 mov eax,[eax+08h] cmp eax,32595559h jnz L000B1355 pop edi pop esi pop ebp mov eax,0000000Bh pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1355: cmp eax,59565955h jnz L000B1368 pop edi pop esi pop ebp mov eax,0000000Ch pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1368: mov ecx,[L000B6F24] test ecx,ecx jz L000B13D3 cmp eax,33545844h ja L000B13AD jz L000B13A1 cmp eax,31545844h jz L000B1395 cmp eax,32545844h jnz L000B13D3 pop edi pop esi pop ebp mov eax,00000011h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B1395: pop edi pop esi pop ebp mov eax,00000010h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B13A1: pop edi pop esi pop ebp mov eax,00000012h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B13AD: cmp eax,34545844h jz L000B13C7 cmp eax,35545844h jnz L000B13D3 pop edi pop esi pop ebp mov eax,00000014h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B13C7: pop edi pop esi pop ebp mov eax,00000013h pop ebx retn 0004h ;------------------------------------------------------------------------------ L000B13D3: pop edi pop esi pop ebp xor eax,eax pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000B13E0: sub esp,00000008h mov ecx,[esp+18h] cmp ecx,00000002h push ebx push ebp push esi mov esi,[esp+1Ch] mov ebp,[esi+18h] push edi mov edi,[esp+1Ch] mov eax,[edi+18h] mov [esp+20h],eax ja L000B1407 mov ecx,00000002h L000B1407: mov eax,[esp+24h] cmp eax,00000008h mov edx,[esi+0Ch] mov ebx,[edi+0Ch] ja L000B141B mov eax,00000008h L000B141B: mov esi,[esi] mov edi,[edi] and ebp,00200000h mov [esp+10h],esi mov [esp+14h],edi mov [esp+1Ch],ebp jz L000B14CE test dword ptr [esp+20h],00200000h jz L000B14CA mov eax,[esp+28h] cmp eax,00000010h jc L000B14B4 lea ecx,[eax+0Fh] mov eax,[esp+24h] add eax,0000007Fh add edx,0000007Fh add ebx,0000007Fh shr eax,07h shr edx,07h shr ebx,07h shr ecx,04h shl eax,0Bh shl edx,0Bh shl ebx,0Bh L000B1473: test ecx,ecx jbe L000B14AA mov [esp+24h],ecx L000B147B: mov ecx,eax mov ebp,ecx shr ecx,02h rep movsd mov ecx,ebp and ecx,00000003h rep movsb mov esi,[esp+10h] mov edi,[esp+14h] mov ecx,[esp+24h] add esi,edx add edi,ebx dec ecx mov [esp+10h],esi mov [esp+14h],edi mov [esp+24h],ecx jnz L000B147B L000B14AA: pop edi pop esi pop ebp pop ebx add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ L000B14B4: mov ecx,[esp+24h] add ecx,0000007Fh mov edx,00000800h shr ecx,07h shl eax,07h mov ebx,edx jmp L000B1473 L000B14CA: mov ebp,[esp+1Ch] L000B14CE: test ebp,ebp jnz L000B14FF test dword ptr [esp+20h],00200000h jz L000B14F3 push 00000010h push ebx push ecx push edx push eax push edi push esi call SUB_L0001AE30 pop edi pop esi pop ebp pop ebx add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ L000B14F3: mov ebp,[esp+1Ch] test ebp,ebp jz L000B1473 L000B14FF: test dword ptr [esp+20h],00200000h jnz L000B1473 push 00000010h push edx push ecx push ebx push eax push esi push edi call SUB_L0001B330 pop edi pop esi pop ebp pop ebx add esp,00000008h retn 0010h ;------------------------------------------------------------------------------ Align 16 SUB_L000B1530: sub esp,00000348h mov eax,[esp+0000034Ch] mov ecx,[eax+58h] push ebx mov [esp+0Ch],ecx mov ecx,[esp+00000358h] mov eax,[ecx] mov edx,[eax+18h] mov bl,[eax+28h] push ebp mov ebp,[eax+1Ch] add eax,00000024h test bl,04h push esi mov esi,[ecx+04h] mov esi,[eax+0Ch] push edi mov dword ptr [esp+20h],00000000h mov [esp+14h],edx mov [esp+10h],ebp jz L000B15AD mov eax,[eax+08h] cmp eax,33545844h ja L000B1636 jz L000B1659 cmp eax,31545844h jz L000B1618 cmp eax,32545844h jz L000B1659 cmp eax,32595559h jz L000B164F L000B15AD: cmp esi,00000008h jnc L000B15C5 imul esi,ebp shr esi,03h mov [esp+10h],esi mov esi,00000008h L000B15C1: mov ebp,[esp+10h] L000B15C5: mov edx,[ecx+20h] mov ebx,[edx] mov edi,esi shr edi,03h mov [esp+38h],edi imul edi,ebp mov eax,00000001h cmp ebx,eax mov [esp+1Ch],ecx jz L000B1899 mov edx,[ecx+24h] test edx,edx jz L000B1899 mov ecx,ebx shl ecx,04h add ecx,ebx shl ecx,02h push ecx push eax call OsAllocMem test eax,eax mov [esp+28h],eax jnz L000B167C pop edi pop esi pop ebp pop ebx add esp,00000348h retn 000Ch ;------------------------------------------------------------------------------ L000B1618: add ebp,00000003h shr ebp,02h shl ebp,02h add edx,00000003h shr edx,02h mov [esp+10h],ebp mov [esp+14h],edx mov esi,00000010h jmp L000B15C1 L000B1636: cmp eax,34545844h jz L000B1659 cmp eax,35545844h jz L000B1659 cmp eax,59565955h jnz L000B15AD L000B164F: mov esi,00000010h jmp L000B15C5 L000B1659: add ebp,00000003h add edx,00000003h shr ebp,02h shl ebp,02h shr edx,02h shl edx,1 mov [esp+10h],ebp mov [esp+14h],edx mov esi,00000010h jmp L000B15C1 L000B167C: mov edx,[esp+00000360h] mov ecx,[edx+50h] push eax mov eax,[esp+18h] push ebx push esi push eax push ebp mov ebp,[esp+00000370h] push ecx mov ecx,[ebp+000000A8h] push ecx call SUB_L00028500 test eax,eax jnz L000B16CE mov edx,[esp+28h] push edx call OsFreeMem mov eax,[esp+00000360h] pop edi pop esi pop ebp mov dword ptr [eax+7Ch],00000000h xor eax,eax pop ebx add esp,00000348h retn 000Ch ;------------------------------------------------------------------------------ L000B16CE: test ebx,ebx jbe L000B1840 mov esi,[esp+28h] lea eax,[esp+6Ch] lea ecx,[esp+40h] sub eax,esi mov [esp+2Ch],ecx mov [esp+24h],esi mov [esp+34h],eax mov [esp+30h],ebx L000B16F4: mov eax,[esp+1Ch] test eax,eax jz L000B1818 mov eax,[eax] mov ebx,[eax+20h] test ebx,ebx mov [esp+3Ch],eax jnz L000B1714 mov edx,[esp+18h] lea ebx,[edx+3Ch] L000B1714: mov ecx,[esp+14h] mov eax,[eax+0Ch] push ecx push edi lea ebp,[ebx+38h] push ebp push esi mov [ebx+24h],eax call SUB_L000B13E0 mov edx,[esp+34h] lea edi,[edx+esi] mov ecx,00000011h mov esi,ebp rep movsd mov eax,[ebx+7Ch] mov ecx,[esp+2Ch] mov esi,[esp+24h] mov [ecx],eax mov eax,[esp+1Ch] xor edx,edx mov [ebx+7Ch],edx mov dword ptr [ebx+1Ch],00000001h mov ecx,00000011h mov edi,ebp rep movsd test dword ptr [eax+08h],20000000h mov ecx,[eax] mov ecx,[ecx+20h] jz L000B177E cmp ecx,edx jnz L000B1779 mov ecx,[esp+18h] add ecx,0000003Ch L000B1779: mov ecx,[ecx+38h] jmp L000B178C L000B177E: cmp ecx,edx jnz L000B1789 mov ecx,[esp+18h] add ecx,0000003Ch L000B1789: mov ecx,[ecx+3Ch] L000B178C: mov esi,[esp+3Ch] mov [esi+08h],ecx mov ecx,[eax] mov ecx,[ecx+20h] cmp ecx,edx jnz L000B17A3 mov ecx,[esp+18h] add ecx,0000003Ch L000B17A3: mov ecx,[ecx+44h] mov [esi+0Ch],ecx test dword ptr [ebp+18h],02000000h mov ecx,[eax+08h] jz L000B17C3 and ecx,EFFFFFFFh or ecx,20000000h jmp L000B17CF L000B17C3: and ecx,DFFFFFFFh or ecx,10000000h L000B17CF: mov [eax+08h],ecx mov eax,[eax+24h] cmp eax,edx jz L000B17DC mov edx,[eax+04h] L000B17DC: mov eax,[esp+14h] shr eax,1 mov [esp+1Ch],edx mov [esp+14h],eax jnz L000B17F4 mov dword ptr [esp+14h],00000001h L000B17F4: shr dword ptr [esp+10h],1 jnz L000B1802 mov dword ptr [esp+10h],00000001h L000B1802: mov edi,[esp+38h] mov eax,[esp+20h] imul edi,[esp+10h] mov esi,[esp+24h] inc eax mov [esp+20h],eax L000B1818: mov ecx,[esp+2Ch] mov eax,[esp+30h] add esi,00000044h add ecx,00000004h dec eax mov [esp+24h],esi mov [esp+2Ch],ecx mov [esp+30h],eax jnz L000B16F4 mov ebp,[esp+0000035Ch] L000B1840: mov ebx,[esp+20h] test ebx,ebx jbe L000B1872 lea edi,[esp+40h] lea esi,[esp+6Ch] L000B1850: mov eax,[ebp+000000A8h] push esi push eax call SUB_L00026030 mov eax,[edi] test eax,eax jz L000B1869 push eax call OsFreeMem L000B1869: add esi,00000044h add edi,00000004h dec ebx jnz L000B1850 L000B1872: mov eax,[esp+00000360h] mov ecx,[esp+28h] pop edi pop esi pop ebp mov [eax+7Ch],ecx mov dword ptr [eax+1Ch],00000001h mov eax,00000001h pop ebx add esp,00000348h retn 000Ch ;------------------------------------------------------------------------------ L000B1899: mov ecx,[esp+00000360h] pop edi pop esi pop ebp mov [ecx+1Ch],eax mov [ecx+20h],eax pop ebx add esp,00000348h retn 000Ch ;------------------------------------------------------------------------------ Align 16 SUB_L000B18C0: push ebx push esi mov esi,[esp+0Ch] mov dword ptr [esi],02000001h mov dword ptr [esi+04h],0A800000h mov ebx,[esi+08h] mov eax,FC000FF8h and ebx,eax mov [esi+08h],ebx mov dword ptr [esi+0Ch],7D850000h mov ecx,[esi+10h] and ecx,FF00C2FFh or ecx,00000200h mov [esi+10h],ecx mov dword ptr [esi+14h],7D800003h push edi xor edi,edi mov [esi+18h],edi mov dword ptr [esi+28h],0B000000h and [esi+2Ch],eax mov dword ptr [esi+30h],7C008080h mov eax,7C08C088h mov [esi+38h],eax mov [esi+34h],eax mov edx,[esi+38h] mov eax,00010000h or edx,eax mov [esi+38h],edx mov ecx,7C101224h mov [esi+40h],ecx mov [esi+3Ch],ecx or [esi+40h],eax mov ecx,7C182010h mov [esi+48h],ecx mov [esi+44h],ecx or [esi+48h],eax mov ecx,7C200480h mov [esi+50h],ecx mov [esi+4Ch],ecx or [esi+50h],eax mov dword ptr [esi+54h],7C800003h mov eax,600A0820h mov [esi+60h],eax mov [esi+5Ch],eax mov [esi+58h],eax mov ecx,[esi+5Ch] mov edx,00100000h or ecx,edx mov [esi+5Ch],ecx mov eax,[esi+60h] mov ecx,00200000h or eax,ecx mov [esi+60h],eax mov eax,61041020h mov [esi+6Ch],eax mov [esi+68h],eax mov [esi+64h],eax or [esi+68h],edx or [esi+6Ch],ecx mov dword ptr [esi+70h],6210AAA8h mov dword ptr [esi+74h],630FAAAAh cmp [L000B7064],edi jz L000B19B9 mov dword ptr [esi+74h],632FAAAAh L000B19B9: mov dword ptr [esi+78h],6403AA0Eh cmp [L000B7064],edi jz L000B19CF mov dword ptr [esi+78h],6423AA0Eh L000B19CF: cmp [L000B6F24],edi jz L000B19DE or dword ptr [esi+78h],000C0000h L000B19DE: mov dword ptr [esi+7Ch],66002922h mov dword ptr [esi+00000080h],67001F2Ch mov dword ptr [esi+00000084h],68002820h cmp [L000B7068],edi jz L000B1A0B mov dword ptr [esi+00000084h],6800A820h L000B1A0B: mov dword ptr [esi+00000088h],74402100h mov dword ptr [esi+0000008Ch],75000000h mov dword ptr [esi+00000098h],7D010000h mov dword ptr [esi+000000A0h],7D830000h mov [esi+000000A4h],edi mov dword ptr [esi+000000A8h],7D840001h mov dword ptr [esi+000000ACh],1F000000h cmp [L000B7098],edi jz L000B1A90 cmp dword ptr [esi+00000138h],00000003h jc L000B1A86 cmp [L000B6F24],edi jz L000B1A72 mov dword ptr [esi+000000ACh],7F000000h jmp L000B1A90 L000B1A72: cmp [L000B7084],edi jz L000B1A90 mov dword ptr [esi+000000ACh],7F000000h jmp L000B1A90 L000B1A86: mov dword ptr [esi+000000ACh],5F000000h L000B1A90: push 00000004h mov ebx,00000001h push ebx push edi push esi mov dword ptr [esi+000000B4h],7D810001h call SUB_L0003B4C0 push edi push 00000002h push edi push esi call SUB_L0003B4C0 push edi push 00000003h push edi push esi call SUB_L0003B4C0 push 00000004h push 00000004h push edi push esi call SUB_L0003B4C0 push edi push 00000005h push edi push esi call SUB_L0003B4C0 push edi push 00000006h push edi push esi call SUB_L0003B4C0 push ebx push ebx push ebx push esi call SUB_L0003B4C0 push edi push 00000002h push ebx push esi call SUB_L0003B4C0 push edi push 00000003h push ebx push esi call SUB_L0003B4C0 push ebx push 00000004h push ebx push esi call SUB_L0003B4C0 push edi push 00000005h push ebx push esi call SUB_L0003B4C0 push edi push 00000006h push ebx push esi call SUB_L0003B4C0 cmp [L000B6F24],edi jz L000B1B70 push esi call SUB_L00036970 mov dword ptr [esi+000000C0h],7D890002h mov dword ptr [esi+000000C4h],89800000h mov dword ptr [esi+00000118h],7D000002h mov [esi+0000011Ch],edi mov dword ptr [esi+00000120h],80000000h mov [esi+00000124h],edi mov dword ptr [esi+00000128h],7C0000C0h mov [esi+0000484Ch],ebx or dword ptr [esi+00004850h],00000008h L000B1B70: mov dword ptr [esi+000000DCh],650000C6h mov dword ptr [esi+000000E0h],7F00000Bh or eax,FFFFFFFFh mov [esi+000000E4h],edi mov [esi+000000E8h],edi mov [esi+000000ECh],eax mov [esi+000000F0h],edi mov [esi+000000F4h],edi mov [esi+000000F8h],edi mov [esi+000000FCh],eax mov [esi+00000100h],edi mov [esi+00000104h],edi mov [esi+00000108h],edi mov [esi+0000010Ch],eax mov [esi+00000110h],edi mov dword ptr [esi+00000114h],65000006h cmp [L000B7078],edi jz L000B1BF5 mov dword ptr [esi+00000090h],69802100h mov dword ptr [esi+00000094h],76030000h L000B1BF5: cmp [L000B70B0],edi jz L000B1C17 mov dword ptr [esi+000000D0h],7D870001h mov dword ptr [esi+000000D4h],07000015h mov [esi+00004854h],ebx L000B1C17: cmp dword ptr [esi+00000138h],00000004h jc L000B1C53 mov eax,3F800000h mov [esi+00000190h],ebx mov [esi+0000488Ch],edi mov [esi+00004890h],eax mov [esi+000048A4h],eax mov dword ptr [esi+000048A8h],43800000h mov [esi+00004884h],edi mov [esi+00004888h],edi L000B1C53: cmp [L000B6F30],edi jz L000B1C91 mov [esi+000048ACh],edi mov [esi+000048B0h],ebx mov [esi+000048B4h],edi mov [esi+000048B8h],edi mov [esi+000048BCh],edi mov [esi+000048C0h],edi mov [esi+000048C4h],edi mov [esi+000048C8h],edi mov [esi+000048CCh],edi L000B1C91: pop edi pop esi pop ebx retn 0004h ;------------------------------------------------------------------------------ Align 16 L000B1CA0: push ebp mov ebp,esp sub esp,00000014h mov ecx,[ebp+0Ch] push ebx mov ebx,[ebp+08h] mov edx,[ebx+08h] push esi xor eax,eax push edi mov [ebp-08h],eax mov dword ptr [ebp-0Ch],00000046h mov [ebp-04h],ecx mov [ebp+08h],edx cld push ecx mov ecx,[ebp-0Ch] mov esi,[ebp-04h] mov edi,[ebp+08h] rep movsd pop ecx add dword ptr [ebx+08h],00000118h mov [ebp-04h],eax L000B1CDC: push eax mov eax,[ebp+0Ch] push eax call [L000B70AC] test eax,eax jz L000B1D70 mov edx,[eax+60h] lea ecx,[eax+38h] mov [ebp-10h],ecx mov ecx,[eax+34h] mov [ebp+08h],ecx mov ecx,[ebx+08h] mov [ebp-14h],edx mov [ebp-0Ch],ecx cld push ecx mov ecx,[ebp+08h] mov esi,[ebp-10h] mov edi,[ebp-0Ch] rep movsd pop ecx mov ecx,[ebp+08h] mov edi,[ebx+08h] shl ecx,02h add edi,ecx test edx,edx mov [ebx+08h],edi mov ecx,edi jz L000B1D70 test cl,04h mov eax,[eax+5Ch] mov [ebp-10h],eax jz L000B1D3E mov dword ptr [ecx],00000000h add dword ptr [ebx+08h],00000004h L000B1D3E: mov edx,[ebx+08h] mov [ebp+08h],edx cld push ecx mov ecx,[ebp-10h] mov esi,[ebp-14h] mov edi,[ebp+08h] rep movsd pop ecx mov ecx,[ebx+08h] shl eax,02h add ecx,eax mov [ebx+08h],ecx mov eax,ecx mov dword ptr [eax],02000001h add dword ptr [ebx+08h],00000004h mov dword ptr [ebp-08h],00000001h L000B1D70: mov eax,[ebp-04h] inc eax cmp eax,00000002h mov [ebp-04h],eax jc L000B1CDC mov eax,[L000B6F24] test eax,eax jz L000B1DCE mov eax,[ebp+0Ch] mov ecx,[eax+0000483Ch] test ecx,ecx jz L000B1DCE mov ecx,[eax+0000484Ch] test ecx,ecx jz L000B1DCE mov ecx,[ebp-08h] test ecx,ecx jnz L000B1DCE mov ecx,[ebx+08h] add eax,00000118h mov dword ptr [ebp-14h],00000005h mov [ebp+08h],eax mov [ebp+0Ch],ecx cld push ecx mov ecx,[ebp-14h] mov esi,[ebp+08h] mov edi,[ebp+0Ch] rep movsd pop ecx add dword ptr [ebx+08h],00000014h L000B1DCE: pop edi pop esi pop ebx mov esp,ebp pop ebp retn 0008h ;------------------------------------------------------------------------------ Align 16 SUB_L000B1DE0: mov ecx,[esp+04h] test ecx,ecx jz CASE_000B1E88_PROC0004 mov eax,[esp+08h] dec eax cmp eax,0000000Eh ja CASE_000B1E88_PROC0004 xor edx,edx mov dl,[eax+CASE_000B1E9C] jmp [CASE_PROCTABLE_000B1E88+edx*4] CASE_000B1E88_PROC0000: mov eax,ecx and eax,0000F800h shl eax,03h mov edx,ecx and edx,000007E0h or eax,edx shl eax,02h and ecx,0000001Fh or eax,ecx shl eax,03h or eax,L00070307 retn 0008h ;------------------------------------------------------------------------------ CASE_000B1E88_PROC0001: mov eax,ecx and eax,00007C00h shl eax,03h mov edx,ecx and edx,000003E0h or eax,edx shl eax,03h and ecx,0000001Fh or eax,ecx shl eax,03h or eax,L00070707 retn 0008h ;------------------------------------------------------------------------------ CASE_000B1E88_PROC0002: mov eax,ecx and eax,00000F00h shl eax,04h mov edx,ecx and edx,000000F0h or eax,edx shl eax,04h and ecx,0000000Fh or eax,ecx shl eax,04h or eax,000F0F0Fh retn 0008h ;------------------------------------------------------------------------------ CASE_000B1E88_PROC0003: mov eax,ecx retn 0008h ;------------------------------------------------------------------------------ CASE_000B1E88_PROC0004: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ CASE_PROCTABLE_000B1E88: dd CASE_000B1E88_PROC0000 dd CASE_000B1E88_PROC0001 dd CASE_000B1E88_PROC0002 dd CASE_000B1E88_PROC0003 dd CASE_000B1E88_PROC0004 CASE_000B1E9C: db 00h, 01h, 04h, 02h, 03h, 03h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 00h Align 8 SUB_L000B1EB0: mov ecx,[esp+04h] test ecx,ecx jz CASE_000B1F48_PROC0004 mov eax,[esp+08h] dec eax cmp eax,0000000Eh ja CASE_000B1F48_PROC0004 xor edx,edx mov dl,[eax+CASE_000B1F5C] jmp [CASE_PROCTABLE_000B1F48+edx*4] CASE_000B1F48_PROC0000: mov eax,ecx and eax,0000F800h shl eax,03h mov edx,ecx and edx,000007E0h or eax,edx shl eax,02h and ecx,0000001Fh or eax,ecx shl eax,03h retn 0008h ;------------------------------------------------------------------------------ CASE_000B1F48_PROC0001: mov eax,ecx and eax,00007C00h shl eax,03h mov edx,ecx and edx,000003E0h or eax,edx shl eax,03h and ecx,0000001Fh or eax,ecx shl eax,03h retn 0008h ;------------------------------------------------------------------------------ CASE_000B1F48_PROC0002: mov eax,ecx and eax,00000F00h shl eax,04h mov edx,ecx and edx,000000F0h or eax,edx shl eax,04h and ecx,0000000Fh or eax,ecx shl eax,04h retn 0008h ;------------------------------------------------------------------------------ CASE_000B1F48_PROC0003: mov eax,ecx retn 0008h ;------------------------------------------------------------------------------ CASE_000B1F48_PROC0004: xor eax,eax retn 0008h ;------------------------------------------------------------------------------ Align 4 CASE_PROCTABLE_000B1F48: dd CASE_000B1F48_PROC0000 dd CASE_000B1F48_PROC0001 dd CASE_000B1F48_PROC0002 dd CASE_000B1F48_PROC0003 dd CASE_000B1F48_PROC0004 CASE_000B1F5C: db 00h, 01h, 04h, 02h, 03h, 03h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 00h Align 8 SUB_L000B1F70: push esi mov esi,[esp+08h] test esi,esi jz L000B1FB5 test byte ptr [esi+18h],02h jz L000B1F8D mov eax,[esp+0Ch] mov [esi+000000ACh],eax pop esi retn 000Ch ;------------------------------------------------------------------------------ L000B1F8D: mov ecx,[esi+1Ch] mov edx,[esp+0Ch] push ecx push edx call SUB_L000B1EB0 mov ecx,[esp+10h] mov [esi+000000B0h],eax mov eax,[esi+1Ch] push eax push ecx call SUB_L000B1DE0 mov [esi+000000ACh],eax L000B1FB5: pop esi retn 000Ch ;------------------------------------------------------------------------------ Align 8 GfxDebugPrint: mov eax,[L000B5C5C] and eax,[esp+04h] test eax,FF000000h jz L000B1FFF test eax,00FFFFFFh jz L000B1FFF mov ecx,[esp+08h] lea eax,[esp+0Ch] push eax push ecx push SSZ000B2788_INTC_DLL__ call jmp_WIN32K.SYS!EngDebugPrint lea edx,[esp+0Ch] push edx push L000B2784 push L000B2780 call jmp_WIN32K.SYS!EngDebugPrint L000B1FFF: retn ;------------------------------------------------------------------------------ ; ; ;------------------------------------------------------------------------------ ; Name: .rdata (Data Section) ; Virtual Address: 000B2000h Virtual Size: 00000793h ; Pointer To RawData: 000A2000h Size Of RawData: 000007A0h ; WIN32K.SYS!EngLineTo: dd ?? WIN32K.SYS!EngAllocMem: dd ?? WIN32K.SYS!EngDeleteSurface: dd ?? WIN32K.SYS!EngModifySurface: dd ?? WIN32K.SYS!EngCreateDeviceSurface: dd ?? WIN32K.SYS!EngCreateDeviceBitmap: dd ?? WIN32K.SYS!EngUnlockSurface: dd ?? WIN32K.SYS!EngLockSurface: dd ?? WIN32K.SYS!EngAssociateSurface: dd ?? WIN32K.SYS!EngGetLastError: dd ?? WIN32K.SYS!EngCreateBitmap: dd ?? WIN32K.SYS!EngDebugPrint: dd ?? WIN32K.SYS!CLIPOBJ_bEnum: dd ?? WIN32K.SYS!CLIPOBJ_cEnumStart: dd ?? WIN32K.SYS!EngTransparentBlt: dd ?? WIN32K.SYS!EngCreatePalette: dd ?? WIN32K.SYS!EngDeviceIoControl: dd ?? WIN32K.SYS!EngDeletePalette: dd ?? WIN32K.SYS!PALOBJ_cGetColors: dd ?? WIN32K.SYS!BRUSHOBJ_pvAllocRbrush: dd ?? WIN32K.SYS!EngFreeMem: dd ?? WIN32K.SYS!EngStrokePath: dd ?? WIN32K.SYS!STROBJ_bEnum: dd ?? WIN32K.SYS!EngTextOut: dd ?? WIN32K.SYS!BRUSHOBJ_pvGetRbrush: dd ?? WIN32K.SYS!EngBitBlt: dd ?? WIN32K.SYS!EngCopyBits: dd ?? WIN32K.SYS!EngAllocUserMem: dd ?? WIN32K.SYS!EngFreeUserMem: dd ?? WIN32K.SYS!EngQueryPerformanceCounter: dd ?? WIN32K.SYS!EngQueryPerformanceFrequency: dd ?? WIN32K.SYS!EngDeleteDriverObj: dd ?? WIN32K.SYS!EngCreateDriverObj: dd ?? WIN32K.SYS!RtlUnwind: dd ?? WIN32K.SYS!RtlRaiseException: dd ?? dd 00000000 dd 00000000h dd 3D3D7DDDh dw 0000h dw 0000h dd 00000002h dd 0000003Dh dd 00000000h dd 000AB940h L000B20AC: dd 006E0049h L000B20B0: dd 00650074h L000B20B4: dd 0047006Ch L000B20B8: dd 00580046h L000B20BC: db 00h; db 00h; db 00h; db 00h; SSZ000B20C0_Custom_Escape_DDC__: db 'Custom Escape_DDC: ',0 SSZ000B20D4_Custom_Escape_EUD__: db 'Custom Escape_EUD: ',0 SSZ000B20E8_Custom_Escape_REFRESHRATE__: db 'Custom Escape_REFRESHRATE: ',0 SSZ000B2104_Custom_Escape_INFO__: db 'Custom Escape_INFO: ',0 Align 4 SSZ000B211C_Custom_Escape_I2C__: db 'Custom Escape_I2C: ',0 SSZ000B2130_Custom_Escape_VFW__: db 'Custom Escape_VFW: ',0 SSZ000B2144_Custom_Escape_Gamma__: db 'Custom Escape_Gamma: ',0 Align 4 SSZ000B215C_Custom_Escape_GMM__: db 'Custom Escape_GMM: ',0 SSZ000B2170_Custom_Escape_TvOut__: db 'Custom Escape_TvOut: ',0 Align 4 SSZ000B2188_NULL_PDEV__: db 'NULL PDEV.',0Ah,0 L000B2194: db 00h; db 00h; db 00h; db 00h; db 80h; '?' db 00h; db 00h; db 00h; db 00h; db 80h; '?' db 00h; db 00h; db 80h; '?' db 80h; '?' db 00h; db 00h; db 00h; db 00h; db 80h; '?' db 00h; db 80h; '?' db 00h; db 80h; '?' db 00h; db 00h; db 80h; '?' db 80h; '?' db 00h; db C0h; '€' db C0h; '€' db C0h; '€' db 00h; db C0h; '€' db DCh; 'œ' db C0h; '€' db 00h; db A6h; '³' db CAh; 'Š' db F0h; 'à' db 00h; L000B21BC: dd 00F0FBFFh db A0h; 'ÿ' db A0h; 'ÿ' db A4h; 'ý' db 00h; db 80h; '?' db 80h; '?' db 80h; '?' db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db FFh; 'ï' db 00h; db FFh; 'ï' db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; L000B21E8: db 00h; db 15h; db 01h; db 00h; db 10h; db 00h; db 00h; db 00h; db 07h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db BCh; '?' db 02h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 02h; db 53h; 'S' db 00h; db 79h; 'y' db 00h; db 73h; 's' db 00h; db 74h; 't' db 00h; db 65h; 'e' db 00h; db 6Dh; 'm' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 0Ch; db 00h; db 00h; db 00h; db 09h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 90h; '?' db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 02h; db 02h; db 02h; db 4Dh; 'M' db 00h; db 53h; 'S' db 00h; db 20h; ' ' db 00h; db 53h; 'S' db 00h; db 61h; 'a' db 00h; db 6Eh; 'n' db 00h; db 73h; 's' db 00h; db 20h; ' ' db 00h; db 53h; 'S' db 00h; db 65h; 'e' db 00h; db 72h; 'r' db 00h; db 69h; 'i' db 00h; db 66h; 'f' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 0Ch; db 00h; db 00h; db 00h; db 09h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 90h; '?' db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 02h; db 02h; db 01h; db 43h; 'C' db 00h; db 6Fh; 'o' db 00h; db 75h; 'u' db 00h; db 72h; 'r' db 00h; db 69h; 'i' db 00h; db 65h; 'e' db 00h; db 72h; 'r' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 08h; db 00h; db 08h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2314: dd 20746F4Eh L000B2318: dd 69617641h L000B231C: dd 6C62616Ch L000B2320: db 65h; 'e' db 00h; db 00h; db 00h; L000B2324: dd 36393133h L000B2328: db 00h; db 00h; db 00h; db 00h; SSZ000B232C_Intel_R__Corporation: db 'Intel(R) Corporation',0 db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2348: dq 3FE8181818181818h L000B2350: dq 3FE0101010101010h L000B2358: dq 3FD0101010101010h L000B2360: dq 3FC0101010101010h L000B2368: dq 3FB0101010101010h L000B2370: dq 406FE00000000000h L000B2378: dq 3FA0101010101010h L000B2380: dd 3F800000h db 00h; db 00h; db 00h; db 00h; L000B2388: dd 1B81BED0h L000B238C: dd 11D3A0C7h L000B2390: dd C00084B9h L000B2394: dd C5732E4Fh L000B2398: dd 1B81BE0Dh L000B239C: dd 11D3A0C7h L000B23A0: dd C00084B9h L000B23A4: dd C5732E4Fh L000B23A8: db 0Ch; db BEh; '?' db 81h; '?' db 1Bh; L000B23AC: db C7h; '‡' db A0h; 'ÿ' db D3h; '“' db 11h; L000B23B0: db B9h; 'ü' db 84h; '"' db 00h; db C0h; '€' L000B23B4: db 4Fh; 'O' db 2Eh; '.' db 73h; 's' db C5h; '…' L000B23B8: db 0Bh; db BEh; '?' db 81h; '?' db 1Bh; L000B23BC: db C7h; '‡' db A0h; 'ÿ' db D3h; '“' db 11h; L000B23C0: db B9h; 'ü' db 84h; '"' db 00h; db C0h; '€' L000B23C4: db 4Fh; 'O' db 2Eh; '.' db 73h; 's' db C5h; '…' L000B23C8: db 0Ah; db BEh; '?' db 81h; '?' db 1Bh; L000B23CC: db C7h; '‡' db A0h; 'ÿ' db D3h; '“' db 11h; L000B23D0: db B9h; 'ü' db 84h; '"' db 00h; db C0h; '€' L000B23D4: db 4Fh; 'O' db 2Eh; '.' db 73h; 's' db C5h; '…' L000B23D8: db E1h; '¡' db 23h; '#' db 51h; 'Q' db 96h; '-' L000B23DC: db 52h; 'R' db 65h; 'e' db D3h; '“' db 11h; L000B23E0: db 94h; '"' db 3Bh; ';' db 00h; db A0h; 'ÿ' L000B23E4: db C9h; '‰' db 39h; '9' db B4h; '?' db 16h; L000B23E8: dq 3FE0000000000000h L000B23F0: dd 00000000h db 00h; db 00h; db 00h; db 00h; L000B23F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' dd L00033F89 dd L00033F8F SSZ000B2404_Tlhal_Disable: db 'Tlhal_Disable',0 Align 4 L000B2414: dd 3F000000h L000B2418: dd 437F0000h L000B241C: dd 41800000h L000B2420: dd 407C0000h L000B2424: dd C0800000h L000B2428: dd BF800000h L000B242C: dd 3F100000h L000B2430: dd 3D800000h L000B2434: dd 47800000h L000B2438: dd 44000000h db 00h; db 00h; db 00h; db 00h; L000B2440: dq C7EFF933C78CDFADh L000B2448: dq 47EFF933C78CDFADh L000B2450: dq 3FF0000000000000h L000B2458: dq 405FFFF000000000h L000B2460: dq 4202A05F20000000h L000B2468: dq 3FEFBFFFDFFFF000h L000B2470: dd 43800000h L000B2474: dd CF7FFFFFh L000B2478: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' dd L0003E55B dd L0003E561 L000B2484: dd 3DC00000h L000B2488: dd 3D03AFB8h db 00h; db 00h; db 00h; db 00h; L000B2490: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' dd L000ABD30 dd L000ABD36 SSZ000B249C_MaxBlits: db 'MaxBlits',0 Align 4 SSZ000B24A8_MaxFlips: db 'MaxFlips',0 Align 4 SSZ000B24B4_Tlhal_Dll: db 'Tlhal_Dll',0 Align 4 SSZ000B24C0_RenderToPrimary: db 'RenderToPrimary',0 SSZ000B24D0_NullHardware: db 'NullHardware',0 Align 4 L000B24E0: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db F0h; 'à' db 3Fh; '?' db 7Fh; '' db 02h; db 35h; '5' db C2h; '‚' db 68h; 'h' db 21h; '!' db A2h; '÷' db DAh; 'š' db 0Fh; db C9h; '‰' db 3Eh; '>' db 40h; '@' L000B24F4: dq 7FEFFFFFFFFFFFFFh L000B24FC: dq 0010000000000000h L000B2504: dq C098000000000000h L000B250C: dq 4098000000000000h L000B2514: dq 7FF0000000000000h L000B251C: dq 0000000000000000h db 00h; db 00h; db 00h; db 00h; L000B2528: dq 0000000000000000h L000B2530: dq 3FF0000000000000h L000B2538: dq 3FE0000000000000h L000B2540: dq 0000000000000000h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db F0h; 'à' db BFh; 'õ' L000B2550: dq 0000000000000000h L000B2558: db 5Fh; '_' db 79h; 'y' db 6Eh; 'n' db 00h; L000B255C: db 5Fh; '_' db 79h; 'y' db 31h; '1' db 00h; L000B2560: db 5Fh; '_' db 79h; 'y' db 30h; '0' db 00h; SSZ000B2564_frexp: db 'frexp',0 Align 4 SSZ000B256C_fmod: db 'fmod',0 Align 4 SSZ000B2574__hypot: db '_hypot',0 Align 4 SSZ000B257C__cabs: db '_cabs',0 Align 4 SSZ000B2584_ldexp: db 'ldexp',0 Align 4 SSZ000B258C_modf: db 'modf',0 Align 4 SSZ000B2594_fabs: db 'fabs',0 Align 4 SSZ000B259C_floor: db 'floor',0 Align 4 SSZ000B25A4_ceil: db 'ceil',0 Align 4 L000B25AC: db 74h; 't' db 61h; 'a' db 6Eh; 'n' db 00h; L000B25B0: db 63h; 'c' db 6Fh; 'o' db 73h; 's' db 00h; L000B25B4: db 73h; 's' db 69h; 'i' db 6Eh; 'n' db 00h; SSZ000B25B8_sqrt: db 'sqrt',0 Align 4 SSZ000B25C0_atan2: db 'atan2',0 Align 4 SSZ000B25C8_atan: db 'atan',0 Align 4 SSZ000B25D0_acos: db 'acos',0 Align 4 SSZ000B25D8_asin: db 'asin',0 Align 4 SSZ000B25E0_tanh: db 'tanh',0 Align 4 SSZ000B25E8_cosh: db 'cosh',0 Align 4 SSZ000B25F0_sinh: db 'sinh',0 Align 4 SSZ000B25F8_log10: db 'log10',0 Align 4 L000B2600: db 6Ch; 'l' db 6Fh; 'o' db 67h; 'g' db 00h; L000B2604: db 70h; 'p' db 6Fh; 'o' db 77h; 'w' db 00h; L000B2608: db 65h; 'e' db 78h; 'x' db 70h; 'p' db 00h; db 00h; db 00h; db 00h; db 00h; L000B2610: dq 0000000000000000h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db F0h; 'à' db BFh; 'õ' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2628: db A0h; 'ÿ' db 26h; '&' db A3h; '?' db FCh; 'ì' db 60h; '`' db DAh; 'š' db CFh; '' db 11h; db 9Bh; '>' db 06h; db 00h; db A0h; 'ÿ' db C9h; '‰' db 03h; db A3h; '?' db B8h; 'ñ' L000B2638: db E0h; ' ' db 77h; 'w' db 9Ch; '?' db E0h; ' ' db 60h; '`' db DAh; 'š' db CFh; '' db 11h; db 9Bh; '>' db 06h; db 00h; db A0h; 'ÿ' db C9h; '‰' db 03h; db A3h; '?' db B8h; 'ñ' L000B2648: db E0h; ' ' db 02h; db 7Ah; 'z' db A0h; 'ÿ' db 60h; '`' db DAh; 'š' db CFh; '' db 11h; db 9Bh; '>' db 06h; db 00h; db A0h; 'ÿ' db C9h; '‰' db 03h; db A3h; '?' db B8h; 'ñ' L000B2658: db 20h; ' ' db 32h; '2' db 78h; 'x' db 92h; ''' db 60h; '`' db DAh; 'š' db CFh; '' db 11h; db 9Bh; '>' db 06h; db 00h; db A0h; 'ÿ' db C9h; '‰' db 03h; db A3h; '?' db B8h; 'ñ' L000B2668: db 80h; '?' db 99h; 'T' db F3h; 'ã' db 54h; 'T' db 60h; '`' db DAh; 'š' db CFh; '' db 11h; db 9Bh; '>' db 06h; db 00h; db A0h; 'ÿ' db C9h; '‰' db 03h; db A3h; '?' db B8h; 'ñ' L000B2678: db 9Ch; '?' db 16h; db 28h; '(' db F8h; 'è' db E8h; '¨' db A8h; 'ð' db D2h; '’' db 11h; db A1h; 'ö' db F2h; 'â' db 00h; db A0h; 'ÿ' db C9h; '‰' db 83h; '?' db EAh; 'ª' db F6h; 'æ' L000B2688: db DEh; 'ž' db ECh; '¬' db E9h; '©' db 6Fh; 'o' db 89h; '%' db DFh; 'Ÿ' db D1h; '‘' db 11h; db 9Dh; '?' db B0h; 'ø' db 00h; db 60h; '`' db 08h; db 27h; ''' db 71h; 'q' db BAh; 'ó' L000B2698: db A0h; 'ÿ' db FFh; 'ï' db 04h; db 2Eh; '.' db E4h; '¤' db 98h; '?' db D1h; '‘' db 11h; db 8Ch; '?' db E1h; '¡' db 00h; db A0h; 'ÿ' db C9h; '‰' db 06h; db 29h; ')' db A8h; 'ð' L000B26A8: db 80h; '?' db 98h; '?' db 86h; 'Å' db 93h; '"' db CFh; '' db 36h; '6' db D1h; '‘' db 11h; db 9Bh; '>' db 1Bh; db 00h; db AAh; 'ò' db 00h; db BBh; '>' db B8h; 'ñ' db AEh; 'R' L000B26B8: db 40h; '@' db 75h; 'u' db AAh; 'ò' db FFh; 'ï' db A8h; 'ð' db 7Ah; 'z' db D0h; '' db 11h; db 9Bh; '>' db 06h; db 00h; db A0h; 'ÿ' db C9h; '‰' db 03h; db A3h; '?' db B8h; 'ñ' L000B26C8: db 00h; db 38h; '8' db 86h; 'Å' db 80h; '?' db 06h; db 6Bh; 'k' db D0h; '' db 11h; db 9Bh; '>' db 06h; db 00h; db A0h; 'ÿ' db C9h; '‰' db 03h; db A3h; '?' db B8h; 'ñ' L000B26D8: db 30h; '0' db 12h; db F4h; 'ä' db DDh; '' db 0Ah; db ECh; '¬' db D0h; '' db 11h; db A9h; 'c' db B6h; db 00h; db AAh; 'ò' db 00h; db C0h; '€' db 99h; 'T' db 3Eh; '>' L000B26E8: db E1h; '¡' db 84h; '"' db A5h; '?' db 0Bh; db B6h; db 70h; 'p' db D0h; '' db 11h; db 88h; '?' db 9Dh; '?' db 00h; db AAh; 'ò' db 00h; db BBh; '>' db B7h; 'ú' db 6Ah; 'j' L000B26F8: db 80h; '?' db 1Fh; db E4h; '¤' db 7Dh; '}' db 93h; '"' db 9Dh; '?' db D0h; '' db 11h; db 89h; '%' db ABh; '<' db 00h; db A0h; 'ÿ' db C9h; '‰' db 05h; db 41h; 'A' db 29h; ')' L000B2708: db C3h; 'ƒ' db 0Ch; db D6h; '–' db EFh; '¯' db E7h; '§' db 49h; 'I' db D0h; '' db 11h; db 88h; '?' db 9Dh; '?' db 00h; db AAh; 'ò' db 00h; db BBh; '>' db B7h; 'ú' db 6Ah; 'j' L000B2718: db 40h; '@' db 2Bh; '+' db 12h; db B1h; '+' db A5h; '?' db 5Dh; ']' db D1h; '‘' db 11h; db 8Fh; '?' db CFh; '' db 00h; db C0h; '€' db 4Fh; 'O' db C2h; '‚' db 9Bh; '>' db 4Eh; 'N' L000B2728: db C2h; '‚' db 0Ch; db D6h; '–' db EFh; '¯' db E7h; '§' db 49h; 'I' db D0h; '' db 11h; db 88h; '?' db 9Dh; '?' db 00h; db AAh; 'ò' db 00h; db BBh; '>' db B7h; 'ú' db 6Ah; 'j' L000B2738: db C1h; '' db 0Ch; db D6h; '–' db EFh; '¯' db E7h; '§' db 49h; 'I' db D0h; '' db 11h; db 88h; '?' db 9Dh; '?' db 00h; db AAh; 'ò' db 00h; db BBh; '>' db B7h; 'ú' db 6Ah; 'j' L000B2748: db 00h; db 2Fh; '/' db 6Bh; 'k' db 40h; '@' db 5Ah; 'Z' db 3Eh; '>' db D1h; '‘' db 11h; db B6h; db 40h; '@' db 00h; db AAh; 'ò' db 00h; db A1h; 'ö' db F9h; 'é' db 6Ah; 'j' L000B2758: db C0h; '€' db 0Ch; db D6h; '–' db EFh; '¯' db E7h; '§' db 49h; 'I' db D0h; '' db 11h; db 88h; '?' db 9Dh; '?' db 00h; db AAh; 'ò' db 00h; db BBh; '>' db B7h; 'ú' db 6Ah; 'j' SSZ000B2768_i81x: db 'i81x',0 Align 4 L000B2770: dd 78313869h L000B2774: dd 56454447h L000B2778: dd 4C4C442Eh L000B277C: db 00h; db 00h; db 00h; db 00h; L000B2780: db 00h; db 00h; db 00h; db 00h; L000B2784: db 20h; ' ' db 00h; db 00h; db 00h; SSZ000B2788_INTC_DLL__: db 'INTC DLL: ',0 ;------------------------------------------------------------------------------ 0000000Dh DUP (??) ; ; ;------------------------------------------------------------------------------ ; Name: .data ; Virtual Address: 000B27A0h Virtual Size: 00004930h ; Pointer To RawData: 000A27A0h Size Of RawData: 00004940h ; L000B27A0: db 00h; db 00h; db 00h; db 00h; dd L000103A0 db 01h; db 00h; db 00h; db 00h; dd L000104A0 db 02h; db 00h; db 00h; db 00h; dd L000104B0 db 03h; db 00h; db 00h; db 00h; dd L000104E0 db 04h; db 00h; db 00h; db 00h; dd L00010690 db 29h; ')' db 00h; db 00h; db 00h; dd L000106D0 db 05h; db 00h; db 00h; db 00h; dd L00010810 db 26h; '&' db 00h; db 00h; db 00h; dd SUB_L000108B0 db 1Eh; db 00h; db 00h; db 00h; dd L00014320 db 1Dh; db 00h; db 00h; db 00h; dd L00014420 db 12h; db 00h; db 00h; db 00h; dd SUB_L00013660 db 13h; db 00h; db 00h; db 00h; dd L00013E80 db 11h; db 00h; db 00h; db 00h; dd L00013610 db 17h; db 00h; db 00h; db 00h; dd L00012C50 db 0Eh; db 00h; db 00h; db 00h; dd L00012C10 db 1Fh; db 00h; db 00h; db 00h; dd L00012850 db 16h; db 00h; db 00h; db 00h; dd L00011B10 db 0Ch; db 00h; db 00h; db 00h; dd L00012600 db 0Dh; db 00h; db 00h; db 00h; dd L00012090 db 55h; 'U' db 00h; db 00h; db 00h; dd L00010D70 db 43h; 'C' db 00h; db 00h; db 00h; dd L00011FF0 db 4Ah; 'J' db 00h; db 00h; db 00h; dd L00011270 db 18h; db 00h; db 00h; db 00h; dd L00010E80 db 3Bh; ';' db 00h; db 00h; db 00h; dd L00017500 db 3Ch; '<' db 00h; db 00h; db 00h; dd L00017620 db 3Dh; '=' db 00h; db 00h; db 00h; dd SUB_L00017780 db 0Ah; db 00h; db 00h; db 00h; dd L00010970 db 0Bh; db 00h; db 00h; db 00h; dd L00010B00 L000B2880: dd 0000001Ch L000B2884: db 00h; db 04h; db 00h; db 04h; db 02h; db 06h; db 02h; db 06h; db 00h; db 04h; db 00h; db 04h; db 02h; db 06h; db 02h; db 06h; db 01h; db 05h; db 01h; db 05h; db 03h; db 07h; db 03h; db 07h; db 01h; db 05h; db 01h; db 05h; db 03h; db 07h; db 03h; db 07h; db 00h; db 04h; db 00h; db 04h; db 02h; db 06h; db 02h; db 06h; db 00h; db 04h; db 00h; db 04h; db 02h; db 06h; db 02h; db 06h; db 01h; db 05h; db 01h; db 05h; db 03h; db 07h; db 03h; db 07h; db 01h; db 05h; db 01h; db 05h; db 03h; db 07h; db 03h; db 07h; L000B28C4: db 80h; '?' db 08h; db 08h; db 80h; '?' db 20h; ' ' db 02h; db 02h; db 20h; ' ' db 20h; ' ' db 02h; db 02h; db 20h; ' ' db 80h; '?' db 08h; db 08h; db 80h; '?' db 40h; '@' db 04h; db 04h; db 40h; '@' db 10h; db 01h; db 01h; db 10h; db 10h; db 01h; db 01h; db 10h; db 40h; '@' db 04h; db 04h; db 40h; '@' db 40h; '@' db 04h; db 04h; db 40h; '@' db 10h; db 01h; db 01h; db 10h; db 10h; db 01h; db 01h; db 10h; db 40h; '@' db 04h; db 04h; db 40h; '@' db 80h; '?' db 08h; db 08h; db 80h; '?' db 20h; ' ' db 02h; db 02h; db 20h; ' ' db 20h; ' ' db 02h; db 02h; db 20h; ' ' db 80h; '?' db 08h; db 08h; db 80h; '?' L000B2904: db 00h; L000B2905: db 01h; db 02h; L000B2907: db 03h; db 04h; db 05h; db 06h; L000B290B: db 07h; db 08h; L000B290D: db 09h; db 0Ah; L000B290F: db 0Bh; db 0Ch; db 0Dh; db 0Eh; L000B2913: db 0Fh; db 00h; db 02h; db 01h; db 03h; db 04h; db 06h; db 05h; db 07h; db 08h; db 0Ah; db 09h; db 0Bh; db 0Ch; db 0Eh; db 0Dh; db 0Fh; db 00h; db 01h; db 04h; db 05h; db 02h; db 03h; db 06h; db 07h; db 08h; db 09h; db 0Ch; db 0Dh; db 0Ah; db 0Bh; db 0Eh; db 0Fh; db 00h; db 04h; db 01h; db 05h; db 02h; db 06h; db 03h; db 07h; db 08h; db 0Ch; db 09h; db 0Dh; db 0Ah; db 0Eh; db 0Bh; db 0Fh; db 00h; db 04h; db 02h; db 06h; db 01h; db 05h; db 03h; db 07h; db 08h; db 0Ch; db 0Ah; db 0Eh; db 09h; db 0Dh; db 0Bh; db 0Fh; db 00h; db 02h; db 04h; db 06h; db 01h; db 03h; db 05h; db 07h; db 08h; db 0Ah; db 0Ch; db 0Eh; db 09h; db 0Bh; db 0Dh; db 0Fh; db 00h; db 04h; db 01h; db 05h; db 02h; db 06h; db 03h; db 07h; db 08h; db 0Ch; db 09h; db 0Dh; db 0Ah; db 0Eh; db 0Bh; db 0Fh; db 00h; db 01h; db 04h; db 05h; db 02h; db 03h; db 06h; db 07h; db 08h; db 09h; db 0Ch; db 0Dh; db 0Ah; db 0Bh; db 0Eh; db 0Fh; L000B2984: dd 00000000h db 01h; db 01h; db 01h; db 01h; db 02h; db 02h; db 02h; db 02h; db 03h; db 03h; db 03h; db 03h; db 04h; db 04h; db 04h; db 04h; db 05h; db 05h; db 05h; db 05h; db 06h; db 06h; db 06h; db 06h; db F8h; 'è' db F8h; 'è' db F8h; 'è' db F8h; 'è' db 07h; db 07h; db 07h; db 07h; db F9h; 'é' db F9h; 'é' db F9h; 'é' db F9h; 'é' db FAh; 'ê' db FAh; 'ê' db FAh; 'ê' db FAh; 'ê' db FBh; 'ë' db FBh; 'ë' db FBh; 'ë' db FBh; 'ë' db FCh; 'ì' db FCh; 'ì' db FCh; 'ì' db FCh; 'ì' db FDh; 'í' db FDh; 'í' db FDh; 'í' db FDh; 'í' db FEh; 'î' db FEh; 'î' db FEh; 'î' db FEh; 'î' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B29C4: db 00h; db 00h; db 00h; db 00h; db 24h; '$' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 12h; db 00h; db 00h; db 00h; db 36h; '6' db 00h; db 00h; db 00h; db 16h; db 00h; db 00h; db 00h; db 32h; '2' db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 26h; '&' db 00h; db 00h; db 00h; db 06h; db 00h; db 00h; db 00h; db 22h; '"' db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 34h; '4' db 00h; db 00h; db 00h; db 14h; db 00h; db 00h; db 00h; db 30h; '0' db 00h; db 00h; db 00h; db 09h; db 00h; db 00h; db 00h; db 2Dh; '-' db 00h; db 00h; db 00h; db 0Dh; db 00h; db 00h; db 00h; db 29h; ')' db 00h; db 00h; db 00h; db 1Bh; db 00h; db 00h; db 00h; db 3Fh; '?' db 00h; db 00h; db 00h; db 1Fh; db 00h; db 00h; db 00h; db 3Bh; ';' db 00h; db 00h; db 00h; db 0Bh; db 00h; db 00h; db 00h; db 2Fh; '/' db 00h; db 00h; db 00h; db 0Fh; db 00h; db 00h; db 00h; db 2Bh; '+' db 00h; db 00h; db 00h; db 19h; db 00h; db 00h; db 00h; db 3Dh; '=' db 00h; db 00h; db 00h; db 1Dh; db 00h; db 00h; db 00h; db 39h; '9' db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 25h; '%' db 00h; db 00h; db 00h; db 05h; db 00h; db 00h; db 00h; db 21h; '!' db 00h; db 00h; db 00h; db 13h; db 00h; db 00h; db 00h; db 37h; '7' db 00h; db 00h; db 00h; db 17h; db 00h; db 00h; db 00h; db 33h; '3' db 00h; db 00h; db 00h; db 03h; db 00h; db 00h; db 00h; db 27h; ''' db 00h; db 00h; db 00h; db 07h; db 00h; db 00h; db 00h; db 23h; '#' db 00h; db 00h; db 00h; db 11h; db 00h; db 00h; db 00h; db 35h; '5' db 00h; db 00h; db 00h; db 15h; db 00h; db 00h; db 00h; db 31h; '1' db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 2Ch; ',' db 00h; db 00h; db 00h; db 0Ch; db 00h; db 00h; db 00h; db 28h; '(' db 00h; db 00h; db 00h; db 1Ah; db 00h; db 00h; db 00h; db 3Eh; '>' db 00h; db 00h; db 00h; db 1Eh; db 00h; db 00h; db 00h; db 3Ah; ':' db 00h; db 00h; db 00h; db 0Ah; db 00h; db 00h; db 00h; db 2Eh; '.' db 00h; db 00h; db 00h; db 0Eh; db 00h; db 00h; db 00h; db 2Ah; '*' db 00h; db 00h; db 00h; db 18h; db 00h; db 00h; db 00h; db 3Ch; '<' db 00h; db 00h; db 00h; db 1Ch; db 00h; db 00h; db 00h; db 38h; '8' db 00h; db 00h; db 00h; L000B2AC4: db 00h; db 01h; db 02h; db 03h; db 04h; db 05h; db 06h; db F8h; 'è' db 07h; db F9h; 'é' db FAh; 'ê' db FBh; 'ë' db FCh; 'ì' db FDh; 'í' db FEh; 'î' db FFh; 'ï' L000B2AD4: db FFh; 'ï' db 00h; db 05h; db 0Ah; db 0Fh; db 50h; 'P' db 55h; 'U' db 5Ah; 'Z' db 5Fh; '_' db A0h; 'ÿ' db A5h; '?' db AAh; 'ò' db AFh; 'ô' db F0h; 'à' db F5h; 'å' db FAh; 'ê' db FFh; 'ï' db 00h; db 00h; db 00h; db CCh; 'Œ' db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; L000B2AF0: db 59h; 'Y' db 55h; 'U' db 59h; 'Y' db 32h; '2' db 55h; 'U' db 59h; 'Y' db 56h; 'V' db 59h; 'Y' db 59h; 'Y' db 56h; 'V' db 31h; '1' db 32h; '2' db 59h; 'Y' db 56h; 'V' db 59h; 'Y' db 55h; 'U' L000B2B00: dd 00000004h L000B2B04: dd L000B2668 dd L000B2658 dd L000B2648 dd L000B2638 L000B2B14: dd L000B2628 L000B2B18: db 80h; '?' db 80h; '?' db 10h; db 00h; db B8h; 'ñ' db 6Dh; 'm' db 31h; '1' db 00h; db 51h; 'Q' db 5Bh; '[' db 51h; 'Q' db 00h; db 89h; '%' db 48h; 'H' db 71h; 'q' db 00h; db 77h; 'w' db B7h; 'ú' db 1Dh; db 00h; db AFh; 'ô' db A4h; 'ý' db 3Dh; '=' db 00h; db 48h; 'H' db 92h; ''' db 5Dh; ']' db 00h; db 80h; '?' db 7Fh; '' db B5h; 'ç' db 00h; db 80h; '?' db 7Fh; '' db 7Eh; '~' db 08h; db F0h; 'à' db 5Ah; 'Z' db 52h; 'R' db 09h; db 22h; '"' db 36h; '6' db 91h; ''' db 0Ah; db 92h; ''' db 10h; db D2h; '’' db 0Bh; db 6Eh; 'n' db EEh; '®' db 29h; ')' db 0Ch; db DEh; 'ž' db C9h; '‰' db 6Bh; 'k' db 0Dh; db 10h; db A4h; 'ý' db AAh; 'ò' db 0Eh; db 80h; '?' db 7Eh; '~' db EBh; '«' db 0Fh; L000B2B58: db ACh; '¿' db 00h; db 00h; db 00h; db E3h; '£' db 01h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 51h; 'Q' db 9Eh; '?' db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 38h; '8' db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; L000B2B8C: dd L000260A1 db FFh; 'ï' db 00h; db 00h; db 00h; L000B2B94: dd 00001B3Fh db 3Fh; '?' db 0Bh; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; L000B2BA0: dd 000C514Ah L000B2BA4: dd 000000CFh L000B2BA8: db 0Fh; db 07h; db 01h; db 07h; db CFh; '' db 00h; db 00h; db 00h; db 17h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 38h; '8' db 00h; db 00h; db 00h; db 72h; 'r' db 00h; db 00h; db 00h; L000B2BC4: dd L000260A1 db FFh; 'ï' db 00h; db 00h; db 00h; L000B2BCC: dd 00001B3Fh L000B2BD0: db 3Fh; '?' db 0Bh; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; L000B2BD8: db 4Ah; 'J' db 51h; 'Q' db 0Ch; db 00h; db CFh; '' db 00h; db 00h; db 00h; L000B2BE0: db 0Fh; db 07h; db 01h; db 07h; db CFh; '' db 00h; db 00h; db 00h; db 17h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2BF4: dd 00000400h L000B2BF8: dd 00000400h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db ACh; '¿' db 00h; db 00h; db 00h; db E3h; '£' db 01h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 51h; 'Q' db 1Eh; db 02h; db 00h; db 08h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 38h; '8' db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; L000B2C3C: dd L000260A1 db FFh; 'ï' db 00h; db 00h; db 00h; db 3Fh; '?' db 1Bh; db 00h; db 00h; L000B2C48: dd 00000B3Fh db FFh; 'ï' db 00h; db 00h; db 00h; L000B2C50: db 4Ah; 'J' db 51h; 'Q' db 0Ch; db 00h; db CFh; '' db 00h; db 00h; db 00h; L000B2C58: dd 0701070Fh db CFh; '' db 00h; db 00h; db 00h; db 17h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 38h; '8' db 00h; db 00h; db 00h; db 72h; 'r' db 00h; db 00h; db 00h; L000B2C74: dd L000260A1 db FFh; 'ï' db 00h; db 00h; db 00h; L000B2C7C: dd 00001B3Fh L000B2C80: db 3Fh; '?' db 0Bh; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; L000B2C88: dd 000C514Ah L000B2C8C: dd 000000CFh L000B2C90: dd 0701070Fh db CFh; '' db 00h; db 00h; db 00h; db 17h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2CA4: dd 00000400h L000B2CA8: dd 00000400h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2CB8: db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 0Ah; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 51h; 'Q' db 9Eh; '?' db 00h; db 00h; db 72h; 'r' db 00h; db 00h; db 00h; db A1h; 'ö' db 60h; '`' db 02h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 3Fh; '?' db 1Bh; db 00h; db 00h; db 3Fh; '?' db 0Bh; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; L000B2CF0: dd 000C514Ah db CFh; '' db 40h; '@' db 00h; db 00h; db 0Fh; db 07h; db 01h; db 07h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 17h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 1Fh; db 00h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 80h; '?' db 3Fh; '?' db 00h; db 00h; db 00h; db 00h; db 08h; db 00h; db 10h; db 00h; db FFh; 'ï' db 3Ah; ':' db 01h; db 00h; db 02h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 80h; '?' db 43h; 'C' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db FEh; 'î' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2D90: db 74h; 't' db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 80h; '?' db 3Fh; '?' L000B2DD4: dd 00000000h db 08h; db 00h; db 00h; db 00h; db FFh; 'ï' db 3Ah; ':' db 01h; db 00h; db 02h; db 00h; db 02h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2E08: db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B2E14: db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 44h; 'D' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B2E68: db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 17h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 19h; db 0Ch; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 19h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 1Ah; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 29h; ')' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 50h; 'P' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 40h; '@' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 59h; 'Y' db 55h; 'U' db 59h; 'Y' db 32h; '2' db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 55h; 'U' db 59h; 'Y' db 56h; 'V' db 59h; 'Y' db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 33h; '3' db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 31h; '1' db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 32h; '2' db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 33h; '3' db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 34h; '4' db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 35h; '5' db 10h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3008: dd 0000000Dh db 00h; db 00h; db 00h; db 00h; L000B3010: db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 40h; '@' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 00h; db F8h; 'è' db 00h; db 00h; db E0h; ' ' db 07h; db 00h; db 00h; L000B3070: db 1Fh; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 41h; 'A' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 00h; db 7Ch; '|' db 00h; db 00h; db E0h; ' ' db 03h; db 00h; db 00h; db 1Fh; db 00h; db 00h; db 00h; db 00h; db 80h; '?' db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 41h; 'A' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 00h; db 0Fh; db 00h; db 00h; db F0h; 'à' db 00h; db 00h; db 00h; db 0Fh; db 00h; db 00h; db 00h; db 00h; db F0h; 'à' db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 60h; '`' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 55h; 'U' db 59h; 'Y' db 56h; 'V' db 59h; 'Y' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 59h; 'Y' db 55h; 'U' db 59h; 'Y' db 32h; '2' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 01h; db 00h; db 02h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 31h; '1' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 32h; '2' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 33h; '3' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 34h; '4' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 44h; 'D' db 58h; 'X' db 54h; 'T' db 35h; '5' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 41h; 'A' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 50h; 'P' db 00h; db 04h; db 6Ch; 'l' db 00h; db 00h; db 00h; db 01h; db 10h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 41h; 'A' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 50h; 'P' db 00h; db 04h; L000B35F8: dd 0000000Eh db 00h; db 00h; db 00h; db 00h; L000B3600: db 8Ch; '?' db 00h; db 00h; db 00h; dd L000AC840 dd L000AC7D0 db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 53h; 'S' db 4Fh; 'O' db 46h; 'F' db 54h; 'T' db 57h; 'W' db 41h; 'A' db 52h; 'R' db 45h; 'E' db 5Ch; '\' db 49h; 'I' db 6Eh; 'n' db 74h; 't' db 65h; 'e' db 6Ch; 'l' db 5Ch; '\' db 49h; 'I' db 6Eh; 'n' db 74h; 't' db 65h; 'e' db 6Ch; 'l' db 20h; ' ' db 47h; 'G' db 72h; 'r' db 61h; 'a' db 70h; 'p' db 68h; 'h' db 69h; 'i' db 63h; 'c' db 73h; 's' db 20h; ' ' db 41h; 'A' db 63h; 'c' db 63h; 'c' db 65h; 'e' db 6Ch; 'l' db 65h; 'e' db 72h; 'r' db 61h; 'a' db 74h; 't' db 6Fh; 'o' db 72h; 'r' db 5Ch; '\' db 44h; 'D' db 33h; '3' db 64h; 'd' db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3760: dd 00000002h db 02h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 03h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; dd 00000002h SWC000B3780__: unicode ' ',0000h db 20h; ' ' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 30h; '0' db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; L000B37A0: dd 00000000h db 00h; db 02h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 06h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 0Eh; db 00h; db 00h; db 00h; db 0Ch; db 00h; db 00h; db 00h; db 0Eh; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B37C4: dd 00000000h db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 03h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 05h; db 00h; db 00h; db 00h; db 06h; db 00h; db 00h; db 00h; db 07h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B37E8: dd 00000000h db 00h; db 02h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 06h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 0Ah; db 00h; db 00h; db 00h; db 0Ch; db 00h; db 00h; db 00h; db 0Eh; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B380C: dd 00000000h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; db 00h; db 00h; db 20h; ' ' db 00h; db 00h; db 00h; db 30h; '0' db 00h; db 00h; db 00h; db 40h; '@' db 00h; db 00h; db 00h; db 70h; 'p' db 00h; db 00h; db 00h; db 50h; 'P' db 00h; db 00h; db 00h; db 60h; '`' db 00h; L000B3830: dd 00000000h db 00h; db 00h; db 00h; db 00h; db 00h; db 40h; '@' db 00h; db 00h; db 00h; db 80h; '?' db 00h; db 00h; db 00h; db C0h; '€' db 00h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db C0h; '€' db 01h; db 00h; db 00h; db 40h; '@' db 01h; db 00h; db 00h; db 80h; '?' db 01h; db 00h; L000B3854: dd 00000000h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 06h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 0Eh; db 00h; db 00h; db 00h; db 0Ah; db 00h; db 00h; db 00h; db 0Ch; db 00h; L000B3878: dd 00000080h db 40h; '@' db 00h; db 00h; db 00h; db 80h; '?' db 00h; db 00h; db 00h; db C0h; '€' db 00h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 40h; '@' db 01h; db 00h; db 00h; db 80h; '?' db 01h; db 00h; db 00h; L000B3894: dd 00000080h L000B3898: dd 00000080h db 40h; '@' db 02h; db 00h; db 00h; db 80h; '?' db 02h; db 00h; db 00h; L000B38A4: dd 00000080h db 00h; db 03h; db 00h; db 00h; db 40h; '@' db 03h; db 00h; db 00h; L000B38B0: dd 00000002h db 01h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 03h; db 00h; db 00h; db 00h; db 04h; db 00h; db 00h; db 00h; db 05h; db 00h; db 00h; db 00h; db 06h; db 00h; db 00h; db 00h; L000B38CC: dd 00000002h L000B38D0: db 02h; db 00h; db 00h; db 00h; db 09h; db 00h; db 00h; db 00h; db 0Ah; db 00h; db 00h; db 00h; L000B38DC: dd 00000002h db 0Ch; db 00h; db 00h; db 00h; db 0Dh; db 00h; db 00h; db 00h; L000B38E8: dd 00000000h db 00h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; L000B38F8: dd 00000000h db 00h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 08h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3918: dd 00000040h db 00h; db 00h; db 00h; db 00h; db 40h; '@' db 00h; db 00h; db 00h; L000B3924: dd 00000040h db 40h; '@' db 00h; db 00h; db 00h; db 03h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 03h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 02h; db 00h; db 00h; db 00h; db 01h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B39A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B39B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B39C0: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B39D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B39E0: dd FFFFFFFFh L000B39E4: dd FFFFFFFFh db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B39F0: dd L00043910 dd L00043520 dd L00043150 dd L0003FF20 dd L0003FD00 dd L0003FAF0 dd L0003E6C0 dd L0003E6C0 dd L0003E6C0 dd L00045CB0 dd L000458D0 dd L00045500 dd L000416A0 dd L00041480 dd L00041270 dd L0003E6C0 dd L0003E6C0 dd L0003E6C0 dd L00042D50 dd L00042930 dd L00042530 dd L0003F8B0 dd L0003F660 dd L0003F420 dd L0003E6C0 dd L0003E6C0 dd L0003E6C0 dd L00045100 dd L00044CF0 dd L000448F0 dd L00041030 dd L00040DE0 dd L00040BA0 dd L0003E6C0 dd L0003E6C0 dd L0003E6C0 dd L00042130 dd L00041D10 dd L000418B0 dd L0003F1E0 dd L0003EF90 dd L0003E9C0 dd L0003E6C0 dd L0003E6C0 dd L0003E6C0 dd L000444F0 dd L000440E0 dd L00043CE0 dd L00040960 dd L00040710 dd L00040130 dd L0003E6C0 dd L0003E6C0 dd L0003E6C0 L000B3AC8: dd L00055830 dd L00055440 dd L00055070 dd L00051E20 dd L00051B90 dd L00051910 dd L000505C0 dd L000505C0 dd L000505C0 dd L00057B80 dd L000577A0 dd L000573E0 dd L000535D0 dd L00053340 dd L000530E0 dd L000505C0 dd L000505C0 dd L000505C0 dd L00054C70 dd L00054850 dd L00054450 dd L00051660 dd L000513A0 dd L000510F0 dd L000505C0 dd L000505C0 dd L000505C0 dd L00056FF0 dd L00056BE0 dd L000567F0 dd L00052E30 dd L00052B70 dd L000528C0 dd L000505C0 dd L000505C0 dd L000505C0 dd L00054050 dd L00053C30 dd L00053830 dd L00050E40 dd L00050B80 dd L000508D0 dd L000505C0 dd L000505C0 dd L000505C0 dd L00056400 dd L00055FF0 dd L00055C00 dd L00052610 dd L00052350 dd L000520A0 dd L000505C0 dd L000505C0 dd L000505C0 L000B3BA0: dd L0004D150 dd L0004CC10 dd L0004C6F0 dd L00048490 dd L00048130 dd L00047DE0 dd L00046490 dd L00046490 dd L00046490 dd L000500B0 dd L0004FB80 dd L0004F670 dd L0004A330 dd L00049FE0 dd L00049CA0 dd L00046490 dd L00046490 dd L00046490 dd L0004C190 dd L0004BC10 dd L0004B6B0 dd L00047A60 dd L000476D0 dd L00047350 dd L00046490 dd L00046490 dd L00046490 dd L0004F120 dd L0004EBC0 dd L0004E670 dd L00049930 dd L000495B0 dd L00049240 dd L00046490 dd L00046490 dd L00046490 dd L0004B150 dd L0004ABD0 dd L0004A670 dd L00046FD0 dd L00046C40 dd L000468C0 dd L00046490 dd L00046490 dd L00046490 dd L0004E120 dd L0004DBC0 dd L0004D670 dd L00048ED0 dd L00048B50 dd L000487E0 dd L00046490 dd L00046490 dd L00046490 L000B3C78: dd L0004D150 dd L0004CC10 dd L0004C6F0 dd L00048490 dd L00048130 dd L00047DE0 dd L00046080 dd L00046080 dd L00046080 dd L000500B0 dd L0004FB80 dd L0004F670 dd L0004A330 dd L00049FE0 dd L00049CA0 dd L00046080 dd L00046080 dd L00046080 dd L0004C190 dd L0004BC10 dd L0004B6B0 dd L00047A60 dd L000476D0 dd L00047350 dd L00046080 dd L00046080 dd L00046080 dd L0004F120 dd L0004EBC0 dd L0004E670 dd L00049930 dd L000495B0 dd L00049240 dd L00046080 dd L00046080 dd L00046080 dd L0004B150 dd L0004ABD0 dd L0004A670 dd L00046FD0 dd L00046C40 dd L000468C0 dd L00046080 dd L00046080 dd L00046080 dd L0004E120 dd L0004DBC0 dd L0004D670 dd L00048ED0 dd L00048B50 dd L000487E0 dd L00046080 dd L00046080 dd L00046080 L000B3D50: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3D60: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3D70: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3D80: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3D90: dd FFFFFFFFh L000B3D94: dd FFFFFFFFh db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B3DA0: dd L0005E670 dd L0005E270 dd L0005DE90 dd L00059D70 dd L00059A10 dd L000596C0 L000B3DB8: dd L00057F40 dd L00057F40 dd L00057F40 dd L000610C0 dd L00060CE0 dd L00060920 dd L0005BA90 dd L0005B770 dd L0005B460 dd L00057F40 dd L00057F40 dd L00057F40 dd L0005D9A0 dd L0005D4A0 dd L0005CFB0 dd L00059360 dd L00058FF0 dd L00058C90 dd L00057F40 dd L00057F40 dd L00057F40 dd L00060490 dd L0005FFE0 dd L0005FB50 dd L0005B120 dd L0005ADD0 dd L0005AA90 dd L00057F40 dd L00057F40 dd L00057F40 dd L0005CAC0 dd L0005C5C0 dd L0005BDA0 dd L00058930 dd L000585C0 dd L00058260 dd L00057F40 dd L00057F40 dd L00057F40 dd L0005F6C0 dd L0005F210 dd L0005EA50 dd L0005A750 dd L0005A400 dd L0005A0C0 dd L00057F40 dd L00057F40 dd L00057F40 L000B3E78: dd L0006B1C0 dd L0006AC00 dd L0006A660 dd L000646A0 dd L000641C0 dd L00063CF0 dd L00061940 dd L00061940 dd L00061940 dd L0006EF40 dd L0006E990 dd L0006E400 dd L00067440 dd L00066F70 dd L00066AB0 dd L00061940 dd L00061940 dd L00061940 dd L00069EE0 dd L00069730 dd L00068FB0 dd L000637C0 dd L00063280 dd L00062D50 dd L00061940 dd L00061940 dd L00061940 dd L0006DCA0 dd L0006D510 dd L0006CDB0 dd L00066580 dd L00066040 dd L00065B10 dd L00061940 dd L00061940 dd L00061940 dd L00068830 dd L00068080 dd L00067900 dd L00062820 dd L000622E0 dd L00061DB0 dd L00061940 dd L00061940 dd L00061940 dd L0006C650 dd L0006BEC0 dd L0006B760 dd L000655E0 dd L000650A0 dd L00064B70 dd L00061940 dd L00061940 dd L00061940 L000B3F50: dd L0006B1C0 dd L0006AC00 dd L0006A660 dd L000646A0 dd L000641C0 dd L00063CF0 dd L00061480 dd L00061480 dd L00061480 dd L0006EF40 dd L0006E990 dd L0006E400 dd L00067440 dd L00066F70 dd L00066AB0 dd L00061480 dd L00061480 dd L00061480 dd L00069EE0 dd L00069730 dd L00068FB0 dd L000637C0 dd L00063280 dd L00062D50 dd L00061480 dd L00061480 dd L00061480 dd L0006DCA0 dd L0006D510 dd L0006CDB0 dd L00066580 dd L00066040 dd L00065B10 dd L00061480 dd L00061480 dd L00061480 dd L00068830 dd L00068080 dd L00067900 dd L00062820 dd L000622E0 dd L00061DB0 dd L00061480 dd L00061480 dd L00061480 dd L0006C650 dd L0006BEC0 dd L0006B760 dd L000655E0 dd L000650A0 dd L00064B70 dd L00061480 dd L00061480 dd L00061480 db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B4078: dd L00075830 dd L000754E0 dd L000751B0 dd L00072620 dd L000723D0 dd L000721A0 dd L00071060 dd L00070CE0 dd L00070990 dd L00077630 dd L000772F0 dd L00076FC0 dd L00073B20 dd L000738E0 dd L000736B0 dd L00071060 dd L00070CE0 dd L00070990 dd L00074E50 dd L00074AE0 dd L00074780 dd L00071F40 dd L00071CD0 dd L00071A70 dd L00070680 dd L000702B0 dd L0006FF30 dd L00076C60 dd L000768F0 dd L00076590 dd L00073450 dd L000731E0 dd L00072F80 dd L00070680 dd L000702B0 dd L0006FF30 dd L00074420 dd L000740B0 dd L00073D50 dd L00071810 dd L000715A0 dd L00071340 dd L0006FC20 dd L0006F850 dd L0006F4D0 dd L00076230 dd L00075EC0 dd L00075B60 dd L00072D20 dd L00072AB0 dd L00072850 dd L0006FC20 dd L0006F850 dd L0006F4D0 L000B4150: dd L000830D0 dd L00082CD0 dd L000828E0 dd L0007EC50 dd L0007E8C0 dd L0007E550 dd L0007CCE0 dd L0007C6F0 dd L0007C130 dd L00085650 dd L00085250 dd L00084E60 dd L00080B10 dd L00080790 dd L00080420 dd L0007CCE0 dd L0007C6F0 dd L0007C130 dd L00082480 dd L00082010 dd L00081BB0 dd L0007E1F0 dd L0007DE80 dd L0007DB20 dd L0007BCF0 dd L0007B6D0 dd L0007B0E0 dd L00084A20 dd L000845D0 dd L00084190 dd L000800C0 dd L0007FD50 dd L0007F9F0 dd L0007BCF0 dd L0007B6D0 dd L0007B0E0 dd L00081750 dd L000812E0 dd L00080E80 dd L0007D7C0 dd L0007D450 dd L0007D0F0 dd L0007ACA0 dd L0007A680 dd L0007A090 dd L00083D50 dd L00083900 dd L000834C0 dd L0007F690 dd L0007F320 dd L0007EFC0 dd L0007ACA0 dd L0007A680 dd L0007A090 L000B4228: dd L00095E10 dd L000959A0 dd L00095540 dd L00091520 dd L000911A0 dd L00090E30 dd L0008CA30 dd L0008C400 dd L0008BE00 dd L00098720 dd L000982B0 dd L00097E50 dd L000934E0 dd L00093170 dd L00092E10 dd L0008CA30 dd L0008F220 dd L0008EC20 dd L00095070 dd L00094B90 dd L000946C0 dd L00090A90 dd L000906E0 dd L00090340 dd L0008B980 dd L0008B320 dd L0008ACF0 dd L000979B0 dd L00097500 dd L00097060 dd L00092A80 dd L000926E0 dd L00092350 dd L0008B980 dd L0008E5C0 dd L0008DF90 dd L000941F0 dd L00093D10 dd L00093840 dd L0008FFA0 dd L0008FBF0 dd L0008F850 dd L0008DB10 dd L0008A690 dd L0008A060 dd L00096BC0 dd L00096710 dd L00096270 dd L00091FC0 dd L00091C20 dd L00091890 dd L0008DB10 dd L0008D4B0 dd L0008CE80 L000B4300: dd L000830D0 dd L00082CD0 dd L000828E0 dd L0007EC50 dd L0007E8C0 dd L0007E550 dd L00079CA0 dd L00079820 dd L000793E0 dd L00085650 dd L00085250 dd L00084E60 dd L00080B10 dd L00080790 dd L00080420 dd L00079CA0 dd L00079820 dd L000793E0 dd L00082480 dd L00082010 dd L00081BB0 dd L0007E1F0 dd L0007DE80 dd L0007DB20 dd L00078FD0 dd L00078B20 dd L000786A0 dd L00084A20 dd L000845D0 dd L00084190 dd L000800C0 dd L0007FD50 dd L0007F9F0 dd L00078FD0 dd L00078B20 dd L000786A0 dd L00081750 dd L000812E0 dd L00080E80 dd L0007D7C0 dd L0007D450 dd L0007D0F0 dd L00078290 dd L00077DE0 dd L00077960 dd L00083D50 dd L00083900 dd L000834C0 dd L0007F690 dd L0007F320 dd L0007EFC0 dd L00078290 dd L00077DE0 dd L00077960 L000B43D8: dd L00095E10 dd L000959A0 dd L00095540 dd L00091520 dd L000911A0 dd L00090E30 dd L00089C40 dd L00087230 dd L00086DA0 dd L00098720 dd L000982B0 dd L00097E50 dd L000934E0 dd L00093170 dd L00092E10 dd L00089C40 dd L00089790 dd L00089310 dd L00095070 dd L00094B90 dd L000946C0 dd L00090A90 dd L000906E0 dd L00090340 dd L00088EB0 dd L000868B0 dd L000863F0 dd L000979B0 dd L00097500 dd L00097060 dd L00092A80 dd L000926E0 dd L00092350 dd L00088EB0 dd L000889C0 dd L00088500 dd L000941F0 dd L00093D10 dd L00093840 dd L0008FFA0 dd L0008FBF0 dd L0008F850 dd L000880A0 dd L00085F00 dd L00085A40 dd L00096BC0 dd L00096710 dd L00096270 dd L00091FC0 dd L00091C20 dd L00091890 dd L000880A0 dd L00087BB0 dd L000876F0 db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B4500: dd L00099050 dd L00098DD0 dd L00098B80 dd L00099660 dd L000993F0 dd L000991B0 L000B4518: dd L00099EB0 dd L00099B00 dd L000997B0 dd L0009A800 dd L0009A480 dd L0009A130 db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B4580: dd L0009AF40 dd L0009ACB0 dd L0009AA70 dd L0009B510 dd L0009B2B0 dd L0009B080 L000B4598: dd L0009BC90 dd L0009B930 dd L0009B640 dd L0009C500 dd L0009C1B0 dd L0009BEB0 L000B45B0: dd L0009CDC0 dd L0009CA20 dd L0009C700 dd L0009D6B0 dd L0009D340 dd L0009D030 L000B45C8: dd L0009DDB0 dd L0009DB30 dd L0009D900 dd L0009E380 dd L0009E120 dd L0009DEF0 db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B4630: dd L0009EB20 dd L0009E7C0 dd L0009E4B0 L000B463C: dd L0009ED60 dd L0009EDB0 dd L0009EE10 dd L0009EEB0 dd L0009EF40 dd L0009EFC0 dd L0009F040 dd L0009F200 dd L0009F400 dd L0009F480 dd L0009F510 dd L0009F5E0 dd L0009F690 dd L0009F730 dd L0009F7D0 dd L0009F9B0 dd L000A2CB0 dd L0009FBD0 dd L0009FC80 dd L0009FD70 dd L0009FE40 dd L0009FF10 dd L0009FFE0 dd L000A01E0 dd L000A3800 dd L000A0420 dd L000A0490 dd L000A0540 dd L000A05E0 dd L000A0670 dd L000A0700 dd L000A08D0 dd L000A0AE0 dd L000A0B50 dd L000A0BD0 dd L000A0C90 dd L000A0D30 dd L000A0DD0 dd L000A0E70 dd L000A1050 dd L000A1270 dd L000A1300 dd L000A13A0 dd L000A1480 dd L000A1540 dd L000A1600 dd L000A16C0 dd L000A18B0 dd L0009ED60 dd L000A1B40 dd L000A1B40 dd L000A1BB0 dd L000A1C50 dd L000A1D10 dd L000A1DD0 dd L000A2040 dd L0009F400 dd L000A2350 dd L000A2350 dd L000A2430 dd L000A2510 dd L000A2610 dd L000A2710 dd L000A29B0 dd L000A2CB0 dd L000A2DF0 dd L000A2DF0 dd L000A2EA0 dd L000A2FA0 dd L000A30D0 dd L000A3200 dd L000A34D0 dd L000A3800 dd L000A3890 dd L000A3890 dd L000A3950 dd L000A3A10 dd L000A3AF0 dd L000A3BD0 dd L000A3E60 dd L000A0AE0 dd L000A4190 dd L000A4190 dd L000A4250 dd L000A4310 dd L000A4400 dd L000A44F0 dd L000A4790 dd L000A1270 dd L000A4B20 dd L000A4B20 dd L000A4BC0 dd L000A4CB0 dd L000A4DD0 dd L000A4EF0 dd L000A51B0 dd L000A8080 dd L000A54D0 dd L000A5530 dd L000A55E0 dd L000A5670 dd L000A56F0 dd L000A5770 dd L000A5930 dd L000A88F0 dd L000A5B30 dd L000A5BC0 dd L000A5C90 dd L000A5D40 dd L000A5DE0 dd L000A5E80 dd L000A6060 dd L000A9300 dd L000A6280 dd L000A6330 dd L000A6420 dd L000A64F0 dd L000A65C0 dd L000A6690 dd L000A6890 dd L000A9E40 dd L000A6AD0 dd L000A6B40 dd L000A6C00 dd L000A6CA0 dd L000A6D30 dd L000A6DC0 dd L000A6F90 dd L000AA780 dd L000A71A0 dd L000A7220 dd L000A72E0 dd L000A7380 dd L000A7420 dd L000A74C0 dd L000A76A0 dd L000AB140 dd L000A78C0 dd L000A7960 dd L000A7A40 dd L000A7B00 dd L000A7BB0 dd L000A7C60 dd L000A7E50 dd L000A8080 dd L000A8100 dd L000A8100 dd L000A81A0 dd L000A8230 dd L000A82F0 dd L000A83B0 dd L000A8620 dd L000A88F0 dd L000A89A0 dd L000A89A0 dd L000A8A80 dd L000A8B60 dd L000A8C60 dd L000A8D60 dd L000A9000 dd L000A9300 dd L000A93E0 dd L000A93E0 dd L000A94E0 dd L000A95E0 dd L000A9710 dd L000A9840 dd L000A9B10 dd L000A9E40 dd L000A9ED0 dd L000A9ED0 dd L000A9F90 dd L000AA040 dd L000AA120 dd L000AA200 dd L000AA490 dd L000AA780 dd L000AA830 dd L000AA830 dd L000AA900 dd L000AA9C0 dd L000AAAB0 dd L000AABA0 dd L000AAE40 dd L000AB140 dd L000AB200 dd L000AB200 dd L000AB2F0 dd L000AB3E0 dd L000AB4F0 dd L000AB600 dd L000AB8C0 L000B493C: dd L000A1AE0 dd L000A1B10 dd L000A1B10 dd L000A1C20 dd L000A1CD0 dd L000A1D90 dd L000A1F90 dd L000A2240 dd L000A2310 dd L000A23E0 dd L000A23E0 dd L000A24C0 dd L000A25B0 dd L000A26B0 dd L000A28F0 dd L000A2BD0 dd L000A2D50 dd L000A2DA0 dd L000A2DA0 dd L000A2F50 dd L000A3070 dd L000A31A0 dd L000A3400 dd L000A3710 dd L000A3860 dd L000A3910 dd L000A3910 dd L000A39D0 dd L000A3AA0 dd L000A3B80 dd L000A3DA0 dd L000A4070 dd L000A4150 dd L000A4210 dd L000A4210 dd L000A42D0 dd L000A43B0 dd L000A44A0 dd L000A46D0 dd L000A49B0 dd L000A4A90 dd L000A4AD0 dd L000A4AD0 dd L000A4C60 dd L000A4D70 dd L000A4E90 dd L000A50E0 dd L000A53E0 dd L000A80D0 dd L000A8170 dd L000A8170 dd L000A8200 dd L000A82B0 dd L000A8370 dd L000A8570 dd L000A8820 dd L000A8960 dd L000A8A30 dd L000A8A30 dd L000A8B10 dd L000A8C00 dd L000A8D00 dd L000A8F40 dd L000A9220 dd L000A9390 dd L000A9490 dd L000A9490 dd L000A9590 dd L000A96B0 dd L000A97E0 dd L000A9A40 dd L000A9D50 dd L000A9EA0 dd L000A9F50 dd L000A9F50 dd L000AA000 dd L000AA0D0 dd L000AA1B0 dd L000AA3D0 dd L000AA6A0 dd L000AA7F0 dd L000AA8C0 dd L000AA8C0 dd L000AA980 dd L000AAA60 dd L000AAB50 dd L000AAD80 dd L000AB060 dd L000AB1C0 dd L000AB2A0 dd L000AB2A0 dd L000AB390 dd L000AB490 dd L000AB5A0 dd L000AB7F0 dd L000ABAF0 db 00h; db 00h; db 00h; db 00h; L000B4AC0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4AC8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4AD0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4AD8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4AE0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4AE8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4AF0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4AF8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4B00: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B08: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4B10: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4B18: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B20: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4B28: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B30: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B34: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B38: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B3C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B40: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B44: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B48: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4B50: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4B58: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4B60: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4B68: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4B70: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4B78: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B80: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4B88: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4B90: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4B98: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4BA0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BA8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4BB0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BB8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BBC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BC0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BC4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BC8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BCC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4BD0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4BD8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4BE0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4BE8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4BF0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4BF8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C00: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C08: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C10: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C18: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4C20: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C28: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C30: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C38: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C40: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C44: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C48: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C4C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C50: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C54: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C58: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4C60: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C68: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4C70: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C78: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4C80: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C88: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4C90: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4C98: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CA0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4CA8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4CB0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CB8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4CC0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CC8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CCC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CD0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CD4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CD8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CDC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4CE0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4CE8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4CF0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4CF8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D00: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4D08: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D10: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D18: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D20: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D28: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4D30: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D38: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D40: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D48: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D50: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D54: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D58: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D5C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D60: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D64: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4D68: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4D70: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D78: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B4D80: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D88: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4D90: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4D98: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DA0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4DA8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DB0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4DB8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4DC0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DC8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4DD0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DD8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DDC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DE0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DE4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DE8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DEC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4DF0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4DF8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4E00: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E08: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4E10: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4E18: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E20: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4E28: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E30: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4E38: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E40: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4E48: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4E50: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E58: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4E60: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4E68: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E70: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4E78: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E80: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E84: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E88: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E8C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E90: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E94: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4E98: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4EA0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4EA8: dd FFFFFFFFh L000B4EAC: dd FFFFFFFFh L000B4EB0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4EB8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4EC0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4EC8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4ED0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4ED8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4EE0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4EE8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4EF0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4EF8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F00: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4F08: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4F10: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F18: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4F20: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4F28: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F30: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4F38: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F40: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F44: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F48: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F4C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F50: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F54: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F58: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4F60: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F68: dd FFFFFFFFh L000B4F6C: dd FFFFFFFFh L000B4F70: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4F78: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4F80: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4F88: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4F90: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4F98: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4FA0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4FA8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4FB0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4FB8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4FC0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4FC8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4FD0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4FD8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B4FE0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4FE8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B4FF0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B4FF8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5000: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5004: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5008: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B500C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5010: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5014: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5018: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5020: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5028: dd FFFFFFFFh L000B502C: dd FFFFFFFFh L000B5030: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5038: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5040: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5048: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5050: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5058: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5060: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5068: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5070: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5078: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5080: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5088: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5090: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5098: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B50A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B50A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B50B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50C4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50CC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50D4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B50E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B50E8: dd FFFFFFFFh L000B50EC: dd FFFFFFFFh L000B50F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B50F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5100: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5108: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5110: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5118: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5120: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5128: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5130: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5138: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5140: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5148: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5150: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5158: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5160: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5168: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5170: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5178: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5180: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5184: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5188: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B518C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5190: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5194: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5198: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B51A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B51A8: dd FFFFFFFFh L000B51AC: dd FFFFFFFFh L000B51B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B51B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B51C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B51C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B51D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B51D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B51E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B51E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B51F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B51F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5200: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5208: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5210: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5218: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5220: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5228: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5230: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5238: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5240: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5244: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5248: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B524C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5250: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5254: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5258: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5260: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5268: dd FFFFFFFFh L000B526C: dd FFFFFFFFh L000B5270: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5278: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5280: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5288: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5290: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5298: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B52A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B52B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B52C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B52C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B52D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52E4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52EC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52F4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B52F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5300: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5308: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5310: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5318: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5320: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5328: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5330: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5338: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5340: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5348: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5350: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5358: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5360: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5368: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B536C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5370: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5374: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5378: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B537C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5380: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5388: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5390: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5398: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B53A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B53A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B53B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B53B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B53C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B53C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B53D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B53D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B53E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B53E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B53F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B53F4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B53F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B53FC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5400: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5404: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5408: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5410: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5418: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5420: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5428: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5430: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5438: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5440: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5448: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5450: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5458: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5460: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5468: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5470: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5478: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B547C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5480: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5484: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5488: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B548C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5490: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5498: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B54A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B54A8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B54B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B54B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B54C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B54C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B54D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B54D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B54E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B54E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B54F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B54F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5500: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5504: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5508: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B550C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5510: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5514: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5518: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5520: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5528: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; L000B5530: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' L000B5538: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5540: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5548: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5550: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5558: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5560: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5568: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5570: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5578: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5580: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5588: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B558C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5590: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5594: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5598: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B559C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B55A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B55A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B55B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B55B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B55C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B55C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B55D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B55D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B55E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B55E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B55F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B55F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5600: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5608: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5610: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5618: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5620: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5628: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5630: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5634: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5638: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B563C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5640: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5644: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5648: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5650: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5658: dd FFFFFFFFh L000B565C: dd FFFFFFFFh L000B5660: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5668: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5670: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5678: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5680: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5688: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5690: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5698: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B56A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B56B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B56C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B56D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B56D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B56E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56F4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B56FC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5700: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5704: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5708: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5710: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5718: dd FFFFFFFFh L000B571C: dd FFFFFFFFh L000B5720: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5728: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5730: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5738: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5740: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5748: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5750: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5758: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5760: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5768: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5770: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5778: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5780: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5788: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5790: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5798: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B57A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57B4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57BC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57C4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B57D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57D8: dd FFFFFFFFh L000B57DC: dd FFFFFFFFh L000B57E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B57E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B57F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B57F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5800: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5808: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5810: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5818: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5820: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5828: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5830: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5838: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5840: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5848: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5850: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5858: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5860: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5868: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5870: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5874: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5878: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B587C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5880: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5884: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5888: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5890: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5898: dd FFFFFFFFh L000B589C: dd FFFFFFFFh L000B58A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B58A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B58B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B58B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B58C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B58C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B58D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B58D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B58E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B58E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B58F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B58F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5900: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5908: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5910: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5918: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5920: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5928: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5930: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5934: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5938: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B593C: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5940: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5944: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5948: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5950: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5958: dd FFFFFFFFh L000B595C: dd FFFFFFFFh L000B5960: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5968: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5970: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5978: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5980: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5988: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5990: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5998: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59A0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B59A8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59B0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B59B8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B59C0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59C8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B59D0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B59D8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59E0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B59E8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59F0: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59F4: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59F8: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B59FC: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5A00: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5A04: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5A08: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' L000B5A10: db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' L000B5A18: dd FFFFFFFFh L000B5A1C: dd FFFFFFFFh db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db FFh; 'ï' db 00h; db 00h; db 00h; db 00h; L000B5A6C: dd 00000000h dd SUB_L000AE460 dd L000AE470 dd L000AE4B0 db 00h; db 00h; db 00h; db 00h; db 75h; 'u' db 98h; '?' db 00h; db 00h; db 73h; 's' db 98h; '?' db 00h; db 00h; L000B5A88: dq 3FE0000000000000h L000B5A90: db 70h; 'p' db 6Fh; 'o' db 77h; 'w' db 00h; L000B5A94: db 20h; ' ' db 05h; db 93h; '"' db 19h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B5AA4: dt INF L000B5AAE: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 80h; '?' db FFh; 'ï' db FFh; 'ï' db DCh; 'œ' db A7h; db D7h; '—' db B9h; 'ü' db 85h; ':' db 66h; 'f' db 71h; 'q' db B1h; '+' db 0Dh; db 40h; '@' L000B5AC2: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db FFh; 'ï' db FFh; 'ï' db 0Dh; db 40h; '@' db F7h; 'ç' db 36h; '6' db 43h; 'C' db 0Ch; db 98h; '?' db 19h; db F6h; 'æ' db 95h; db FDh; 'í' db 3Fh; '?' L000B5AD6: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db E0h; ' ' db 3Fh; '?' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 03h; db 65h; 'e' db 78h; 'x' db 70h; 'p' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 01h; db 14h; db 00h; dd L000AF915 dd L000AFC09 dd L000AFC0E dd L000AFA45 L000B5B08: dt NAN db 35h; '5' db C2h; '‚' db 68h; 'h' db 21h; '!' db A2h; '÷' db DAh; 'š' db 0Fh; db C9h; '‰' db FFh; 'ï' db 3Fh; '?' L000B5B1C: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db F0h; 'à' db 3Fh; '?' db 01h; L000B5B25: db 08h; db 04h; db 08h; db 08h; db 08h; db 04h; db 08h; db 08h; db 00h; db 04h; db 0Ch; db 08h; db 00h; db 04h; db 0Ch; db 08h; db 00h; db 00h; db 00h; L000B5B38: dq 7FF0000000000000h L000B5B40: dq FFF8000000000000h L000B5B48: dq 7FEFFFFFFFFFFFFFh db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 10h; db 00h; L000B5B58: dq 8000000000000000h db 14h; db 00h; db 00h; db 00h; dd L000B2608 db 1Dh; db 00h; db 00h; db 00h; dd L000B2604 db 1Ah; db 00h; db 00h; db 00h; dd L000B2600 db 1Bh; db 00h; db 00h; db 00h; dd SSZ000B25F8_log10 db 1Fh; db 00h; db 00h; db 00h; dd SSZ000B25F0_sinh db 13h; db 00h; db 00h; db 00h; dd SSZ000B25E8_cosh db 21h; '!' db 00h; db 00h; db 00h; dd SSZ000B25E0_tanh db 0Eh; db 00h; db 00h; db 00h; dd SSZ000B25D8_asin db 0Dh; db 00h; db 00h; db 00h; dd SSZ000B25D0_acos db 0Fh; db 00h; db 00h; db 00h; dd SSZ000B25C8_atan db 10h; db 00h; db 00h; db 00h; dd SSZ000B25C0_atan2 db 05h; db 00h; db 00h; db 00h; dd SSZ000B25B8_sqrt db 1Eh; db 00h; db 00h; db 00h; dd L000B25B4 db 12h; db 00h; db 00h; db 00h; dd L000B25B0 db 20h; ' ' db 00h; db 00h; db 00h; dd L000B25AC db 0Ch; db 00h; db 00h; db 00h; dd SSZ000B25A4_ceil db 0Bh; db 00h; db 00h; db 00h; dd SSZ000B259C_floor db 15h; db 00h; db 00h; db 00h; dd SSZ000B2594_fabs db 1Ch; db 00h; db 00h; db 00h; dd SSZ000B258C_modf db 19h; db 00h; db 00h; db 00h; dd SSZ000B2584_ldexp db 11h; db 00h; db 00h; db 00h; dd SSZ000B257C__cabs db 18h; db 00h; db 00h; db 00h; dd SSZ000B2574__hypot db 16h; db 00h; db 00h; db 00h; dd SSZ000B256C_fmod db 17h; db 00h; db 00h; db 00h; dd SSZ000B2564_frexp db 22h; '"' db 00h; db 00h; db 00h; dd L000B2560 db 23h; '#' db 00h; db 00h; db 00h; dd L000B255C db 24h; '$' db 00h; db 00h; db 00h; dd L000B2558 L000B5C38: db 94h; '"' db 26h; '&' db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B5C40: dt 2.356272345726735E+313 db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B5C50: dt 1.914995492190437E-1233 db 00h; db 00h; L000B5C5C: dd 29000003h L000B5C60: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B5C80: db 00h; db 00h; db 00h; db 00h; L000B5C84: db 00h; db 00h; db 00h; db 00h; L000B5C88: db 00h; db 00h; db 00h; db 00h; L000B5C8C: db 00h; db 00h; db 00h; db 00h; L000B5C90: db 00h; db 00h; db 00h; db 00h; L000B5C94: db 00h; db 00h; db 00h; db 00h; L000B5C98: db 00h; db 00h; db 00h; db 00h; L000B5C9C: db 00h; db 00h; db 00h; db 00h; L000B5CA0: db 00h; db 00h; db 00h; db 00h; L000B5CA4: db 00h; db 00h; db 00h; db 00h; L000B5CA8: db 00h; db 00h; db 00h; db 00h; L000B5CAC: db 00h; db 00h; db 00h; db 00h; L000B5CB0: db 00h; db 00h; db 00h; db 00h; L000B5CB4: db 00h; db 00h; db 00h; db 00h; L000B5CB8: db 00h; db 00h; db 00h; db 00h; L000B5CBC: db 00h; db 00h; db 00h; db 00h; L000B5CC0: db 00h; db 00h; db 00h; db 00h; L000B5CC4: db 00h; db 00h; db 00h; db 00h; L000B5CC8: db 00h; db 00h; db 00h; db 00h; L000B5CCC: db 00h; db 00h; db 00h; db 00h; L000B5CD0: db 00h; db 00h; db 00h; db 00h; L000B5CD4: db 00h; db 00h; db 00h; db 00h; L000B5CD8: db 00h; db 00h; db 00h; db 00h; L000B5CDC: db 00h; db 00h; db 00h; db 00h; L000B5CE0: db 00h; db 00h; db 00h; db 00h; L000B5CE4: db 00h; db 00h; db 00h; db 00h; L000B5CE8: db 00h; db 00h; db 00h; db 00h; L000B5CEC: db 00h; db 00h; db 00h; db 00h; L000B5CF0: db 00h; db 00h; db 00h; db 00h; L000B5CF4: db 00h; db 00h; db 00h; db 00h; L000B5CF8: db 00h; db 00h; db 00h; db 00h; L000B5CFC: db 00h; db 00h; db 00h; db 00h; L000B5D00: db 00h; db 00h; db 00h; db 00h; L000B5D04: db 00h; db 00h; db 00h; db 00h; L000B5D08: db 00h; db 00h; db 00h; db 00h; L000B5D0C: db 00h; db 00h; db 00h; db 00h; L000B5D10: db 00h; db 00h; db 00h; db 00h; L000B5D14: db 00h; db 00h; db 00h; db 00h; L000B5D18: db 00h; db 00h; db 00h; db 00h; L000B5D1C: db 00h; db 00h; db 00h; db 00h; L000B5D20: db 00h; db 00h; db 00h; db 00h; L000B5D24: db 00h; db 00h; db 00h; db 00h; L000B5D28: db 00h; db 00h; db 00h; db 00h; L000B5D2C: db 00h; db 00h; db 00h; db 00h; L000B5D30: db 00h; db 00h; db 00h; db 00h; L000B5D34: db 00h; db 00h; db 00h; db 00h; L000B5D38: db 00h; db 00h; db 00h; db 00h; L000B5D3C: db 00h; db 00h; db 00h; db 00h; L000B5D40: db 00h; db 00h; db 00h; db 00h; L000B5D44: db 00h; db 00h; db 00h; db 00h; L000B5D48: db 00h; db 00h; db 00h; db 00h; L000B5D4C: db 00h; db 00h; db 00h; db 00h; L000B5D50: db 00h; db 00h; db 00h; db 00h; L000B5D54: db 00h; db 00h; db 00h; db 00h; L000B5D58: db 00h; db 00h; db 00h; db 00h; L000B5D5C: db 00h; db 00h; db 00h; db 00h; L000B5D60: db 00h; db 00h; db 00h; db 00h; L000B5D64: db 00h; db 00h; db 00h; db 00h; L000B5D68: db 00h; db 00h; db 00h; db 00h; L000B5D6C: db 00h; db 00h; db 00h; db 00h; L000B5D70: db 00h; db 00h; db 00h; db 00h; L000B5D74: db 00h; db 00h; db 00h; db 00h; L000B5D78: db 00h; db 00h; db 00h; db 00h; L000B5D7C: db 00h; db 00h; db 00h; db 00h; L000B5D80: db 00h; db 00h; db 00h; db 00h; L000B5D84: db 00h; db 00h; db 00h; db 00h; L000B5D88: db 00h; db 00h; db 00h; db 00h; L000B5D8C: db 00h; db 00h; db 00h; db 00h; L000B5D90: db 00h; db 00h; db 00h; db 00h; L000B5D94: db 00h; db 00h; db 00h; db 00h; L000B5D98: db 00h; db 00h; db 00h; db 00h; L000B5D9C: db 00h; db 00h; db 00h; db 00h; L000B5DA0: db 00h; db 00h; db 00h; db 00h; L000B5DA4: db 00h; db 00h; db 00h; db 00h; L000B5DA8: db 00h; db 00h; db 00h; db 00h; L000B5DAC: db 00h; db 00h; db 00h; db 00h; L000B5DB0: db 00h; db 00h; db 00h; db 00h; L000B5DB4: db 00h; db 00h; db 00h; db 00h; L000B5DB8: db 00h; db 00h; db 00h; db 00h; L000B5DBC: db 00h; db 00h; db 00h; db 00h; L000B5DC0: db 00h; db 00h; db 00h; db 00h; L000B5DC4: db 00h; db 00h; db 00h; db 00h; L000B5DC8: db 00h; db 00h; db 00h; db 00h; L000B5DCC: db 00h; db 00h; db 00h; db 00h; L000B5DD0: db 00h; db 00h; db 00h; db 00h; L000B5DD4: db 00h; db 00h; db 00h; db 00h; L000B5DD8: db 00h; db 00h; db 00h; db 00h; L000B5DDC: db 00h; db 00h; db 00h; db 00h; L000B5DE0: db 00h; db 00h; db 00h; db 00h; L000B5DE4: db 00h; db 00h; db 00h; db 00h; L000B5DE8: db 00h; db 00h; db 00h; db 00h; L000B5DEC: db 00h; db 00h; db 00h; db 00h; L000B5DF0: db 00h; db 00h; db 00h; db 00h; L000B5DF4: db 00h; db 00h; db 00h; db 00h; L000B5DF8: db 00h; db 00h; db 00h; db 00h; L000B5DFC: db 00h; db 00h; db 00h; db 00h; L000B5E00: db 00h; db 00h; db 00h; db 00h; L000B5E04: db 00h; db 00h; db 00h; db 00h; L000B5E08: db 00h; db 00h; db 00h; db 00h; L000B5E0C: db 00h; db 00h; db 00h; db 00h; L000B5E10: db 00h; db 00h; db 00h; db 00h; L000B5E14: db 00h; db 00h; db 00h; db 00h; L000B5E18: db 00h; db 00h; db 00h; db 00h; L000B5E1C: db 00h; db 00h; db 00h; db 00h; L000B5E20: db 00h; db 00h; db 00h; db 00h; L000B5E24: db 00h; db 00h; db 00h; db 00h; L000B5E28: db 00h; db 00h; db 00h; db 00h; L000B5E2C: db 00h; db 00h; db 00h; db 00h; L000B5E30: db 00h; db 00h; db 00h; db 00h; L000B5E34: db 00h; db 00h; db 00h; db 00h; L000B5E38: db 00h; db 00h; db 00h; db 00h; L000B5E3C: db 00h; db 00h; db 00h; db 00h; L000B5E40: db 00h; db 00h; db 00h; db 00h; L000B5E44: db 00h; db 00h; db 00h; db 00h; L000B5E48: db 00h; db 00h; db 00h; db 00h; L000B5E4C: db 00h; db 00h; db 00h; db 00h; L000B5E50: db 00h; db 00h; db 00h; db 00h; L000B5E54: db 00h; db 00h; db 00h; db 00h; L000B5E58: db 00h; db 00h; db 00h; db 00h; L000B5E5C: db 00h; db 00h; db 00h; db 00h; L000B5E60: db 00h; db 00h; db 00h; db 00h; L000B5E64: db 00h; db 00h; db 00h; db 00h; L000B5E68: db 00h; db 00h; db 00h; db 00h; L000B5E6C: db 00h; db 00h; db 00h; db 00h; L000B5E70: db 00h; db 00h; db 00h; db 00h; L000B5E74: db 00h; db 00h; db 00h; db 00h; L000B5E78: db 00h; db 00h; db 00h; db 00h; L000B5E7C: db 00h; db 00h; db 00h; db 00h; L000B5E80: db 00h; db 00h; db 00h; db 00h; L000B5E84: db 00h; db 00h; db 00h; db 00h; L000B5E88: db 00h; db 00h; db 00h; db 00h; L000B5E8C: db 00h; db 00h; db 00h; db 00h; L000B5E90: db 00h; db 00h; db 00h; db 00h; L000B5E94: db 00h; db 00h; db 00h; db 00h; L000B5E98: db 00h; db 00h; db 00h; db 00h; L000B5E9C: db 00h; db 00h; db 00h; db 00h; L000B5EA0: db 00h; db 00h; db 00h; db 00h; L000B5EA4: db 00h; db 00h; db 00h; db 00h; L000B5EA8: db 00h; db 00h; db 00h; db 00h; L000B5EAC: db 00h; db 00h; db 00h; db 00h; L000B5EB0: db 00h; db 00h; db 00h; db 00h; L000B5EB4: db 00h; db 00h; db 00h; db 00h; L000B5EB8: db 00h; db 00h; db 00h; db 00h; L000B5EBC: db 00h; db 00h; db 00h; db 00h; L000B5EC0: db 00h; db 00h; db 00h; db 00h; L000B5EC4: db 00h; db 00h; db 00h; db 00h; L000B5EC8: db 00h; db 00h; db 00h; db 00h; L000B5ECC: db 00h; db 00h; db 00h; db 00h; L000B5ED0: db 00h; db 00h; db 00h; db 00h; L000B5ED4: db 00h; db 00h; db 00h; db 00h; L000B5ED8: db 00h; db 00h; db 00h; db 00h; L000B5EDC: db 00h; db 00h; db 00h; db 00h; L000B5EE0: db 00h; db 00h; db 00h; db 00h; L000B5EE4: db 00h; db 00h; db 00h; db 00h; L000B5EE8: db 00h; db 00h; db 00h; db 00h; L000B5EEC: db 00h; db 00h; db 00h; db 00h; L000B5EF0: db 00h; db 00h; db 00h; db 00h; L000B5EF4: db 00h; db 00h; db 00h; db 00h; L000B5EF8: db 00h; db 00h; db 00h; db 00h; L000B5EFC: db 00h; db 00h; db 00h; db 00h; L000B5F00: db 00h; db 00h; db 00h; db 00h; L000B5F04: db 00h; db 00h; db 00h; db 00h; L000B5F08: db 00h; db 00h; db 00h; db 00h; L000B5F0C: db 00h; db 00h; db 00h; db 00h; L000B5F10: db 00h; db 00h; db 00h; db 00h; L000B5F14: db 00h; db 00h; db 00h; db 00h; L000B5F18: db 00h; db 00h; db 00h; db 00h; L000B5F1C: db 00h; db 00h; db 00h; db 00h; L000B5F20: db 00h; db 00h; db 00h; db 00h; L000B5F24: db 00h; db 00h; db 00h; db 00h; L000B5F28: db 00h; db 00h; db 00h; db 00h; L000B5F2C: db 00h; db 00h; db 00h; db 00h; L000B5F30: db 00h; db 00h; db 00h; db 00h; L000B5F34: db 00h; db 00h; db 00h; db 00h; L000B5F38: db 00h; db 00h; db 00h; db 00h; L000B5F3C: db 00h; db 00h; db 00h; db 00h; L000B5F40: db 00h; db 00h; db 00h; db 00h; L000B5F44: db 00h; db 00h; db 00h; db 00h; L000B5F48: db 00h; db 00h; db 00h; db 00h; L000B5F4C: db 00h; db 00h; db 00h; db 00h; L000B5F50: db 00h; db 00h; db 00h; db 00h; L000B5F54: db 00h; db 00h; db 00h; db 00h; L000B5F58: db 00h; db 00h; db 00h; db 00h; L000B5F5C: db 00h; db 00h; db 00h; db 00h; L000B5F60: db 00h; db 00h; db 00h; db 00h; L000B5F64: db 00h; db 00h; db 00h; db 00h; L000B5F68: db 00h; db 00h; db 00h; db 00h; L000B5F6C: db 00h; db 00h; db 00h; db 00h; L000B5F70: db 00h; db 00h; db 00h; db 00h; L000B5F74: db 00h; db 00h; db 00h; db 00h; L000B5F78: db 00h; db 00h; db 00h; db 00h; L000B5F7C: db 00h; db 00h; db 00h; db 00h; L000B5F80: db 00h; db 00h; db 00h; db 00h; L000B5F84: db 00h; db 00h; db 00h; db 00h; L000B5F88: db 00h; db 00h; db 00h; db 00h; L000B5F8C: db 00h; db 00h; db 00h; db 00h; L000B5F90: db 00h; db 00h; db 00h; db 00h; L000B5F94: db 00h; db 00h; db 00h; db 00h; L000B5F98: db 00h; db 00h; db 00h; db 00h; L000B5F9C: db 00h; db 00h; db 00h; db 00h; L000B5FA0: db 00h; db 00h; db 00h; db 00h; L000B5FA4: db 00h; db 00h; db 00h; db 00h; L000B5FA8: db 00h; db 00h; db 00h; db 00h; L000B5FAC: db 00h; db 00h; db 00h; db 00h; L000B5FB0: db 00h; db 00h; db 00h; db 00h; L000B5FB4: db 00h; db 00h; db 00h; db 00h; L000B5FB8: db 00h; db 00h; db 00h; db 00h; L000B5FBC: db 00h; db 00h; db 00h; db 00h; L000B5FC0: db 00h; db 00h; db 00h; db 00h; L000B5FC4: db 00h; db 00h; db 00h; db 00h; L000B5FC8: db 00h; db 00h; db 00h; db 00h; L000B5FCC: db 00h; db 00h; db 00h; db 00h; L000B5FD0: db 00h; db 00h; db 00h; db 00h; L000B5FD4: db 00h; db 00h; db 00h; db 00h; L000B5FD8: db 00h; db 00h; db 00h; db 00h; L000B5FDC: db 00h; db 00h; db 00h; db 00h; L000B5FE0: db 00h; db 00h; db 00h; db 00h; L000B5FE4: db 00h; db 00h; db 00h; db 00h; L000B5FE8: db 00h; db 00h; db 00h; db 00h; L000B5FEC: db 00h; db 00h; db 00h; db 00h; L000B5FF0: db 00h; db 00h; db 00h; db 00h; L000B5FF4: db 00h; db 00h; db 00h; db 00h; L000B5FF8: db 00h; db 00h; db 00h; db 00h; L000B5FFC: db 00h; db 00h; db 00h; db 00h; L000B6000: db 00h; db 00h; db 00h; db 00h; L000B6004: db 00h; db 00h; db 00h; db 00h; L000B6008: db 00h; db 00h; db 00h; db 00h; L000B600C: db 00h; db 00h; db 00h; db 00h; L000B6010: db 00h; db 00h; db 00h; db 00h; L000B6014: db 00h; db 00h; db 00h; db 00h; L000B6018: db 00h; db 00h; db 00h; db 00h; L000B601C: db 00h; db 00h; db 00h; db 00h; L000B6020: db 00h; db 00h; db 00h; db 00h; L000B6024: db 00h; db 00h; db 00h; db 00h; L000B6028: db 00h; db 00h; db 00h; db 00h; L000B602C: db 00h; db 00h; db 00h; db 00h; L000B6030: db 00h; db 00h; db 00h; db 00h; L000B6034: db 00h; db 00h; db 00h; db 00h; L000B6038: db 00h; db 00h; db 00h; db 00h; L000B603C: db 00h; db 00h; db 00h; db 00h; L000B6040: db 00h; db 00h; db 00h; db 00h; L000B6044: db 00h; db 00h; db 00h; db 00h; L000B6048: db 00h; db 00h; db 00h; db 00h; L000B604C: db 00h; db 00h; db 00h; db 00h; L000B6050: db 00h; db 00h; db 00h; db 00h; L000B6054: db 00h; db 00h; db 00h; db 00h; L000B6058: db 00h; db 00h; db 00h; db 00h; L000B605C: db 00h; db 00h; db 00h; db 00h; L000B6060: db 00h; db 00h; db 00h; db 00h; L000B6064: db 00h; db 00h; db 00h; db 00h; L000B6068: db 00h; db 00h; db 00h; db 00h; L000B606C: db 00h; db 00h; db 00h; db 00h; L000B6070: db 00h; db 00h; db 00h; db 00h; L000B6074: db 00h; db 00h; db 00h; db 00h; L000B6078: db 00h; db 00h; db 00h; db 00h; L000B607C: db 00h; db 00h; db 00h; db 00h; L000B6080: db 00h; db 00h; db 00h; db 00h; L000B6084: db 00h; db 00h; db 00h; db 00h; L000B6088: db 00h; db 00h; db 00h; db 00h; L000B608C: db 00h; db 00h; db 00h; db 00h; L000B6090: db 00h; db 00h; db 00h; db 00h; L000B6094: db 00h; db 00h; db 00h; db 00h; L000B6098: db 00h; db 00h; db 00h; db 00h; L000B609C: db 00h; db 00h; db 00h; db 00h; L000B60A0: db 00h; db 00h; db 00h; db 00h; L000B60A4: db 00h; db 00h; db 00h; db 00h; L000B60A8: db 00h; db 00h; db 00h; db 00h; L000B60AC: db 00h; db 00h; db 00h; db 00h; L000B60B0: db 00h; db 00h; db 00h; db 00h; L000B60B4: db 00h; db 00h; db 00h; db 00h; L000B60B8: db 00h; db 00h; db 00h; db 00h; L000B60BC: db 00h; db 00h; db 00h; db 00h; L000B60C0: db 00h; db 00h; db 00h; db 00h; L000B60C4: db 00h; db 00h; db 00h; db 00h; L000B60C8: db 00h; db 00h; db 00h; db 00h; L000B60CC: db 00h; db 00h; db 00h; db 00h; L000B60D0: db 00h; db 00h; db 00h; db 00h; L000B60D4: db 00h; db 00h; db 00h; db 00h; L000B60D8: db 00h; db 00h; db 00h; db 00h; L000B60DC: db 00h; db 00h; db 00h; db 00h; L000B60E0: db 00h; db 00h; db 00h; db 00h; L000B60E4: db 00h; db 00h; db 00h; db 00h; L000B60E8: db 00h; db 00h; db 00h; db 00h; L000B60EC: db 00h; db 00h; db 00h; db 00h; L000B60F0: db 00h; db 00h; db 00h; db 00h; L000B60F4: db 00h; db 00h; db 00h; db 00h; L000B60F8: db 00h; db 00h; db 00h; db 00h; L000B60FC: db 00h; db 00h; db 00h; db 00h; L000B6100: db 00h; db 00h; db 00h; db 00h; L000B6104: db 00h; db 00h; db 00h; db 00h; L000B6108: db 00h; db 00h; db 00h; db 00h; L000B610C: db 00h; db 00h; db 00h; db 00h; L000B6110: db 00h; db 00h; db 00h; db 00h; L000B6114: db 00h; db 00h; db 00h; db 00h; L000B6118: db 00h; db 00h; db 00h; db 00h; L000B611C: db 00h; db 00h; db 00h; db 00h; L000B6120: db 00h; db 00h; db 00h; db 00h; L000B6124: db 00h; db 00h; db 00h; db 00h; L000B6128: db 00h; db 00h; db 00h; db 00h; L000B612C: db 00h; db 00h; db 00h; db 00h; L000B6130: db 00h; db 00h; db 00h; db 00h; L000B6134: db 00h; db 00h; db 00h; db 00h; L000B6138: db 00h; db 00h; db 00h; db 00h; L000B613C: db 00h; db 00h; db 00h; db 00h; L000B6140: db 00h; db 00h; db 00h; db 00h; L000B6144: db 00h; db 00h; db 00h; db 00h; L000B6148: db 00h; db 00h; db 00h; db 00h; L000B614C: db 00h; db 00h; db 00h; db 00h; L000B6150: db 00h; db 00h; db 00h; db 00h; L000B6154: db 00h; db 00h; db 00h; db 00h; L000B6158: db 00h; db 00h; db 00h; db 00h; L000B615C: db 00h; db 00h; db 00h; db 00h; L000B6160: db 00h; db 00h; db 00h; db 00h; L000B6164: db 00h; db 00h; db 00h; db 00h; L000B6168: db 00h; db 00h; db 00h; db 00h; L000B616C: db 00h; db 00h; db 00h; db 00h; L000B6170: db 00h; db 00h; db 00h; db 00h; L000B6174: db 00h; db 00h; db 00h; db 00h; L000B6178: db 00h; db 00h; db 00h; db 00h; L000B617C: db 00h; db 00h; db 00h; db 00h; L000B6180: db 00h; db 00h; db 00h; db 00h; L000B6184: db 00h; db 00h; db 00h; db 00h; L000B6188: db 00h; db 00h; db 00h; db 00h; L000B618C: db 00h; db 00h; db 00h; db 00h; L000B6190: db 00h; db 00h; db 00h; db 00h; L000B6194: db 00h; db 00h; db 00h; db 00h; L000B6198: db 00h; db 00h; db 00h; db 00h; L000B619C: db 00h; db 00h; db 00h; db 00h; L000B61A0: db 00h; db 00h; db 00h; db 00h; L000B61A4: db 00h; db 00h; db 00h; db 00h; L000B61A8: db 00h; db 00h; db 00h; db 00h; L000B61AC: db 00h; db 00h; db 00h; db 00h; L000B61B0: db 00h; db 00h; db 00h; db 00h; L000B61B4: db 00h; db 00h; db 00h; db 00h; L000B61B8: db 00h; db 00h; db 00h; db 00h; L000B61BC: db 00h; db 00h; db 00h; db 00h; L000B61C0: db 00h; db 00h; db 00h; db 00h; L000B61C4: db 00h; db 00h; db 00h; db 00h; L000B61C8: db 00h; db 00h; db 00h; db 00h; L000B61CC: db 00h; db 00h; db 00h; db 00h; L000B61D0: db 00h; db 00h; db 00h; db 00h; L000B61D4: db 00h; db 00h; db 00h; db 00h; L000B61D8: db 00h; db 00h; db 00h; db 00h; L000B61DC: db 00h; db 00h; db 00h; db 00h; L000B61E0: db 00h; db 00h; db 00h; db 00h; L000B61E4: db 00h; db 00h; db 00h; db 00h; L000B61E8: db 00h; db 00h; db 00h; db 00h; L000B61EC: db 00h; db 00h; db 00h; db 00h; L000B61F0: db 00h; db 00h; db 00h; db 00h; L000B61F4: db 00h; db 00h; db 00h; db 00h; L000B61F8: db 00h; db 00h; db 00h; db 00h; L000B61FC: db 00h; db 00h; db 00h; db 00h; L000B6200: db 00h; db 00h; db 00h; db 00h; L000B6204: db 00h; db 00h; db 00h; db 00h; L000B6208: db 00h; db 00h; db 00h; db 00h; L000B620C: db 00h; db 00h; db 00h; db 00h; L000B6210: db 00h; db 00h; db 00h; db 00h; L000B6214: db 00h; db 00h; db 00h; db 00h; L000B6218: db 00h; db 00h; db 00h; db 00h; L000B621C: db 00h; db 00h; db 00h; db 00h; L000B6220: db 00h; db 00h; db 00h; db 00h; L000B6224: db 00h; db 00h; db 00h; db 00h; L000B6228: db 00h; db 00h; db 00h; db 00h; L000B622C: db 00h; db 00h; db 00h; db 00h; L000B6230: db 00h; db 00h; db 00h; db 00h; L000B6234: db 00h; db 00h; db 00h; db 00h; L000B6238: db 00h; db 00h; db 00h; db 00h; L000B623C: db 00h; db 00h; db 00h; db 00h; L000B6240: db 00h; db 00h; db 00h; db 00h; L000B6244: db 00h; db 00h; db 00h; db 00h; L000B6248: db 00h; db 00h; db 00h; db 00h; L000B624C: db 00h; db 00h; db 00h; db 00h; L000B6250: db 00h; db 00h; db 00h; db 00h; L000B6254: db 00h; db 00h; db 00h; db 00h; L000B6258: db 00h; db 00h; db 00h; db 00h; L000B625C: db 00h; db 00h; db 00h; db 00h; L000B6260: db 00h; db 00h; db 00h; db 00h; L000B6264: db 00h; db 00h; db 00h; db 00h; L000B6268: db 00h; db 00h; db 00h; db 00h; L000B626C: db 00h; db 00h; db 00h; db 00h; L000B6270: db 00h; db 00h; db 00h; db 00h; L000B6274: db 00h; db 00h; db 00h; db 00h; L000B6278: db 00h; db 00h; db 00h; db 00h; L000B627C: db 00h; db 00h; db 00h; db 00h; L000B6280: db 00h; db 00h; db 00h; db 00h; L000B6284: db 00h; db 00h; db 00h; db 00h; L000B6288: dd 00000000h db 00h; db 00h; db 00h; db 00h; L000B6290: dd 00000000h L000B6294: dd 00000000h L000B6298: dd 00000000h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B6BF0: dd 00000000h L000B6BF4: db 00h; db 00h; db 00h; db 00h; L000B6BF8: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B6F10: dd 00000000h L000B6F14: db 00h; db 00h; db 00h; db 00h; L000B6F18: dd 00000000h L000B6F1C: db 00h; db 00h; db 00h; db 00h; L000B6F20: dd 00000000h L000B6F24: dd 00000000h L000B6F28: dd 00000000h L000B6F2C: dd 00000000h L000B6F30: dd 00000000h L000B6F34: dd 00000000h L000B6F38: db 00h; db 00h; db 00h; db 00h; L000B6F3C: dd 00000000h L000B6F40: dd 00000000h L000B6F44: dd 00000000h L000B6F48: dd 00000000h L000B6F4C: dd 00000000h L000B6F50: dd 00000000h L000B6F54: dd 00000000h L000B6F58: db 00h; db 00h; db 00h; db 00h; L000B6F5C: db 00h; db 00h; db 00h; db 00h; L000B6F60: dd 00000000h L000B6F64: dd 00000000h L000B6F68: dd 00000000h L000B6F6C: dd 00000000h L000B6F70: dd 00000000h L000B6F74: db 00h; db 00h; db 00h; db 00h; L000B6F78: dd 00000000h L000B6F7C: dd 00000000h L000B6F80: dd 00000000h L000B6F84: dd 00000000h L000B6F88: dd 00000000h L000B6F8C: dd 00000000h db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B6FA0: dd 00000000h L000B6FA4: db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; db 00h; L000B7050: db 00h; db 00h; db 00h; db 00h; L000B7054: db 00h; db 00h; db 00h; db 00h; L000B7058: dd 00000000h L000B705C: dd 00000000h L000B7060: dd 00000000h L000B7064: db 00h; db 00h; db 00h; db 00h; L000B7068: dd 00000000h L000B706C: dd 00000000h L000B7070: dd 00000000h L000B7074: dd 00000000h L000B7078: dd 00000000h L000B707C: dd 00000000h L000B7080: dd 00000000h L000B7084: db 00h; db 00h; db 00h; db 00h; L000B7088: dd 00000000h L000B708C: dd 00000000h L000B7090: dd 00000000h L000B7094: dd 00000000h L000B7098: db 00h; db 00h; db 00h; db 00h; L000B709C: dd 00000000h L000B70A0: dd 00000000h L000B70A4: dd 00000000h L000B70A8: dd 00000000h L000B70AC: dd 00000000h L000B70B0: dd 00000000h L000B70B4: dd 00000000h L000B70B8: dd 00000000h L000B70BC: dd 00000000h L000B70C0: dd 00000000h L000B70C4: dd 00000000h L000B70C8: db 00h; db 00h; db 00h; db 00h; L000B70CC: dd 00000000h ;------------------------------------------------------------------------------ 00000010h DUP (??) ; ; ;------------------------------------------------------------------------------ ; Name: PAGE_LK ; Virtual Address: 000B70E0h Virtual Size: 00000050h ; Pointer To RawData: 000A70E0h Size Of RawData: 00000060h ; SUB_L000B70E0: push ebp mov ebp,esp push ecx push esi mov dword ptr [ebp-04h],00000000h push esi pushfd mov esi,[ebp+08h] lock bts word ptr [esi],01h jc L000B7100 mov dword ptr [ebp-04h],00000001h L000B7100: popfd pop esi mov eax,[ebp-04h] pop esi mov esp,ebp pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 8 SUB_L000B7110: push ebp mov ebp,esp push esi push esi pushfd mov esi,[ebp+08h] lock btr word ptr [esi],01h popfd pop esi pop esi pop ebp retn 0004h ;------------------------------------------------------------------------------ Align 16 ;------------------------------------------------------------------------------ 00000010h DUP (??) ; ; ;------------------------------------------------------------------------------ ; Name: .edata ; Virtual Address: 000B7140h Virtual Size: 000001D6h ; Pointer To RawData: 000A7140h Size Of RawData: 000001E0h ; dd 00000000h dd 3D3D7DDDh dw 0000h dw 0000h dd 000A71FEh dd 00000001h dd 0000000Fh dd 0000000Fh dd 000A7168h dd 000A71A4h dd 000A71E0h dd 00000320h dd 0001E220h dd 00007380h dd 000A1FC0h dd 000A09B0h dd 000A0A00h dd 000A0A60h dd 000A0C20h dd 000A0D10h dd 0001DFC0h dd 0001E040h dd 0001DEA0h dd 00007240h dd 00007210h dd 00007300h dd 000A720Bh dd 000A721Bh dd 000A7231h dd 000A723Fh dd 000A724Dh dd 000A7260h dd 000A7274h dd 000A7288h dd 000A729Fh dd 000A72B7h dd 000A72C3h dd 000A72DCh dd 000A72EFh dd 000A72FAh dd 000A730Ch dw 0000h dw 0001h dw 0002h dw 0003h dw 0004h dw 0005h dw 0006h dw 0007h dw 0008h dw 0009h dw 000Ah dw 000Bh dw 000Ch dw 000Dh dw 000Eh db 'i81xdnt5.dll',0 db 'DrvEnableDriver',0 db 'GHAL_UpdateFlipStatus',0 db 'GetDriverData',0 db 'GfxDebugPrint',0 db 'HAL3DCreateContext',0 db 'HAL3DDestroyContext',0 db 'HAL3DEnableHardware',0 db 'HALCreateCommandStream',0 db 'HALDestroyCommandStream',0 db 'HS_FireRing',0 db 'HS_MM_CancelGetRingSpace',0 db 'HS_MM_GetRingSpace',0 db 'OsAllocMem',0 db 'OsDeviceIoControl',0 db 'OsFreeMem',0 ;------------------------------------------------------------------------------ 0000000Ah DUP (??) ; ; ;------------------------------------------------------------------------------ ; Name: INIT ; Virtual Address: 000B7320h Virtual Size: 0000036Ah ; Pointer To RawData: 000A7320h Size Of RawData: 00000380h ; dd 000A7348h dd 00000000h dd 00000000h dd 000A767Eh dd 000A2000h dd 00000000h dd 00000000h dd 00000000h dd 00000000h dd 00000000h dd 000A7564h dd 000A73E6h dd 000A73F4h dd 000A7408h dd 000A741Ch dd 000A7436h dd 000A744Eh dd 000A7462h dd 000A7474h dd 000A748Ah dd 000A749Ch dd 000A74AEh dd 000A74BEh dd 000A74CEh dd 000A74E4h dd 000A74F8h dd 000A750Ch dd 000A7522h dd 000A7536h dd 000A754Ah dd 000A73D8h dd 000A7570h dd 000A7580h dd 000A7590h dd 000A759Eh dd 000A75B6h dd 000A75C2h dd 000A75D0h dd 000A75E2h dd 000A75F4h dd 000A7612h dd 000A7632h dd 000A7648h dd 000A765Eh dd 000A766Ah dd 00000000h dw 0034h db 'EngFreeMem',0 db 00h dw 0008h db 'EngAllocMem',0 dw 0026h db 'EngDeleteSurface',0 db 00h dw 0057h db 'EngModifySurface',0 db 00h dw 0015h db 'EngCreateDeviceSurface',0 db 00h dw 0014h db 'EngCreateDeviceBitmap',0 dw 007Ah db 'EngUnlockSurface',0 db 00h dw 004Fh db 'EngLockSurface',0 db 00h dw 000Ch db 'EngAssociateSurface',0 dw 003Fh db 'EngGetLastError',0 dw 0012h db 'EngCreateBitmap',0 dw 001Dh db 'EngDebugPrint',0 dw 0004h db 'CLIPOBJ_bEnum',0 dw 0005h db 'CLIPOBJ_cEnumStart',0 db 00h dw 0075h db 'EngTransparentBlt',0 dw 0018h db 'EngCreatePalette',0 db 00h dw 0028h db 'EngDeviceIoControl',0 db 00h dw 0022h db 'EngDeletePalette',0 db 00h dw 00ACh db 'PALOBJ_cGetColors',0 dw 0001h db 'BRUSHOBJ_pvAllocRbrush',0 db 00h dw 0049h db 'EngLineTo',0 dw 0073h db 'EngStrokePath',0 dw 00BEh db 'STROBJ_bEnum',0 db 00h dw 0074h db 'EngTextOut',0 db 00h dw 0002h db 'BRUSHOBJ_pvGetRbrush',0 db 00h dw 000Dh db 'EngBitBlt',0 dw 0011h db 'EngCopyBits',0 dw 000Ah db 'EngAllocUserMem',0 dw 0037h db 'EngFreeUserMem',0 db 00h dw 0063h db 'EngQueryPerformanceCounter',0 db 00h dw 0064h db 'EngQueryPerformanceFrequency',0 db 00h dw 001Fh db 'EngDeleteDriverObj',0 db 00h dw 0016h db 'EngCreateDriverObj',0 db 00h dw 00BBh db 'RtlUnwind',0 dw 00B8h db 'RtlRaiseException',0 db 'WIN32K.SYS',0 db 00h ;------------------------------------------------------------------------------ 00000016h DUP (??) ; ; ;------------------------------------------------------------------------------ ; Exports ; Index: 1 Name: DrvEnableDriver Index: 2 Name: GHAL_UpdateFlipStatus Index: 3 Name: GetDriverData Index: 4 Name: GfxDebugPrint Index: 5 Name: HAL3DCreateContext Index: 6 Name: HAL3DDestroyContext Index: 7 Name: HAL3DEnableHardware Index: 8 Name: HALCreateCommandStream Index: 9 Name: HALDestroyCommandStream Index: 10 Name: HS_FireRing Index: 11 Name: HS_MM_CancelGetRingSpace Index: 12 Name: HS_MM_GetRingSpace Index: 13 Name: OsAllocMem Index: 14 Name: OsDeviceIoControl Index: 15 Name: OsFreeMem ; ;------------------------------------------------------------------------------ ; Imports from WIN32K.SYS ; extrn EngLineTo extrn EngAllocMem extrn EngDeleteSurface extrn EngModifySurface extrn EngCreateDeviceSurface extrn EngCreateDeviceBitmap extrn EngUnlockSurface extrn EngLockSurface extrn EngAssociateSurface extrn EngGetLastError extrn EngCreateBitmap extrn EngDebugPrint extrn CLIPOBJ_bEnum extrn CLIPOBJ_cEnumStart extrn EngTransparentBlt extrn EngCreatePalette extrn EngDeviceIoControl extrn EngDeletePalette extrn PALOBJ_cGetColors extrn BRUSHOBJ_pvAllocRbrush extrn EngFreeMem extrn EngStrokePath extrn STROBJ_bEnum extrn EngTextOut extrn BRUSHOBJ_pvGetRbrush extrn EngBitBlt extrn EngCopyBits extrn EngAllocUserMem extrn EngFreeUserMem extrn EngQueryPerformanceCounter extrn EngQueryPerformanceFrequency extrn EngDeleteDriverObj extrn EngCreateDriverObj extrn RtlUnwind extrn RtlRaiseException ; ;------------------------------------------------------------------------------