Function at 0x472da0
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x553516
mov eax, dword fs:[0]
push eax
sub esp, 0xb30
mov eax, dword [0x57f7c4]
xor eax, esp
mov dword [esp + 0xb28], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x57f7c4]
xor eax, esp
push eax
lea eax, [esp + 0xb44]
mov dword fs:[0], eax
mov edi, dword [esp + 0xb5c]
mov esi, dword [esp + 0xb58]
mov ebp, dword [esp + 0xb54]
cmp dword [ebp + 0x1444], 1
je 0x47469f
lea eax, [esi + esi*2]
lea ecx, [edi + eax*8]
mov ebx, dword [ebp + ecx*4 + 0x1c0]
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x47469f
cmp byte [ebx + 0x42], 0
je 0x47469f
mov ecx, dword [ebx + 0x30]
cmp dword [ecx + 0xa0], 0x1a
je 0x472e8c
mov al, byte [ebx + 0x40]
cmp al, 0x1b
je 0x472e6d
cmp al, 0x1c
je 0x472e6d
cmp al, 0x63
je 0x472e6d
cmp al, 0x1d
jne 0x474698
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
add eax, 0x493e0
mov dword [ebp + 0x5870], eax
mov dl, byte [ebx + 0x41]
push edi
push esi
mov ecx, ebp
mov byte [ebp + 0x5874], dl
call fcn.004728e0
jmp 0x47469f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x493e0
mov dword [ebp + 0x5870], eax
mov al, byte [ebx + 0x41]
mov byte [ebp + 0x5874], al
jmp 0x47469f
mov dx, word [ecx + 0x2e]
cmp dx, word [ebp + 0x136]
ja 0x474698
movzx eax, byte [ecx + 0x26]
cmp eax, 5
ja case.default.0x472ea6
jmp dword [eax*4 + 0x4746cc]
cmp byte [ebp + 0x12e], 0
je case.default.0x472ea6
jmp 0x474698
cmp byte [ebp + 0x12e], 1
je case.default.0x472ea6
jmp 0x474698
mov al, byte [ebp + 0x12e]
test al, al
je case.default.0x472ea6
cmp al, 1
je case.default.0x472ea6
jmp 0x474698
cmp byte [ebp + 0x12e], 3
je case.default.0x472ea6
jmp 0x474698
cmp byte [ebp + 0x12e], 2
je case.default.0x472ea6
jmp 0x474698
mov al, byte [ebp + 0x12e]
cmp al, 3
je case.default.0x472ea6
cmp al, 2
jne 0x474698
mov al, byte [ecx + 0x30]
cmp al, byte [ebp + 0x12f]
ja 0x474698
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebx + 0x30]
mov edx, eax
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], eax
mov al, byte [ecx + 0x32]
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], edx
test al, al
je 0x472f7b
movzx edi, al
cmp edi, 0xc
mov dword [esp + 0x38], edi
jl 0x472f52
mov edi, 0xb
mov dword [esp + 0x38], edi
mov ecx, dword [ebp + edi*4 + 0x14a4]
lea eax, [ebp + edi*4 + 0x14a4]
cmp ecx, edx
ja 0x474698
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi*4 + 0x581d84]
add ecx, edx
mov dword [esp + 0x40], eax
mov dword [eax], ecx
mov esi, dword [ebx + 0x30]
cmp word [esi + 0x42], 0
je 0x473142
cmp byte [esi + 0x44], 0
je 0x473142
mov ebx, esi
movzx edx, byte [ebx + 0x44]
movzx eax, word [ebx + 0x42]
call fcn.0041bb30
mov edi, eax
test edi, edi
je 0x47312b
cmp byte [esi + 0x46], 0x32
jne 0x473097
movzx ebx, word [ebp + 0x136]
movzx esi, byte [ebp + 0x12f]
lea ecx, [ebx - 1]
mov eax, esi
call fcn.00464ff0
mov dword [esp + 0x30], eax
mov ecx, ebx
mov eax, esi
call fcn.00464ff0
mov ecx, dword [esp + 0x30]
add ecx, eax
shr ecx, 1
cmp dword [ebp + 0x13c], ecx
jb 0x47312b
mov edx, dword [ebp + 0xe0]
mov eax, dword [edx + 0x28]
mov eax, dword [eax + 0x78]
cmp eax, 0x12
je 0x473009
cmp eax, 0x1e
jne 0x47312b
mov eax, edi
mov edi, ebp
call fcn.004725b0
test al, al
je 0x47312b
movzx eax, byte [ebp + 0x12f]
mov ecx, 0x207
mov word [esp + 0x1c], cx
movzx ecx, word [ebp + 0x136]
dec ecx
call fcn.00464ff0
sub eax, dword [ebp + 0x13c]
push 0xa
lea edx, [esp + 0x20]
push edx
mov ecx, ebp
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], 0
call fcn.004ed0e0
movzx ecx, word [ebp + 0x136]
movzx eax, byte [ebp + 0x12f]
dec ecx
call fcn.00464ff0
mov dword [ebp + 0x13c], eax
mov eax, ebp
call fcn.0047aaa0
mov eax, dword [esp + 0xb5c]
mov ecx, dword [esp + 0xb58]
push 0
push eax
push ecx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
mov al, byte [esp + 0xb64]
test al, al
jne 0x4730cd
mov eax, edi
mov edi, ebp
call fcn.004725b0
test al, al
je 0x47312b
mov edx, dword [esp + 0xb5c]
mov eax, dword [esp + 0xb58]
push 0
push edx
push eax
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
cmp al, 1
jne 0x473104
mov ecx, dword [esp + 0xb60]
push ecx
mov ecx, dword [ebp + 0xe0]
call fcn.0041c6e0
mov esi, eax
test esi, esi
je 0x47312b
cmp dword [esi + 0x1638], 0
jne 0x47312b
call fcn.0049af30
push ebp
mov edx, edi
mov ecx, esi
call fcn.0045b9c0
jmp 0x4730af
cmp al, 2
jne 0x47312b
mov ecx, dword [esp + 0xb60]
push ecx
mov ecx, dword [ebp + 0xe0]
call fcn.0041cfd0
test eax, eax
je 0x47312b
mov ecx, edi
push eax
mov edi, ebp
call fcn.0045c320
jmp 0x4730af
mov eax, dword [esp + 0x40]
test eax, eax
je 0x474698
mov ecx, dword [esp + 0x3c]
mov dword [eax], ecx
jmp 0x474698
mov edx, dword [esp + 0xb5c]
mov edi, dword [esp + 0xb58]
push edx
mov esi, ebp
call fcn.00472bc0
test al, al
jne 0x47469f
mov eax, dword [ebx + 0x30]
movzx ecx, byte [eax + 0x46]
cmp ecx, 0x4a
ja case.0x473177.1
movzx ecx, byte [ecx + 0x474754]
jmp dword [ecx*4 + 0x4746e4]
cmp word [eax + 0x6a], 0
jne 0x473197
cmp word [eax + 0x6c], 0
jne 0x473197
cmp word [eax + 0x6e], 0
je case.0x473177.1
mov eax, ebx
mov eax, dword [eax + 0x30]
movzx ecx, word [eax + 0x6e]
movzx edx, word [eax + 0x6c]
push ecx
movzx ecx, word [eax + 0x6a]
mov eax, ebp
call fcn.00490da0
mov edx, dword [esp + 0xb5c]
push 0
mov eax, edi
push edx
push eax
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
mov ecx, ebx
mov esi, dword [ecx + 0x30]
movzx edx, word [esi + 0x6e]
imul edx, dword [ebp + 0x17c]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fld qword [0x5741b0]
fmul st(1), st(0)
fxch st(1)
call fcn.005250c0
push eax
movzx eax, word [esi + 0x6c]
imul eax, dword [ebp + 0x180]
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fmul st(1)
call fcn.005250c0
movzx ecx, word [esi + 0x6a]
imul ecx, dword [ebp + 0x178]
mov dword [esp + 0x34], ecx
mov edi, eax
fild dword [esp + 0x34]
fmulp st(1)
call fcn.005250c0
mov ecx, eax
mov edx, edi
mov eax, ebp
call fcn.00490da0
jmp 0x4730af
mov ecx, dword [ebp + 0x1d4]
test ecx, ecx
je case.0x473177.1
mov dx, word [eax + 0x4c]
add word [ecx + 0x44], dx
mov edx, dword [ebp + 0x1d4]
mov eax, dword [edx + 0x30]
movzx esi, word [eax + 0x4c]
lea ecx, [edx + 0x46]
mov edi, 6
mov al, byte [ecx]
test al, al
je 0x47329e
movzx eax, al
lea ebx, [eax - 1]
cmp ebx, 0xfe
ja 0x47329e
imul eax, eax, 0xa8
cmp byte [eax + 0x6c4698], 0
je 0x47329e
cmp byte [eax + 0x6c4699], 0
je 0x47329e
lea eax, [eax + 0x6c4674]
test eax, eax
je 0x47329e
movzx eax, word [eax + 0x4c]
add esi, eax
inc ecx
sub edi, 1
jne 0x473262
movzx ecx, word [edx + 0x44]
cmp ecx, esi
jle 0x4732b0
mov word [edx + 0x44], si
mov esi, dword [ebp + 0x1d4]
mov ecx, esi
call fcn.00460c30
movzx edx, byte [ebp + 0x19e]
mov edi, dword [esp + 0xb5c]
mov ebx, eax
cmp ebx, edx
je 0x4732f6
push edi
mov ecx, esi
mov eax, ebp
call fcn.00463030
mov ecx, dword [ebp + 0x1d4]
push edi
mov edx, ebx
call fcn.00462f80
mov esi, ebp
mov byte [ebp + 0x19e], bl
call fcn.00460e40
mov edx, dword [esp + 0xb58]
push 0
push edi
push edx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
movzx eax, byte [ebp + 0x12d]
push eax
call fcn.00419890
test al, al
je case.0x473177.1
mov eax, dword [esp + 0xb5c]
push 0
push eax
mov ecx, edi
push ecx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
cmp byte [ebp + 0x58ea], 0
jne case.0x473177.1
push 0
mov edi, ebp
mov byte [ebp + 0x58ea], 1
call fcn.0048f710
jmp 0x4730af
cmp byte [ebp + 0x58ea], 0
jne case.0x473177.1
movzx ecx, byte [ebp + 0x58e8]
cmp ecx, dword [0x582784]
jge case.0x473177.1
push 1
mov edi, ebp
mov byte [ebp + 0x58ea], 1
call fcn.0048f710
jmp 0x4730af
cmp byte [ebp + 0x58eb], 0
jne case.0x473177.1
push 0
mov eax, ebp
mov byte [ebp + 0x58eb], 1
call fcn.0048fbc0
mov ecx, dword [esp + 0xb5c]
push 0
push ecx
mov edx, edi
push edx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
mov eax, dword [ebp + 0xe0]
mov ecx, dword [eax + 0x28]
mov eax, dword [ecx + 0x1a4]
cmp eax, 5
je case.0x473177.1
cmp eax, 3
je case.0x473177.1
cmp dword [ecx + 0x78], 0x43
je case.0x473177.1
cmp dword [ebp + 0x17f4], 0
je case.0x473177.1
cmp dword [ebp + 0x58b8], 0
jne case.0x473177.1
mov edx, dword [esp + 0xb5c]
mov eax, dword [esp + 0x38]
mov ecx, edi
mov dword [ebp + 0x58fc], ecx
mov dword [ebp + 0x5900], edx
mov dword [ebp + 0x5904], 0x64
mov dword [ebp + 0x5908], eax
mov dword [ebp + 0x58b4], 4
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 0xdc]
add ecx, 0x1388
mov dword [ebp + 0x58b8], ecx
mov edx, 0x221
push 6
lea ecx, [esp + 0x20]
mov word [esp + 0x20], dx
mov dword [esp + 0x22], eax
push ecx
xor edx, edx
mov eax, ebp
call fcn.004d56d0
jmp 0x47469f
mov edi, dword [esp + 0xb60]
test edi, edi
je case.0x473177.1
cmp edi, dword [ebp + 0xdc]
je case.0x473177.1
mov esi, dword [ebp + 0x17f4]
test esi, esi
je case.0x473177.1
lea eax, [esi + 0x118]
push eax
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x10]
xor ebx, ebx
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x473557
add esi, 0x18
mov dword [esp + 0x2c], esi
jmp 0x4734d7
mov edi, dword [esp + 0xb60]
mov edx, dword [esp + 0x2c]
mov esi, dword [edx]
cmp dword [esi + 0xdc], edi
jne 0x473576
movzx edx, word [esi + 0x160]
movzx ecx, word [ebp + 0x136]
movzx edi, dx
mov eax, edi
call fcn.00472880
test al, al
je 0x473576
cmp word [ebp + 0x160], dx
je 0x473523
movzx eax, byte [ebp + 0x12d]
push eax
push edi
call fcn.00430340
add esp, 8
test al, al
je 0x473576
mov eax, dword [esi + 0xe0]
test eax, eax
je 0x47356d
mov ecx, dword [eax + 0x28]
mov eax, dword [ecx + 0x1a4]
cmp eax, 5
je 0x473557
cmp eax, 3
je 0x473557
cmp eax, 6
jne 0x473567
mov eax, dword [esi + 0x1810]
test eax, eax
je 0x473557
cmp eax, dword [ebp + 0x1810]
je 0x47356d
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x473177.1
cmp dword [ecx + 0x78], 0x43
je 0x473557
cmp dword [ebp + 0x58b8], 0
je 0x473596
add dword [esp + 0x2c], 8
inc ebx
cmp ebx, dword [esp + 0x1c]
jl 0x4734d0
mov eax, dword [esp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x473177.1
cmp dword [ebp + 0x587c], 0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xb58]
mov edx, dword [esp + 0xb5c]
mov dword [ebp + 0x58fc], ecx
mov dword [ebp + 0x5900], edx
mov dword [ebp + 0x5904], 0x65
mov dword [ebp + 0x5908], eax
fld dword [esi + 0xd0]
movzx eax, word [esi + 0x160]
fstp dword [esp + 0x1c]
fld dword [esi + 0xd4]
fstp dword [esp + 0x2c]
fld dword [esi + 0xd8]
fstp dword [esp + 0x3c]
jne 0x473630
fld dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
fstp dword [ebp + 0x58c0]
add ecx, 0x1388
fld dword [esp + 0x2c]
mov dword [ebp + 0x58b4], 5
fstp dword [ebp + 0x58c4]
mov dword [ebp + 0x58b8], ecx
fld dword [esp + 0x3c]
mov dword [ebp + 0x58bc], eax
fstp dword [ebp + 0x58c8]
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp + 0xdc]
mov eax, 0x221
push 6
lea edx, [esp + 0x20]
mov word [esp + 0x20], ax
push edx
xor edx, edx
mov eax, ebp
mov dword [esp + 0x26], ecx
call fcn.004d56d0
jmp 0x47469f
cmp dword [ebp + 0x15c0], 0
jne case.0x473177.1
cmp dword [ebp + 0x1638], 0
jne case.0x473177.1
mov ecx, dword [esp + 0xb5c]
push 0
push ecx
mov edx, edi
push edx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
cmp byte [ebp + 0x58dc], 0
jne case.0x473177.1
mov eax, dword [esp + 0x18]
cmp dword [ebp + 0x58e0], eax
ja case.0x473177.1
mov ecx, dword [esp + 0xb5c]
push 0
push ecx
mov edx, edi
push edx
mov ecx, ebp
mov byte [ebp + 0x58dc], 1
call fcn.004728e0
jmp 0x47469f
mov ebx, dword [esp + 0xb60]
lea edi, [ebx - 1]
cmp edi, 3
ja case.0x473177.1
mov esi, dword [ebp + edi*4 + 0x590c]
cmp esi, 0xffff
je case.0x473177.1
movzx ecx, word [ebp + 0x136]
mov eax, esi
call fcn.00472880
test al, al
je case.0x473177.1
movzx eax, word [ebp + 0x160]
cmp eax, esi
je 0x473734
movzx ecx, byte [ebp + 0x12d]
push ecx
push esi
call fcn.00430340
add esp, 8
test al, al
je case.0x473177.1
test edi, edi
je 0x47375c
mov eax, dword [ebp + 0x594c]
cmp eax, 1
jne 0x47374e
cmp edi, 2
jge case.0x473177.1
jmp 0x47375c
cmp eax, 2
je 0x47375c
cmp eax, 3
jne case.0x473177.1
mov eax, dword [0x587960]
cmp esi, dword [eax + 8]
jge case.0x473177.1
imul esi, esi, 0x208
add esi, dword [eax + 0xc]
je case.0x473177.1
fldz
lea edx, [edi + edi*2 + 0x1647]
fcom dword [ebp + edx*4]
lea edx, [ebp + edx*4]
fnstsw ax
test ah, 0x41
jp 0x474688
fild dword [esi + 4]
fstp dword [esp + 0x1c]
fld dword [edx]
fld dword [esp + 0x1c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x474686
lea eax, [edi + edi*2]
fxch st(1)
fcomp dword [ebp + eax*4 + 0x5924]
lea ecx, [ebp + eax*4]
fnstsw ax
test ah, 0x41
jp 0x474688
fld dword [ecx + 0x5924]
fcompp
fnstsw ax
test ah, 5
jp case.0x473177.1
cmp dword [esi + 0x1a4], 0
jne case.0x473177.1
cmp dword [ebp + 0x587c], 0
mov eax, dword [esp + 0xb58]
mov dword [ebp + 0x58fc], eax
mov eax, dword [esp + 0xb5c]
mov dword [ebp + 0x5900], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x5904], ebx
mov dword [ebp + 0x5908], eax
fld dword [edx]
mov edi, dword [ebp + edi*4 + 0x590c]
fstp dword [esp + 0x1c]
fld dword [ecx + 0x5920]
fstp dword [esp + 0x30]
fld dword [ecx + 0x5924]
fstp dword [esp + 0x2c]
jne case.0x473177.1
mov dword [ebp + 0x58b4], 2
fld dword [esp + 0x1c]
mov dword [ebp + 0x58bc], edi
fstp dword [ebp + 0x58c0]
fld dword [esp + 0x30]
fstp dword [ebp + 0x58c4]
fld dword [esp + 0x2c]
fstp dword [ebp + 0x58c8]
jmp 0x473440
lea edx, [esp + 0x78]
lea ebx, [ebp + 0x1c0]
mov dword [esp + 0x30], 0xd
lea esp, [esp]
mov eax, dword [ebx]
test eax, eax
je 0x4738e9
mov ecx, dword [eax + 0x30]
movzx ecx, word [ecx + 0x4c]
mov dword [edx], ecx
lea ecx, [eax + 0x46]
mov esi, 6
mov al, byte [ecx]
test al, al
je 0x4738e3
movzx eax, al
lea edi, [eax - 1]
cmp edi, 0xfe
ja 0x4738e3
imul eax, eax, 0xa8
cmp byte [eax + 0x6c4698], 0
je 0x4738e3
cmp byte [eax + 0x6c4699], 0
je 0x4738e3
lea eax, [eax + 0x6c4674]
test eax, eax
je 0x4738e3
movzx eax, word [eax + 0x4c]
add dword [edx], eax
inc ecx
sub esi, 1
jne 0x4738a7
add ebx, 4
add edx, 4
sub dword [esp + 0x30], 1
jne 0x473890
mov edx, dword [ebp + 0x582c]
mov ecx, 0x70b
lea eax, [esp + 0x50]
mov word [esp + 0x44], cx
mov dword [esp + 0x40], eax
xor ebx, ebx
lea ecx, [ebp + 0x1a6]
lea eax, [ebp + 0x1c0]
mov dword [esp + 0x46], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], eax
lea esp, [esp]
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
test eax, eax
je 0x4739c3
movzx ecx, word [eax + 0x44]
cmp ecx, dword [esp + ebx*4 + 0x78]
je 0x4739c3
movzx edi, word [esp + ebx*4 + 0x78]
mov word [eax + 0x44], di
mov esi, dword [edx]
mov ecx, esi
call fcn.00460c30
movzx edx, byte [ebx + ebp + 0x199]
mov dword [esp + 0x30], eax
cmp eax, edx
je 0x473998
push ebx
mov ecx, esi
mov eax, ebp
call fcn.00463030
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [esp + 0x30]
push ebx
mov eax, ebp
call fcn.00462f80
mov cl, byte [esp + 0x30]
mov esi, ebp
mov byte [ebx + ebp + 0x199], cl
call fcn.00460e40
mov edx, dword [esp + 0x18]
mov ecx, dword [edx]
mov eax, dword [esp + 0x2c]
mov dx, word [eax]
cmp dx, word [ecx + 0x44]
je 0x4739c3
inc dword [esp + 0x3c]
mov word [eax], di
mov eax, dword [esp + 0x40]
mov byte [eax - 1], bl
mov word [eax], di
add eax, 3
mov dword [esp + 0x40], eax
add dword [esp + 0x2c], 2
add dword [esp + 0x18], 4
inc ebx
cmp ebx, 0xd
jl 0x473930
mov cl, byte [esp + 0x3c]
mov eax, dword [ebp + 0x140]
push 0x32
lea edx, [esp + 0x48]
mov byte [esp + 0x52], cl
mov ecx, dword [0x58796c]
push edx
mov dword [esp + 0x52], eax
call fcn.004ed2d0
mov ecx, dword [ebp + 0x140]
mov eax, 0x554
mov word [esp + 0x1c], ax
mov al, 0xff
push 8
lea edx, [esp + 0x20]
mov dword [esp + 0x24], ecx
push edx
mov ecx, ebp
mov byte [esp + 0x26], al
mov byte [esp + 0x27], al
call fcn.004ed0e0
jmp 0x473079
mov eax, dword [esp + 0xb60]
test eax, eax
je case.0x473177.1
cmp eax, dword [ebp + 0xdc]
je case.0x473177.1
mov ecx, dword [ebp + 0xe0]
push eax
call fcn.0041c6e0
test eax, eax
je case.0x473177.1
cmp dword [eax + 0x1444], 1
jne case.0x473177.1
cmp dword [eax + 0x1448], 2
je case.0x473177.1
mov dl, byte [ebp + 0x12d]
cmp dl, byte [eax + 0x12d]
jne case.0x473177.1
push 0
push eax
mov ecx, ebp
call fcn.00466bd0
mov eax, dword [esp + 0xb5c]
push 0
mov ecx, edi
push eax
push ecx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
movzx edi, word [eax + 0x34]
movsx ecx, di
mov esi, 0x1091878
call fcn.004d7690
test al, al
je case.0x473177.1
mov edx, 0x3e8
cmp di, dx
mov eax, ecx
jl 0x473b9d
cdq
mov ecx, 0x3e8
idiv ecx
lea ebx, [edx*8 + 0x109b6cc]
xor edx, edx
cmp dword [ebp + 0x130c], 1
jl 0x473b18
mov esi, dword [ebp + 0x130c]
lea eax, [ebp + 0x220]
lea esp, [esp]
mov ecx, 0x18
cmp dword [eax], 0
jne 0x473b0b
inc edx
add eax, 4
sub ecx, 1
jne 0x473b05
sub esi, 1
jne 0x473b00
cmp dword [ebx], edx
jg case.0x473177.1
lea esi, [esp + 0xac]
call fcn.004bd3c0
push 0
call fcn.0051c2b7
mov edi, dword [ebp + 0x57f8]
xor edi, eax
add esp, 4
mov eax, esi
mov dword [esp + 0x20], edx
call fcn.004bd500
xor esi, esi
cmp dword [ebx], esi
jle 0x473079
push 0xf4240
lea eax, [esp + 0xb0]
call fcn.004bd3e0
mov edx, dword [ebx + 4]
cmp eax, dword [edx + esi*8 + 4]
lea ecx, [edx + esi*8]
jae 0x473b93
mov eax, dword [ecx]
mov edi, 0x1091878
call fcn.004d5f30
test eax, eax
je 0x473b93
cmp dword [eax + 0xa0], 0x18
je 0x473b93
push 1
push eax
mov ecx, ebp
call fcn.0046bd10
inc esi
cmp esi, dword [ebx]
jl 0x473b53
jmp 0x473079
mov ecx, 0x1091878
call fcn.004d7620
test eax, eax
je 0x473bfa
mov edi, 0x1091878
call fcn.004d5f30
test eax, eax
je case.0x473177.1
cmp dword [eax + 0xa0], 0x18
je case.0x473177.1
push 1
push eax
mov ecx, ebp
call fcn.0046bd10
test al, al
je case.0x473177.1
mov edx, dword [esp + 0xb5c]
mov eax, dword [esp + 0xb58]
push 0
push edx
push eax
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
mov ecx, dword [esp + 0xb5c]
mov edx, dword [esp + 0xb58]
push 0
push ecx
push edx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
movzx eax, word [eax + 0x34]
test ax, ax
jle case.0x473177.1
movzx ecx, word [ebp + 0x164]
movzx edx, cx
mov esi, 0xffff
sub esi, edx
movsx edx, ax
cmp edx, esi
jg case.0x473177.1
add ecx, eax
mov word [ebp + 0x164], cx
mov ecx, ebp
call fcn.00492fe0
mov eax, dword [esp + 0xb5c]
push 0
mov ecx, edi
push eax
push ecx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
mov edx, dword [esp + 0xb5c]
push 0
push edx
mov eax, edi
push eax
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
cmp dword [ebp + 0x587c], 0
jne case.0x473177.1
cmp dword [ebp + 0x68], 0xffffffff
je case.0x473177.1
movzx ecx, byte [ebp + 0x12d]
fldz
shl ecx, 4
mov eax, dword [ecx + 0x56e668]
mov ecx, dword [esp + 0xb5c]
mov dword [ebp + 0x5900], ecx
fst dword [ebp + 0x58c0]
mov ecx, dword [esp + 0x18]
fst dword [ebp + 0x58c4]
mov edx, edi
fstp dword [ebp + 0x58c8]
mov dword [ebp + 0x58fc], edx
mov edx, dword [esp + 0x38]
add ecx, 0x1388
mov dword [ebp + 0x5908], edx
mov dword [ebp + 0x58bc], eax
mov eax, dword [ebp + 0xdc]
mov dword [ebp + 0x58b8], ecx
mov edx, 0x221
push 6
lea ecx, [esp + 0x20]
mov word [esp + 0x20], dx
mov dword [esp + 0x22], eax
push ecx
xor edx, edx
mov eax, ebp
mov dword [ebp + 0x5904], 0xfe
mov dword [ebp + 0x58b4], 6
call fcn.004d56d0
mov eax, dword [ebp + 0x582c]
push 6
lea ecx, [esp + 0x34]
mov edx, 0x816
push ecx
mov ecx, dword [0x587968]
mov word [esp + 0x38], dx
mov dword [esp + 0x3a], eax
call fcn.004ed2d0
jmp 0x47469f
movzx edx, byte [ebp + 0x12d]
movzx ecx, word [ebp + 0x136]
mov esi, edx
shl esi, 4
mov edi, dword [esi + 0x56e608]
mov eax, edi
call fcn.00472880
test al, al
je case.0x473177.1
push edx
push edi
call fcn.00430340
add esp, 8
test al, al
je case.0x473177.1
mov ecx, dword [0x587960]
cmp edi, dword [ecx + 8]
jge case.0x473177.1
mov eax, edi
imul eax, eax, 0x208
add eax, dword [ecx + 0xc]
je case.0x473177.1
cmp dword [eax + 0x1a4], 0
jne case.0x473177.1
mov edx, dword [esp + 0xb58]
mov eax, dword [esp + 0xb5c]
mov ecx, dword [esp + 0x38]
mov dword [ebp + 0x58fc], edx
mov dword [ebp + 0x5900], eax
mov dword [ebp + 0x5904], 0xff
mov dword [ebp + 0x5908], ecx
fld dword [esi + 0x56e60c]
fstp dword [esp + 0x1c]
fld dword [esi + 0x56e610]
fstp dword [esp + 0x30]
fld dword [esi + 0x56e614]
cmp dword [ebp + 0x587c], 0
fstp dword [esp + 0x2c]
jne case.0x473177.1
fld dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, dword [ebp + 0xdc]
fstp dword [ebp + 0x58c0]
fld dword [esp + 0x30]
add edx, 0x1388
mov dword [ebp + 0x58b8], edx
fstp dword [ebp + 0x58c4]
fld dword [esp + 0x2c]
mov eax, 0x221
push 6
fstp dword [ebp + 0x58c8]
lea edx, [esp + 0x20]
mov word [esp + 0x20], ax
push edx
xor edx, edx
mov eax, ebp
mov dword [ebp + 0x58b4], 3
mov dword [ebp + 0x58bc], edi
mov dword [esp + 0x26], ecx
call fcn.004d56d0
jmp 0x47469f
movzx edx, byte [ebp + 0x12d]
movzx ecx, word [ebp + 0x136]
mov esi, edx
shl esi, 4
mov edi, dword [esi + 0x56e628]
mov eax, edi
call fcn.00472880
test al, al
je case.0x473177.1
push edx
push edi
call fcn.00430340
add esp, 8
test al, al
je case.0x473177.1
mov ecx, dword [0x587960]
cmp edi, dword [ecx + 8]
jge case.0x473177.1
mov eax, edi
imul eax, eax, 0x208
add eax, dword [ecx + 0xc]
je case.0x473177.1
cmp dword [eax + 0x1a4], 0
jne case.0x473177.1
cmp dword [ebp + 0x587c], 0
mov eax, dword [esp + 0xb58]
mov ecx, dword [esp + 0xb5c]
mov edx, dword [esp + 0x38]
mov dword [ebp + 0x58fc], eax
mov dword [ebp + 0x5900], ecx
mov dword [ebp + 0x5904], 0xff
mov dword [ebp + 0x5908], edx
fld dword [esi + 0x56e62c]
fstp dword [esp + 0x1c]
fld dword [esi + 0x56e630]
fstp dword [esp + 0x30]
fld dword [esi + 0x56e634]
fstp dword [esp + 0x2c]
jne case.0x473177.1
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0xdc]
fstp dword [ebp + 0x58c0]
fld dword [esp + 0x30]
add eax, 0x1388
mov dword [ebp + 0x58b8], eax
fstp dword [ebp + 0x58c4]
fld dword [esp + 0x2c]
push 6
lea eax, [esp + 0x20]
fstp dword [ebp + 0x58c8]
mov ecx, 0x221
mov dword [esp + 0x22], edx
push eax
xor edx, edx
mov eax, ebp
mov dword [ebp + 0x58b4], 3
mov dword [ebp + 0x58bc], edi
mov word [esp + 0x24], cx
call fcn.004d56d0
jmp 0x47469f
movzx edx, byte [ebp + 0x12d]
movzx ecx, word [ebp + 0x136]
mov esi, edx
shl esi, 4
mov edi, dword [esi + 0x56e648]
mov eax, edi
call fcn.00472880
test al, al
je case.0x473177.1
push edx
push edi
call fcn.00430340
add esp, 8
test al, al
je case.0x473177.1
mov ecx, dword [0x587960]
cmp edi, dword [ecx + 8]
jge case.0x473177.1
mov eax, edi
imul eax, eax, 0x208
add eax, dword [ecx + 0xc]
je case.0x473177.1
cmp dword [eax + 0x1a4], 0
jne case.0x473177.1
cmp dword [ebp + 0x587c], 0
mov ecx, dword [esp + 0xb58]
mov edx, dword [esp + 0xb5c]
mov eax, dword [esp + 0x38]
mov dword [ebp + 0x58fc], ecx
mov dword [ebp + 0x5900], edx
mov dword [ebp + 0x5904], 0xff
mov dword [ebp + 0x5908], eax
fld dword [esi + 0x56e64c]
fstp dword [esp + 0x1c]
fld dword [esi + 0x56e650]
fstp dword [esp + 0x30]
fld dword [esi + 0x56e654]
fstp dword [esp + 0x2c]
jne case.0x473177.1
mov dword [ebp + 0x58b4], 3
jmp 0x47384e
movzx edx, byte [ebp + 0x12d]
movzx ecx, word [ebp + 0x136]
mov esi, edx
shl esi, 4
mov edi, dword [esi + 0x56e6a8]
mov eax, edi
call fcn.00472880
test al, al
je case.0x473177.1
push edx
push edi
call fcn.00430340
add esp, 8
test al, al
je case.0x473177.1
mov ecx, dword [0x587960]
cmp edi, dword [ecx + 8]
jge case.0x473177.1
mov eax, edi
imul eax, eax, 0x208
add eax, dword [ecx + 0xc]
je case.0x473177.1
cmp dword [eax + 0x1a4], 0
jne case.0x473177.1
mov edx, dword [esp + 0xb58]
mov eax, dword [esp + 0xb5c]
mov ecx, dword [esp + 0x38]
mov dword [ebp + 0x58fc], edx
mov dword [ebp + 0x5900], eax
mov dword [ebp + 0x5904], 0xff
mov dword [ebp + 0x5908], ecx
fld dword [esi + 0x56e6ac]
fstp dword [esp + 0x1c]
fld dword [esi + 0x56e6b0]
fstp dword [esp + 0x30]
fld dword [esi + 0x56e6b4]
jmp 0x473e05
movzx edx, byte [ebp + 0x12d]
movzx ecx, word [ebp + 0x136]
mov eax, edx
shl eax, 4
mov ebx, dword [eax + 0x56e688]
mov eax, ebx
call fcn.00472880
test al, al
je case.0x473177.1
push edx
push ebx
call fcn.00430340
add esp, 8
test al, al
je case.0x473177.1
mov edi, ebp
lea esi, [esp + 0x30]
call fcn.00431eb0
mov dword [esp + 0xb4c], 0
mov ecx, dword [0x587960]
cmp ebx, dword [ecx + 8]
jge 0x4742b6
mov eax, ebx
imul eax, eax, 0x208
add eax, dword [ecx + 0xc]
je 0x4742b6
cmp dword [eax + 0x1a4], 6
jne 0x4742b6
mov eax, dword [ebp + 0x1810]
test eax, eax
je 0x4742b6
cmp byte [eax + 0x48], 0x1e
ja 0x4742b6
cmp byte [eax + 0x55], 0
je 0x4742b6
cmp byte [eax + 0x54], 1
jne 0x4742b6
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xb58]
mov edx, dword [esp + 0xb5c]
mov dword [ebp + 0x5908], eax
movzx eax, byte [ebp + 0x12d]
mov dword [ebp + 0x58fc], ecx
mov dword [ebp + 0x5900], edx
mov ecx, eax
mov dword [ebp + 0x5904], 0xff
shl ecx, 4
mov edx, eax
shl edx, 4
fld dword [ecx + 0x56e68c]
shl eax, 4
cmp dword [ebp + 0x587c], 0
fstp dword [esp + 0x1c]
fld dword [edx + 0x56e690]
fstp dword [esp + 0x2c]
fld dword [eax + 0x56e694]
fstp dword [esp + 0x38]
jne 0x4742b6
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0xdc]
fstp dword [ebp + 0x58c0]
fld dword [esp + 0x2c]
add eax, 0x1388
mov dword [ebp + 0x58b8], eax
fstp dword [ebp + 0x58c4]
fld dword [esp + 0x38]
push 6
lea eax, [esp + 0x20]
fstp dword [ebp + 0x58c8]
mov ecx, 0x221
mov dword [esp + 0x22], edx
push eax
xor edx, edx
mov eax, ebp
mov dword [ebp + 0x58b4], 3
mov dword [ebp + 0x58bc], ebx
mov word [esp + 0x24], cx
call fcn.004d56d0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x47469f
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47469f
mov dword [esp + 0xb4c], 0xffffffff
mov eax, dword [esp + 0x30]
test eax, eax
je case.0x473177.1
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x473177.1
movzx ebx, word [ebp + 0x136]
movzx esi, byte [ebp + 0x12f]
lea edi, [ebx - 1]
mov ecx, edi
mov eax, esi
call fcn.00464ff0
mov dword [esp + 0x1c], eax
mov ecx, ebx
mov eax, esi
call fcn.00464ff0
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebp + 0x13c]
add ecx, eax
shr ecx, 1
cmp ebx, ecx
jb case.0x473177.1
mov ecx, dword [ebp + 0xe0]
mov edx, dword [ecx + 0x28]
mov eax, dword [edx + 0x78]
cmp eax, 0x12
je 0x474335
cmp eax, 0x1e
jne case.0x473177.1
mov eax, 0x207
mov word [esp + 0x1c], ax
mov ecx, edi
mov eax, esi
call fcn.00464ff0
push 0xa
lea ecx, [esp + 0x20]
sub eax, ebx
push ecx
mov ecx, ebp
mov dword [esp + 0x26], eax
mov dword [esp + 0x2a], 0
call fcn.004ed0e0
movzx ecx, word [ebp + 0x136]
movzx eax, byte [ebp + 0x12f]
dec ecx
call fcn.00464ff0
mov dword [ebp + 0x13c], eax
mov eax, ebp
call fcn.0047aaa0
mov edx, dword [esp + 0xb5c]
mov eax, dword [esp + 0xb58]
push 0
push edx
push eax
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
cmp dword [ebp + 0x5978], 0
jne case.0x473177.1
mov edx, dword [ebp + 0x582c]
mov ecx, 0x616
push 6
lea eax, [esp + 0x20]
mov word [esp + 0x20], cx
mov ecx, dword [0x58796c]
push eax
mov dword [ebp + 0x5978], 1
mov dword [esp + 0x26], edx
call fcn.004ed2d0
mov ecx, dword [esp + 0xb5c]
push 0
push ecx
mov edx, edi
push edx
mov ecx, ebp
call fcn.004728e0
jmp 0x47469f
mov edi, ebp
lea esi, [esp + 0x18]
call fcn.00431eb0
mov eax, 1
mov dword [esp + 0xb4c], eax
cmp dword [ebp + 0x1804], eax
je 0x474440
mov dword [esp + 0xb4c], 0xffffffff
mov eax, dword [esp + 0x18]
test eax, eax
je case.0x473177.1
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x473177.1
mov eax, dword [ebp + 0x1810]
test eax, eax
je 0x474418
push eax
mov ebx, ebp
call fcn.004371a0
test eax, eax
je 0x474418
mov eax, dword [esp + 0xb5c]
mov ecx, dword [esp + 0xb58]
push 0
push eax
push ecx
mov ecx, ebp
call fcn.004728e0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x47469f
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x47469f
movzx eax, word [eax + 0x34]
mov dword [esp + 0x1c], eax
test ax, ax
jle case.0x473177.1
mov edx, dword [ebp + 0xe0]
mov ebx, dword [edx + 0x28]
xor edi, edi
cmp dword [ebx + 0x50], edi
jle 0x4744df
mov esi, dword [ebx + 0x54]
add esi, 4
mov eax, esi
lea ecx, [ebp + 0xd0]
call fcn.0041b8c0
fcomp qword [0x5740e8]
fnstsw ax
test ah, 0x41
jnp 0x4744df
mov eax, dword [ebp + 0xe0]
mov ecx, dword [eax + 0x28]
inc edi
add esi, 0x30
cmp edi, dword [ecx + 0x50]
jl 0x4744b3
movsx eax, word [esp + 0x1c]
mov cx, word [ebx + 0x78]
call fcn.004727d0
test eax, eax
je case.0x473177.1
call fcn.00472860
mov dword [esp + 0x18], eax
test eax, eax
je case.0x473177.1
mov edx, eax
cmp dword [edx], 0
je case.0x473177.1
mov cx, word [eax + 0x804]
cmp cx, word [eax + 0x806]
ja case.0x473177.1
mov edi, eax
movzx esi, word [edi + 0x804]
call fcn.0051bd66
movzx ecx, word [edi + 0x806]
movzx edx, si
sub ecx, edx
cdq
inc ecx
idiv ecx
add edx, esi
movzx eax, dx
test eax, eax
jle 0x473079
mov dword [esp + 0x30], eax
call fcn.0051bd66
cdq
idiv dword [edi]
lea ebx, [ebp + 0xd0]
movzx eax, word [edi + edx*4 + 4]
movzx esi, ax
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0xe0]
push eax
mov eax, 1
mov ecx, esi
call fcn.004245a0
test al, al
je 0x474676
mov eax, esi
mov ecx, 0x587c68
call fcn.00408c00
lea esi, [esp + 0xa74]
mov edi, ebp
mov ebx, eax
mov byte [esp + 0xb01], 0
call fcn.00467f60
mov ecx, 0x430
mov word [esp + 0xa74], cx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x3c]
mov edx, dword [ecx + 0x38]
mov dword [esp + 0xacf], eax
mov eax, dword [ecx + 0x30]
mov dword [esp + 0xacb], edx
mov edx, dword [eax]
add eax, 4
lea esi, [esp + 0xad7]
mov dword [esp + 0xad3], edx
sub esi, eax
lea ebx, [ebx]
mov dl, byte [eax]
mov byte [esi + eax], dl
inc eax
test dl, dl
jne 0x4745f0
mov eax, dword [ecx + 0x46]
mov dx, word [ecx + 0x4a]
mov dword [esp + 0xaf7], eax
mov eax, dword [ecx + 0x64]
mov word [esp + 0xafb], dx
mov dword [esp + 0xafd], eax
lea eax, [ecx + 0x4c]
lea edx, [esp + 0xb01]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x474626
mov cx, word [esp + 0x1c]
lea eax, [ebx + 2]
lea edx, [esp + 0xb18]
mov word [esp + 0xb16], cx
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x474650
mov ecx, dword [0x587974]
push 0xc4
lea edx, [esp + 0xa78]
push edx
call fcn.004ed210
mov edi, dword [esp + 0x18]
sub dword [esp + 0x30], 1
jne 0x474554
jmp 0x473079
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x40]
test eax, eax
je 0x474698
mov edx, dword [esp + 0x3c]
mov dword [eax], edx
mov ecx, ebp
call fcn.00472b80
mov ecx, dword [esp + 0xb44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb28]
xor ecx, esp
call fcn.0051a8be
add esp, 0xb3c
ret 0x14