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

Disassembly:
sub esp, 0x8c
fldz
push ebx
push esi
xor esi, esi
mov dword [esp + 0x20], esi
fst dword [esp + 0x44]
fldz
xor eax, eax
fst qword [esp + 0x6c]
xor ecx, ecx
fxch st(1)
mov ebx, 1
fst dword [esp + 0x28]
push edi
fst dword [esp + 0x14]
mov word [esp + 0xc], ax
fst dword [esp + 0x6c]
fxch st(1)
fst qword [esp + 0x70]
mov word [esp + 0xc], cx
fxch st(1)
fst dword [esp + 0x18]
fst dword [esp + 0x68]
fld qword [0x41f828]
fstp qword [0x424200]
fstp dword [esp + 0x20]
fstp qword [esp + 0x70]
add word [0x4259a4], bx
mov edx, dword [0x425a00]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fld dword [str.W5l_fMT]
mov ax, word [0x4259a4]
fsub qword [0x41f3d8]
movsx ecx, ax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fsubp st(1)
fsubp st(1)
call fcn.0040b350
mov edi, dword [esp + 0xa8]
mov dword [0x425a00], eax
fld dword [esp + 0x20]
fadd qword [esp + 0x70]
lea eax, [esp + 0x8c]
push eax
lea edx, [esp + 0x8c]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
fstp qword [esp + 0x74]
push edi
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], edx
call fcn.004017d0
add esp, 8
test eax, eax
jne 0x4064d8
pop edi
lea eax, [esi - 0xc]
pop esi
pop ebx
add esp, 0x8c
ret
push ebp
push esi
lea ecx, [esp + 0x80]
push ecx
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x48]
push edx
call fcn.00401210
mov ebp, dword [esp + 0xc0]
push edi
push ebp
mov dword [0x425d24], 0x5063f10d
call fcn.00401a00
add esp, 0x20
test eax, eax
jge 0x4065cf
mov ax, word [0x4259bc]
movsx ecx, ax
sub ecx, 0x4e7b843f
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fsub dword [esp + 0x30]
mov edx, dword [0x425d34]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmulp st(1)
call fcn.0040b350
mov edi, dword [esp + 0xa0]
mov dword [0x425d34], eax
cmp edi, esi
je 0x4065a3
fldz
xor eax, eax
push ebx
mov word [esp + 0x14], ax
fstp dword [esp + 0x1c]
push edi
call fcn.00402440
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
mov ecx, dword [edi + 4]
mov edx, dword [edi + 8]
add ecx, ecx
add ecx, ecx
push ecx
push eax
push edx
call fcn.0040b490
mov eax, dword [edi + 8]
add esp, 0xc
mov dword [eax], esi
mov dword [edi], ebx
test esi, esi
jne 0x406f32
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x4065c2
push ebp
push eax
call fcn.00403df0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x8c
ret
lea ecx, [esp + 0x34]
push ebp
push ecx
call fcn.00403df0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
lea edx, [esp + 0x50]
push edi
push edx
call fcn.00403df0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
mov ax, word [0x4241fc]
mov ecx, dword [0x425afc]
dec dword [0x425afc]
cwde
lea edx, [ecx + eax + 0x52da07f6]
cmp edx, 0x53d55a4b
jg 0x40664d
mov ax, word [0x425af8]
mov cx, word [esp + 0x10]
cwde
movsx edx, cx
sub edx, eax
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul qword [0x4234e0]
fstp qword [0x4234e0]
add word [0x425af8], bx
mov eax, dword [ebp + 4]
add eax, 2
push eax
lea ecx, [esp + 0x60]
push ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x3c], ebx
call fcn.00402440
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
fldz
xor edx, edx
lea eax, [esp + 0x5c]
push ebx
mov word [esp + 0x30], dx
fstp dword [esp + 0x1c]
push eax
call fcn.00402440
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
mov ecx, dword [esp + 0x60]
lea edx, [ecx*4]
push edx
push eax
mov eax, dword [esp + 0x6c]
push eax
call fcn.0040b490
mov ecx, dword [esp + 0x70]
add esp, 0xc
mov dword [ecx], esi
mov dword [esp + 0x5c], ebx
test esi, esi
jne 0x406f32
lea edx, [esp + 0x40]
push 2
push edx
call fcn.00402440
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
lea eax, [esp + 0x7c]
push 3
push eax
call fcn.00402440
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
lea ecx, [esp + 0x50]
push ecx
call fcn.00402390
mov ebx, eax
add esp, 4
and ebx, 0x8000001f
jns 0x406712
dec ebx
or ebx, 0xffffffe0
inc ebx
cmp ebx, 0x1f
fld1
jge 0x4067e8
mov edx, dword [0x4234c8]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fld dword [0x425558]
mov eax, dword [0x4255d0]
mov dword [esp + 0x14], eax
fisub dword [esp + 0x14]
fadd dword [esp + 0x1c]
fsubp st(1)
call fcn.0040b350
mov dword [0x4234c8], eax
fld dword [esp + 0x1c]
fadd st(1)
mov edi, 0x1f
sub edi, ebx
mov dword [esp + 0x14], edi
fstp dword [esp + 0x1c]
fld dword [0x425558]
fsub st(1)
fstp dword [0x425558]
fld dword [esp + 0x1c]
fsubr qword [0x41f820]
fadd qword [0x41f818]
fcomp qword [0x41f810]
fnstsw ax
fld dword [esp + 0x1c]
fsub st(1)
fstp dword [esp + 0x1c]
test ah, 0x41
jp 0x4067b4
fsubr dword [0x4241e4]
fstp dword [0x4241e4]
fld dword [0x4241e4]
fmul dword [esp + 0x30]
fstp dword [esp + 0x30]
jmp 0x4067b6
fstp st(0)
lea ecx, [esp + 0x34]
push edi
push ecx
call fcn.00403390
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
lea edx, [esp + 0x50]
push edi
push edx
call fcn.00403390
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
jmp 0x4067f2
fstp st(0)
mov dword [esp + 0x14], 0
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x54]
mov ax, word [0x4241fc]
movzx edx, word [esp + 0x10]
dec ebx
dec ecx
mov edi, ebx
cwde
sub edi, ecx
mov ebp, edi
sub edx, eax
shl ebp, 5
lea eax, [esp + 0x50]
push ebp
mov word [esp + 0x14], dx
dec word [0x4241fc]
push eax
mov dword [esp + 0x70], ecx
call fcn.00403390
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.004017d0
add esp, 0x10
test eax, eax
jl 0x4068a7
jmp 0x406850
mov eax, dword [esp + 0x64]
inc dword [eax + edi*4]
mov ax, word [0x4259c8]
movsx ecx, ax
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fld dword [esp + 0x6c]
fadd qword [0x41f808]
fsubp st(1)
call fcn.0040b350
lea edx, [esp + 0x50]
mov word [0x4259c8], ax
push edx
lea eax, [esp + 0x38]
push eax
mov ecx, eax
push ecx
call fcn.004050c0
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x44]
push eax
call fcn.004017d0
add esp, 0x14
test eax, eax
jge 0x406850
mov cx, word [esp + 0x10]
movsx edx, cx
sub edx, 0xc59bb5f
mov dword [esp + 0x24], edx
lea eax, [esp + 0x50]
push ebp
fild dword [esp + 0x28]
push eax
fstp dword [esp + 0x54]
call fcn.00401620
add esp, 8
cmp ebx, dword [esp + 0x68]
mov dword [esp + 0x88], ebx
jle 0x406e1b
add edi, edi
add edi, edi
add ebp, 0xffffffe0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], ebp
nop
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x68]
lea ebp, [ecx + ebx*4]
mov ecx, dword [ebp]
lea esi, [edx + eax*4]
mov dword [esp + 0x18], ebp
cmp ecx, dword [esi]
jb 0x40691e
mov edx, dword [esp + 0x64]
mov dword [edi + edx - 4], 0xffffffff
jmp 0x406ab5
fld qword [0x41f800]
fstp qword [esp + 0x74]
mov ax, word [esp + 0x10]
movsx ecx, ax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fadd dword [esp + 0x4c]
mov edx, dword [0x425474]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
faddp st(1)
call fcn.0040b350
mov dword [0x425474], eax
fld qword [esp + 0x74]
mov esi, dword [esi]
fsub qword [0x41f7f8]
mov ecx, dword [ebp]
xor edx, edx
mov eax, ecx
fadd qword [0x425d38]
mov edi, esi
shr edi, 0x10
div edi
movzx edx, word [ebp - 2]
fstp qword [0x425d38]
fld qword [esp + 0x74]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [esp + 0x74]
mov ebx, eax
imul eax, edi
sub ecx, eax
shl ecx, 0x10
or ecx, edx
movzx eax, si
mov edx, ebx
imul edx, eax
cmp ecx, edx
jae 0x4069e3
fld dword [0x425ae8]
add ecx, esi
fsub dword [esp + 0x1c]
dec ebx
fstp dword [0x425ae8]
cmp ecx, esi
jb 0x4069c8
cmp ecx, edx
jae 0x4069c8
add ecx, esi
dec ebx
cmp ecx, esi
jae 0x4069bd
dec dword [0x424790]
mov eax, dword [0x424790]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [esp + 0x1c]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x30]
fld dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
fsub qword [0x41f7f0]
inc dword [esp + 0x28]
mov dword [esp + 0x20], eax
fiadd dword [esp + 0x20]
fcompp
fnstsw ax
test ah, 5
jp 0x406a3b
mov eax, dword [esp + 0x28]
mov ebp, 0xb5941898
sub ebp, eax
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
mov ebp, dword [esp + 0x18]
fadd qword [0x423478]
fstp qword [0x423478]
dec dword [esp + 0x28]
sub ecx, edx
fadd dword [0x4241ec]
xor edx, edx
mov eax, ecx
div edi
fstp dword [0x4241ec]
fld qword [0x425d50]
fld dword [0x4241ec]
fadd qword [0x41f7e8]
fsubp st(1)
fstp qword [0x425d50]
mov edx, eax
imul edx, edi
sub ecx, edx
movzx edx, word [ebp - 4]
shl ecx, 0x10
or ecx, edx
movzx edi, si
mov edx, eax
imul edx, edi
cmp ecx, edx
jae 0x406a9b
add ecx, esi
dec eax
cmp ecx, esi
jb 0x406a9b
lea esp, [esp]
cmp ecx, edx
jae 0x406a9b
add ecx, esi
dec eax
cmp ecx, esi
jae 0x406a90
mov ecx, dword [esp + 0x2c]
shl ebx, 0x10
or ebx, eax
mov eax, dword [esp + 0x64]
mov dword [ecx + eax - 4], ebx
mov ebx, dword [esp + 0x88]
mov edi, ecx
fld dword [esp + 0x70]
mov eax, dword [esp + 0x64]
fadd qword [0x41f7e0]
mov ebp, 1
add dword [edi + eax - 4], ebp
fstp dword [esp + 0x70]
fld dword [0x423488]
fsub qword [0x41f7d8]
fadd qword [0x41f7d0]
fcomp qword [0x41f7c8]
fnstsw ax
test ah, 0x41
jp 0x406b01
fld dword [0x4234b8]
fmul qword [0x41f7c0]
fstp dword [0x4234b8]
mov eax, dword [esp + 0x64]
fldz
dec dword [edi + eax - 4]
xor edx, edx
lea eax, [esp + 0x40]
push ebp
mov word [esp + 0x30], dx
fstp dword [esp + 0x1c]
push eax
call fcn.00402440
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
mov ecx, dword [esp + 0x44]
lea edx, [ecx*4]
push edx
push eax
mov eax, dword [esp + 0x50]
push eax
call fcn.0040b490
mov ecx, dword [esp + 0x54]
add esp, 0xc
mov dword [ecx], esi
mov dword [esp + 0x40], ebp
test esi, esi
jne 0x406f32
fld dword [0x425558]
fsub qword [0x41f7b8]
fcomp qword [0x41f7b0]
fnstsw ax
fld dword [0x425558]
fadd qword [0x41f358]
fstp dword [0x425558]
test ah, 5
jp 0x406bbf
mov edx, dword [0x425d34]
mov eax, 0x5a35936b
sub eax, edx
cmp eax, 0x68df64fc
jle 0x406bbf
fld dword [esp + 0x1c]
mov cx, word [esp + 0x10]
fadd qword [0x41f7a8]
movsx edx, cx
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fmulp st(1)
call fcn.0040b350
mov word [esp + 0x10], ax
mov ecx, dword [esp + 0x68]
cmp ecx, ebp
jge 0x406bcb
xor eax, eax
jmp 0x406bd3
mov eax, dword [esp + 0x58]
mov eax, dword [eax + ecx*4 - 4]
mov edx, dword [esp + 0x48]
mov dword [edx], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + ecx*4]
mov edx, dword [esp + 0x48]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x64]
mov ecx, dword [edi + eax - 4]
push ecx
lea edx, [esp + 0x44]
push edx
mov eax, edx
push eax
call fcn.00405c50
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406f32
fldz
xor ecx, ecx
lea edx, [esp + 0x7c]
push ebp
mov word [esp + 0x30], cx
fstp dword [esp + 0x1c]
push edx
call fcn.00402440
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
lea ecx, [eax*4]
push ecx
push esi
push edx
call fcn.0040b490
mov eax, dword [esp + 0x90]
add esp, 0xc
mov dword [eax], esi
mov dword [esp + 0x7c], ebp
test esi, esi
jne 0x406f32
cmp ebx, 2
jge 0x406c6d
xor eax, eax
jmp 0x406c75
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx + ebx*4 - 8]
mov edx, dword [esp + 0x84]
mov dword [edx], eax
fld qword [0x425a98]
fsub dword [0x425a88]
fadd dword [esp + 0x6c]
call fcn.0040b350
cmp ebx, ebp
mov word [0x4259bc], ax
fld dword [esp + 0x6c]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [esp + 0x6c]
fld dword [0x425a88]
fsub st(1)
fstp dword [0x425a88]
fld qword [0x425a98]
fsub st(1)
fstp qword [0x425a98]
jge 0x406ccb
xor eax, eax
jmp 0x406cd3
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + ebx*4 - 4]
mov ecx, dword [esp + 0x84]
mov dword [ecx + 4], eax
fld dword [0x424794]
fstp qword [0x423048]
fadd dword [0x424794]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x84]
fstp dword [0x424794]
mov eax, dword [edx + ebx*4]
lea edx, [esp + 0x7c]
mov dword [ecx + 8], eax
push edx
lea eax, [esp + 0x44]
push eax
call fcn.004017d0
add esp, 8
test eax, eax
jg 0x406ad0
mov ecx, dword [esp + 0x64]
mov edx, dword [edi + ecx - 4]
push edx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00405c50
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406f32
mov ebp, dword [esp + 0x24]
lea edx, [esp + 0x40]
push ebp
push edx
call fcn.00403390
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x38]
push ecx
mov edx, ecx
push edx
call fcn.004050c0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406f32
push eax
lea eax, [esp + 0x38]
push eax
call fcn.00401950
add esp, 8
test eax, eax
jge 0x406dfb
fld dword [esp + 0x70]
lea ecx, [esp + 0x50]
fadd qword [0x41f7a0]
push ecx
lea edx, [esp + 0x44]
push edx
fstp dword [esp + 0x78]
call fcn.00403df0
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
lea eax, [esp + 0x40]
push ebp
push eax
call fcn.00403390
mov esi, eax
add esp, 8
test esi, esi
jne 0x406f32
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x38]
push edx
mov eax, edx
push eax
call fcn.00404f60
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x406f32
mov eax, dword [esp + 0x64]
dec dword [edi + eax - 4]
dec ebx
sub ebp, 0x20
sub edi, 4
cmp ebx, dword [esp + 0x68]
mov dword [esp + 0x88], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], edi
jg 0x4068f0
mov edi, dword [esp + 0xa0]
test edi, edi
je 0x406e55
lea ecx, [esp + 0x5c]
push ecx
push edi
call fcn.00403df0
fld qword [0x423048]
mov edx, dword [esp + 0xb0]
fstp qword [0x425448]
mov eax, dword [edx]
mov ecx, dword [esp + 0xb4]
add esp, 8
imul eax, dword [ecx]
mov dword [edi], eax
mov edi, dword [esp + 0xa4]
test edi, edi
je 0x406f32
mov dx, word [esp + 0x10]
movsx eax, dx
mov edx, dword [esp + 0x14]
mov ecx, 0x5a094012
sub ecx, eax
mov dword [esp + 0x18], ecx
push edx
lea eax, [esp + 0x38]
fild dword [esp + 0x1c]
push eax
fmul dword [0x425a88]
fstp dword [0x425a88]
call fcn.00401620
lea ecx, [esp + 0x3c]
push ecx
push edi
call fcn.00403df0
inc dword [0x425d30]
fld dword [str.W5l_fMT]
fld1
add esp, 0x10
fsub st(1), st(0)
fxch st(1)
fstp dword [str.W5l_fMT]
fsubr dword [esp + 0x4c]
fstp dword [esp + 0x4c]
mov edx, dword [0x425d30]
mov eax, dword [0x425d58]
sub eax, edx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fsub dword [str.W5l_fMT]
fld dword [esp + 0x4c]
fcompp
fnstsw ax
test ah, 0x41
jp 0x406ef6
mov ecx, 0x9c4
mov word [esp + 0x10], cx
mov edx, dword [esp + 0xa8]
mov eax, dword [edx]
push 0
push edi
mov dword [edi], eax
call fcn.00401950
add esp, 8
test eax, eax
jne 0x406f16
mov dword [edi], 1
mov cx, word [esp + 0x10]
movsx edx, cx
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fadd qword [0x423668]
fstp qword [0x423668]
push 0
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.004013f0
add esp, 0x18
pop ebp
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x8c
ret