Function at 0x4b3d80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb4
push esi
mov esi, ecx
mov eax, dword [esi + 0x618]
test eax, eax
jne 0x4b3da7
mov eax, dword [esi + 0x61c]
test eax, eax
jne 0x4b3da7
mov eax, dword [esi + 0x620]
test eax, eax
je 0x4b3e05
mov ecx, dword [0x781e94]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test al, al
jne 0x4b3dd1
mov esi, dword [esi + 0x638]
test esi, esi
je 0x4b3e05
mov ecx, esi
call fcn.005dfc20
xor al, al
pop esi
add esp, 0xb4
ret
mov ecx, esi
call fcn.004aeee0
test al, al
je 0x4b3e05
mov ecx, dword [esi + 0x638]
call fcn.005dfb20
test al, al
je 0x4b3e05
mov ecx, dword [0x781e94]
mov edx, dword [ecx]
call dword [edx + 0x40]
test al, al
jne 0x4b3e0f
mov ecx, dword [esi + 0x638]
call fcn.005dfc20
xor al, al
pop esi
add esp, 0xb4
ret
push ebx
push ebp
push edi
xor ebx, ebx
push ebx
push 0x3f800000
push ebx
mov eax, 0x100
push 1
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], eax
mov eax, dword [0x781e94]
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov eax, dword [eax + 0x1dc]
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0x90]
call fcn.0041b320
fld dword [0x700490]
fdiv dword [esi + 0x440]
mov al, byte [eax + 0x9d2]
mov edi, dword [0x77da48]
shr al, 2
and al, 1
mov byte [esp + 0x27], al
mov dword [esp + 0x14], edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
fld st(0)
fmul dword [esi + 0x468]
fstp dword [esp + 0x48]
fmul dword [esi + 0x46c]
fstp dword [esp + 0x4c]
fld dword [esp + 0x48]
fmul dword [0x7092f8]
call fcn.0065ea1c
fld dword [esp + 0x4c]
fmul dword [0x7092f8]
mov ebx, eax
call fcn.0065ea1c
mov ebp, eax
lea eax, [edi + 0x458]
mov dword [esp + 0x1c], eax
mov eax, dword [eax]
mov ecx, dword [eax + 0x34]
mov eax, dword [eax + 0x38]
mov dword [esp + 0x2c], eax
mov eax, ebx
cdq
sub eax, edx
sar eax, 1
sub ecx, eax
mov eax, ebp
cdq
sub eax, edx
mov dword [esp + 0x84], ecx
add ecx, ebx
mov edx, eax
mov eax, dword [esp + 0x2c]
sar edx, 1
mov dword [esp + 0x8c], ecx
sub eax, edx
lea ecx, [eax + ebp]
mov dword [esp + 0x90], ecx
mov ecx, dword [edi + 0x74]
shl ecx, 6
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x78]
shl ecx, 5
xor edx, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x84]
cmp ecx, edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
jge 0x4b3f44
neg ecx
mov dword [esp + 0x5c], ecx
test eax, eax
jge 0x4b3f4e
neg eax
mov dword [esp + 0x60], eax
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x88]
call fcn.00426cc0
fild dword [esp + 0x84]
fstp dword [esp + 0x50]
fld dword [0x700490]
fdiv dword [esp + 0x48]
fst dword [esp + 0x34]
fmul dword [esp + 0x50]
call fcn.0065ea1c
fld dword [0x700490]
fdiv dword [esp + 0x4c]
mov dword [esp + 0x38], eax
fstp dword [esp + 0x30]
fild dword [esp + 0x88]
fst dword [esp + 0x18]
fmul dword [esp + 0x30]
call fcn.0065ea1c
fild dword [esp + 0x8c]
mov dword [esp + 0x3c], eax
fst dword [esp + 0x7c]
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x90]
mov edi, eax
fst dword [esp + 0x54]
fmul dword [esp + 0x30]
call fcn.0065ea1c
fild dword [esp + 0x5c]
mov ebx, eax
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x60]
mov ebp, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x618]
test eax, eax
mov dword [esp + 0x28], ebp
je 0x4b40c6
fld dword [0x700490]
fdiv dword [esi + 0x468]
fld dword [esp + 0x50]
fmul st(1)
call fcn.0065ea1c
fld dword [0x700490]
fdiv dword [esi + 0x46c]
mov dword [esp + 0x5c], eax
fst dword [esp + 0x10]
fmul dword [esp + 0x18]
call fcn.0065ea1c
fmul dword [esp + 0x7c]
mov dword [esp + 0x60], eax
call fcn.0065ea1c
fld dword [esp + 0x10]
fmul dword [esp + 0x54]
mov ebp, eax
mov dword [esp + 0x64], ebp
call fcn.0065ea1c
mov edx, dword [esp + 0x38]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
sub ebp, dword [esp + 0x5c]
mov dword [esp + 0x10], ebp
fidiv dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov edx, ebx
sub edx, ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x68], eax
sub eax, ecx
mov ecx, dword [esi + 0x618]
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x50]
push edx
lea edx, [esp + 0x68]
push edx
mov edx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
push edx
fstp dword [esp + 0x60]
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fidiv dword [esp + 0x28]
fstp dword [esp + 0x64]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [esi + 0x61c]
test eax, eax
je 0x4b4191
fld dword [0x700490]
fdiv dword [esi + 0x468]
fld dword [esp + 0x50]
fmul st(1)
call fcn.0065ea1c
fld dword [0x700490]
fdiv dword [esi + 0x46c]
mov dword [esp + 0x5c], eax
fst dword [esp + 0x10]
fmul dword [esp + 0x18]
call fcn.0065ea1c
fmul dword [esp + 0x7c]
mov dword [esp + 0x60], eax
call fcn.0065ea1c
fld dword [esp + 0x10]
fmul dword [esp + 0x54]
mov ebp, eax
mov dword [esp + 0x64], ebp
call fcn.0065ea1c
mov edx, dword [esp + 0x38]
mov ecx, edi
sub ecx, edx
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
sub ebp, dword [esp + 0x5c]
mov dword [esp + 0x10], ebp
fidiv dword [esp + 0x10]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
mov edx, ebx
sub edx, ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x68], eax
sub eax, ecx
mov ecx, dword [esi + 0x61c]
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x50]
push edx
lea edx, [esp + 0x68]
push edx
mov edx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
push edx
fstp dword [esp + 0x60]
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fidiv dword [esp + 0x28]
fstp dword [esp + 0x64]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [esi + 0x620]
test eax, eax
je 0x4b4256
fld dword [0x700490]
fdiv dword [esi + 0x468]
fld dword [esp + 0x50]
fmul st(1)
call fcn.0065ea1c
fld dword [0x700490]
fdiv dword [esi + 0x46c]
mov dword [esp + 0x5c], eax
fst dword [esp + 0x10]
fmul dword [esp + 0x18]
call fcn.0065ea1c
fmul dword [esp + 0x7c]
mov dword [esp + 0x60], eax
call fcn.0065ea1c
fld dword [esp + 0x10]
fmul dword [esp + 0x54]
mov ebp, eax
mov dword [esp + 0x64], ebp
call fcn.0065ea1c
sub edi, dword [esp + 0x38]
mov dword [esp + 0x10], edi
fild dword [esp + 0x10]
sub ebp, dword [esp + 0x5c]
mov dword [esp + 0x10], ebp
fidiv dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
sub ebx, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x10], ebx
sub eax, ecx
mov ecx, dword [esi + 0x620]
push 0
push 0xffffffffffffffff
lea edx, [esp + 0x50]
push edx
lea edx, [esp + 0x68]
push edx
mov edx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x3c]
push edx
fstp dword [esp + 0x60]
fild dword [esp + 0x28]
mov dword [esp + 0x28], eax
fidiv dword [esp + 0x28]
fstp dword [esp + 0x64]
mov eax, dword [ecx]
call dword [eax + 8]
call fcn.004b3d20
mov ecx, eax
call fcn.004b3710
mov eax, dword [esi + 0x1d4]
mov ecx, dword [esi + 0x1d8]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], ecx
call fcn.00636960
mov ecx, dword [eax + 0x15c]
mov edx, dword [eax + 0x160]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x3b4]
mov dword [esp + 0x4c], edx
cmp eax, dword [ecx + 0x3b8]
mov dword [esp + 0x50], eax
je 0x4b45b1
lea esp, [esp]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 0x5c]
test byte [eax + 0x1e], 0x20
jne 0x4b4594
mov eax, dword [esp + 0x50]
mov ebx, dword [eax]
mov eax, dword [ebx + 0x34]
mov edi, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov ecx, dword [ebx + 0x38]
sub eax, edi
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
sub ecx, edx
mov dword [esp + 0x58], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x58]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov edx, dword [esp + 0x2c]
mov ebp, eax
mov eax, dword [esp + 0x28]
add ebp, edx
mov edx, dword [ebx]
mov ecx, ebx
add edi, eax
call dword [edx + 0x5c]
mov cl, byte [eax + 9]
test cl, cl
jns 0x4b43c5
mov eax, dword [esi + 0x62c]
test eax, eax
je 0x4b43c5
lea eax, [ebp - 0xa]
push 0
lea ebx, [edi - 0xa]
push 0xffffffffffffffff
mov dword [esp + 0xb0], eax
add edi, 0x14
add ebp, 0x14
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esp + 0xb0]
push eax
push ecx
mov ecx, dword [esi + 0x62c]
push ebx
call fcn.0041f130
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x5c]
add edx, ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x4c]
add ebx, eax
add edi, eax
mov eax, dword [esp + 0x48]
add ebp, ecx
push edx
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebp
call fcn.00426c70
test al, al
je 0x4b4594
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
add edx, 4
push 0
push edx
call fcn.004b3d20
mov ecx, eax
call fcn.004b3ca0
jmp 0x4b4594
mov ebx, dword [esp + 0x50]
mov ecx, dword [ebx]
mov eax, dword [ecx]
call dword [eax + 0x5c]
test byte [eax + 9], 0x20
je 0x4b447b
mov eax, dword [esi + 0x630]
test eax, eax
je 0x4b447b
lea ecx, [ebp - 0xa]
push 0
lea ebx, [edi - 0xa]
push 0xffffffffffffffff
mov dword [esp + 0xc0], ecx
add edi, 0x14
add ebp, 0x14
call sub.WINMM.dll_timeGetTime
mov edx, dword [esp + 0xc0]
mov ecx, dword [esi + 0x630]
push eax
push edx
push ebx
call fcn.0041f130
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xb8]
add ebx, eax
add edi, eax
mov eax, dword [esp + 0x4c]
add edx, ecx
add ebp, ecx
mov ecx, dword [esp + 0x48]
push eax
push ecx
lea ecx, [esp + 0x74]
mov dword [esp + 0x74], ebx
mov dword [esp + 0x7c], edi
mov dword [esp + 0x78], edx
mov dword [esp + 0x80], ebp
call fcn.00426c70
test al, al
je 0x4b4594
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
add eax, 4
push 0
push eax
call fcn.004b3d20
mov ecx, eax
call fcn.004b3ca0
jmp 0x4b4594
mov al, byte [esp + 0x27]
test al, al
je 0x4b4594
mov ebx, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x18], 0
call fcn.004422a0
mov edx, dword [ebx]
mov ecx, ebx
mov dword [esp + 0x10], eax
call dword [edx + 0x10]
mov byte [esp + 0x83], al
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4b4528
add eax, 0xfffffffe
cmp eax, 3
ja case.0x4b453e.9
jmp dword [eax*4 + 0x4b5528]
mov ecx, ebx
call fcn.00442280
cmp eax, 0xffffffff
je 0x4b4500
mov ecx, dword [0x77da48]
push eax
call fcn.00412cb0
test eax, eax
je 0x4b4500
movzx eax, byte [eax + 0x8ad]
mov ecx, dword [0x77d8e8]
cmp dword [ecx + 0x110], eax
jne 0x4b4500
mov dword [esp + 0x18], 0xff800080
jmp case.0x4b453e.9
mov dword [esp + 0x18], 0xffcc00ff
jmp case.0x4b453e.9
mov dword [esp + 0x18], 0xff0030ff
jmp case.0x4b453e.9
mov dword [esp + 0x18], 0xffff33cc
jmp case.0x4b453e.9
mov dword [esp + 0x18], 0xff66ffcc
jmp case.0x4b453e.9
mov ebx, dword [ebx + 0x64]
test ebx, ebx
je case.0x4b453e.9
mov ebx, dword [ebx + 0x24]
cmp ebx, 0x21
ja case.0x4b453e.9
movzx edx, byte [ebx + 0x4b5544]
jmp dword [edx*4 + 0x4b5538]
mov dword [esp + 0x18], 0xffff0000
jmp case.0x4b453e.9
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [esp + 0x18]
add edi, 0xfffffffe
add ebp, 0xfffffffe
test eax, eax
je 0x4b4594
mov al, byte [esp + 0x83]
test al, al
jne 0x4b4594
mov eax, dword [esi + 0x53c]
test eax, eax
je 0x4b4594
mov eax, dword [esp + 0x18]
push 0
push eax
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
push eax
push ebp
push edi
call fcn.0041f130
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x3b8]
add eax, 4
cmp eax, edx
mov dword [esp + 0x50], eax
jne 0x4b42b0
mov eax, dword [esi + 0x4f8]
xor edi, edi
cmp eax, edi
je 0x4b45c6
push eax
call fcn.0065d0d4
add esp, 4
mov dword [esi + 0x4f8], edi
mov dword [esi + 0x4fc], edi
mov dword [esi + 0x500], edi
mov eax, dword [esi + 0x478]
cmp eax, edi
je 0x4b45eb
push eax
call fcn.0065d0d4
add esp, 4
mov dword [esi + 0x478], edi
mov dword [esi + 0x47c], edi
mov dword [esi + 0x480], edi
mov eax, dword [esi + 0x508]
cmp eax, edi
je 0x4b4610
push eax
call fcn.0065d0d4
add esp, 4
mov al, byte [esp + 0x27]
test al, al
mov dword [esi + 0x508], edi
mov dword [esi + 0x50c], edi
mov dword [esi + 0x510], edi
mov dword [esp + 0x7c], edi
je 0x4b467b
lea ecx, [esi + 0x484]
call fcn.00494530
lea ecx, [esi + 0x494]
call fcn.00494530
lea ecx, [esi + 0x4a4]
call fcn.00494530
lea ecx, [esi + 0x4b4]
call fcn.00494530
lea ecx, [esi + 0x4c4]
call fcn.00494530
lea ecx, [esi + 0x4d4]
call fcn.00494530
lea ecx, [esi + 0x4e4]
call fcn.00494530
mov eax, dword [esp + 0x1c]
mov edx, dword [0x77e1f8]
mov ecx, dword [eax]
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 0x3c4]
mov dword [esp + 0x10], edx
mov edx, dword [ecx + 0x126a]
cmp edi, dword [eax + 0x3c8]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], edi
je 0x4b4853
nop
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x5c]
test byte [eax + 0x1e], 0x20
jne 0x4b4836
mov edi, dword [edi]
mov ecx, dword [edi + 0x3c]
shr ecx, 3
test cl, 1
mov ebx, edi
mov dword [esp + 0x18], ebx
je 0x4b46dd
mov dword [esp + 0x7c], ebx
jmp 0x4b4836
mov ecx, edi
call fcn.004202c0
test al, al
je 0x4b46f8
lea edx, [esp + 0x18]
push edx
lea ecx, [esi + 0x504]
jmp 0x4b4831
mov ebp, dword [0x77e200]
test ebp, ebp
je 0x4b4729
push 0xb
lea eax, [ebx + 4]
push eax
mov ecx, ebp
call fcn.0050e1d0
test al, al
je 0x4b4723
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 0x4f4]
jmp 0x4b4831
mov ebp, dword [0x77e200]
mov edx, dword [edi + 0x3c]
shr edx, 3
test dl, 1
jne 0x4b475d
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4b475d
mov eax, dword [ebx + 0x28]
mov ecx, dword [esp + 0x10]
push eax
call fcn.00420e00
test eax, eax
je 0x4b475d
mov ecx, dword [esp + 0x54]
push ecx
lea ecx, [esi + 0x474]
jmp 0x4b4831
mov al, byte [esp + 0x27]
test al, al
je 0x4b4836
test ebp, ebp
je 0x4b4794
push 1
lea edx, [ebx + 4]
push edx
mov ecx, ebp
call fcn.0050e1d0
test al, al
je 0x4b478e
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x484]
jmp 0x4b4831
mov ebp, dword [0x77e200]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
movzx eax, byte [edx + 0x8ad]
cmp eax, dword [esp + 0x1c]
je 0x4b47cf
mov ecx, dword [0x77d8e8]
cmp dword [ecx + 0x110], eax
jne 0x4b47c2
lea edx, [esp + 0x18]
push edx
lea ecx, [esi + 0x4a4]
jmp 0x4b4831
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x494]
jmp 0x4b4831
test ebp, ebp
je 0x4b4810
push 3
lea edi, [ebx + 4]
push edi
mov ecx, ebp
call fcn.0050e1d0
test al, al
je 0x4b47f1
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 0x4b4]
jmp 0x4b4831
mov ecx, dword [0x77e200]
push 0
push edi
call fcn.0050e1d0
test al, al
je 0x4b4810
lea edx, [esp + 0x18]
push edx
lea ecx, [esi + 0x4c4]
jmp 0x4b4831
cmp dword [ebx + 0x879], 0x79
jb 0x4b4826
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x4d4]
jmp 0x4b4831
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esi + 0x4e4]
call fcn.0042c640
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x3c8]
add edi, 4
cmp edi, eax
mov dword [esp + 0x54], edi
jne 0x4b46b0
mov al, byte [esp + 0x27]
test al, al
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
je 0x4b4f04
mov eax, dword [esi + 0x4e8]
cmp eax, dword [esi + 0x4ec]
mov dword [esp + 0x14], eax
je 0x4b4937
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b491e
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b491e
xor edx, edx
cmp di, 1
je 0x4b4901
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xff00ff00
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4ec]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4883
call sub.WINMM.dll_timeGetTime
sub eax, dword [0x77e940]
cmp eax, 0x3e8
jbe 0x4b4a24
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x4dc]
mov dword [0x77e940], eax
mov eax, dword [esi + 0x4d8]
cmp eax, ecx
mov dword [esp + 0x14], eax
je 0x4b4a24
nop
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b4a0b
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4a0b
xor edx, edx
cmp di, 1
je 0x4b49ee
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xffff0000
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4dc]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4970
mov eax, dword [esi + 0x4c8]
cmp eax, dword [esi + 0x4cc]
mov dword [esp + 0x14], eax
je 0x4b4af4
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b4adb
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4adb
xor edx, edx
cmp di, 1
je 0x4b4abe
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xff5da9d4
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4cc]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4a40
mov eax, dword [esi + 0x4b8]
cmp eax, dword [esi + 0x4bc]
mov dword [esp + 0x14], eax
je 0x4b4bc4
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b4bab
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4bab
xor edx, edx
cmp di, 1
je 0x4b4b8e
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xffffca07
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4bc]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4b10
mov eax, dword [esi + 0x498]
cmp eax, dword [esi + 0x49c]
mov dword [esp + 0x14], eax
je 0x4b4c94
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b4c7b
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4c7b
xor edx, edx
cmp di, 1
je 0x4b4c5e
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xff000000
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x49c]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4be0
mov eax, dword [esi + 0x4a8]
cmp eax, dword [esi + 0x4ac]
mov dword [esp + 0x14], eax
je 0x4b4d64
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b4d4b
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4d4b
xor edx, edx
cmp di, 1
je 0x4b4d2e
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xffff80c0
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4ac]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4cb0
mov eax, dword [esi + 0x508]
cmp eax, dword [esi + 0x50c]
mov dword [esp + 0x14], eax
je 0x4b4e34
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b4e1b
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4e1b
xor edx, edx
cmp di, 1
je 0x4b4dfe
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xff000000
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x50c]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4d80
mov eax, dword [esi + 0x488]
cmp eax, dword [esi + 0x48c]
mov dword [esp + 0x14], eax
je 0x4b4f04
lea ebx, [ebx]
mov edx, dword [esp + 0x14]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x34]
mov ecx, dword [ecx + 0x38]
sub eax, ebp
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebx
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, ecx
add eax, 0xfffffffe
add edi, edx
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x53c]
add edi, 0xfffffffe
test eax, eax
mov dword [esp + 0x6c], edi
je 0x4b4eeb
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x53c]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4eeb
xor edx, edx
cmp di, 1
je 0x4b4ece
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov ecx, dword [esp + 0x70]
mov edx, dword [eax]
push 0
push 0xff877a8a
push ecx
mov ecx, dword [esp + 0x78]
push ecx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x48c]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4e50
mov eax, dword [esi + 0x478]
cmp eax, dword [esi + 0x47c]
mov dword [esp + 0x14], eax
je 0x4b50e4
jmp 0x4b4f30
mov ebp, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x14]
mov edi, edi
mov ecx, dword [eax]
mov eax, dword [ecx + 0x34]
sub eax, ebp
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ecx + 0x38]
fmul dword [esp + 0x34]
sub ecx, ebx
mov dword [esp + 0x58], ecx
call fcn.0065ea1c
fild dword [esp + 0x58]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x624]
add edi, ebx
add eax, edx
test ecx, ecx
je 0x4b50cb
mov ecx, dword [esp + 0x60]
lea ebp, [eax - 0xa]
add eax, 0x14
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
lea ebx, [edi - 0xa]
add edi, 0x14
add edi, eax
mov edx, ebx
add edx, eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x44]
mov eax, ebp
add eax, ecx
add edi, ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], edi
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x624]
mov di, word [ecx + 0xa]
test di, di
je 0x4b4ff2
xor edx, edx
cmp di, 1
je 0x4b4fe0
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov edx, dword [eax]
push 0
push 0xffffffffffffffff
push ebp
push ebx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
jl 0x4b50cb
cmp eax, dword [esp + 0x40]
jge 0x4b50cb
cmp ecx, dword [esp + 0x3c]
jl 0x4b50cb
cmp ecx, dword [esp + 0x44]
jge 0x4b50cb
mov ebx, dword [esp + 0x1c]
add ebx, 4
mov dword [esp + 0x10], ebx
call fcn.004b3d20
mov ebp, eax
mov edi, dword [ebp + 4]
test edi, edi
je 0x4b50a6
mov ebx, dword [ebp + 8]
mov ecx, ebx
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
je 0x4b50a2
cmp edi, ebx
je 0x4b508b
nop
cmp dword [edi + 0x18], 0x10
jb 0x4b5072
mov ecx, dword [edi + 4]
push ecx
call fcn.0065d0d4
add esp, 4
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
mov byte [edi + 4], 0
add edi, 0x1c
cmp edi, ebx
jne 0x4b5060
mov edx, dword [ebp + 4]
push edx
call fcn.0065d0d4
add esp, 4
xor eax, eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x4b50cb
push ebx
call fcn.0065c790
add esp, 4
cmp eax, 1
jb 0x4b50cb
push 0xa
push ebp
push ebx
call fcn.0044c010
add esp, 0xc
mov ecx, ebp
call fcn.004b0cc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x47c]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b4f1c
mov eax, dword [esi + 0x4f8]
cmp eax, dword [esi + 0x4fc]
mov dword [esp + 0x14], eax
je 0x4b52c5
lea ebx, [ebx]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x34]
mov edx, dword [esp + 0x84]
mov ebp, dword [esp + 0x88]
sub eax, edx
mov dword [esp + 0x54], eax
fild dword [esp + 0x54]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ecx + 0x38]
fmul dword [esp + 0x34]
sub ecx, ebp
mov dword [esp + 0x58], ecx
call fcn.0065ea1c
fild dword [esp + 0x58]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x634]
add edi, ebx
add eax, edx
test ecx, ecx
je 0x4b52ac
mov ecx, dword [esp + 0x60]
lea ebp, [eax - 0xa]
add eax, 0x14
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
lea ebx, [edi - 0xa]
add edi, 0x14
add edi, eax
mov edx, ebx
add edx, eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x44]
mov eax, ebp
add eax, ecx
add edi, ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], edi
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x634]
mov di, word [ecx + 0xa]
test di, di
je 0x4b51d4
xor edx, edx
cmp di, 1
je 0x4b51c2
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov edx, dword [eax]
push 0
push 0xffffffffffffffff
push ebp
push ebx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
jl 0x4b52ac
cmp eax, dword [esp + 0x40]
jge 0x4b52ac
cmp ecx, dword [esp + 0x3c]
jl 0x4b52ac
cmp ecx, dword [esp + 0x44]
jge 0x4b52ac
mov ebx, dword [esp + 0x1c]
add ebx, 4
mov dword [esp + 0x10], ebx
call fcn.004b3d20
mov ebp, eax
mov edi, dword [ebp + 4]
test edi, edi
je 0x4b5287
mov ebx, dword [ebp + 8]
mov ecx, ebx
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
je 0x4b5283
cmp edi, ebx
je 0x4b526c
cmp dword [edi + 0x18], 0x10
jb 0x4b5253
mov ecx, dword [edi + 4]
push ecx
call fcn.0065d0d4
add esp, 4
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
mov byte [edi + 4], 0
add edi, 0x1c
cmp edi, ebx
jne 0x4b5241
mov edx, dword [ebp + 4]
push edx
call fcn.0065d0d4
add esp, 4
xor eax, eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x4b52ac
push ebx
call fcn.0065c790
add esp, 4
cmp eax, 1
jb 0x4b52ac
push 0xa
push ebp
push ebx
call fcn.0044c010
add esp, 0xc
mov ecx, ebp
call fcn.004b0cc0
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x4fc]
add eax, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
jne 0x4b5100
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x4b5473
mov eax, dword [ecx + 0x34]
mov edx, dword [esp + 0x84]
mov ecx, dword [ecx + 0x38]
mov ebp, dword [esp + 0x88]
sub eax, edx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
sub ecx, ebp
mov dword [esp + 0x20], ecx
fmul dword [esp + 0x34]
call fcn.0065ea1c
fild dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x30]
call fcn.0065ea1c
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x628]
add edi, ebx
add eax, edx
test ecx, ecx
je 0x4b5473
mov ecx, dword [esp + 0x60]
lea ebp, [eax - 0xa]
add eax, 0x14
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
lea ebx, [edi - 0xa]
add edi, 0x14
add edi, eax
mov edx, ebx
add edx, eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x44]
mov eax, ebp
add eax, ecx
add edi, ecx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], edi
call sub.WINMM.dll_timeGetTime
mov ecx, dword [esi + 0x628]
mov di, word [ecx + 0xa]
test di, di
je 0x4b539b
xor edx, edx
cmp di, 1
je 0x4b5389
div dword [ecx + 0xc]
movzx edi, di
xor edx, edx
div edi
mov eax, dword [ecx]
push edx
call dword [eax]
mov edx, dword [eax]
push 0
push 0xffffffffffffffff
push ebp
push ebx
mov ecx, eax
call dword [edx + 0xc]
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x4c]
jl 0x4b5473
cmp eax, dword [esp + 0x40]
jge 0x4b5473
cmp ecx, dword [esp + 0x3c]
jl 0x4b5473
cmp ecx, dword [esp + 0x44]
jge 0x4b5473
mov ebx, dword [esp + 0x7c]
add ebx, 4
mov dword [esp + 0x10], ebx
call fcn.004b3d20
mov ebp, eax
mov edi, dword [ebp + 4]
test edi, edi
je 0x4b544e
mov ebx, dword [ebp + 8]
mov ecx, ebx
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
je 0x4b544a
cmp edi, ebx
je 0x4b5433
cmp dword [edi + 0x18], 0x10
jb 0x4b541a
mov ecx, dword [edi + 4]
push ecx
call fcn.0065d0d4
add esp, 4
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], 0
mov byte [edi + 4], 0
add edi, 0x1c
cmp edi, ebx
jne 0x4b5408
mov edx, dword [ebp + 4]
push edx
call fcn.0065d0d4
add esp, 4
xor eax, eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x4b5473
push ebx
call fcn.0065c790
add esp, 4
cmp eax, 1
jb 0x4b5473
push 0xa
push ebp
push ebx
call fcn.0044c010
add esp, 0xc
mov ecx, ebp
call fcn.004b0cc0
mov ecx, dword [0x781e94]
call fcn.005e0850
test al, al
jne 0x4b54e2
mov eax, dword [esi + 0x63c]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x4b54c5
mov ecx, eax
mov edx, dword [ecx]
call dword [edx + 4]
push 0x709120
call fcn.005a8430
mov edi, eax
add esp, 4
test edi, edi
je 0x4b54c5
mov ecx, dword [esi + 0x63c]
lea eax, [esi + 0x444]
push eax
push edi
call fcn.005e01b0
push edi
call fcn.005a55f0
add esp, 4
mov ecx, dword [esi + 0x63c]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x4b54e2
push 0xc
push 0xff000000
push 0
push 0
call fcn.005e0520
mov eax, 0x80
push eax
push eax
call fcn.004b3d20
mov ecx, eax
call fcn.004b0ac0
mov ecx, dword [0x781e94]
mov edx, dword [ecx]
call dword [edx + 0x44]
mov ecx, dword [esi + 0x638]
push 0
call fcn.005dfdf0
mov ecx, dword [esi + 0x638]
mov bl, al
call fcn.005dfc20
pop edi
pop ebp
mov al, bl
pop ebx
pop esi
add esp, 0xb4
ret