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

Disassembly:
sub esp, 0xac
fldz
push ebx
xor ebx, ebx
mov dword [esp + 0x40], ebx
fst qword [esp + 0x64]
fst qword [esp + 0x84]
mov dword [esp + 0x14], ebx
fldz
xor eax, eax
fst dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0xc4]
fst dword [esp + 0x14]
mov word [esp + 0x1c], ax
fstp dword [esp + 8]
push esi
lea edx, [esp + 0x94]
fstp qword [esp + 0x80]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], ebx
mov esi, 1
push edx
mov dword [esp + 0x14], ebx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x98], esi
mov dword [esp + 0x10], ebx
push ebp
mov dword [esp + 0x18], 0xfb01d7fe
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], ecx
call fcn.004015b0
add esp, 8
test eax, eax
jne 0x404fd5
pop esi
pop ebp
lea eax, [ebx - 0xc]
pop ebx
add esp, 0xac
ret
push ebx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.004017a0
mov edx, dword [esp + 0x48]
add edx, 0x71d94223
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
add esp, 0x18
fsub qword [0x425910]
fcomp qword [0x41f690]
fnstsw ax
test ah, 0x41
jne 0x40503b
add dword [0x424438], esi
mov eax, dword [0x424438]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fadd qword [0x423d50]
fstp qword [0x423d50]
push edi
mov edi, dword [esp + 0xc8]
push ebp
push edi
call fcn.00402cc0
add esp, 8
test eax, eax
jge 0x4050da
fld dword [esp + 0x18]
mov eax, dword [esp + 0xc0]
fsub qword [0x41f688]
fstp dword [esp + 0x18]
cmp eax, ebx
je 0x405082
push ebx
push eax
call fcn.00403280
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
mov eax, dword [esp + 0xc4]
cmp eax, ebx
je 0x4050a1
push edi
push eax
call fcn.00403610
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
fld qword [0x425330]
mov ecx, dword [0x4244bc]
fadd qword [0x41f680]
mov dword [esp + 0x14], ecx
fadd qword [0x41f678]
fild dword [esp + 0x14]
faddp st(1)
call fcn.0040adf0
pop edi
pop esi
pop ebp
mov dword [0x4244bc], eax
xor eax, eax
pop ebx
add esp, 0xac
ret
fld qword [0x41f670]
lea edx, [esp + 0x28]
push edi
fstp qword [esp + 0x94]
push edx
call fcn.00403610
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
lea eax, [esp + 0x40]
push ebp
push eax
call fcn.00403610
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
mov ecx, dword [edi + 4]
add ecx, 2
push ecx
lea edx, [esp + 0x60]
mov ebp, 1
push edx
mov dword [esp + 0x48], ebp
mov dword [esp + 0x30], ebp
call fcn.00401da0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
fld qword [0x4253a0]
fsub qword [0x41f358]
fstp qword [0x4253a0]
fld qword [0x4253a0]
fsubr qword [0x41f668]
fsub dword [0x424210]
mov eax, dword [0x4243ec]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
faddp st(1)
call fcn.0040adf0
lea ecx, [esp + 0x5c]
push ebx
push ecx
mov dword [0x4243ec], eax
call fcn.00403280
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
lea edx, [esp + 0x50]
push 2
push edx
call fcn.00401da0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
fld dword [esp + 0x1c]
lea eax, [esp + 0x78]
fadd qword [0x41f660]
push 3
push eax
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fadd qword [0x41f358]
fstp dword [esp + 0x24]
call fcn.00401da0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
movzx ecx, word [0x42597c]
mov dx, word [esp + 0x24]
movsx eax, cx
movsx ecx, dx
mov edx, 0x2cc855b2
sub edx, ecx
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fadd dword [esp + 0x18]
movzx ecx, word [0x424410]
movsx edx, cx
lea eax, [edx + eax + 0x380ec127]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fcompp
fnstsw ax
fld dword [esp + 0x18]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [esp + 0x18]
add dword [esp + 0x24], ebp
test ah, 0x41
jne 0x40525a
movzx ecx, word [0x4230e4]
fstp st(0)
sub ecx, 0x26922dd4
mov word [0x4230e4], cx
jmp 0x405284
fadd qword [0x4241f8]
fstp qword [0x4241f8]
fld qword [0x4241f8]
fsub qword [0x41f658]
fsub qword [0x41f650]
fmul qword [0x424768]
fstp qword [0x424768]
lea edx, [esp + 0x40]
push edx
call fcn.00401460
mov ecx, eax
add esp, 4
and ecx, 0x8000001f
jns 0x4052a0
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, dword [esp + 0x34]
or ebp, 0xffffffff
add dword [esp + 0x34], ebp
sub eax, 0x26c44304
cmp eax, 0x3900e711
je 0x4052cb
fld qword [0x4242d0]
fsub qword [0x41f648]
fstp qword [0x4242d0]
jmp 0x4052fe
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fadd dword [esp + 0x1c]
add dword [esp + 0x20], ebp
fcomp qword [0x41f640]
fnstsw ax
test ah, 0x44
jp 0x4052fe
fld qword [0x424730]
fmul qword [0x41f638]
fstp qword [0x424730]
cmp ecx, 0x1f
jge 0x405340
mov edi, 0x1f
sub edi, ecx
lea eax, [esp + 0x28]
push edi
push eax
mov dword [esp + 0x1c], edi
call fcn.00402ee0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
lea ecx, [esp + 0x40]
push edi
push ecx
call fcn.00402ee0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4059e2
jmp 0x405344
mov dword [esp + 0x14], ebx
mov edx, dword [0x424214]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
mov ecx, 0x10542f82
sub ecx, edx
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
dec ebx
dec eax
mov edi, ebx
fmul qword [0x424198]
sub edi, eax
lea edx, [esp + 0x40]
mov dword [esp + 0x1c], eax
fstp qword [0x424198]
add dword [0x424214], ebp
mov ebp, edi
shl ebp, 5
push ebp
push edx
call fcn.00402ee0
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.004015b0
add esp, 0x10
test eax, eax
jl 0x4053d2
mov eax, dword [esp + 0x64]
inc dword [eax + edi*4]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x2c]
push eax
mov ecx, eax
push ecx
call fcn.00404d50
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x38]
push eax
call fcn.004015b0
add esp, 0x14
test eax, eax
jge 0x4053a3
mov ecx, dword [esp + 0x20]
add ecx, 0x6ba9702d
cmp ecx, 0x38a529b2
jge 0x405425
mov edx, dword [esp + 0x3c]
mov eax, 0xe90debc6
sub eax, edx
add eax, dword [0x4244e8]
inc dword [0x4244e8]
cmp eax, 0xc4f3901d
jge 0x405425
mov ecx, dword [0x424190]
mov edx, 0x59d00812
sub edx, ecx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fmul qword [esp + 0x84]
fstp qword [esp + 0x84]
lea eax, [esp + 0x40]
push ebp
push eax
call fcn.00401b20
add esp, 8
cmp ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
jle 0x405887
fld1
add edi, edi
add edi, edi
add ebp, 0xffffffe0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebp
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x30]
mov esi, dword [ecx + edx*4]
cmp dword [ebp + ebx*4], esi
jb 0x405479
mov eax, dword [esp + 0x64]
fstp st(0)
or ebp, 0xffffffff
mov dword [edi + eax - 4], ebp
jmp 0x405582
mov ecx, dword [ebp + ebx*4]
xor edx, edx
mov eax, ecx
mov edi, esi
shr edi, 0x10
div edi
mov edx, dword [esp + 0x20]
lea ebp, [ebp + edx*4 - 4]
movzx edx, word [ebp + 2]
mov dword [esp + 0x10], ebp
mov ebx, eax
imul eax, edi
sub ecx, eax
shl ecx, 0x10
or ecx, edx
movzx edx, si
mov eax, ebx
imul eax, edx
cmp ecx, eax
jae 0x4054c2
add ecx, esi
dec ebx
cmp ecx, esi
jb 0x4054c2
cmp ecx, eax
jae 0x4054c2
add ecx, esi
dec ebx
cmp ecx, esi
jae 0x4054b7
sub ecx, eax
xor edx, edx
mov eax, ecx
div edi
mov ebp, eax
mov eax, dword [esp + 0x4c]
add eax, 0x10e86c60
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov edx, ebp
imul edx, edi
fadd dword [0x425938]
fstp dword [0x425938]
sub ecx, edx
movzx edx, word [eax]
shl ecx, 0x10
or ecx, edx
movzx edx, si
mov eax, ebp
imul eax, edx
cmp ecx, eax
jae 0x40551a
add ecx, esi
dec ebp
cmp ecx, esi
jb 0x40551a
cmp ecx, eax
jae 0x40551a
add ecx, esi
dec ebp
cmp ecx, esi
jae 0x40550f
fld qword [0x4230d8]
fsubr qword [0x41f630]
fadd qword [esp + 0x70]
mov ax, word [0x42424c]
movsx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
faddp st(1)
call fcn.0040adf0
mov ecx, dword [esp + 0x3c]
mov word [0x42424c], ax
fld qword [esp + 0x70]
fsub st(1)
shl ebx, 0x10
or ebx, ebp
mov edx, 0xffffc993
fstp qword [esp + 0x70]
mov edi, ecx
or ebp, 0xffffffff
fadd qword [0x4230d8]
mov eax, dword [esp + 0x64]
fstp qword [0x4230d8]
mov dword [ecx + eax - 4], ebx
mov ebx, dword [esp + 0x20]
mov word [esp + 0x24], dx
mov eax, dword [esp + 0x64]
inc dword [edi + eax - 4]
lea ebx, [ebx]
mov eax, dword [esp + 0x64]
add dword [edi + eax - 4], ebp
lea edx, [esp + 0x50]
push 0
push edx
call fcn.00403280
mov esi, eax
add esp, 8
test esi, esi
jne 0x4059e0
mov esi, dword [esp + 0x1c]
cmp esi, 1
jl 0x4055c2
mov eax, dword [esp + 0x48]
mov eax, dword [eax + esi*4 - 4]
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
add word [0x42310c], bp
mov edx, dword [0x425354]
mov ax, word [0x42310c]
mov ecx, dword [0x42441c]
cwde
mov dword [esp + 0x10], edx
add ecx, eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fsub dword [0x425350]
fsubp st(1)
call fcn.0040adf0
mov dword [0x425354], eax
fld dword [0x425350]
fsub qword [0x41f358]
fstp dword [0x425350]
inc dword [0x42441c]
mov edx, dword [esp + 0x48]
mov eax, dword [edx + esi*4]
mov ecx, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x64]
mov eax, dword [edi + edx - 4]
push eax
lea ecx, [esp + 0x54]
push ecx
mov edx, ecx
push edx
call fcn.00404ce0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4059e0
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.00403280
mov esi, eax
add esp, 8
test esi, esi
jne 0x4059e0
cmp ebx, 2
jl 0x405674
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + ebx*4 - 8]
cmp ebx, 1
mov edx, dword [esp + 0x80]
mov dword [edx], eax
jge 0x405686
xor eax, eax
jmp 0x40568e
mov eax, dword [esp + 0x30]
mov eax, dword [eax + ebx*4 - 4]
mov ecx, dword [esp + 0x80]
mov dword [ecx + 4], eax
fld qword [0x4241b0]
fld qword [0x4230f8]
fadd qword [0x41f628]
fsubp st(1)
fstp qword [0x4241b0]
fld qword [0x4230f8]
mov edx, dword [esp + 0x30]
fsub qword [0x41f358]
mov ecx, dword [esp + 0x80]
fstp qword [0x4230f8]
mov eax, dword [edx + ebx*4]
lea edx, [esp + 0x78]
mov dword [ecx + 8], eax
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004015b0
add esp, 8
test eax, eax
jg 0x405590
mov ecx, dword [esp + 0x64]
mov edx, dword [edi + ecx - 4]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x58]
push ecx
call fcn.00404ce0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4059e0
mov ebp, dword [esp + 0x38]
lea edx, [esp + 0x50]
push ebp
push edx
call fcn.00402ee0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4059e0
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov edx, ecx
push edx
call fcn.00404d50
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4059e0
mov dword [esp + 0x10], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x68], eax
mov eax, 1
lea ecx, [esp + 0xa4]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
push ecx
lea edx, [esp + 0x2c]
lea eax, [esp + 0x6c]
push edx
mov dword [esp + 0x18], 0xfb01d7fe
mov dword [esp + 0xb4], eax
call fcn.004015b0
add esp, 8
test eax, eax
jge 0x405866
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.00403610
mov esi, eax
add esp, 8
test esi, esi
jne 0x4059e0
lea edx, [esp + 0x50]
push ebp
push edx
call fcn.00402ee0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4059e0
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x2c]
push ecx
mov edx, ecx
push edx
call fcn.00404e10
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4059e0
fld dword [esp + 0x18]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x18]
mov ax, word [0x425310]
movsx ecx, ax
mov dword [esp + 0x10], ecx
or ecx, 0xffffffff
fild dword [esp + 0x10]
fsub dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
add dword [esp + 0x4c], ecx
mov dword [esp + 0x10], edx
fiadd dword [esp + 0x10]
fcomp qword [0x41f620]
fnstsw ax
test ah, 0x44
jnp 0x405852
fld qword [0x4241f8]
fsub qword [0x41f618]
fadd qword [esp + 0x70]
mov eax, dword [esp + 0x64]
add dword [edi + eax - 4], ecx
fstp qword [esp + 0x70]
jmp 0x405868
fld dword [0x41f610]
mov eax, dword [esp + 0x64]
add dword [edi + eax - 4], ecx
fstp dword [esp + 0x10]
jmp 0x405868
fld1
dec ebx
sub ebp, 0x20
sub edi, 4
cmp ebx, dword [esp + 0x1c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], edi
jg 0x405452
fstp st(0)
mov edi, dword [esp + 0xc0]
xor ebp, ebp
cmp edi, ebp
je 0x4058db
lea eax, [esp + 0x5c]
push eax
push edi
call fcn.00403610
mov ecx, dword [esp + 0xd0]
mov edx, dword [ecx]
mov eax, dword [esp + 0xd4]
imul edx, dword [eax]
mov dword [edi], edx
mov cx, word [0x425344]
movsx edx, cx
mov dword [esp + 0x18], edx
mov ebx, 1
add esp, 8
fild dword [esp + 0x10]
fstp dword [esp + 0x18]
add word [0x425344], bx
jmp 0x4058e0
mov ebx, 1
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0xc4]
imul eax, eax, 0x54eef381
mov dword [esp + 0x34], eax
cmp edi, ebp
je 0x4059a9
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x2c]
push edx
call fcn.00401b20
fld qword [0x423db8]
fsub qword [0x41f358]
fstp qword [0x423db8]
fld qword [0x423db8]
mov eax, dword [0x4241c8]
fsub qword [0x41f608]
mov dword [esp + 0x18], eax
fsub qword [0x41f600]
fild dword [esp + 0x18]
faddp st(1)
call fcn.0040adf0
lea ecx, [esp + 0x30]
push ecx
mov dword [0x4241c8], eax
push edi
call fcn.00403610
mov edx, dword [esp + 0xd8]
mov eax, dword [edx]
mov dword [edi], eax
lea edx, [esp + 0xc0]
mov dword [esp + 0x20], ebp
mov dword [esp + 0x7c], ebp
push edx
lea ecx, [esp + 0x80]
mov dword [esp + 0x80], ebp
mov dword [esp + 0xc4], ebx
push edi
mov dword [esp + 0x28], 0xfb01d7fe
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xd0], ecx
call fcn.004015b0
add esp, 0x18
test eax, eax
jne 0x4059a9
mov dword [edi], ebx
dec word [0x42430c]
fld dword [0x42418c]
fld qword [esp + 0x90]
mov ax, word [0x42430c]
movsx ecx, ax
faddp st(1)
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
faddp st(1)
fsubr qword [esp + 0x84]
fstp qword [esp + 0x84]
xor ebx, ebx
push ebx
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x3c]
push eax
call fcn.00401d00
add esp, 0x18
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xac
ret