Function at 0x49ea40
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 0x49eb34
mov dword [esp + 0x60], 0
mov dword [esp + 0x54], 0
cmp byte [ecx], 0x30
je 0x49ec02
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 0x49ec59
cmp ebx, 0x39
jg 0x49ec59
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x7c], 0
jmp 0x49eb1e
cmp esi, 0xf
jg 0x49eb00
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 0x49ec65
cmp ebx, 0x39
jg 0x49ec65
cmp esi, 8
jg 0x49eaf0
mov edx, dword [esp + 0x7c]
lea eax, [edx + edx*4]
lea eax, [ebx + eax*2 - 0x30]
mov dword [esp + 0x7c], eax
jmp 0x49eb00
xor eax, eax
mov al, byte [ecx]
jmp dword [eax*4 + 0x4d416c]
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 0x49eb7b
mov ecx, dword [esp + 0x104]
mov eax, dword [esp + 0xd0]
mov dword [ecx], eax
mov esi, dword [esp + 0x60]
test esi, esi
jne 0x49ebc0
test ebx, ebx
je 0x49ebac
push edx
push ebx
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x11c]
push eax
call fcn.004a2bb0
pop eax
mov eax, dword [esp + 0xd8]
push eax
call fcn.004a2250
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 0x49eb83
mov dword [esp + 0x60], 1
lea eax, [ecx + 1]
mov dword [esp + 0xd0], eax
cmp byte [ecx + 1], 0
je case.0x49eb38.0
mov ecx, eax
mov dword [esp + 0x54], 0
cmp byte [ecx], 0x30
jne 0x49eaba
mov al, byte [ecx + 1]
cmp al, 0x58
je 0x49f85d
cmp al, 0x78
jne 0x49ec18
jmp 0x49f85d
mov ecx, edx
lea edx, [ecx + 1]
mov dword [esp + 0xd0], edx
mov al, byte [ecx + 1]
cmp al, 0x30
je 0x49ec16
test al, al
je 0x49eb59
mov ecx, edx
mov dword [esp + 0x54], 1
jmp 0x49eaba
mov dword [esp + 0x60], 0
jmp 0x49ebdb
lea eax, [ecx + 1]
mov dword [esp + 0xd0], eax
jmp 0x49ea91
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 0x49f173
mov dword [esp + 0x48], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
cmp ebx, 0x65
je 0x49ef80
cmp ebx, 0x45
je 0x49ef80
xor eax, eax
mov edx, dword [esp + 0x48]
test edx, edx
je 0x49eedf
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 0x49ff05
cmp eax, 3
je 0x49fef7
test eax, eax
sete al
and eax, 0xff
mov dword [esp + 0x58], eax
mov edi, esi
test esi, esi
jne 0x49ed02
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x48]
cmp ebx, 0x10
jle 0x49ed10
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 0x49f22f
fmul qword [ebx*8 + 0x4d4378]
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 0x49ed5a
cmp dword [esp + 0x48], 0xf
jle 0x49efea
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x48]
sub eax, ebx
add eax, edx
cmp eax, 0
jle 0x49ff98
mov edx, eax
and edx, 0xf
je 0x49ed8e
fld qword [esp + 0xb8]
fmul qword [edx*8 + 0x4d43c0]
fstp qword [esp + 0xb8]
and eax, 0xfffffff0
jne 0x49f71d
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.004a2a60
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 0x49ee16
push ebp
push ebp
push ebx
push eax
call fcn.004a3820
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 0x49f612
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], eax
cmp esi, eax
jge 0x49ff8f
mov ebx, ecx
mov eax, dword [esp + 0x34]
sub ebx, eax
cmp ebx, 0
jle 0x49f804
push eax
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.004a24a0
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 0x49f236
lea eax, [esi + 1]
cmp ebx, eax
jle 0x49f236
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 0x49f65d
mov edx, dword [esp + 0x50]
or edx, dword [esp + 0x54]
jne 0x49eb59
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x49efcc
cmp ebx, 0x4e
je 0x4a00e7
jg 0x4a00d5
cmp ebx, 0x49
jne 0x49efcc
push eax
push eax
push 0x4d4160
lea ebx, [esp + 0xdc]
push ebx
call fcn.004a2b60
add esp, 0x10
test eax, eax
je 0x49efcc
mov eax, dword [esp + 0xd0]
dec eax
mov dword [esp + 0xd0], eax
push eax
push eax
push str.inity
push ebx
call fcn.004a2b60
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 0x49f636
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
or eax, edx
or eax, dword [esp + 0x54]
je 0x49efcc
mov edi, dword [esp + 0xd0]
lea edx, [edi + 1]
mov dword [esp + 0xd0], edx
mov al, byte [edi + 1]
cmp al, 0x2b
je 0x49f0a7
mov dword [esp + 0x38], 1
cmp al, 0x2d
je 0x49f0af
movsx ebx, al
mov dword [esp + 0x38], 0
jmp 0x49f0bd
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xdc], 6
mov dword [esp + 0xd0], edi
jmp 0x49eb60
cmp dword [esp + 0x9c], 0
je 0x49f836
jle 0x4a0164
cmp dword [esp + 0x9c], 0x16
jg 0x4a0078
fld qword [esp + 0xb8]
mov eax, dword [esp + 0x9c]
fst qword [esp + 0xb0]
mov ecx, dword [eax*4 + 0x4d4240]
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x4a0190
mov edx, 0x35
bsf eax, eax
sub edx, eax
mov eax, dword [esp + 0x9c]
fmul qword [eax*8 + 0x4d43c0]
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.0049e710
add esp, 0x20
test eax, eax
jne 0x49eb59
xor edx, edx
jmp 0x49ed61
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 0x49f70f
cmp ebx, 0x30
jne 0x49f0e9
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 0x49f0ce
lea eax, [ebx - 0x31]
cmp eax, 8
ja 0x49eca5
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 0x49f141
jmp 0x49f146
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 0x49f146
cmp ebx, 0x39
jle 0x49f120
mov eax, dword [esp + 0x6c]
sub edx, eax
cmp edx, 8
jg 0x49f15b
mov eax, ecx
cmp ecx, 0x4e1f
jle 0x49f160
mov eax, 0x4e1f
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x49eca7
neg eax
jmp 0x49eca7
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 0x49f6a4
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 0x49ec93
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 0x49ff4a
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 0x49ff20
mov ebx, eax
mov edx, 1
jmp 0x49f213
cmp ebx, 0x10
jg 0x49f208
lea eax, [ebp + ebp*4]
lea ebp, [eax + eax]
inc edx
cmp edx, dword [esp + 0x50]
je 0x49ff14
inc ebx
lea eax, [ebx - 1]
cmp eax, 8
jg 0x49f1fc
mov eax, dword [esp + 0x7c]
lea eax, [eax + eax*4]
mov dword [esp + 4], eax
add eax, eax
mov dword [esp + 0x7c], eax
jmp 0x49f208
fstp st(0)
jmp 0x49ed48
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.004a2d00
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.004a2290
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.004a2290
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.004a2710
mov dword [esp + 0x9c], eax
add esp, 0x10
mov eax, dword [esp + 0x9c]
test eax, eax
js 0x49fd2f
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 0x49fd28
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 0x49f384
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 0x49f392
mov eax, edi
cmp eax, ecx
jle 0x49f398
mov eax, ecx
mov ebp, ecx
test eax, eax
jle 0x49f3a4
sub esi, eax
sub edi, eax
sub ebp, eax
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x49f3f1
push eax
push eax
mov eax, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x98]
push eax
call fcn.004a2820
mov dword [esp + 0x9c], eax
pop ecx
pop ebx
mov edx, dword [esp + 0x88]
push edx
push eax
call fcn.004a25a0
mov ebx, eax
pop eax
mov eax, dword [esp + 0x8c]
push eax
call fcn.004a2250
mov dword [esp + 0x90], ebx
add esp, 0x10
mov eax, esi
mov esi, dword [esp + 0x1c]
sub eax, esi
cmp eax, 0
jle 0x49facb
push ebx
push ebx
push eax
mov ecx, dword [esp + 0x8c]
push ecx
call fcn.004a24a0
mov dword [esp + 0x90], eax
add esp, 0x10
mov ebx, dword [esp + 0x24]
test ebx, ebx
jne 0x49faf2
test edi, edi
jle 0x49f446
push eax
push eax
push edi
mov eax, dword [esp + 0x90]
push eax
call fcn.004a24a0
mov dword [esp + 0x94], eax
add esp, 0x10
test ebp, ebp
jle 0x49f464
push eax
push eax
push ebp
mov eax, dword [esp + 0x98]
push eax
call fcn.004a24a0
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.004a2330
add esp, 0x10
mov ebp, eax
cmp dword [eax + 0x10], 1
jle 0x49fb15
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.004a20a0
add esp, 0x10
mov edx, dword [esp + 0x58]
test edx, edx
je 0x49f4b7
test eax, eax
jle 0x49f8b8
cmp eax, 0
jl 0x4a0264
je 0x4a01c2
lea ebx, [esp + 0xc0]
mov dword [esp + 0x94], ebx
push eax
push eax
mov eax, dword [esp + 0x94]
push eax
push ebp
call fcn.004a2c70
fld st(0)
fstp qword [esp + 0xd0]
fld dword [0x4d429c]
add esp, 0x10
fucomp st(1)
fnstsw ax
test ah, 1
jne 0x49fcd4
fstp st(0)
test esi, esi
jne 0x49fe05
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x49fb25
cmp dword [esp + 0x28], 1
jg 0x49fb25
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 0x49f5aa
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0xd8]
sub ebx, eax
mov dword [esp + 0x30], 0
cmp ebx, 0
je 0x49f5aa
jle 0x4a03a2
push eax
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.004a24a0
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.004a2250
pop ecx
mov edx, dword [esp + 0x90]
push edx
call fcn.004a2250
pop eax
mov eax, dword [esp + 0x98]
push eax
call fcn.004a2250
pop eax
mov eax, dword [esp + 0x94]
push eax
call fcn.004a2250
mov dword [esp], ebp
call fcn.004a2250
add esp, 0x10
mov ecx, dword [esp + 0x108]
mov eax, dword [ecx + 8]
cmp eax, dword [esp + 0xd4]
jge 0x49f64a
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 0x49eb59
mov ebx, dword [esp + 0xcc]
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x49f7d0
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 0x49eb60
or edx, 0x40
mov dword [esp + 0xdc], edx
jmp 0x49eb60
mov dword [esp + 0x50], 0
cmp al, 0x30
jne 0x49f6d4
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 0x49f6b0
lea eax, [ebx - 0x31]
cmp eax, 8
ja 0x49f7e7
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 0x49f1ce
xor eax, eax
mov dword [esp + 0xd0], edi
jmp 0x49eca7
mov ecx, eax
xor ebx, ebx
sar ecx, 4
cmp ecx, 0xf
jle 0x49f773
fld qword [0x4d4360]
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 0x49f72f
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 0x49ed99
xor eax, eax
jmp 0x49f7ab
inc eax
test cl, 1
je 0x49f7c5
fld qword [esp + 0xb8]
fmul qword [eax*8 + 0x4d4340]
fstp qword [esp + 0xb8]
sar ecx, 1
test ecx, ecx
jg 0x49f7aa
jmp 0x49ed99
mov dword [ebx + 0x10], 0
mov dword [esp + 0xdc], 0x50
jmp 0x49eb60
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0x4c], 0
jmp 0x49ec93
je 0x49ee8b
lea eax, [ebx + edx]
mov dword [esp + 0xd8], eax
test eax, eax
jle 0x4a034e
neg ebx
push eax
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.004a3820
add esp, 0x10
jmp 0x49ee8b
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 0x49f07b
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.004a2dc0
mov dword [esp + 0xfc], eax
add esp, 0x20
cmp eax, 6
jne 0x49eb59
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xd0], edi
mov dword [esp + 0x60], 0
jmp 0x49eb60
mov eax, dword [esp + 0x58]
mov dword [esp + 0xdc], 1
and eax, 1
xor eax, esi
mov dword [esp + 0x3c], eax
je 0x4a01ab
test esi, esi
je 0x49fbbb
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 0x49f945
cmp dword [esp + 0x44], edi
jg 0x49fd90
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.004a2a60
mov esi, eax
mov eax, dword [esp + 0xf4]
add esp, 0x10
cmp eax, 0
jl 0x49fec7
jne 0x49fba8
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0xcc]
test eax, eax
je 0x49fa77
push ecx
push ecx
push esi
push ebx
call fcn.004a2330
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 0x49f9e5
dec eax
cmp eax, dword [ecx + 0x10]
jl 0x49feda
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], eax
jne 0x49fb48
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x30], 1
dec eax
mov dword [esp + 0xd8], eax
sub esp, 0xc
push esi
call fcn.004a2250
mov dword [esp], ebx
call fcn.004a2250
add esp, 0x10
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x49f550
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 0x49fc70
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x49fb84
sub esp, 0xc
mov esi, dword [esp + 0x8c]
push esi
call fcn.004a2250
pop ebx
mov ecx, dword [esp + 0x90]
push ecx
call fcn.004a2250
pop edx
mov eax, dword [esp + 0x98]
push eax
call fcn.004a2250
mov dword [esp], ebp
call fcn.004a2250
add esp, 0x10
jmp 0x49f290
push eax
push eax
push esi
push ebx
call fcn.004a36a0
mov dword [esp + 0xdc], eax
mov ecx, eax
mov eax, dword [eax + 0x10]
add esp, 0x10
dec eax
cmp eax, dword [ebx + 0x10]
jl 0x49fd73
mov eax, dword [esp + 0x30]
test eax, eax
je 0x49fdd0
mov eax, dword [esp + 0xd8]
inc eax
mov dword [esp + 0xd8], eax
cmp dword [esp + 0x44], eax
jne 0x49f9e5
mov dword [esp + 0x30], 0
jmp 0x49f9e5
je 0x49f41c
neg eax
push edx
push edx
push eax
mov esi, dword [esp + 0x8c]
push esi
call fcn.004a3820
add esp, 0x10
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x49f428
push ecx
push ecx
mov edx, dword [esp + 0x2c]
push edx
mov eax, dword [esp + 0x90]
push eax
call fcn.004a2820
mov dword [esp + 0x94], eax
add esp, 0x10
jmp 0x49f428
mov esi, dword [eax + 0x14]
test esi, esi
jne 0x49f48a
jmp 0x49f550
lea edx, [esp + 0xc0]
mov dword [esp + 0x18], 1
mov dword [esp + 0x94], edx
mov dword [esp + 0x40], 0x10
jmp 0x49f907
push edi
push edi
push 1
push ecx
call fcn.004a24a0
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.004a2250
mov dword [esp], ebx
call fcn.004a2250
add esp, 0x10
sub esp, 0xc
mov edi, dword [esp + 0xd8]
push edi
call fcn.004a38f0
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], eax
add esp, 0x10
jmp 0x49fa3b
push edx
push edx
push eax
push esi
call fcn.004a24a0
add esp, 0x10
mov esi, eax
jmp 0x49f983
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xdc], 0x11
cmp dword [esp + 0x5c], ebx
je 0x49f515
cmp dword [esp + 0x44], 0x1f
jle 0x4a0310
mov ebx, dword [esp + 0xcc]
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x49f515
mov edx, dword [esp + 0x44]
xor esi, esi
jmp 0x49fc0c
mov eax, dword [ebx + esi*4 + 0x14]
test eax, eax
jne 0x49f515
sub edx, 0x20
inc esi
cmp edx, 0x1f
jg 0x49fc00
cmp edx, 1
jle 0x49fc39
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 0x49f515
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.0049e610
mov dword [esp + 0xdc], eax
add esp, 0x10
jmp 0x49f550
mov ecx, dword [esp + 0x78]
test ecx, ecx
je 0x49fa27
mov ebx, dword [esp + 0x94]
fld qword [0x4d42b0]
fmul qword [ebx]
fld qword [esp + 0x70]
fsub dword [0x4d42a4]
fst qword [ebx]
fld st(1)
fchs
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x49fd48
fstp st(0)
fld qword [esp + 0x70]
fucompp
fnstsw ax
test ah, 0x45
jne 0x49fa27
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + 0x40]
or edx, eax
mov dword [esp + 0xdc], edx
jmp 0x49f550
fmul dword [0x4d42a4]
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 [0x4d42a8]
fucompp
fnstsw ax
mov dword [esp + 0x40], edx
test ah, 0x45
je 0x49fe22
mov dword [esp + 0x3c], 0
mov dword [esp + 0x78], 0
jmp 0x49f91e
sub edi, ebx
jmp 0x49f35d
mov edx, dword [esp + 0xc]
xor edi, edi
mov ecx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 0
jmp 0x49f353
fucomp st(1)
fnstsw ax
test ah, 0x45
jne 0x49fec0
fsubr dword [0x4d42a0]
fld qword [esp + 0x70]
fxch st(1)
fucompp
fnstsw ax
test ah, 0x45
jne 0x49fa27
jmp 0x49fcbb
bsr edx, dword [ecx + eax*4 + 0x14]
bsr eax, dword [ebx + eax*4 + 0x14]
xor edx, 0x1f
xor eax, 0x1f
cmp edx, eax
jge 0x49f9e5
jmp 0x49fa99
mov ebx, dword [esp + 0x44]
push eax
sub ebx, edi
push eax
push ebx
mov eax, dword [esp + 0xd8]
push eax
call fcn.004a24a0
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 0x49f945
push eax
push eax
push 1
push ecx
call fcn.004a3820
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 0x49f9e5
mov dword [esp + 0x18], 0
mov dword [esp + 0x40], 0x20
mov dword [esp + 0x3c], 0
jmp 0x49f907
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 0x49ff81
cmp dword [esp + 0x58], 2
je 0x49ff5d
mov edi, dword [esp + 0x58]
test edi, edi
jne 0x49feac
fld dword [0x4d42a4]
fld qword [esp + 0x70]
fucompp
fnstsw ax
test ah, 5
jne 0x49feac
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 0x49f91e
fstp st(0)
jmp 0x49fa27
neg eax
push ecx
push ecx
push eax
push esi
call fcn.004a3820
add esp, 0x10
jmp 0x49f983
bsr edx, dword [ecx + eax*4 + 0x14]
bsr eax, dword [ebx + eax*4 + 0x14]
xor edx, 0x1f
xor eax, 0x1f
cmp edx, eax
jle 0x49f9e5
jmp 0x49f9c0
mov ebx, dword [esp + 0x60]
inc ebx
mov dword [esp + 0x58], ebx
jmp 0x49ecf8
mov ecx, dword [esp + 0x60]
sub eax, ecx
mov dword [esp + 0x58], eax
jmp 0x49ecf8
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 0x4a031b
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 0x49f1a6
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x49feac
fldz
fld qword [esp + 0x70]
fucompp
fnstsw ax
test ah, 0x45
je 0x49fe8e
jmp 0x49feac
mov esi, dword [esp + 0x18]
test esi, esi
je 0x49feac
jmp 0x49ff69
mov dword [esp + 0x5c], esi
jmp 0x49f246
je 0x49ed97
neg eax
mov edx, eax
and edx, 0xf
je 0x49ffbc
fld qword [esp + 0xb8]
fdiv qword [edx*8 + 0x4d43c0]
fstp qword [esp + 0xb8]
and eax, 0xfffffff0
je 0x49ed97
mov ecx, eax
xor ebx, ebx
sar ecx, 4
cmp ecx, 0xf
jle 0x4a001b
fld qword [0x4d43a0]
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 0x49ffd7
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 0x49ed99
xor eax, eax
jmp 0x4a0053
inc eax
test cl, 1
je 0x4a006d
fld qword [esp + 0xb8]
fmul qword [eax*8 + 0x4d4380]
fstp qword [esp + 0xb8]
sar ecx, 1
test ecx, ecx
jg 0x4a0052
jmp 0x49ed99
mov eax, dword [esp + 0x48]
mov edx, 0xf
sub edx, eax
lea eax, [edx + 0x16]
cmp dword [esp + 0x9c], eax
jg 0x49ed5a
fld qword [esp + 0xb8]
fmul qword [edx*8 + 0x4d43c0]
mov eax, dword [esp + 0x9c]
sub eax, edx
fmul qword [eax*8 + 0x4d43c0]
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 0x49f07b
cmp ebx, 0x69
je 0x49ef11
cmp ebx, 0x6e
jne 0x49efcc
push ebp
push ebp
push 0x4d4169
lea ebx, [esp + 0xdc]
push ebx
call fcn.004a2b60
add esp, 0x10
test eax, eax
je 0x49efcc
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 0x49f636
push edi
mov esi, dword [esp + 0x114]
push esi
push ecx
push ebx
call fcn.004a34b0
mov dword [esp + 0x40], 0
mov dword [esp + 0xec], eax
add esp, 0x10
jmp 0x49f636
cmp dword [esp + 0x9c], 0xffffffea
jl 0x49ed5a
mov eax, dword [esp + 0x9c]
shl eax, 3
neg eax
fld qword [esp + 0xb8]
fdiv qword [eax + 0x4d43c0]
jmp 0x4a00b1
mov eax, dword [esp + 0xb4]
mov edx, 0x15
or eax, 0x100000
bsf eax, eax
sub edx, eax
jmp 0x49f041
cmp esi, 1
sbb eax, eax
and eax, 0x10
add eax, 0x11
mov dword [esp + 0xdc], eax
jmp 0x49f550
test esi, esi
je 0x4a037a
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4a0210
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 0x4a03ce
lea edx, [ebx + 0x18]
cmp dword [ebx + 0x14], 0xffffffff
je 0x4a0203
jmp 0x4a0210
add edx, 4
cmp edx, eax
jae 0x4a03ce
cmp dword [edx], 0xffffffff
je 0x4a0200
mov dword [esp + 0xdc], 0x11
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x28], ecx
jl 0x4a0391
mov ebx, dword [esp + 0xcc]
test byte [ebx + 0x14], 1
je 0x49f550
test esi, esi
jne 0x4a0459
cmp dword [esp + 0x28], 1
je 0x49f533
push ebx
call fcn.0049e5d0
mov dword [esp + 0xe0], 0x11
pop eax
jmp 0x49f550
test esi, esi
jne 0x4a033e
mov dword [esp + 0xdc], 0x21
cmp dword [esp + 0x28], 1
jg 0x49f550
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x49f5aa
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x5c], edx
je 0x49f558
push ecx
push ecx
push 1
push ebp
call fcn.004a24a0
mov ebp, eax
pop eax
pop edx
mov eax, dword [esp + 0x94]
push eax
push ebp
call fcn.004a20a0
add esp, 0x10
test eax, eax
jle 0x49f558
mov dword [esp + 0xdc], 0x11
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x5c], eax
jne 0x4a041f
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xdc], 0x21
cmp dword [eax + 0x10], 1
jne 0x49f550
cmp dword [eax + 0x14], 1
jne 0x49f550
mov dword [esp + 0x64], 1
jmp 0x49f550
mov edx, dword [esp + 0x44]
xor esi, esi
jmp 0x49fc15
mov dword [esp + 0x50], 0
cmp dword [esp + 0x48], 0x10
jg 0x49ff4a
lea eax, [ebp + ebp*4]
mov ebx, dword [esp + 0x14]
lea ebp, [ebx + eax*2]
jmp 0x49ff4a
mov dword [esp + 0xdc], 0x11
jmp 0x49f550
inc eax
jl 0x49eead
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xd8], 1
mov dword [eax + 0x14], 1
mov dword [eax + 0x10], 1
jmp 0x49ee8b
cmp dword [esp + 0x28], 1
je 0x4a03be
mov dword [esp + 0xdc], 0x21
jmp 0x4a021b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x49f558
jmp 0x4a0229
push eax
push eax
mov eax, ebx
neg eax
push eax
mov edi, dword [esp + 0xd8]
push edi
call fcn.004a3820
add esp, 0x10
jmp 0x49f592
mov dword [esp + 0xdc], 1
jmp 0x4a02ce
and ecx, 0x1f
je 0x4a03e3
or eax, 0xffffffff
mov edi, dword [edx]
shl eax, cl
or eax, edi
inc eax
jne 0x4a0210
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 0x49f558
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.0049e610
mov dword [esp + 0xdc], eax
add esp, 0x10
jmp 0x49f550
sub esp, 0xc
push ebx
call fcn.0049e680
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0xdc], eax
mov edx, ebx
add esp, 0x10
and edx, 0x1f
mov ecx, eax
je 0x4a0485
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 0x4a04a2
lea eax, [ebx + 1]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0x21
jmp 0x49f550