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

Disassembly:
sub esp, 0x360
fldz
push ebp
xor ebp, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
fst qword [esp + 0x44]
xor eax, eax
mov word [esp + 0xc], ax
fst qword [esp + 0x4c]
fldz
mov eax, 1
fst dword [esp + 0x10]
xor ecx, ecx
mov word [esp + 0xc], cx
fxch st(1)
fst qword [esp + 0x1c]
push esi
mov esi, dword [esp + 0x378]
fstp qword [esp + 0x20]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
lea eax, [esp + 0x5c]
fstp dword [esp + 0x20]
push eax
lea edx, [esp + 0x5c]
push esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x6c], edx
call fcn.00402410
add esp, 8
test eax, eax
jl 0x4074c6
mov ecx, dword [esi + 8]
test byte [ecx], 1
je 0x4074c6
lea edx, [esp + 0x1c]
push esi
push edx
call fcn.00401660
push ebp
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00401380
fld dword [0x42235c]
fmul qword [0x41e838]
push 0x300
lea edx, [esp + 0x80]
push ebp
fstp dword [0x42235c]
push edx
call fcn.0040aab0
mov eax, dword [esp + 0x394]
push eax
call fcn.00402790
fld qword [0x41e830]
add esp, 0x24
fstp qword [0x4247c8]
cmp eax, 0x29f
jle 0x406dc1
mov dword [esp + 0x18], 6
jmp 0x406df1
cmp eax, 0xef
jle 0x406dd2
mov dword [esp + 0x18], 5
jmp 0x406df1
cmp eax, 0x4f
jle 0x406de1
mov dword [esp + 0x18], 4
jmp 0x406df1
xor ecx, ecx
cmp eax, 0x17
setg cl
lea ecx, [ecx + ecx + 1]
mov dword [esp + 0x18], ecx
push ebx
or ebx, 0xffffffff
add word [0x424b9c], bx
fld qword [0x424228]
fld1
push edi
fsub st(1), st(0)
fxch st(1)
fstp qword [0x424228]
fsubr qword [0x424770]
fstp qword [0x424770]
mov dx, word [0x424b9c]
movsx eax, dx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub qword [0x424228]
fsub qword [0x424770]
mov ecx, dword [0x424ccc]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmulp st(1)
call fcn.0040ac50
mov dword [0x424ccc], eax
mov edi, dword [esi + 4]
add dword [0x4226a0], ebx
fld dword [0x424730]
fld qword [0x424c58]
mov edx, dword [0x4226a0]
fsubr qword [0x41e828]
mov ebx, dword [esp + 0x374]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
inc edi
push edi
push ebx
faddp st(1)
fsubp st(1)
fstp dword [0x424730]
call fcn.00402540
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, ebp
jne 0x407440
lea eax, [esp + 0x7c]
push edi
push eax
call fcn.00402540
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, ebp
jne 0x407440
lea ecx, [edi + edi]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00402540
add esp, 8
mov dword [esp + 0x14], eax
cmp eax, ebp
jne 0x407440
mov ebp, dword [esp + 0x384]
test ebp, ebp
je 0x406f06
cmp dword [ebp + 8], 0
je 0x406f06
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
jmp 0x406ff2
fldz
xor eax, eax
lea ecx, [esp + 0x38]
push 1
mov word [esp + 0x1c], ax
fstp qword [esp + 0x2c]
push ecx
call fcn.00402540
mov edi, eax
add esp, 8
test edi, edi
jne 0x406f54
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
lea eax, [edx*4]
push eax
push edi
push ecx
call fcn.0040aab0
mov edx, dword [esp + 0x4c]
mov dword [edx], 1
add esp, 0xc
mov dword [esp + 0x38], 1
mov dword [esp + 0x14], edi
test edi, edi
jne 0x407447
mov eax, dword [esi + 4]
shl eax, 6
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.00404000
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x407447
mov dx, word [0x424bb0]
movsx eax, dx
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fld qword [esp + 0x58]
fcompp
fnstsw ax
fld qword [esp + 0x58]
fadd qword [0x41e350]
fstp qword [esp + 0x58]
inc word [0x424bb0]
test ah, 5
jp 0x406fbc
add dword [esp + 0x30], 0x72625754
lea ecx, [esp + 0x38]
push esi
push ecx
mov edx, ecx
push edx
call fcn.00406bf0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
jne 0x407447
test ebp, ebp
je 0x406ff2
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [ebp], eax
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov edi, dword [esp + 0x378]
push esi
push edi
call fcn.00402410
add esp, 8
test eax, eax
jl 0x40701b
push esi
lea eax, [esp + 0x80]
push edi
push eax
call fcn.00406bf0
add esp, 0xc
jmp 0x407029
lea ecx, [esp + 0x7c]
push edi
push ecx
call fcn.00402950
add esp, 8
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x44]
push edx
push eax
push esi
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.00403be0
fld dword [esp + 0x30]
fsub qword [0x41e820]
lea eax, [esp + 0x4c]
push eax
push ebx
fstp dword [esp + 0x38]
call fcn.00402950
add esp, 0x1c
mov dword [esp + 0x14], eax
test eax, eax
jne 0x407447
fld qword [esp + 0x50]
call fcn.0040ac50
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x44]
push ecx
push edx
push esi
push ebx
mov word [esp + 0x28], ax
call fcn.00404a00
mov ebx, dword [esp + 0x30]
add esp, 0x10
cmp ebx, 1
jle 0x4071b7
mov eax, dword [esi + 4]
dec ebx
mov ecx, ebx
mov ebp, 1
shl ebp, cl
inc eax
push eax
lea edi, [ebp + ebp*2]
lea edi, [esp + edi*4 + 0x74]
push edi
call fcn.00402540
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x407440
lea ecx, [esp + 0x7c]
push ecx
push edi
call fcn.00402950
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x407440
test ebx, ebx
jle 0x407101
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x44]
push edx
push eax
push esi
push edi
push edi
call fcn.00403be0
add esp, 0x14
sub ebx, 1
jne 0x4070e7
mov ecx, dword [esp + 0x20]
mov ebx, 1
shl ebx, cl
inc ebp
cmp ebp, ebx
jge 0x4071b7
lea edi, [ebp + ebp*2]
lea edi, [esp + edi*4 + 0x70]
lea ecx, [ecx]
mov ecx, dword [esi + 4]
inc ecx
push ecx
push edi
call fcn.00402540
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x407440
lea edx, [edi - 0xc]
push edx
push edi
call fcn.00402950
add esp, 8
mov dword [esp + 0x14], eax
test eax, eax
jne 0x407440
mov ax, word [0x424cdc]
mov edx, dword [0x424c38]
dec word [0x424cdc]
movsx ecx, ax
mov eax, 0x8ba834e2
sub eax, ecx
mov ecx, 0x1971c048
sub ecx, edx
cmp ecx, eax
je 0x40718f
movzx edx, word [0x424904]
imul edx, edx, 0x3aafe421
mov word [0x424904], dx
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x44]
push eax
push ecx
push esi
lea edx, [esp + 0x88]
push edx
push edi
call fcn.00403be0
inc ebp
add esp, 0x14
add edi, 0xc
cmp ebp, ebx
jl 0x407120
mov eax, dword [esp + 0x37c]
mov ecx, dword [eax + 4]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], ebx
xor ebp, ebp
nop
cmp dword [esp + 0x10], 0
jne 0x4071f2
mov eax, dword [esp + 0x1c]
mov edx, eax
dec eax
mov dword [esp + 0x1c], eax
test edx, edx
je 0x40733a
mov dword [esp + 0x10], 0x20
mov ax, word [0x424c60]
mov ecx, dword [0x424810]
mov edx, dword [esp + 0x37c]
cwde
imul ecx, eax
mov dword [0x424810], ecx
mov eax, dword [edx + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + edx*4]
dec ecx
shr eax, cl
mov dword [esp + 0x10], ecx
and eax, 1
jne 0x40722d
test ebx, ebx
je 0x4071d0
add dword [esp + 0x34], 0x860f4df5
test eax, eax
jne 0x40725f
cmp ebx, 1
jne 0x40725f
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x378]
push ecx
push esi
push eax
push eax
call fcn.00403be0
add esp, 0x14
jmp 0x4071d0
mov edx, dword [esp + 0x20]
add dword [esp + 0x34], 0xb9e94b5c
inc edi
mov ecx, edx
sub ecx, edi
shl eax, cl
mov ebx, 2
or ebp, eax
cmp edi, edx
jne 0x4071d0
mov edi, dword [esp + 0x24]
mov ebx, edx
test ebx, ebx
jle 0x4072ad
jmp 0x407290
mov eax, dword [esp + 0x374]
lea edx, [esp + 0x44]
push edx
push edi
push esi
push eax
push eax
call fcn.00403be0
add esp, 0x14
sub ebx, 1
jne 0x407290
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x378]
push edi
lea ecx, [ebp + ebp*2]
push esi
lea edx, [esp + ecx*4 + 0x7c]
push edx
push eax
call fcn.00403be0
mov cx, word [0x42214c]
mov edx, dword [esp + 0x44]
movsx eax, cx
add eax, 0xe84cd2cc
add edx, 0x6f619db4
add esp, 0x14
cmp eax, edx
jge 0x407300
fld qword [esp + 0x50]
fsub qword [0x41e350]
fstp qword [esp + 0x50]
fld qword [esp + 0x50]
fstp qword [esp + 0x28]
mov ax, word [0x424c80]
fld qword [0x4220d8]
mov ecx, dword [0x4248f4]
cwde
sub eax, ecx
mov dword [esp + 0x28], eax
mov ebx, 1
xor edi, edi
fild dword [esp + 0x28]
xor ebp, ebp
fsubp st(1)
fstp qword [0x4220d8]
add word [0x424c80], bx
jmp 0x4071d0
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
fld qword [esp + 0x50]
dec dword [esp + 0x30]
fsub qword [0x41e818]
fsub qword [0x41e810]
fcompp
fnstsw ax
test ah, 5
jp 0x40737c
mov eax, dword [0x424814]
mov ecx, dword [esp + 0x34]
sub eax, ecx
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fstp qword [0x424768]
mov ecx, dword [esp + 0x20]
mov ebx, 1
rol ebx, cl
test edi, edi
jle 0x407404
mov dword [esp + 0x1c], edi
nop
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x374]
lea edx, [esp + 0x44]
push edx
push eax
push esi
push edi
push edi
call fcn.00403be0
fld qword [0x41e808]
add ebp, ebp
fstp qword [esp + 0x3c]
add esp, 0x14
test ebp, ebx
je 0x4073d8
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x44]
push ecx
push edx
push esi
lea eax, [esp + 0x88]
push eax
push edi
call fcn.00403be0
add esp, 0x14
mov ecx, dword [0x424778]
mov edx, 0x752d45bb
sub edx, ecx
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
fadd qword [esp + 0x50]
fstp qword [esp + 0x50]
dec dword [0x424778]
sub dword [esp + 0x1c], 1
jne 0x407390
jmp 0x40740b
mov edi, dword [esp + 0x374]
mov ax, word [0x424ed0]
movzx ecx, word [esp + 0x18]
mov edx, dword [0x422360]
cwde
sub ecx, eax
sub ecx, edx
mov word [esp + 0x18], cx
inc dword [0x422360]
mov ecx, dword [esp + 0x24]
lea eax, [esp + 0x44]
push eax
push ecx
push esi
push edi
call fcn.00404a00
add esp, 0x10
mov ebp, dword [esp + 0x384]
mov esi, dword [esp + 0x20]
lea ecx, [esi - 1]
mov eax, 1
shl eax, cl
mov edx, 1
mov ecx, esi
shl edx, cl
cmp eax, edx
jge 0x407483
lea esi, [eax + eax*2]
sub edx, eax
lea esi, [esp + esi*4 + 0x70]
mov edi, edx
lea ecx, [ecx]
push 0
push esi
call fcn.00401a50
add esp, 8
add esi, 0xc
sub edi, 1
jne 0x407470
pop edi
pop ebx
push 0
lea edx, [esp + 0x40]
lea eax, [esp + 0x78]
test ebp, ebp
je 0x4074aa
push edx
push eax
call fcn.00401a50
mov eax, dword [esp + 0x18]
add esp, 0xc
pop esi
pop ebp
add esp, 0x360
ret
lea ecx, [esp + 0x34]
push ecx
push edx
push eax
call fcn.00401a50
mov eax, dword [esp + 0x1c]
add esp, 0x10
pop esi
pop ebp
add esp, 0x360
ret
pop esi
mov eax, 0xfffffffc
pop ebp
add esp, 0x360
ret