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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov esi, esp
mov eax, dword [0x40f3c0]
xor eax, ebp
mov dword [esi + 0x138], eax
cmp dword [0x40f600], 0xa
jl 0x401cec
mov eax, dword [0x40f604]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x401cec
jmp 0x401cea
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 8], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x28], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff0
mov esp, ebx
push eax
sub esp, 0x1c
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x20], ecx
mov esp, ecx
cmp dword [0x40f608], 0xa
jl 0x401d48
mov ecx, dword [0x40f60c]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x401d48
jmp 0x401d46
mov ecx, 0xbd9b8e0
mov edx, 0xb3f2bf32
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], ecx
mov ecx, 0x67aa28ff
mov edx, 0xd00513a6
mov dword [esi + 0x34], edx
mov dword [esi + 0x38], ecx
mov ecx, 0x3bf788cd
mov edi, 0x81c58703
mov dword [esi + 0x14], ecx
mov edx, 0xd00513a6
mov ecx, 0x67aa1bc6
mov dword [esi + 4], edx
mov dword [esi], ecx
lea edx, [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0x8c], edx
mov edx, edi
movss xmm1, dword [ebp + 8]
movaps xmm0, xmmword [0x40c080]
andps xmm0, xmm1
movaps xmmword [esi + 0xf0], xmm0
cvtss2sd xmm0, xmm0
movsd xmm1, qword [0x40c090]
subsd xmm1, xmm0
movsd qword [esi + 0x60], xmm1
xorps xmm0, xmm0
sqrtsd xmm0, xmm1
movsd qword [esi + 0xb8], xmm0
mov edi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
mov dword [esi + 0xc], edx
mov dword [esi + 0x24], ebx
mov ecx, dword [esi + 0x40]
mov dword [eax], ecx
mov ecx, dword [esi + 0x3c]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x38]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0x34]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x114], edx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
movaps xmm0, xmmword [eax]
mov ecx, dword [esi + 0x8c]
xorps xmm0, xmmword [ecx]
movaps xmmword [eax], xmm0
push 0
push eax
call edi
add esp, 8
fstp qword [esi + 0xe8]
movsd xmm0, qword [esi + 0xe8]
movsd qword [esi + 0x80], xmm0
mov eax, dword [0x40f610]
mov edx, dword [0x40f614]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete ah
cmp edx, 0xa
setl al
or al, ah
mov byte [esi + 0x10], al
cmp al, 1
je 0x401e7a
mov edi, 0xcc7a6fd
mov eax, edx
mov edx, 0xb0f3b537
mov ebx, dword [esi + 8]
mov dword [ebx + 4], edx
mov edx, eax
mov dword [ebx], edi
cmp edx, 0xa
jl 0x401e88
and ecx, 1
jne 0x4022f1
mov ecx, 0xcc7a6fd
mov edx, 0xb0f3b537
mov eax, dword [esi + 8]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov edi, 0x67aa1bf6
mov ebx, 0xd00513a6
mov dword [eax + 0xc], ebx
mov dword [eax + 8], edi
cmp byte [esi + 0x10], 0
je 0x4022f1
mov dword [esi + 0xac], ebx
mov dword [esi + 0xb0], edi
mov dword [esi + 0x44], edx
mov dword [esi + 0x48], ecx
lea eax, [esi + 0x110]
xor ecx, ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x114], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi + 8]
movaps xmm0, xmmword [ecx]
xorps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
push 0
push ecx
mov ebx, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
call ebx
add esp, 8
fstp qword [esi + 0xe0]
movsd xmm0, qword [esi + 0xe0]
mov edx, 0xac5a6fd
mov eax, 0xb5f4b631
mov dword [esi + 0x5c], eax
cmp dword [0x40f618], 0xa
jl 0x401f43
mov eax, dword [0x40f61c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4025de
movsd qword [esi + 0x78], xmm0
mov edi, 0xd00513a6
mov ebx, 0x67aa1bf2
lea eax, [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0xa8], edx
mov ecx, edx
mov edx, dword [esi + 0x28]
mov dword [edx], ecx
mov ecx, dword [esi + 0x5c]
mov dword [edx + 4], ecx
mov dword [esi + 0xa4], edi
mov dword [edx + 0xc], edi
mov dword [esi + 0xa0], ebx
mov dword [edx + 8], ebx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x114], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
push 0
push edx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
add esp, 8
fstp qword [esi + 0xd8]
movsd xmm0, qword [esi + 0xd8]
mov eax, 0xb9f7b033
mov edx, 0xcc2a6fc
mov dword [esi + 0x58], eax
cmp dword [0x40f620], 0xa
jl 0x401fef
mov eax, dword [0x40f624]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4025e0
movsd qword [esi + 0x28], xmm0
mov edi, 0x67aa1bfe
mov ebx, 0xd00513a6
lea eax, [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0x9c], edx
mov ecx, edx
mov edx, dword [esi + 0x24]
mov dword [edx], ecx
mov ecx, dword [esi + 0x58]
mov dword [edx + 4], ecx
mov dword [esi + 0x94], ebx
mov dword [edx + 0xc], ebx
mov dword [esi + 0x98], edi
mov dword [edx + 8], edi
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x114], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
push 0
push edx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
add esp, 8
fstp qword [esi + 0xd0]
movsd xmm0, qword [esi + 0xd0]
movsd qword [esi + 0x70], xmm0
movsd xmm0, qword [esi + 0x60]
ucomisd xmm0, qword [0x40c0a0]
movsd xmm0, qword [esi + 0xb8]
jae 0x4020b0
sub esp, 8
movsd xmm0, qword [esi + 0x60]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0xc8]
movsd xmm0, qword [esi + 0xc8]
cmp dword [0x40f628], 0xa
jl 0x4020cd
mov eax, dword [0x40f62c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4025e2
movsd qword [esi + 0x68], xmm0
mov eax, 0xfc6a6fe
mov ecx, 0xb3fcb232
mov dword [esi + 0x54], ecx
mov dword [esi + 0x24], eax
mov eax, 0x52992ef0
mov ecx, 0xe9322a9e
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x50], eax
mov eax, 0x8890b04f
mov ecx, 0x794315b9
mov dword [esi + 8], eax
mov dword [esi + 0x10], ecx
mov ebx, 0x7725cdd8
mov edi, 0xbabf2484
lea eax, [esi + 0x110]
xor ecx, ecx
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x54]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 0x24]
mov dword [edx], ecx
mov ecx, dword [esi + 0x4c]
mov dword [edx + 0xc], ecx
mov ecx, dword [esi + 0x50]
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x14], ecx
mov ecx, dword [esi + 8]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x1c], edi
mov dword [edx + 0x18], ebx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x114], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x124], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 0x120], ecx
mov dword [esi + 0x90], edi
mov dword [esi + 0x12c], edi
mov dword [esi + 0x128], ebx
movaps xmm0, xmmword [edx]
movapd xmm1, xmmword [edx + 0x10]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
xorpd xmm1, xmmword [eax + 0x10]
movapd xmmword [edx + 0x10], xmm1
push 0
push edx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
add esp, 8
fstp qword [esi + 0xc0]
movsd xmm0, qword [esi + 0xc0]
cmp dword [0x40f600], 0xa
jl 0x4025ec
mov eax, dword [0x40f604]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4025ec
mov dword [esi + 0x78], ebx
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff0
mov esp, ebx
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x20], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x80], ecx
mov esp, ecx
push eax
sub esp, 0x1c
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
cmp dword [0x40f608], 0xa
jl 0x40223b
mov ecx, dword [0x40f60c]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
jne 0x4025e4
mov dword [esi + 0x70], edi
lea ecx, [esi + 0x110]
xor edx, edx
mov edx, dword [esi + 0x40]
mov dword [eax], edx
mov edx, dword [esi + 0x3c]
mov dword [eax + 4], edx
mov edx, dword [esi + 0x38]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x34]
mov dword [eax + 0xc], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x114], edx
mov edx, dword [esi + 0x14]
mov dword [esi + 0x110], edx
mov edx, dword [esi + 4]
mov dword [esi + 0x11c], edx
mov edx, dword [esi]
mov dword [esi + 0x118], edx
movapd xmm0, xmmword [eax]
xorpd xmm0, xmmword [ecx]
movapd xmmword [eax], xmm0
push 0
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
fstp st(0)
add esp, 8
mov eax, dword [0x40f610]
mov edi, dword [0x40f614]
lea ecx, [eax + 1]
imul ecx, eax
mov dword [esi + 0x68], ecx
test cl, 1
sete ah
cmp edi, 0xa
setl al
or al, ah
mov byte [esi + 0x28], al
cmp al, 1
je 0x4022ce
mov edx, dword [esi + 0x48]
mov dword [ebx], edx
mov edx, dword [esi + 0x44]
mov dword [ebx + 4], edx
cmp edi, 0xa
mov edx, dword [esi + 0x48]
mov edi, dword [esi + 0x44]
mov ecx, dword [esi + 0xb0]
mov eax, dword [esi + 0xac]
jl 0x402318
and dword [esi + 0x68], 1
jne 0x4025ce
jmp 0x402318
mov ecx, 0xcc7a6fd
mov edx, 0xb0f3b537
mov eax, dword [esi + 8]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov ecx, 0x67aa1bf6
mov edx, 0xd00513a6
mov dword [eax + 0xc], edx
mov dword [eax + 8], ecx
jmp 0x401e88
mov dword [ebx], edx
mov dword [ebx + 4], edi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], eax
cmp byte [esi + 0x28], 0
je 0x4025ce
lea eax, [esi + 0x110]
xor ecx, ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x114], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
movapd xmm0, xmmword [ebx]
xorpd xmm0, xmmword [eax]
movapd xmmword [ebx], xmm0
push 0
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
call ebx
fstp st(0)
add esp, 8
cmp dword [0x40f618], 0xa
jl 0x402391
mov eax, dword [0x40f61c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4025e6
mov eax, dword [esi + 0xa8]
mov edi, dword [esi + 0x20]
mov dword [edi], eax
mov eax, dword [esi + 0x5c]
mov dword [edi + 4], eax
mov eax, dword [esi + 0xa0]
mov dword [edi + 8], eax
mov eax, dword [esi + 0xa4]
mov dword [edi + 0xc], eax
lea eax, [esi + 0x110]
xor ecx, ecx
mov edx, ebx
mov ebx, dword [esi + 0xc]
mov dword [esi + 0x114], ebx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
movapd xmm0, xmmword [edi]
xorpd xmm0, xmmword [eax]
movapd xmmword [edi], xmm0
push 0
push edi
call edx
fstp st(0)
add esp, 8
cmp dword [0x40f620], 0xa
jl 0x402414
mov eax, dword [0x40f624]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4025e8
mov eax, dword [esi + 0x9c]
mov edx, dword [esi + 0x80]
mov dword [edx], eax
mov eax, dword [esi + 0x58]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x98]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x94]
mov dword [edx + 0xc], eax
lea eax, [esi + 0x110]
xor ecx, ecx
mov dword [esi + 0x114], ebx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
push 0
push edx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
fstp st(0)
add esp, 8
movsd xmm0, qword [esi + 0x60]
ucomisd xmm0, qword [0x40c0a0]
jae 0x4024a3
sub esp, 8
movsd xmm0, qword [esi + 0x60]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0x108]
cmp dword [0x40f628], 0xa
mov edi, dword [esi + 8]
jl 0x4024c3
mov eax, dword [0x40f62c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4025ea
mov eax, dword [esi + 0x24]
mov ecx, ebx
mov ebx, dword [esi + 0x70]
mov dword [ebx], eax
mov eax, dword [esi + 0x54]
mov dword [ebx + 4], eax
mov eax, dword [esi + 0x50]
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x4c]
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x14], eax
mov dword [esi + 0x114], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x110], ecx
mov ecx, dword [esi + 4]
mov dword [esi + 0x11c], ecx
mov ecx, dword [esi]
mov dword [esi + 0x118], ecx
mov dword [esi + 0x124], eax
mov dword [ebx + 0x10], edi
mov dword [esi + 0x120], edi
mov eax, dword [esi + 0x78]
mov dword [ebx + 0x18], eax
mov ecx, dword [esi + 0x90]
mov dword [ebx + 0x1c], ecx
mov dword [esi + 0x12c], ecx
mov dword [esi + 0x128], eax
lea eax, [esi + 0x110]
xor ecx, ecx
movapd xmm0, xmmword [ebx]
movapd xmm1, xmmword [ebx + 0x10]
xorpd xmm0, xmmword [eax]
movapd xmmword [ebx], xmm0
xorpd xmm1, xmmword [eax + 0x10]
movapd xmmword [ebx + 0x10], xmm1
push 0
push ebx
mov edi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtod]
call edi
fstp st(0)
add esp, 8
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push eax
sub esp, 0xc
mov edx, dword [esi + 0xc]
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 8], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x28], ecx
mov esp, ecx
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff0
mov esp, ebx
push eax
sub esp, 0x1c
mov ecx, esp
and ecx, 0xfffffff0
mov dword [esi + 0x20], ecx
mov esp, ecx
cmp dword [0x40f608], 0xa
jl 0x401dd7
mov ecx, dword [0x40f60c]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
mov edx, dword [esi + 0xc]
je 0x401dd7
jmp 0x401d46
mov dword [ebx], edx
mov dword [ebx + 4], edi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], eax
jmp 0x402318
jmp 0x4025de
jmp 0x4025e0
jmp 0x4025e2
jmp 0x4025e4
jmp 0x4025e6
jmp 0x4025e8
jmp 0x4025ea
xorpd xmm1, xmm1
xor eax, eax
movss xmm2, dword [ebp + 8]
ucomiss xmm1, xmm2
seta cl
movsd xmm2, qword [0x40c090]
ja 0x40260b
xorpd xmm2, xmm2
xorps xmm1, xmm1
cvtsd2ss xmm1, qword [esi + 0x80]
mulsd xmm2, xmm0
movaps xmm3, xmmword [esi + 0xf0]
mulss xmm1, xmm3
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movsd xmm1, qword [esi + 0x78]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
mulss xmm0, xmm3
cvtss2sd xmm0, xmm0
subsd xmm0, qword [esi + 0x28]
cvtsd2ss xmm0, xmm0
mulss xmm0, xmm3
cvtss2sd xmm0, xmm0
movsd xmm1, qword [esi + 0x70]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
cvtss2sd xmm0, xmm0
movsd xmm1, qword [esi + 0x68]
mulsd xmm1, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
mov al, cl
movss xmm1, dword [eax*4 + 0x40c098]
mulss xmm1, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
addsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
movss dword [esi + 0xb4], xmm0
fld dword [esi + 0xb4]
fstp xword [esi + 0x14]
mov ecx, dword [esi + 0x138]
xor ecx, ebp
call fcn.0040a7a1
fld xword [esi + 0x14]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret