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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov eax, dword [esp + 0x108]
mov dword [esp + 0xdc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov edi, dword [esp + 0x100]
mov eax, dword [eax]
mov dword [esp + 0xcc], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0xd0], edi
mov ecx, dword [esp + 0xd0]
cmp byte [ecx], 0x2d
jbe 0x489904
mov dword [esp + 0x60], 0
mov dword [esp + 0x54], 0
cmp byte [ecx], 0x30
je 0x4899d2
mov edx, dword [esp + 0x108]
mov dword [esp + 0x68], ecx
mov edx, dword [edx + 0x10]
mov dword [esp + 0x64], edx
movsx ebx, byte [ecx]
cmp ebx, 0x2f
jle 0x489a29
cmp ebx, 0x39
jg 0x489a29
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x7c], 0
jmp 0x4898ee
cmp esi, 0xf
jg 0x4898d0
lea eax, [ebp + ebp*4]
lea ebp, [ebx + eax*2 - 0x30]
lea esi, [esi]
inc ecx
inc esi
mov dword [esp + 0xd0], ecx
movsx ebx, byte [ecx]
cmp ebx, 0x2f
jle 0x489a35
cmp ebx, 0x39
jg 0x489a35
cmp esi, 8
jg 0x4898c0
mov edx, dword [esp + 0x7c]
lea eax, [edx + edx*4]
lea eax, [ebx + eax*2 - 0x30]
mov dword [esp + 0x7c], eax
jmp 0x4898d0
xor eax, eax
mov al, byte [ecx]
jmp dword [eax*4 + 0x4c4aac]
mov dword [esp + 0xdc], 6
mov dword [esp + 0xd0], edi
mov dword [esp + 0x60], 0
mov ebx, dword [esp + 0xcc]
mov edi, dword [esp + 0x104]
test edi, edi
je 0x48994b
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0xd0]
mov dword [ecx], eax
mov esi, dword [esp + 0x60]
test esi, esi
jne 0x489990
test ebx, ebx
je 0x48997c
push edx
push ebx
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x11c]
push eax
call fcn.0048d980
pop eax
mov eax, dword [esp + 0xd8]
push eax
call fcn.0048d020
add esp, 0x10
mov eax, dword [esp + 0xdc]
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [esp + 0xdc]
or ecx, 8
mov dword [esp + 0xdc], ecx
jmp 0x489953
mov dword [esp + 0x60], 1
lea eax, [ecx + 1]
mov dword [esp + 0xd0], eax
cmp byte [ecx + 1], 0
je case.0x489908.0
mov ecx, eax
mov dword [esp + 0x54], 0
cmp byte [ecx], 0x30
jne 0x48988a
mov al, byte [ecx + 1]
cmp al, 0x58
je 0x48a62d
cmp al, 0x78
jne 0x4899e8
jmp 0x48a62d
mov ecx, edx
lea edx, [ecx + 1]
mov dword [esp + 0xd0], edx
mov al, byte [ecx + 1]
cmp al, 0x30
je 0x4899e6
test al, al
je 0x489929
mov ecx, edx
mov dword [esp + 0x54], 1
jmp 0x48988a
mov dword [esp + 0x60], 0
jmp 0x4899ab
lea eax, [ecx + 1]
mov dword [esp + 0xd0], eax
jmp 0x489861
xor esi, esi
mov dword [esp + 0x7c], 0
xor ebp, ebp
call sub.msvcrt.dll_localeconv
mov eax, dword [eax]
movsx eax, byte [eax]
cmp eax, ebx
je 0x489f43
mov dword [esp + 0x48], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
cmp ebx, 0x65
je 0x489d50
cmp ebx, 0x45
je 0x489d50
xor eax, eax
mov edx, dword [esp + 0x48]
test edx, edx
je 0x489caf
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x108]
sub eax, ebx
mov dword [esp + 0xdc], 1
mov dword [esp + 0x9c], eax
mov eax, dword [ecx + 0xc]
and eax, 3
cmp eax, 2
je 0x48acd5
cmp eax, 3
je 0x48acc7
test eax, eax
sete al
and eax, 0xff
mov dword [esp + 0x58], eax
mov edi, esi
test esi, esi
jne 0x489ad2
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x48]
cmp ebx, 0x10
jle 0x489ae0
mov ebx, 0x10
mov eax, dword [esp + 0x7c]
xor edx, edx
push edx
push eax
fild qword [esp]
add esp, 8
cmp ebx, 9
fst qword [esp + 0xb8]
jle 0x489fff
fmul qword [ebx*8 + 0x4c4cb8]
xor edx, edx
push edx
push ebp
fild qword [esp]
faddp st(1)
add esp, 8
fstp qword [esp + 0xb8]
cmp dword [esp + 0x44], 0x35
jg 0x489b2a
cmp dword [esp + 0x48], 0xf
jle 0x489dba
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x48]
sub eax, ebx
add eax, edx
cmp eax, 0
jle 0x48ad68
mov edx, eax
and edx, 0xf
je 0x489b5e
fld qword [esp + 0xb8]
fmul qword [edx*8 + 0x4c4d00]
fstp qword [esp + 0xb8]
and eax, 0xfffffff0
jne 0x48a4ed
xor ebx, ebx
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0xd8]
push eax
mov eax, dword [esp + 0xc4]
push eax
mov ebp, dword [esp + 0xc4]
push ebp
call fcn.0048d830
mov esi, dword [esp + 0xe4]
mov edx, dword [esp + 0xe8]
add esi, ebx
mov ecx, dword [esp + 0x54]
mov ebx, edx
mov dword [esp + 0xdc], eax
sub ebx, ecx
mov dword [esp + 0xe4], esi
add esp, 0x10
test ebx, ebx
jle 0x489be6
push ebp
push ebp
push ebx
push eax
call fcn.0048e5f0
mov esi, dword [esp + 0xe4]
mov edx, dword [esp + 0x54]
add esi, ebx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xe4], esi
add esp, 0x10
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0xd4]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x30], 0
lea esi, [edx + ecx]
sub esi, ebx
mov ebx, dword [esp + 0x108]
mov eax, dword [ebx + 8]
inc eax
cmp esi, eax
jg 0x48a3e2
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], eax
cmp esi, eax
jge 0x48ad5f
mov ebx, ecx
mov eax, dword [esp + 0x34]
sub ebx, eax
cmp ebx, 0
jle 0x48a5d4
push eax
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.0048d270
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xe8]
add eax, ebx
mov dword [esp + 0xe8], eax
add esp, 0x10
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x64]
mov dword [esp + 0xd4], ebx
test ebp, ebp
je 0x48a006
lea eax, [esi + 1]
cmp ebx, eax
jle 0x48a006
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0x34]
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [esp + 0xdc], 0x50
mov dword [ecx], edx
jmp 0x48a42d
mov edx, dword [esp + 0x50]
or edx, dword [esp + 0x54]
jne 0x489929
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x489d9c
cmp ebx, 0x4e
je 0x48aeb7
jg 0x48aea5
cmp ebx, 0x49
jne 0x489d9c
push eax
push eax
push 0x4c4aa0
lea ebx, [esp + 0xdc]
push ebx
call fcn.0048d930
add esp, 0x10
test eax, eax
je 0x489d9c
mov eax, dword [esp + 0xd0]
dec eax
mov dword [esp + 0xd0], eax
push eax
push eax
push str.inity
push ebx
call fcn.0048d930
add esp, 0x10
cmp eax, 1
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xdc], 3
adc edx, 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xd0], edx
jmp 0x48a406
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
or eax, edx
or eax, dword [esp + 0x54]
je 0x489d9c
mov edi, dword [esp + 0xd0]
lea edx, [edi + 1]
mov dword [esp + 0xd0], edx
mov al, byte [edi + 1]
cmp al, 0x2b
je 0x489e77
mov dword [esp + 0x38], 1
cmp al, 0x2d
je 0x489e7f
movsx ebx, al
mov dword [esp + 0x38], 0
jmp 0x489e8d
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xdc], 6
mov dword [esp + 0xd0], edi
jmp 0x489930
cmp dword [esp + 0x9c], 0
je 0x48a606
jle 0x48af34
cmp dword [esp + 0x9c], 0x16
jg 0x48ae48
fld qword [esp + 0xb8]
mov eax, dword [esp + 0x9c]
fst qword [esp + 0xb0]
mov ecx, dword [eax*4 + 0x4c4b80]
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x48af60
mov edx, 0x35
bsf eax, eax
sub edx, eax
mov eax, dword [esp + 0x9c]
fmul qword [eax*8 + 0x4c4d00]
fst qword [esp + 0xb8]
sub esp, 0xc
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x68]
push eax
lea eax, [edx + ecx]
cmp eax, 0x35
setle al
and eax, 0xff
push eax
sub esp, 8
fstp qword [esp]
mov ecx, dword [esp + 0x130]
mov edx, dword [esp + 0x12c]
mov eax, dword [esp + 0x128]
call fcn.004894e0
add esp, 0x20
test eax, eax
jne 0x489929
xor edx, edx
jmp 0x489b31
mov dword [esp + 0x38], 0
lea eax, [edx + 1]
mov dword [esp + 0xd0], eax
movsx ebx, byte [edx + 1]
lea eax, [ebx - 0x30]
cmp eax, 9
ja 0x48a4df
cmp ebx, 0x30
jne 0x489eb9
mov eax, dword [esp + 0xd0]
lea edx, [eax + 1]
mov dword [esp + 0xd0], edx
mov al, byte [eax + 1]
movsx ebx, al
cmp al, 0x30
je 0x489e9e
lea eax, [ebx - 0x31]
cmp eax, 8
ja 0x489a75
mov edx, dword [esp + 0xd0]
lea ecx, [ebx - 0x30]
mov dword [esp + 0x6c], edx
inc edx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xd0], edx
movsx ebx, byte [eax + 1]
cmp ebx, 0x2f
jg 0x489f11
jmp 0x489f16
lea eax, [ecx + ecx*4]
lea ecx, [ebx + eax*2 - 0x30]
mov eax, dword [esp + 0xd0]
lea edx, [eax + 1]
mov dword [esp + 0xd0], edx
movsx ebx, byte [eax + 1]
cmp ebx, 0x2f
jle 0x489f16
cmp ebx, 0x39
jle 0x489ef0
mov eax, dword [esp + 0x6c]
sub edx, eax
cmp edx, 8
jg 0x489f2b
mov eax, ecx
cmp ecx, 0x4e1f
jle 0x489f30
mov eax, 0x4e1f
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x489a77
neg eax
jmp 0x489a77
mov edx, dword [esp + 0xd0]
test esi, esi
lea eax, [edx + 1]
mov dword [esp + 0xd0], eax
mov al, byte [edx + 1]
movsx ebx, al
je 0x48a474
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
lea eax, [ebx - 0x30]
mov dword [esp + 0x2c], 1
mov dword [esp + 0x14], eax
cmp eax, 9
ja 0x489a63
mov ecx, dword [esp + 0x50]
inc ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xd0]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48ad1a
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x4c]
add ebx, edx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], ebx
dec edx
jle 0x48acf0
mov ebx, eax
mov edx, 1
jmp 0x489fe3
cmp ebx, 0x10
jg 0x489fd8
lea eax, [ebp + ebp*4]
lea ebp, [eax + eax]
inc edx
cmp edx, dword [esp + 0x50]
je 0x48ace4
inc ebx
lea eax, [ebx - 1]
cmp eax, 8
jg 0x489fcc
mov eax, dword [esp + 0x7c]
lea eax, [eax + eax*4]
mov dword [esp + 4], eax
add eax, eax
mov dword [esp + 0x7c], eax
jmp 0x489fd8
fstp st(0)
jmp 0x489b18
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 1
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x7c]
push ecx
mov edx, dword [esp + 0x4c]
push edx
push edi
mov eax, dword [esp + 0x74]
push eax
call fcn.0048dad0
mov edx, dword [esp + 0x54]
mov dword [esp + 0x98], eax
inc edx
mov dword [esp + 0x2c], 0
mov dword [esp + 0xa0], edx
add esp, 0x10
lea ecx, [eax + 0xc]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x10], ecx
neg ebx
mov dword [esp + 0xc], ebx
lea esi, [esi]
sub esp, 0xc
mov eax, dword [esp + 0x94]
mov eax, dword [eax + 4]
push eax
call fcn.0048d060
mov edx, dword [esp + 0x98]
mov dword [esp + 0x94], eax
cld
mov ecx, dword [edx + 0x10]
mov esi, dword [esp + 0x20]
lea edi, [eax + 0xc]
lea ecx, [ecx*4 + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop eax
mov eax, dword [esp + 0xd8]
mov eax, dword [eax + 4]
push eax
call fcn.0048d060
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x90], eax
cld
mov ecx, dword [esi + 0x10]
lea edi, [eax + 0xc]
add esi, 0xc
lea ecx, [ecx*4 + 8]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xe8]
sub ecx, ebx
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x38], ecx
add ebx, eax
mov dword [esp], 1
call fcn.0048d4e0
mov dword [esp + 0x9c], eax
add esp, 0x10
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x48aaff
mov eax, dword [esp + 0x9c]
xor ecx, ecx
mov dword [esp + 0x24], eax
mov edi, eax
mov dword [esp + 0x20], 0
test ebx, ebx
js 0x48aaf8
add ecx, ebx
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x44]
add edx, ebx
mov eax, dword [esp + 0x90]
mov ebp, dword [esp + 0x28]
sub edx, esi
sub eax, ebp
cmp dword [esp + 0x34], edx
jle 0x48a154
mov ebx, dword [esp + 0x34]
sub eax, ebx
add eax, edx
lea esi, [eax + ecx]
lea edi, [eax + edi]
cmp esi, edi
mov eax, esi
jle 0x48a162
mov eax, edi
cmp eax, ecx
jle 0x48a168
mov eax, ecx
mov ebp, ecx
test eax, eax
jle 0x48a174
sub esi, eax
sub edi, eax
sub ebp, eax
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x48a1c1
push eax
push eax
mov eax, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x98]
push eax
call fcn.0048d5f0
mov dword [esp + 0x9c], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x88]
push edx
push eax
call fcn.0048d370
mov ebx, eax
pop eax
mov eax, dword [esp + 0x8c]
push eax
call fcn.0048d020
mov dword [esp + 0x90], ebx
add esp, 0x10
mov eax, esi
mov esi, dword [esp + 0x1c]
sub eax, esi
cmp eax, 0
jle 0x48a89b
push ebx
push ebx
push eax
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.0048d270
mov dword [esp + 0x90], eax
add esp, 0x10
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x48a8c2
test edi, edi
jle 0x48a216
push eax
push eax
push edi
mov eax, dword [esp + 0x90]
push eax
call fcn.0048d270
mov dword [esp + 0x94], eax
add esp, 0x10
test ebp, ebp
jle 0x48a234
push eax
push eax
push ebp
mov eax, dword [esp + 0x98]
push eax
call fcn.0048d270
mov dword [esp + 0x9c], eax
add esp, 0x10
push eax
push eax
mov ebp, dword [esp + 0x8c]
push ebp
mov edi, dword [esp + 0x8c]
push edi
call fcn.0048d100
add esp, 0x10
mov ebp, eax
cmp dword [eax + 0x10], 1
jle 0x48a8e5
mov esi, dword [ebp + 0xc]
mov dword [ebp + 0xc], 0
push ebx
push ebx
mov ecx, dword [esp + 0x94]
push ecx
push ebp
call fcn.0048ce70
add esp, 0x10
mov edx, dword [esp + 0x58]
test edx, edx
je 0x48a287
test eax, eax
jle 0x48a688
cmp eax, 0
jl 0x48b034
je 0x48af92
lea ebx, [esp + 0xc0]
mov dword [esp + 0x94], ebx
push eax
push eax
mov eax, dword [esp + 0x94]
push eax
push ebp
call fcn.0048da40
fld st(0)
fstp qword [esp + 0xd0]
fld dword [0x4c4bdc]
add esp, 0x10
fucomp st(1)
fnstsw ax
test ah, 1
jne 0x48aaa4
fstp st(0)
test esi, esi
jne 0x48abd5
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x48a8f5
cmp dword [esp + 0x28], 1
jg 0x48a8f5
mov ebx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x10], 0
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xdc], 0x50
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x48a37a
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0xd8]
sub ebx, eax
mov dword [esp + 0x30], 0
cmp ebx, 0
je 0x48a37a
jle 0x48b172
push eax
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.0048d270
mov dword [esp + 0xdc], eax
add esp, 0x10
mov esi, dword [esp + 0xd4]
mov dword [esp + 0x30], 0
sub esi, ebx
mov dword [esp + 0xd4], esi
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0x10c]
sub esp, 0xc
mov dword [edx], eax
mov ebx, dword [esp + 0x8c]
push ebx
call fcn.0048d020
pop ecx
mov edx, dword [esp + 0x90]
push edx
call fcn.0048d020
pop eax
mov eax, dword [esp + 0x98]
push eax
call fcn.0048d020
pop eax
mov eax, dword [esp + 0x94]
push eax
call fcn.0048d020
mov dword [esp], ebp
call fcn.0048d020
add esp, 0x10
mov ecx, dword [esp + 0x108]
mov eax, dword [ecx + 8]
cmp eax, dword [esp + 0xd4]
jge 0x48a41a
mov eax, dword [esp + 0xcc]
mov dword [eax + 0x10], 0
mov dword [esp + 0xdc], 0xa3
call sub.msvcrt.dll__errno
mov dword [eax], 0x22
mov ebx, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
mov eax, dword [ebx + 8]
inc eax
mov dword [edx], eax
mov eax, dword [esp + 0x30]
test eax, eax
je 0x489929
mov ebx, dword [esp + 0xcc]
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x48a5a0
mov ebp, dword [ebx + 0x10]
test ebp, ebp
setg al
and eax, 0xff
lea edx, [eax + eax]
mov eax, dword [esp + 0xdc]
and eax, 0xfffffff8
or edx, eax
mov dword [esp + 0xdc], edx
test dl, 0x30
je 0x489930
or edx, 0x40
mov dword [esp + 0xdc], edx
jmp 0x489930
mov dword [esp + 0x50], 0
cmp al, 0x30
jne 0x48a4a4
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xd0]
lea edx, [eax + 1]
mov dword [esp + 0xd0], edx
mov al, byte [eax + 1]
movsx ebx, al
cmp al, 0x30
je 0x48a480
lea eax, [ebx - 0x31]
cmp eax, 8
ja 0x48a5b7
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0xd0]
sub ebx, 0x30
mov dword [esp + 0x68], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], 1
mov dword [esp + 0x14], ebx
jmp 0x489f9e
xor eax, eax
mov dword [esp + 0xd0], edi
jmp 0x489a77
mov ecx, eax
xor ebx, ebx
sar ecx, 4
cmp ecx, 0xf
jle 0x48a543
fld qword [0x4c4ca0]
mov eax, dword [esp + 0xbc]
sub ecx, 0x10
mov edx, eax
and eax, 0x800fffff
or eax, 0x3ff00000
and edx, 0x7ff00000
shr edx, 0x14
mov dword [esp + 0xbc], eax
fld qword [esp + 0xb8]
fmul st(1)
lea ebx, [ebx + edx - 0x3ff]
cmp ecx, 0xf
fstp qword [esp + 0xb8]
jg 0x48a4ff
fstp st(0)
mov edx, dword [esp + 0xbc]
mov eax, edx
and edx, 0x800fffff
and eax, 0x7ff00000
or edx, 0x3ff00000
shr eax, 0x14
mov dword [esp + 0xbc], edx
test ecx, ecx
lea ebx, [ebx + eax - 0x3ff]
jle 0x489b69
xor eax, eax
jmp 0x48a57b
inc eax
test cl, 1
je 0x48a595
fld qword [esp + 0xb8]
fmul qword [eax*8 + 0x4c4c80]
fstp qword [esp + 0xb8]
sar ecx, 1
test ecx, ecx
jg 0x48a57a
jmp 0x489b69
mov dword [ebx + 0x10], 0
mov dword [esp + 0xdc], 0x50
jmp 0x489930
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x4c], 0
jmp 0x489a63
je 0x489c5b
lea eax, [ebx + edx]
mov dword [esp + 0xd8], eax
test eax, eax
jle 0x48b11e
neg ebx
push eax
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.0048e5f0
add esp, 0x10
jmp 0x489c5b
sub esp, 0xc
lea eax, [esp + 0xe8]
push eax
mov edx, dword [esp + 0x68]
push edx
push 1
mov eax, dword [esp + 0xd4]
push eax
mov eax, dword [esp + 0xd4]
push eax
jmp 0x489e4b
sub esp, 0xc
mov eax, dword [esp + 0x6c]
push eax
lea eax, [esp + 0xdc]
push eax
mov eax, dword [esp + 0x120]
push eax
mov eax, dword [esp + 0x120]
push eax
lea eax, [esp + 0xec]
push eax
call fcn.0048db90
mov dword [esp + 0xfc], eax
add esp, 0x20
cmp eax, 6
jne 0x489929
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xd0], edi
mov dword [esp + 0x60], 0
jmp 0x489930
mov eax, dword [esp + 0x58]
mov dword [esp + 0xdc], 1
and eax, 1
xor eax, esi
mov dword [esp + 0x3c], eax
je 0x48af7b
test esi, esi
je 0x48a98b
lea ecx, [esp + 0xc0]
mov dword [esp + 0xdc], 0x21
mov dword [esp + 0x94], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x40], 0x20
fld1
mov ebx, dword [esp + 0x94]
fst qword [ebx]
mov dword [esp + 0x78], 0
fstp qword [esp + 0x70]
mov eax, dword [esp + 0xd4]
mov edi, dword [esp + 0xd8]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x48a715
cmp dword [esp + 0x44], edi
jg 0x48ab60
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0xe8]
push eax
mov ecx, dword [esp + 0x9c]
mov esi, dword [ecx + 4]
push esi
mov ebx, dword [ecx]
push ebx
call fcn.0048d830
mov esi, eax
mov eax, dword [esp + 0xf4]
add esp, 0x10
cmp eax, 0
jl 0x48ac97
jne 0x48a978
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0xcc]
test eax, eax
je 0x48a847
push ecx
push ecx
push esi
push ebx
call fcn.0048d100
mov dword [esp + 0xdc], eax
add esp, 0x10
mov ecx, eax
mov eax, dword [ebx + 0x10]
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x48a7b5
dec eax
cmp eax, dword [ecx + 0x10]
jl 0x48acaa
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], eax
jne 0x48a918
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x30], 1
dec eax
mov dword [esp + 0xd8], eax
sub esp, 0xc
push esi
call fcn.0048d020
mov dword [esp], ebx
call fcn.0048d020
add esp, 0x10
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x48a320
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0xd4]
mov ebx, dword [esp + 0xd8]
lea edx, [edi + ecx]
add eax, ebx
cmp edx, eax
je 0x48aa40
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x48a954
sub esp, 0xc
mov esi, dword [esp + 0x8c]
push esi
call fcn.0048d020
pop ebx
mov ecx, dword [esp + 0x90]
push ecx
call fcn.0048d020
pop edx
mov eax, dword [esp + 0x98]
push eax
call fcn.0048d020
mov dword [esp], ebp
call fcn.0048d020
add esp, 0x10
jmp 0x48a060
push eax
push eax
push esi
push ebx
call fcn.0048e470
mov dword [esp + 0xdc], eax
mov ecx, eax
mov eax, dword [eax + 0x10]
add esp, 0x10
dec eax
cmp eax, dword [ebx + 0x10]
jl 0x48ab43
mov eax, dword [esp + 0x30]
test eax, eax
je 0x48aba0
mov eax, dword [esp + 0xd8]
inc eax
mov dword [esp + 0xd8], eax
cmp dword [esp + 0x44], eax
jne 0x48a7b5
mov dword [esp + 0x30], 0
jmp 0x48a7b5
je 0x48a1ec
neg eax
push edx
push edx
push eax
mov esi, dword [esp + 0x8c]
push esi
call fcn.0048e5f0
add esp, 0x10
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x48a1f8
push ecx
push ecx
mov edx, dword [esp + 0x2c]
push edx
mov eax, dword [esp + 0x90]
push eax
call fcn.0048d5f0
mov dword [esp + 0x94], eax
add esp, 0x10
jmp 0x48a1f8
mov esi, dword [eax + 0x14]
test esi, esi
jne 0x48a25a
jmp 0x48a320
lea edx, [esp + 0xc0]
mov dword [esp + 0x18], 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x40], 0x10
jmp 0x48a6d7
push edi
push edi
push 1
push ecx
call fcn.0048d270
mov edx, dword [esp + 0xe4]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x6c]
dec edx
dec eax
mov dword [esp + 0xe4], edx
mov dword [esp + 0x6c], eax
mov dword [esp], esi
call fcn.0048d020
mov dword [esp], ebx
call fcn.0048d020
add esp, 0x10
sub esp, 0xc
mov edi, dword [esp + 0xd8]
push edi
call fcn.0048e6c0
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], eax
add esp, 0x10
jmp 0x48a80b
push edx
push edx
push eax
push esi
call fcn.0048d270
add esp, 0x10
mov esi, eax
jmp 0x48a753
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xdc], 0x11
cmp dword [esp + 0x5c], ebx
je 0x48a2e5
cmp dword [esp + 0x44], 0x1f
jle 0x48b0e0
mov ebx, dword [esp + 0xcc]
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x48a2e5
mov edx, dword [esp + 0x44]
xor esi, esi
jmp 0x48a9dc
mov eax, dword [ebx + esi*4 + 0x14]
test eax, eax
jne 0x48a2e5
sub edx, 0x20
inc esi
cmp edx, 0x1f
jg 0x48a9d0
cmp edx, 1
jle 0x48aa09
mov ebx, dword [esp + 0xcc]
mov eax, dword [ebx + esi*4 + 0x14]
bsf ecx, eax
shr eax, cl
mov dword [ebx + esi*4 + 0x14], eax
lea eax, [edx - 1]
cmp ecx, eax
jl 0x48a2e5
mov eax, dword [esp + 0x5c]
dec eax
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0xd8], eax
push edi
push edi
push eax
mov esi, dword [esp + 0xd8]
push esi
call fcn.004893e0
mov dword [esp + 0xdc], eax
add esp, 0x10
jmp 0x48a320
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x48a7f7
mov ebx, dword [esp + 0x94]
fld qword [0x4c4bf0]
fmul qword [ebx]
fld qword [esp + 0x70]
fsub dword [0x4c4be4]
fst qword [ebx]
fld st(1)
fchs
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x48ab18
fstp st(0)
fld qword [esp + 0x70]
fucompp
fnstsw ax
test ah, 0x45
jne 0x48a7f7
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0x40]
or edx, eax
mov dword [esp + 0xdc], edx
jmp 0x48a320
fmul dword [0x4c4be4]
cmp esi, 1
sbb eax, eax
and eax, 1
cmp esi, 1
sbb edx, edx
mov dword [esp + 0x18], eax
fst qword [esp + 0x70]
and edx, 0x10
fst qword [esp + 0xc0]
add edx, 0x10
fld qword [0x4c4be8]
fucompp
fnstsw ax
mov dword [esp + 0x40], edx
test ah, 0x45
je 0x48abf2
mov dword [esp + 0x3c], 0
mov dword [esp + 0x78], 0
jmp 0x48a6ee
sub edi, ebx
jmp 0x48a12d
mov edx, dword [esp + 0xc]
xor edi, edi
mov ecx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 0
jmp 0x48a123
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x48ac90
fsubr dword [0x4c4be0]
fld qword [esp + 0x70]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x48a7f7
jmp 0x48aa8b
bsr edx, dword [ecx + eax*4 + 0x14]
bsr eax, dword [ebx + eax*4 + 0x14]
xor edx, 0x1f
xor eax, 0x1f
cmp edx, eax
jge 0x48a7b5
jmp 0x48a869
mov ebx, dword [esp + 0x44]
push eax
sub ebx, edi
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.0048d270
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0x54]
sub eax, ebx
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], edx
add esp, 0x10
jmp 0x48a715
push eax
push eax
push 1
push ecx
call fcn.0048e5f0
mov eax, dword [esp + 0xe4]
inc eax
mov dword [esp + 0x88], 0
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
add esp, 0x10
jmp 0x48a7b5
mov dword [esp + 0x18], 0
mov dword [esp + 0x40], 0x20
mov dword [esp + 0x3c], 0
jmp 0x48a6d7
fnstcw word [esp + 0xa6]
mov ax, word [esp + 0xa6]
mov ah, 0xc
fld qword [esp + 0x70]
mov word [esp + 0xa4], ax
fldcw word [esp + 0xa4]
fist dword [esp + 0x78]
fldcw word [esp + 0xa6]
cmp dword [esp + 0x58], 1
fild dword [esp + 0x78]
fsub st(1), st(0)
fxch st(1)
fstp qword [esp + 0x70]
je 0x48ad51
cmp dword [esp + 0x58], 2
je 0x48ad2d
mov edi, dword [esp + 0x58]
test edi, edi
jne 0x48ac7c
fld dword [0x4c4be4]
fld qword [esp + 0x70]
fucompp
fnstsw ax
test ah, 5
jne 0x48ac7c
fstp st(0)
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x40]
inc ecx
mov eax, 0x30
mov dword [esp + 0x78], ecx
sub eax, edx
mov dword [esp + 0x40], eax
fild dword [esp + 0x78]
fstp qword [esp + 0xc0]
mov dword [esp + 0x3c], 0
jmp 0x48a6ee
fstp st(0)
jmp 0x48a7f7
neg eax
push ecx
push ecx
push eax
push esi
call fcn.0048e5f0
add esp, 0x10
jmp 0x48a753
bsr edx, dword [ecx + eax*4 + 0x14]
bsr eax, dword [ebx + eax*4 + 0x14]
xor edx, 0x1f
xor eax, 0x1f
cmp edx, eax
jle 0x48a7b5
jmp 0x48a790
mov ebx, dword [esp + 0x60]
inc ebx
mov dword [esp + 0x58], ebx
jmp 0x489ac8
mov ecx, dword [esp + 0x60]
sub eax, ecx
mov dword [esp + 0x58], eax
jmp 0x489ac8
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
lea eax, [edx + ebx - 1]
lea edx, [eax + 1]
cmp eax, 8
mov dword [esp + 0x48], edx
jg 0x48b0eb
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x50], 0
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*2]
mov dword [esp + 0x7c], eax
lea eax, [ecx + 1]
mov dword [esp + 0xd0], eax
movsx ebx, byte [ecx + 1]
jmp 0x489f76
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x48ac7c
fldz
fld qword [esp + 0x70]
fucompp
fnstsw ax
test ah, 0x45
je 0x48ac5e
jmp 0x48ac7c
mov esi, dword [esp + 0x18]
test esi, esi
je 0x48ac7c
jmp 0x48ad39
mov dword [esp + 0x5c], esi
jmp 0x48a016
je 0x489b67
neg eax
mov edx, eax
and edx, 0xf
je 0x48ad8c
fld qword [esp + 0xb8]
fdiv qword [edx*8 + 0x4c4d00]
fstp qword [esp + 0xb8]
and eax, 0xfffffff0
je 0x489b67
mov ecx, eax
xor ebx, ebx
sar ecx, 4
cmp ecx, 0xf
jle 0x48adeb
fld qword [0x4c4ce0]
mov eax, dword [esp + 0xbc]
sub ecx, 0x10
mov edx, eax
and eax, 0x800fffff
or eax, 0x3ff00000
and edx, 0x7ff00000
shr edx, 0x14
mov dword [esp + 0xbc], eax
fld qword [esp + 0xb8]
fmul st(1)
lea ebx, [ebx + edx - 0x3ff]
cmp ecx, 0xf
fstp qword [esp + 0xb8]
jg 0x48ada7
fstp st(0)
mov edx, dword [esp + 0xbc]
mov eax, edx
and edx, 0x800fffff
and eax, 0x7ff00000
or edx, 0x3ff00000
shr eax, 0x14
mov dword [esp + 0xbc], edx
test ecx, ecx
lea ebx, [ebx + eax - 0x3ff]
jle 0x489b69
xor eax, eax
jmp 0x48ae23
inc eax
test cl, 1
je 0x48ae3d
fld qword [esp + 0xb8]
fmul qword [eax*8 + 0x4c4cc0]
fstp qword [esp + 0xb8]
sar ecx, 1
test ecx, ecx
jg 0x48ae22
jmp 0x489b69
mov eax, dword [esp + 0x48]
mov edx, 0xf
sub edx, eax
lea eax, [edx + 0x16]
cmp dword [esp + 0x9c], eax
jg 0x489b2a
fld qword [esp + 0xb8]
fmul qword [edx*8 + 0x4c4d00]
mov eax, dword [esp + 0x9c]
sub eax, edx
fmul qword [eax*8 + 0x4c4d00]
fst qword [esp + 0xb8]
sub esp, 0xc
lea eax, [esp + 0xe8]
push eax
mov eax, dword [esp + 0x68]
push eax
push 0
sub esp, 8
fstp qword [esp]
jmp 0x489e4b
cmp ebx, 0x69
je 0x489ce1
cmp ebx, 0x6e
jne 0x489d9c
push ebp
push ebp
push 0x4c4aa9
lea ebx, [esp + 0xdc]
push ebx
call fcn.0048d930
add esp, 0x10
test eax, eax
je 0x489d9c
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xdc], 4
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x30], 0
mov eax, dword [ecx + 8]
inc eax
mov dword [edx], eax
mov eax, dword [esp + 0xd0]
cmp byte [eax], 0x28
jne 0x48a406
push edi
mov esi, dword [esp + 0x114]
push esi
push ecx
push ebx
call fcn.0048e280
mov dword [esp + 0x40], 0
mov dword [esp + 0xec], eax
add esp, 0x10
jmp 0x48a406
cmp dword [esp + 0x9c], 0xffffffea
jl 0x489b2a
mov eax, dword [esp + 0x9c]
shl eax, 3
neg eax
fld qword [esp + 0xb8]
fdiv qword [eax + 0x4c4d00]
jmp 0x48ae81
mov eax, dword [esp + 0xb4]
mov edx, 0x15
or eax, 0x100000
bsf eax, eax
sub edx, eax
jmp 0x489e11
cmp esi, 1
sbb eax, eax
and eax, 0x10
add eax, 0x11
mov dword [esp + 0xdc], eax
jmp 0x48a320
test esi, esi
je 0x48b14a
mov eax, dword [esp + 0x30]
test eax, eax
je 0x48afe0
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0xcc]
mov eax, ecx
sar eax, 5
lea edx, [ebx + 0x14]
lea eax, [ebx + eax*4 + 0x14]
cmp edx, eax
jae 0x48b19e
lea edx, [ebx + 0x18]
cmp dword [ebx + 0x14], 0xffffffff
je 0x48afd3
jmp 0x48afe0
add edx, 4
cmp edx, eax
jae 0x48b19e
cmp dword [edx], 0xffffffff
je 0x48afd0
mov dword [esp + 0xdc], 0x11
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x28], ecx
jl 0x48b161
mov ebx, dword [esp + 0xcc]
test byte [ebx + 0x14], 1
je 0x48a320
test esi, esi
jne 0x48b229
cmp dword [esp + 0x28], 1
je 0x48a303
push ebx
call fcn.004893a0
mov dword [esp + 0xe0], 0x11
pop eax
jmp 0x48a320
test esi, esi
jne 0x48b10e
mov dword [esp + 0xdc], 0x21
cmp dword [esp + 0x28], 1
jg 0x48a320
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x48a37a
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x5c], edx
je 0x48a328
push ecx
push ecx
push 1
push ebp
call fcn.0048d270
mov ebp, eax
pop eax
pop edx
mov eax, dword [esp + 0x94]
push eax
push ebp
call fcn.0048ce70
add esp, 0x10
test eax, eax
jle 0x48a328
mov dword [esp + 0xdc], 0x11
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], eax
jne 0x48b1ef
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xdc], 0x21
cmp dword [eax + 0x10], 1
jne 0x48a320
cmp dword [eax + 0x14], 1
jne 0x48a320
mov dword [esp + 0x64], 1
jmp 0x48a320
mov edx, dword [esp + 0x44]
xor esi, esi
jmp 0x48a9e5
mov dword [esp + 0x50], 0
cmp dword [esp + 0x48], 0x10
jg 0x48ad1a
lea eax, [ebp + ebp*4]
mov ebx, dword [esp + 0x14]
lea ebp, [ebx + eax*2]
jmp 0x48ad1a
mov dword [esp + 0xdc], 0x11
jmp 0x48a320
inc eax
jl 0x489c7d
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xd8], 1
mov dword [eax + 0x14], 1
mov dword [eax + 0x10], 1
jmp 0x489c5b
cmp dword [esp + 0x28], 1
je 0x48b18e
mov dword [esp + 0xdc], 0x21
jmp 0x48afeb
mov eax, dword [esp + 0x30]
test eax, eax
je 0x48a328
jmp 0x48aff9
push eax
push eax
mov eax, ebx
neg eax
push eax
mov edi, dword [esp + 0xd8]
push edi
call fcn.0048e5f0
add esp, 0x10
jmp 0x48a362
mov dword [esp + 0xdc], 1
jmp 0x48b09e
and ecx, 0x1f
je 0x48b1b3
or eax, 0xffffffff
mov edi, dword [edx]
shl eax, cl
or eax, edi
inc eax
jne 0x48afe0
mov dword [ebx + 0x10], 1
mov dword [ebx + 0x14], 1
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xd8], 1
mov dword [esp + 0xdc], 0x21
lea eax, [ecx + ebx - 1]
mov dword [esp + 0xd4], eax
jmp 0x48a328
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0xd4]
sub ebx, edx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xd4], ebx
push ecx
push ecx
push edx
mov eax, dword [esp + 0xd8]
push eax
call fcn.004893e0
mov dword [esp + 0xdc], eax
add esp, 0x10
jmp 0x48a320
sub esp, 0xc
push ebx
call fcn.00489450
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0xdc], eax
mov edx, ebx
add esp, 0x10
and edx, 0x1f
mov ecx, eax
je 0x48b255
mov eax, 0x20
sub eax, edx
mov edx, eax
mov eax, dword [ecx + 0x10]
dec eax
sar eax, 5
bsr eax, dword [ecx + eax*4 + 0x14]
xor eax, 0x1f
cmp edx, eax
je 0x48b272
lea eax, [ebx + 1]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0x21
jmp 0x48a320