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

Disassembly:
sub esp, 0x90
fldz
xor eax, eax
mov word [esp + 0x24], ax
xor ecx, ecx
mov word [esp + 0x28], cx
xor edx, edx
mov word [esp + 0x18], dx
fst dword [esp + 0x20]
fst dword [esp + 0xc]
mov word [esp + 0x68], ax
fst dword [esp + 0x6c]
push ebp
fst dword [esp + 0xc]
mov word [esp + 0x14], cx
xor ebp, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x58], ebp
fld dword [esp + 0x10]
fld1
push esi
fsub st(1), st(0)
push edi
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fsub qword [0x41f6d0]
call fcn.0040b5f0
mov word [0x425fa0], ax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fadd dword [esp + 0x14]
mov ax, word [0x423d3c]
mov dx, word [0x424170]
movsx ecx, ax
mov dword [esp + 0x10], ecx
movsx eax, dx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fsubp st(1)
fild dword [esp + 0x10]
faddp st(1)
call fcn.0040b5f0
fxch st(1)
mov word [0x424170], ax
or ecx, 0xffffffff
add word [0x423d3c], cx
mov dword [esp + 0xc], ebp
fstp dword [esp + 0x20]
fadd dword [esp + 0x20]
mov esi, 1
lea edx, [esp + 0x8c]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], edx
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fsubr qword [0x41f568]
fsub dword [0x424848]
fcomp qword [0x41f560]
fnstsw ax
test ah, 0x44
jp 0x404dce
mov ax, word [0x424fc4]
cwde
sub dword [0x424fb8], eax
add word [0x424fc4], cx
mov edi, dword [esp + 0xac]
lea ecx, [esp + 0x90]
push ecx
push edi
call fcn.004016f0
add esp, 8
test eax, eax
jne 0x404df9
pop edi
pop esi
mov eax, 0xfffffff4
pop ebp
add esp, 0x90
ret
fld dword [0x424dc0]
push ebx
fmul qword [0x41f6c8]
push ebp
lea edx, [esp + 0x84]
push edx
lea eax, [esp + 0x54]
fstp dword [0x424dc0]
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.004014e0
mov ebx, dword [esp + 0xc4]
push edi
push ebx
call fcn.004013a0
add esp, 0x20
test eax, eax
jge 0x404ee0
mov edi, dword [esp + 0xa4]
cmp edi, ebp
je 0x404eb4
fldz
push esi
fst dword [esp + 0x6c]
push edi
fstp dword [esp + 0x1c]
call fcn.00401a30
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
add ecx, ecx
add ecx, ecx
push ecx
push ebp
push edx
call fcn.0040b6e0
mov eax, dword [edi + 8]
mov dword [eax], ebp
mov dword [edi], 1
fld qword [0x424e08]
fld dword [esp + 0x20]
add esp, 0xc
fadd dword [esp + 0x68]
fadd qword [0x41f470]
fsubp st(1)
fstp qword [0x424e08]
cmp esi, ebp
jne 0x4057d9
mov eax, dword [esp + 0xa8]
cmp eax, ebp
je 0x404ed3
push ebx
push eax
call fcn.00402860
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x90
ret
lea ecx, [esp + 0x40]
push ebx
push ecx
call fcn.00402860
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
lea edx, [esp + 0x58]
push edi
push edx
call fcn.00402860
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
mov eax, dword [ebx + 4]
add eax, 2
push eax
lea ecx, [esp + 0x70]
mov edi, 1
push ecx
mov dword [esp + 0x60], edi
mov dword [esp + 0x48], edi
call fcn.00401a30
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
lea edx, [esp + 0x6c]
push ebp
push edx
call fcn.00402350
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
fld dword [esp + 0x18]
fsub qword [0x41f348]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
mov eax, dword [0x423d28]
fadd qword [0x41f6c0]
mov dword [esp + 0x14], eax
fsub qword [0x41f6b8]
fild dword [esp + 0x14]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x404faa
fld dword [0x424fbc]
mov ecx, dword [esp + 0x20]
mov edx, 0x2bcc1131
sub edx, ecx
mov dword [esp + 0x14], edx
fisub dword [esp + 0x14]
fstp dword [0x424fbc]
add dword [esp + 0x20], edi
lea eax, [esp + 0x4c]
push 2
push eax
call fcn.00401a30
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
lea ecx, [esp + 0x80]
push 3
push ecx
call fcn.00401a30
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
lea edx, [esp + 0x58]
push edx
call fcn.00401970
add esp, 4
and eax, 0x8000001f
jns 0x404ff8
dec eax
or eax, 0xffffffe0
inc eax
cmp eax, 0x1f
jge 0x40506d
fld dword [esp + 0x18]
mov edi, 0x1f
fld qword [0x423d48]
sub edi, eax
fsub qword [0x41f6b0]
lea eax, [esp + 0x40]
push edi
push eax
fsubp st(1)
mov dword [esp + 0x1c], edi
fstp dword [esp + 0x20]
call fcn.004024d0
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
lea ecx, [esp + 0x58]
push edi
push ecx
call fcn.004024d0
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4057d9
mov dx, word [0x4230e0]
movzx ecx, word [esp + 0x28]
movsx eax, dx
add ecx, eax
mov word [esp + 0x28], cx
inc word [0x4230e0]
jmp 0x405071
mov dword [esp + 0x14], ebp
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
dec ebx
dec eax
mov edi, ebx
sub edi, eax
mov ebp, edi
shl ebp, 5
lea edx, [esp + 0x58]
push ebp
push edx
mov dword [esp + 0x2c], eax
call fcn.004024d0
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.004016f0
add esp, 0x10
test eax, eax
jl 0x4050f1
lea esp, [esp]
mov eax, dword [esp + 0x74]
inc dword [eax + edi*4]
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x44]
push eax
mov ecx, eax
push ecx
call fcn.00404630
fld qword [0x424e28]
fsub qword [0x41f6a8]
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x50]
push eax
fstp qword [0x424e28]
call fcn.004016f0
add esp, 0x14
test eax, eax
jge 0x4050b0
fld dword [esp + 0x1c]
lea ecx, [esp + 0x58]
fsub qword [0x41f6a0]
push ebp
push ecx
fadd qword [0x424e10]
fadd dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fsub qword [0x41f348]
fstp dword [esp + 0x24]
call fcn.004020d0
add esp, 8
cmp ebx, dword [esp + 0x24]
mov dword [esp + 0x3c], ebx
jle 0x405764
add edi, edi
add edi, edi
add ebp, 0xffffffe0
mov dword [esp + 0x8c], edi
mov dword [esp + 0x68], ebp
jmp 0x405150
fld dword [0x423d00]
fld dword [0x423d44]
fadd qword [0x41f698]
fsub dword [esp + 0x18]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40517b
add dword [0x424114], 0xcb2d1163
jmp 0x405199
mov dx, word [0x4241b0]
mov ecx, dword [0x423dc0]
movsx eax, dx
add eax, 0xb5f5e90e
add ecx, eax
mov word [0x4241b0], cx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x24]
lea ebp, [edx + ebx*4]
mov edx, dword [ebp]
cmp edx, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
jb 0x4051c4
mov eax, dword [esp + 0x74]
mov dword [edi + eax - 4], 0xffffffff
jmp 0x40536c
fld qword [0x424fb0]
mov ecx, dword [esp + 0x64]
add ecx, 0x40b135c3
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
fsubp st(1)
fstp qword [0x424fb0]
dec dword [esp + 0x64]
movzx edx, word [0x42312c]
sub edx, 0x6d0bf22f
mov word [0x42312c], dx
mov edi, dword [eax]
mov ax, word [0x423e08]
movzx ecx, word [esp + 0x28]
cwde
add eax, dword [esp + 0x64]
mov esi, edi
lea edx, [ecx + eax + 0x4611909d]
mov word [0x423e08], dx
mov eax, 1
add dword [esp + 0x28], eax
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
movzx ecx, word [0x425f28]
add eax, 0x1d438fd5
imul eax, ecx
mov word [0x425f28], ax
xor edx, edx
fld dword [esp + 0x7c]
mov ecx, dword [ebp]
mov eax, ecx
fmul qword [0x41f690]
shr esi, 0x10
div esi
fstp dword [esp + 0x7c]
mov ebx, eax
mov edx, ebx
imul edx, esi
sub ecx, edx
mov eax, ecx
movzx ecx, word [esp + 0x38]
movsx edx, cx
mov ecx, dword [0x4240dc]
imul edx, ecx
mov dword [0x4240dc], edx
movzx ecx, word [ebp - 2]
shl eax, 0x10
or ecx, eax
movzx edx, di
mov eax, ebx
imul eax, edx
cmp ecx, eax
jae 0x4052ab
add ecx, edi
dec ebx
cmp ecx, edi
jb 0x4052ab
lea esp, [esp]
cmp ecx, eax
jae 0x4052ab
add ecx, edi
dec ebx
cmp ecx, edi
jae 0x4052a0
sub ecx, eax
xor edx, edx
mov eax, ecx
div esi
mov dx, word [esp + 0x34]
movsx edx, dx
sub edx, 0x520eea4e
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fadd dword [esp + 0x7c]
fstp dword [0x424ee0]
inc dword [esp + 0x34]
mov edx, eax
imul edx, esi
sub ecx, edx
movzx edx, word [ebp - 4]
shl ecx, 0x10
or ecx, edx
mov esi, ecx
movzx ecx, di
mov ebp, eax
imul ebp, ecx
mov dword [esp + 0x2c], eax
cmp esi, ebp
jae 0x405352
fld dword [esp + 0x1c]
fadd qword [0x41f348]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
mov ax, word [esp + 0x78]
fadd qword [0x41f688]
movsx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fsubp st(1)
call fcn.0040b5f0
mov dword [0x4245fc], eax
mov eax, 1
add dword [esp + 0x78], eax
sub dword [esp + 0x2c], eax
add esi, edi
cmp esi, edi
jb 0x40534e
cmp esi, ebp
jae 0x40534e
dec dword [esp + 0x2c]
add esi, edi
cmp esi, edi
jae 0x405340
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x74]
shl ebx, 0x10
or ebx, eax
mov eax, dword [esp + 0x8c]
mov dword [eax + edx - 4], ebx
mov ebx, dword [esp + 0x3c]
mov edi, eax
mov eax, dword [esp + 0x74]
mov ebp, 1
add dword [edi + eax - 4], ebp
lea esp, [esp]
movzx ecx, word [esp + 0x38]
fldz
mov eax, dword [esp + 0x74]
imul ecx, ecx, 0x53263e71
dec dword [edi + eax - 4]
mov word [esp + 0x38], cx
lea edx, [esp + 0x4c]
push ebp
fst dword [esp + 0x40]
push edx
fstp dword [esp + 0x18]
call fcn.00401a30
mov esi, eax
add esp, 8
test esi, esi
jne 0x4057d7
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
lea ecx, [eax*4]
push ecx
push esi
push edx
call fcn.0040b6e0
mov eax, dword [esp + 0x60]
mov dword [eax], esi
fld qword [0x424e08]
fld dword [esp + 0x1c]
add esp, 0xc
fadd dword [esp + 0x3c]
mov dword [esp + 0x4c], ebp
fadd qword [0x41f470]
fsubp st(1)
fstp qword [0x424e08]
test esi, esi
jne 0x4057d7
mov ecx, dword [esp + 0x24]
cmp ecx, ebp
jge 0x40540e
xor eax, eax
jmp 0x405416
mov edx, dword [esp + 0x60]
mov eax, dword [edx + ecx*4 - 4]
mov edx, dword [esp + 0x54]
mov dword [edx], eax
or edx, 0xffffffff
add dword [esp + 0x28], edx
fld dword [0x424e6c]
movzx eax, word [esp + 0x34]
cwde
mov dword [esp + 0x10], eax
mov esi, 0x2de17e1a
fild dword [esp + 0x10]
fsubp st(1)
fadd dword [esp + 0x18]
movzx eax, word [esp + 0x28]
cwde
sub esi, eax
mov dword [esp + 0x10], esi
fild dword [esp + 0x10]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x40547d
add dword [esp + 0x34], edx
mov dx, word [esp + 0x34]
movsx eax, dx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x424748]
fstp qword [0x424748]
jmp 0x40549b
mov dx, word [0x423d94]
movsx eax, dx
mov edx, dword [0x424608]
add eax, 0xeca14c28
add edx, eax
mov word [0x423d94], dx
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + ecx*4]
mov edx, dword [esp + 0x54]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x74]
mov ecx, dword [edi + eax - 4]
push ecx
lea edx, [esp + 0x50]
push edx
mov eax, edx
push eax
call fcn.00404750
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4057d7
fld dword [esp + 0x30]
fadd qword [0x4240e8]
fcomp qword [0x41f680]
fnstsw ax
fld dword [esp + 0x30]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [esp + 0x30]
fadd qword [0x4240e8]
fstp qword [0x4240e8]
test ah, 5
jp 0x405511
fld qword [0x425f98]
fsub qword [0x41f678]
fstp qword [0x425f98]
jmp 0x40551f
fld dword [esp + 0x30]
fsub qword [0x41f670]
fstp dword [esp + 0x30]
fldz
lea ecx, [esp + 0x80]
push ebp
fst dword [esp + 0x40]
push ecx
fstp dword [esp + 0x18]
call fcn.00401a30
mov esi, eax
add esp, 8
test esi, esi
jne 0x4057d7
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
lea eax, [edx*4]
push eax
push esi
push ecx
call fcn.0040b6e0
mov edx, dword [esp + 0x94]
mov dword [edx], esi
fld qword [0x424e08]
fld dword [esp + 0x1c]
add esp, 0xc
fadd dword [esp + 0x3c]
mov dword [esp + 0x80], ebp
fadd qword [0x41f470]
fsubp st(1)
fstp qword [0x424e08]
test esi, esi
jne 0x4057d7
cmp ebx, 2
jge 0x4055a1
xor eax, eax
jmp 0x4055a9
mov eax, dword [esp + 0x48]
mov eax, dword [eax + ebx*4 - 8]
cmp ebx, ebp
mov ecx, dword [esp + 0x88]
mov dword [ecx], eax
fld dword [0x425af0]
fadd qword [0x41f348]
fstp dword [0x425af0]
fld dword [0x425af0]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x1c]
jge 0x4055da
xor eax, eax
jmp 0x4055e2
mov edx, dword [esp + 0x48]
mov eax, dword [edx + ebx*4 - 4]
mov ecx, dword [esp + 0x88]
fld dword [esp + 0x30]
fsub qword [0x41f668]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x48]
mov eax, dword [edx + ebx*4]
mov ecx, dword [esp + 0x88]
mov dword [ecx + 8], eax
fstp dword [esp + 0x30]
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.004016f0
add esp, 8
test eax, eax
jg 0x405380
mov ecx, dword [esp + 0x74]
mov edx, dword [edi + ecx - 4]
push edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.00404750
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4057d7
fld dword [esp + 0x18]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fadd dword [0x424fd0]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmulp st(1)
call fcn.0040b5f0
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x20], eax
fsubr dword [0x424fd0]
lea eax, [esp + 0x4c]
push ebp
push eax
fstp dword [0x424fd0]
call fcn.004024d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4057d7
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x44]
push edx
mov eax, edx
push eax
call fcn.00404630
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4057d7
movzx ecx, word [0x424220]
push eax
lea edx, [esp + 0x44]
add ecx, 0x4e4680de
push edx
mov word [0x424220], cx
call fcn.00403790
add esp, 8
test eax, eax
jge 0x405744
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.00402860
mov esi, eax
add esp, 8
test esi, esi
jne 0x4057d7
lea edx, [esp + 0x4c]
push ebp
push edx
call fcn.004024d0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4057d7
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x44]
push ecx
mov edx, ecx
push edx
call fcn.00404ae0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4057d7
mov eax, dword [esp + 0x74]
dec dword [edi + eax - 4]
dec ebx
sub ebp, 0x20
sub edi, 4
cmp ebx, dword [esp + 0x24]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x8c], edi
jg 0x405150
mov edi, dword [esp + 0xa4]
test edi, edi
je 0x405792
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.00402860
mov ecx, dword [esp + 0xb4]
mov edx, dword [ecx]
mov eax, dword [esp + 0xb8]
add esp, 8
imul edx, dword [eax]
mov dword [edi], edx
mov edi, dword [esp + 0xa8]
test edi, edi
je 0x4057d7
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x44]
push edx
call fcn.004020d0
lea eax, [esp + 0x48]
push eax
push edi
call fcn.00402860
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
push 0
push edi
mov dword [edi], edx
call fcn.00403790
add esp, 0x18
test eax, eax
jne 0x4057d7
mov dword [edi], 1
xor ebp, ebp
push ebp
lea eax, [esp + 0x84]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.00401ba0
add esp, 0x18
pop ebx
pop edi
mov eax, esi
pop esi
pop ebp
add esp, 0x90
ret