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

Disassembly:
sub esp, 0xb4
fldz
push ebx
mov ebx, dword [esp + 0xc8]
push ebp
push esi
xor esi, esi
mov dword [esp + 0x70], esi
fst qword [esp + 0x80]
fldz
xor eax, eax
mov word [esp + 0xc], ax
fst dword [esp + 0x24]
xor ecx, ecx
fxch st(1)
mov word [esp + 0x34], cx
fst qword [esp + 0x80]
xor edx, edx
mov word [esp + 0x18], dx
fst qword [esp + 0x94]
mov dword [esp + 0x48], esi
fxch st(1)
fstp dword [esp + 0x1c]
lea edx, [esp + 0xa8]
push edx
fst qword [esp + 0x6c]
mov ebp, 1
lea ecx, [esp + 0x94]
fstp qword [esp + 0x14]
push ebx
mov word [esp + 0x20], ax
mov dword [esp + 0x98], esi
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb4], ebp
mov dword [esp + 0xb8], ecx
call fcn.00401f50
add esp, 8
test eax, eax
jne 0x4062bb
lea eax, [esi - 0xc]
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret
push edi
push esi
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x40]
push ecx
call fcn.00401850
mov edx, dword [0x42398c]
mov dword [esp + 0x3c], edx
fild dword [esp + 0x3c]
fstp dword [esp + 0x3c]
fld dword [esp + 0x38]
fsubr dword [esp + 0x3c]
call fcn.0040b5b0
mov edi, dword [esp + 0xe8]
push ebx
push edi
mov dword [0x42398c], eax
call fcn.00402fc0
add esp, 0x20
test eax, eax
jge 0x40636c
mov ax, word [0x4231d4]
movsx ecx, ax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x74], ecx
cmp eax, esi
je 0x406340
push esi
push eax
call fcn.00401cf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
mov eax, dword [esp + 0xcc]
cmp eax, esi
je 0x40635f
push edi
push eax
call fcn.00402540
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb4
ret
lea edx, [esp + 0x2c]
push edi
push edx
call fcn.00402540
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
fld qword [0x425630]
lea eax, [esp + 0x3c]
fmul qword [0x424820]
push ebx
push eax
fstp qword [0x424820]
fld qword [0x425630]
fsub qword [0x41f390]
fstp qword [0x425630]
call fcn.00402540
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x2c], ebp
mov dword [0x425fbc], 0x860df14d
mov ecx, dword [edi + 4]
add ecx, 2
push ecx
lea edx, [esp + 0x60]
push edx
call fcn.00401b60
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00401cf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
fld dword [esp + 0x28]
lea ecx, [esp + 0x50]
fld qword [0x425450]
push 2
fadd qword [0x41f7a0]
push ecx
fsubp st(1)
fstp dword [esp + 0x30]
call fcn.00401b60
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
lea edx, [esp + 0x78]
push 3
push edx
call fcn.00401b60
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
lea eax, [esp + 0x3c]
push eax
call fcn.00403080
add esp, 4
and eax, 0x8000001f
jns 0x406469
dec eax
or eax, 0xffffffe0
inc eax
cmp eax, 0x1f
jge 0x4064d5
mov edi, 0x1f
sub edi, eax
lea ecx, [esp + 0x2c]
push edi
push ecx
mov dword [esp + 0x2c], edi
call fcn.00403520
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
lea edx, [esp + 0x3c]
push edi
push edx
call fcn.00403520
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
fld qword [esp + 0x6c]
fsub qword [0x423878]
fld qword [0x424778]
mov ax, word [esp + 0x10]
movsx ecx, ax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
faddp st(2)
fsubrp st(1)
fstp qword [0x424778]
jmp 0x4064dd
mov dword [esp + 0x24], 0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
dec ebx
dec eax
mov edi, ebx
sub edi, eax
mov ebp, edi
shl ebp, 5
lea edx, [esp + 0x3c]
push ebp
push edx
mov dword [esp + 0x70], eax
call fcn.00403520
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00401f50
add esp, 0x10
test eax, eax
jl 0x406544
mov eax, dword [esp + 0x64]
inc dword [eax + edi*4]
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x30]
push eax
mov ecx, eax
push ecx
call fcn.00404dd0
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x3c]
push eax
call fcn.00401f50
add esp, 0x14
test eax, eax
jge 0x406515
lea ecx, [esp + 0x3c]
push ebp
push ecx
call fcn.00401910
add esp, 8
cmp ebx, dword [esp + 0x68]
mov dword [esp + 0x48], ebx
jle 0x406a4c
lea ebx, [edi*4]
add ebp, 0xffffffe0
mov dword [esp + 0x28], ebx
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x68]
mov edi, dword [ecx + ebp*4]
lea esi, [edx + eax*4]
mov dword [esp + 0x1c], esi
cmp dword [esi], edi
jb 0x4065a0
mov edx, dword [esp + 0x64]
or edi, 0xffffffff
mov dword [ebx + edx - 4], edi
jmp 0x4066d1
mov eax, dword [0x4239c0]
mov dword [esp + 0x4c], eax
fild dword [esp + 0x4c]
fld qword [0x425408]
fsub qword [0x41f798]
fsubp st(1)
call fcn.0040b5b0
mov dword [0x4239c0], eax
mov esi, dword [esi]
xor edx, edx
mov eax, esi
mov ebx, edi
shr ebx, 0x10
div ebx
movzx ecx, di
mov ebp, eax
mov ax, word [0x425fa4]
mov edx, ebp
imul edx, ebx
sub esi, edx
movsx edx, ax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], edx
dec word [0x425fa4]
movzx edx, word [eax - 2]
mov eax, ebp
imul eax, ecx
shl esi, 0x10
or esi, edx
mov dword [esp + 0x14], eax
cmp esi, eax
jae 0x40661e
add esi, edi
dec ebp
cmp esi, edi
jb 0x40661e
cmp esi, eax
jae 0x40661e
add esi, edi
dec ebp
cmp esi, edi
jae 0x406613
fld dword [0x4239d8]
fsub qword [0x41f790]
fsub qword [0x41f788]
call fcn.0040b5b0
sub esi, dword [esp + 0x14]
mov dword [0x424714], eax
xor edx, edx
mov eax, esi
div ebx
movzx ecx, word [esp + 0x10]
add ecx, 0x61a982aa
mov word [esp + 0x10], cx
mov ecx, dword [esp + 0x1c]
mov edx, eax
imul edx, ebx
sub esi, edx
movzx edx, word [ecx - 4]
shl esi, 0x10
or esi, edx
movzx edx, di
mov ecx, eax
imul ecx, edx
cmp esi, ecx
jae 0x40668b
add esi, edi
dec eax
cmp esi, edi
jb 0x40668b
jmp 0x406680
cmp esi, ecx
jae 0x40668b
add esi, edi
dec eax
cmp esi, edi
jae 0x406680
movzx ecx, word [0x423874]
movzx edx, word [0x42567c]
movsx ecx, cx
sub edx, ecx
add edx, 0x30464167
mov word [0x42567c], dx
movzx ecx, word [0x4238fc]
mov edx, dword [esp + 0x64]
shl ebp, 0x10
or ebp, eax
mov eax, dword [esp + 0x28]
mov dword [eax + edx - 4], ebp
mov ebp, dword [esp + 0x68]
mov word [esp + 0x1c], cx
mov ebx, eax
or edi, 0xffffffff
movzx ecx, word [esp + 0x10]
mov eax, dword [0x42397c]
movsx edx, cx
movzx ecx, word [0x4247dc]
lea eax, [edx + eax - 0x4448f4ee]
movsx edx, cx
mov ecx, 1
add dword [esp + 0x10], ecx
cmp eax, edx
je 0x40670e
fld qword [0x425408]
fadd qword [0x41f780]
fstp qword [0x425408]
mov eax, dword [esp + 0x64]
add dword [ebx + eax - 4], ecx
jmp 0x406720
fld qword [0x425fd0]
mov ax, word [0x4246d8]
fsub qword [0x41f778]
mov ecx, dword [esp + 0x4c]
cwde
sub ecx, eax
fsub qword [0x41f770]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fucompp
fnstsw ax
test ah, 0x44
jp 0x40678a
fld qword [0x424620]
mov dx, word [esp + 0x38]
fadd qword [0x41f768]
movsx eax, dx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmulp st(1)
call fcn.0040b5b0
mov word [esp + 0x38], ax
fld qword [0x424620]
fadd qword [0x41f390]
fstp qword [0x424620]
mov eax, dword [esp + 0x64]
add dword [ebx + eax - 4], edi
lea ecx, [esp + 0x50]
push 0
push ecx
call fcn.00401cf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
cmp ebp, 1
jl 0x4067b8
mov edx, dword [esp + 0x44]
mov eax, dword [edx + ebp*4 - 4]
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
mov edx, dword [esp + 0x44]
mov eax, dword [edx + ebp*4]
mov ecx, dword [esp + 0x58]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x64]
mov eax, dword [ebx + edx - 4]
push eax
lea ecx, [esp + 0x54]
push ecx
mov edx, ecx
push edx
call fcn.00404850
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406bd1
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.00401cf0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
mov eax, dword [esp + 0x48]
cmp eax, 2
jge 0x406814
xor ecx, ecx
jmp 0x40681c
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + eax*4 - 8]
cmp eax, 1
mov edx, dword [esp + 0x80]
mov dword [edx], ecx
jge 0x40682e
xor ecx, ecx
jmp 0x406836
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [esp + 0x80]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x80]
mov dword [eax + 8], edx
mov cx, word [0x42473c]
mov edx, dword [esp + 0x74]
movsx eax, cx
add edx, eax
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x54]
push ecx
mov word [esp + 0x18], dx
call fcn.00401f50
add esp, 8
test eax, eax
jg 0x406720
mov edx, dword [esp + 0x64]
mov eax, dword [ebx + edx - 4]
push eax
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x58]
push edx
call fcn.00404850
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406bd1
fld qword [0x425fd0]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x425fd0]
fld qword [0x423868]
fsub qword [0x41f760]
fadd qword [0x425fd0]
fld qword [esp + 0x6c]
mov eax, dword [0x425424]
fsubr qword [0x41f758]
inc dword [0x425424]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
faddp st(1)
fucompp
fnstsw ax
fld qword [esp + 0x6c]
fsub st(1)
fstp qword [esp + 0x6c]
fadd qword [0x423868]
fstp qword [0x423868]
test ah, 0x44
jnp 0x406931
mov ecx, dword [0x4255f8]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld qword [esp + 0x6c]
fsub qword [0x41f750]
fadd qword [0x41f748]
fsubp st(1)
call fcn.0040b5b0
mov dword [0x4255f8], eax
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x50]
push edi
push edx
call fcn.00403520
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x30]
push ecx
mov edx, ecx
push edx
call fcn.00404dd0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406bd1
fldz
mov dword [esp + 0x8c], eax
fstp qword [esp + 0x14]
lea edx, [esp + 0xa0]
mov word [esp + 0x1c], ax
mov eax, 1
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
push edx
lea eax, [esp + 0x30]
lea ecx, [esp + 0x90]
push eax
mov dword [esp + 0xb0], ecx
call fcn.00401f50
add esp, 8
test eax, eax
jge 0x406a2d
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0x54]
push edx
call fcn.00402540
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
lea eax, [esp + 0x50]
push edi
push eax
call fcn.00403520
mov esi, eax
add esp, 8
test esi, esi
jne 0x406bd1
fld qword [0x4246f0]
lea ecx, [esp + 0x50]
fsubr qword [0x41f740]
push ecx
lea edx, [esp + 0x30]
push edx
fadd qword [esp + 0xa0]
mov eax, edx
push eax
fstp qword [esp + 0xa4]
call fcn.00405e10
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406bd1
mov eax, dword [esp + 0x64]
dec dword [ebx + eax - 4]
mov eax, dword [esp + 0x48]
dec eax
sub edi, 0x20
sub ebx, 4
cmp eax, ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], edi
mov dword [esp + 0x28], ebx
jg 0x406572
mov edi, dword [esp + 0xc8]
or ebx, 0xffffffff
test edi, edi
je 0x406ac3
mov cx, word [0x42468c]
movsx edx, cx
sub edx, 0x2f83bf7e
mov dword [esp + 0x14], edx
lea eax, [esp + 0x5c]
push eax
fild dword [esp + 0x18]
push edi
fmul qword [esp + 0x8c]
fstp qword [esp + 0x8c]
add word [0x42468c], bx
call fcn.00402540
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx]
mov eax, dword [esp + 0xdc]
imul edx, dword [eax]
mov dword [edi], edx
mov ecx, dword [0x4254ac]
add ecx, 0x46c0dcce
add esp, 8
mov word [0x42469c], cx
add dword [0x4254ac], ebx
mov edi, dword [esp + 0xcc]
test edi, edi
je 0x406bd1
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.00401910
lea ecx, [esp + 0x34]
push ecx
push edi
call fcn.00402540
mov dx, word [esp + 0x20]
add dword [esp + 0x20], ebx
movsx eax, dx
mov ecx, 0xecb16c90
sub ecx, eax
add esp, 0x10
cmp ecx, 0x558ffdbb
jle 0x406b26
mov dx, word [0x425f7c]
movzx ecx, word [0x4247f4]
movsx eax, dx
sub ecx, eax
mov word [0x4247f4], cx
jmp 0x406b77
mov dx, word [0x423968]
movsx eax, dx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fadd dword [0x424698]
mov ecx, dword [0x425c40]
mov dword [esp + 0x14], ecx
fsub qword [0x41f738]
fild dword [esp + 0x14]
faddp st(1)
call fcn.0040b5b0
mov dword [0x425c40], eax
add word [0x423968], bx
fld dword [0x424698]
fadd qword [0x41f390]
fstp dword [0x424698]
mov edx, dword [esp + 0xd0]
fldz
mov eax, dword [edx]
mov dword [edi], eax
fstp qword [esp + 0x84]
lea eax, [esp + 0xb8]
xor ecx, ecx
push eax
mov ebx, 1
lea edx, [esp + 0x94]
push edi
mov word [esp + 0x24], cx
mov dword [esp + 0x98], ecx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc8], edx
call fcn.00401f50
add esp, 8
test eax, eax
jne 0x406bd1
mov dword [edi], ebx
push 0
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.004021b0
add esp, 0x18
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret