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

Disassembly:
sub esp, 0xc4
fldz
push ebx
mov ebx, dword [esp + 0xd8]
xor eax, eax
mov word [esp + 0x1c], ax
fstp dword [esp + 0x54]
fldz
push ebp
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x68], ebp
xor ecx, ecx
mov word [esp + 8], cx
fst qword [esp + 0x88]
mov dword [esp + 0x48], ebp
fst qword [esp + 0xa0]
xor edx, edx
mov word [esp + 0x18], dx
mov dword [esp + 0xc], ebp
lea edx, [esp + 0xa8]
mov dword [esp + 0x78], ebp
mov word [esp + 8], ax
fstp qword [esp + 0x10]
mov eax, 1
push edx
lea ecx, [esp + 0x94]
push ebx
mov dword [esp + 0x98], ebp
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], ecx
call fcn.00401870
add esp, 8
test eax, eax
jne 0x404fa2
lea eax, [ebp - 0xc]
pop ebp
pop ebx
add esp, 0xc4
ret
push esi
push edi
push ebp
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00401f50
mov edi, dword [esp + 0xf8]
push ebx
push edi
call fcn.00402780
add esp, 0x20
test eax, eax
jge 0x405026
mov eax, dword [esp + 0xd8]
cmp eax, ebp
je 0x404ffa
push ebp
push eax
call fcn.00403020
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
mov eax, dword [esp + 0xdc]
cmp eax, ebp
je 0x405019
push edi
push eax
call fcn.004028c0
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc4
ret
lea edx, [esp + 0x2c]
push edi
push edx
call fcn.004028c0
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
lea eax, [esp + 0x40]
push ebx
push eax
call fcn.004028c0
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
mov ecx, dword [edi + 4]
add ecx, 2
push ecx
lea edx, [esp + 0x68]
mov ebx, 1
push edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x34], ebx
call fcn.00401560
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
lea eax, [esp + 0x64]
push ebp
push eax
call fcn.00403020
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
mov cx, word [0x4232d4]
movzx edx, word [esp + 0x20]
movsx eax, cx
mov ecx, dword [esp + 0x24]
sub eax, edx
sub eax, ecx
sub eax, 0x54feaa51
mov word [0x4232d4], ax
add dword [esp + 0x20], ebx
add dword [esp + 0x24], ebx
lea edx, [esp + 0x54]
push 2
push edx
call fcn.00401560
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
lea eax, [esp + 0x84]
push 3
push eax
call fcn.00401560
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
lea ecx, [esp + 0x40]
push ecx
call fcn.004012c0
mov ebx, eax
add esp, 4
and ebx, 0x8000001f
jns 0x405114
dec ebx
or ebx, 0xffffffe0
inc ebx
fld dword [0x424714]
fadd qword [esp + 0x90]
fsub qword [0x41f730]
call fcn.0040b060
cmp ebx, 0x1f
mov word [0x4242b0], ax
fld qword [esp + 0x90]
fadd qword [0x41f348]
fstp qword [esp + 0x90]
jge 0x40518b
mov edi, 0x1f
sub edi, ebx
lea edx, [esp + 0x2c]
push edi
push edx
mov dword [esp + 0x84], edi
call fcn.00404010
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
lea eax, [esp + 0x40]
push edi
push eax
call fcn.00404010
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x40586a
jmp 0x40518f
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
dec ebp
dec eax
mov edi, ebp
sub edi, eax
mov ebx, edi
shl ebx, 5
lea ecx, [esp + 0x40]
push ebx
push ecx
mov dword [esp + 0x7c], eax
call fcn.00404010
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x38]
push eax
call fcn.00401870
add esp, 0x10
test eax, eax
jl 0x405238
jmp 0x4051d0
fld dword [0x4242e4]
mov eax, dword [esp + 0x6c]
fadd qword [0x41f728]
fstp dword [0x4242e4]
inc dword [eax + edi*4]
dec word [0x424270]
mov cx, word [0x424270]
movzx edx, word [0x424184]
movsx eax, cx
add eax, 0x13d86d6e
imul edx, eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x30]
mov word [0x424184], dx
push ecx
mov edx, ecx
push edx
call fcn.00404960
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.00401870
add esp, 0x14
test eax, eax
jge 0x4051d0
lea edx, [esp + 0x40]
push ebx
push edx
call fcn.00401140
mov ax, word [0x4232d4]
mov ecx, dword [esp + 0x1c]
movzx edx, word [0x423430]
cwde
sub eax, ecx
add eax, edx
mov word [0x4232d4], ax
dec dword [esp + 0x1c]
add esp, 8
cmp ebp, dword [esp + 0x74]
mov dword [esp + 0x4c], ebp
jle 0x40571e
lea eax, [edi*4]
add ebx, 0xffffffe0
mov dword [esp + 0x10], eax
mov dword [esp + 0x78], ebx
jmp 0x405294
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx + edx*4]
mov ebp, dword [esp + 0x74]
lea ecx, [ecx + edx*4]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x18], ecx
cmp esi, dword [edx + ebp*4]
jb 0x4052cc
mov ecx, dword [esp + 0x6c]
mov dword [eax + ecx - 4], 0xffffffff
mov ecx, dword [esp + 0x6c]
inc dword [eax + ecx - 4]
jmp 0x405454
mov edi, dword [edx + ebp*4]
mov eax, 0xffff99c4
mov word [esp + 0x28], ax
mov edx, dword [esp + 0x24]
sub edx, 0x4d6ed40f
mov word [0x423440], dx
fld qword [esp + 0xa8]
mov eax, dword [ecx]
fsub qword [0x41f720]
mov ebx, edi
shr ebx, 0x10
xor edx, edx
fmul dword [0x42426c]
div ebx
fstp dword [0x42426c]
mov esi, dword [ecx]
movzx ecx, word [ecx - 2]
add dword [esp + 0x14], 0x32c4b305
mov ebp, eax
imul eax, ebx
sub esi, eax
shl esi, 0x10
or esi, ecx
movzx ecx, di
mov eax, ebp
imul eax, ecx
cmp esi, eax
jae 0x40534b
add esi, edi
dec ebp
cmp esi, edi
jb 0x40534b
jmp 0x405340
cmp esi, eax
jae 0x40534b
add esi, edi
dec ebp
cmp esi, edi
jae 0x405340
sub esi, eax
xor edx, edx
mov eax, esi
div ebx
dec word [0x425eb8]
mov dx, word [esp + 0x28]
mov dword [esp + 0x3c], eax
movsx eax, dx
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fsub dword [esp + 0x60]
mov cx, word [0x425eb8]
mov eax, dword [0x424160]
movsx edx, cx
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
mov dword [esp + 0x38], eax
fsubp st(1)
fild dword [esp + 0x38]
faddp st(1)
call fcn.0040b060
mov ecx, dword [esp + 0x3c]
mov edx, ecx
imul edx, ebx
mov dword [0x424160], eax
mov eax, dword [esp + 0x18]
sub esi, edx
movzx edx, word [eax - 4]
shl esi, 0x10
or esi, edx
movzx edx, di
mov eax, ecx
imul eax, edx
cmp esi, eax
jae 0x4053df
dec ecx
add esi, edi
mov dword [esp + 0x3c], ecx
cmp esi, edi
jb 0x4053df
mov edi, edi
cmp esi, eax
jae 0x4053db
add esi, edi
dec ecx
cmp esi, edi
jae 0x4053d0
mov dword [esp + 0x3c], ecx
fld qword [0x424370]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
mov dx, word [esp + 0x20]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov dword [esp + 0x18], ecx
movsx eax, dx
fsubp st(1)
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
fsubp st(1)
fild dword [esp + 0x18]
faddp st(1)
call fcn.0040b060
mov edx, dword [esp + 0x10]
mov word [esp + 0x20], ax
dec dword [esp + 0x50]
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x6c]
shl ebp, 0x10
or ebp, dword [esp + 0x3c]
mov eax, edx
mov dword [edx + ecx - 4], ebp
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x74]
inc dword [eax + ecx - 4]
jmp 0x405454
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x6c]
dec dword [eax + ecx - 4]
lea eax, [esp + 0x54]
push 0
push eax
call fcn.00403020
mov esi, eax
add esp, 8
test esi, esi
jne 0x405868
cmp ebp, 1
jl 0x405482
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx + ebp*4 - 4]
mov edx, dword [esp + 0x5c]
mov dword [edx], eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + ebp*4]
mov edx, dword [esp + 0x5c]
mov dword [edx + 4], ecx
add dword [esp + 0x80], 0x48908262
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + eax - 4]
push edx
lea eax, [esp + 0x58]
push eax
mov ecx, eax
push ecx
call fcn.00403db0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405868
push eax
lea edx, [esp + 0x88]
push edx
call fcn.00403020
mov esi, eax
add esp, 8
test esi, esi
jne 0x405868
mov eax, dword [esp + 0x4c]
cmp eax, 2
jge 0x4054f0
xor ecx, ecx
jmp 0x4054f8
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + eax*4 - 8]
cmp eax, 1
mov edx, dword [esp + 0x8c]
mov dword [edx], ecx
jge 0x40550a
xor ecx, ecx
jmp 0x405512
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [esp + 0x8c]
mov dword [edx + 4], ecx
dec dword [0x4243a4]
mov ecx, dword [0x4243a4]
mov edx, 0x5727ad1a
sub edx, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], edx
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x84]
mov dword [eax + 8], edx
push ecx
lea edx, [esp + 0x58]
push edx
call fcn.00401870
add esp, 8
test eax, eax
jg 0x405450
inc dword [0x423174]
dec dword [esp + 0x20]
mov ax, word [esp + 0x20]
mov edx, dword [0x423174]
mov edi, dword [esp + 0x10]
movsx ecx, ax
mov eax, 0xe33f8a16
sub eax, ecx
sub eax, edx
add dword [0x424148], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [edi + eax - 4]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x5c]
push eax
call fcn.00403db0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405868
mov ebx, dword [esp + 0x78]
lea ecx, [esp + 0x54]
push ebx
push ecx
call fcn.00404010
mov esi, eax
add esp, 8
test esi, esi
jne 0x405868
fld qword [0x424380]
mov dx, word [esp + 0x28]
movsx eax, dx
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x54]
push ecx
fild dword [esp + 0x1c]
lea edx, [esp + 0x30]
push edx
mov eax, edx
fsubp st(1)
push eax
fstp qword [0x424380]
call fcn.00404960
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405868
fldz
xor ecx, ecx
mov eax, 1
mov word [esp + 0x10], cx
fstp qword [esp + 0xa0]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xa0], ecx
push eax
lea ecx, [esp + 0x30]
lea edx, [esp + 0xa4]
push ecx
mov dword [esp + 0xcc], edx
call fcn.00401870
add esp, 8
test eax, eax
jge 0x4056ff
fld qword [0x424708]
fsub qword [0x423390]
mov edx, dword [esp + 0x50]
mov eax, dword [0x425108]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
mov dword [esp + 0x18], eax
faddp st(1)
fild dword [esp + 0x18]
fmulp st(1)
call fcn.0040b060
mov dword [0x425108], eax
fld qword [0x423390]
fsub qword [0x41f348]
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x58]
push edx
fstp qword [0x423390]
call fcn.004028c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405868
lea eax, [esp + 0x54]
push ebx
push eax
call fcn.00404010
mov esi, eax
add esp, 8
test esi, esi
jne 0x405868
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x30]
push edx
mov eax, edx
push eax
call fcn.00403e00
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405868
mov eax, dword [esp + 0x6c]
dec dword [edi + eax - 4]
mov eax, dword [esp + 0x4c]
dec eax
sub ebx, 0x20
sub edi, 4
cmp eax, ebp
mov dword [esp + 0x4c], eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x10], edi
jg 0x405290
mov edi, dword [esp + 0xd8]
test edi, edi
je 0x4057c2
lea ecx, [esp + 0x64]
push ecx
push edi
call fcn.004028c0
mov edx, dword [esp + 0xe8]
mov eax, dword [edx]
mov ecx, dword [esp + 0xec]
imul eax, dword [ecx]
mov dx, word [esp + 0x28]
mov dword [edi], eax
movsx eax, dx
mov dword [esp + 0x20], eax
add esp, 8
fild dword [esp + 0x18]
fsub dword [esp + 0x60]
fsub qword [0x41f718]
fld qword [0x423390]
fcompp
fnstsw ax
fld qword [0x423390]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x423390]
fadd dword [esp + 0x60]
fstp dword [esp + 0x60]
test ah, 0x41
jp 0x4057b8
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fld qword [0x423320]
fsubr qword [0x41f710]
fsubp st(1)
call fcn.0040b060
mov dword [esp + 0x14], eax
jmp 0x4057c2
add dword [0x4232e4], 0xae106873
mov edi, dword [esp + 0xdc]
test edi, edi
je 0x405868
mov edx, dword [esp + 0x7c]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.00401140
mov ebx, 1
add dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x2c]
mov edx, 0xebc5f897
sub edx, ecx
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
lea eax, [esp + 0x34]
push eax
push edi
fmul qword [0x425ec0]
fstp qword [0x425ec0]
call fcn.004028c0
mov ecx, dword [esp + 0xf0]
fldz
mov edx, dword [ecx]
mov dword [edi], edx
lea edx, [esp + 0xd8]
xor eax, eax
push edx
lea ecx, [esp + 0xb0]
mov word [esp + 0x24], ax
fstp qword [esp + 0xbc]
push edi
mov dword [esp + 0xb4], eax
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ecx
call fcn.00401870
add esp, 0x18
test eax, eax
jne 0x405868
mov dword [edi], ebx
xor ebp, ebp
push ebp
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.004017a0
inc dword [esp + 0x88]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
add esp, 0x18
fcomp qword [esp + 0x90]
fnstsw ax
test ah, 1
jne 0x4058c6
movzx eax, word [0x423340]
imul eax, eax, 0x63369a42
mov word [0x423340], ax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xc4
ret