Function at 0x10049240
Capabilities:
Access peb ldr_data

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004b920
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x1908
call fcn.1004ae80
mov eax, dword [0x10072040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x189c], esi
mov ecx, dword [0x1007275c]
mov dword [ebp - 4], 0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10072748]
mov dword [ebp - 4], 1
mov edx, dword [ecx]
push eax
mov edx, dword [edx + 0xc]
call edx
mov dword [ebp - 4], 0xffffffff
test byte [esi + 0x30], 1
mov dword [0x10072770], eax
je case.0x1004931f.2
mov dword [ebp - 4], 2
mov ecx, dword [eax]
mov edx, dword [ecx + 0x430]
mov ecx, eax
call edx
mov dword [ebp - 4], 0xffffffff
test eax, eax
je case.0x1004931f.2
mov dword [ebp - 4], 3
mov ecx, dword [eax]
mov edx, dword [ecx + 0x71c]
mov ecx, eax
call edx
mov dword [ebp - 0x18b8], eax
dec eax
mov dword [ebp - 4], 0xffffffff
cmp eax, 5
ja case.0x1004931f.2
movzx ecx, byte [eax + 0x1004984c]
jmp dword [ecx*4 + 0x10049844]
mov eax, dword [0x1007277c]
mov edx, 1
movss xmm0, dword [0x100722b0]
xorps xmm4, xmm4
xorps xmm3, xmm3
movss dword [ebp - 0x188c], xmm4
xorps xmm2, xmm2
movss dword [ebp - 0x1888], xmm3
movss dword [ebp - 0x1884], xmm2
movss dword [ebp - 0x18b0], xmm0
mov dword [ebp - 0x18b4], edx
cmp dword [eax + 0x18], edx
jl 0x100497e6
mov ecx, dword [0x10072748]
mov dword [ebp - 4], 4
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0xc]
call eax
mov edi, eax
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x100497b3
lea ecx, [edi + 8]
mov dword [ebp - 4], 5
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
call eax
mov dword [ebp - 4], 0xffffffff
test al, al
jne 0x100497b3
mov dword [ebp - 4], 6
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x270]
call eax
mov dword [ebp - 4], 0xffffffff
test al, al
je 0x100497b3
mov dword [ebp - 4], 7
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x160]
call eax
mov ecx, dword [0x10072770]
mov esi, eax
mov dword [ebp - 4], 8
mov edx, dword [ecx]
mov edx, dword [edx + 0x160]
call edx
mov dword [ebp - 4], 0xffffffff
cmp esi, eax
je 0x100497ad
mov eax, dword [0x1007277c]
lea ecx, [edi + 4]
movss xmm0, dword [eax + 0x10]
push ecx
mov dword [ebp - 4], 9
lea edx, [ebp - 0x1818]
mov eax, dword [ecx]
movss dword [esp], xmm0
push pe_nt_image_headers32
push 0x80
mov eax, dword [eax + 0x34]
push edx
call eax
mov dword [ebp - 4], 0xffffffff
test al, al
je 0x100497ad
mov ecx, dword [0x10072770]
mov dword [ebp - 0x1824], 0
mov dword [ebp - 0x1820], 0
mov dword [ebp - 0x181c], 0
mov dword [ebp - 4], 0xa
lea edx, [ebp - 0x1824]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x474]
call eax
mov eax, dword [ebp - 0x18b8]
mov dword [ebp - 0x1830], 0
mov dword [ebp - 0x182c], 0
mov dword [ebp - 0x1828], 0
sub eax, 2
je 0x100494c3
sub eax, 1
je 0x100494c3
sub eax, 3
jne 0x100494e1
mov ecx, dword [0x10072770]
mov dword [ebp - 4], 0xb
lea edx, [ebp - 0x1830]
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x568]
call eax
mov eax, dword [0x10072770]
lea ecx, [ebp - 0x1918]
xorps xmm0, xmm0
mov dword [ebp - 0x18cc], eax
movlpd qword [ebp - 0x1868], xmm0
lea eax, [ebp - 0x18c8]
movlpd qword [ebp - 0x1860], xmm0
movlpd qword [ebp - 0x1858], xmm0
movlpd qword [ebp - 0x1850], xmm0
movlpd qword [ebp - 0x1848], xmm0
movlpd qword [ebp - 0x1840], xmm0
movlpd qword [ebp - 0x1838], xmm0
movups xmmword [ebp - 0x1880], xmm0
push eax
movss xmm0, dword [ebp - 0x168c]
lea eax, [ebp - 0x1824]
movss dword [ebp - 0x18c8], xmm0
movss xmm0, dword [ebp - 0x167c]
movss dword [ebp - 0x18c4], xmm0
movss xmm0, dword [ebp - 0x166c]
push eax
mov dword [ebp - 0x1870], 0
mov dword [ebp - 0x186c], 0
mov dword [ebp - 0x18d0], 0x1006f274
movss dword [ebp - 0x18c0], xmm0
call fcn.10049140
mov ecx, dword [0x10072780]
lea esi, [ebp - 0x1880]
mov dword [ebp - 4], 0xc
mov edx, dword [ecx]
push esi
lea esi, [ebp - 0x18d0]
push esi
mov edx, dword [edx + 0x14]
push 0x46004003
push eax
call edx
mov esi, dword [ebp - 0x189c]
sub esp, 8
mov dword [ebp - 4], 0xffffffff
movss xmm0, dword [ebp - 0x168c]
subss xmm0, dword [ebp - 0x1824]
movss dword [ebp - 0x18a4], xmm0
movss dword [ebp - 0x1890], xmm0
movss xmm0, dword [ebp - 0x167c]
subss xmm0, dword [ebp - 0x1820]
movss dword [ebp - 0x18a0], xmm0
fld dword [ebp - 0x18a0]
movss dword [ebp - 0x18ac], xmm0
movss xmm0, dword [ebp - 0x1828]
addss xmm0, dword [esi + 0x14]
fstp dword [esp + 4]
fld dword [ebp - 0x18a4]
fstp dword [esp]
movss dword [ebp - 0x18bc], xmm0
movss xmm0, dword [ebp - 0x166c]
subss xmm0, dword [ebp - 0x181c]
xorps xmm0, xmmword [0x1006f590]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x1898], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
fstp dword [ebp - 0x18a4]
movss xmm0, dword [ebp - 0x18a4]
add esp, 8
fld qword [ebp - 0x1898]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x18a8], xmm0
fld qword [ebp - 0x18a8]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
movss xmm0, dword [ebp - 0x1830]
addss xmm0, dword [esi + 0xc]
fstp qword [ebp - 0x1898]
movsd xmm1, qword [ebp - 0x1898]
cvtpd2ps xmm1, xmm1
mulss xmm1, dword [0x1006f3b0]
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x18ac]
cvtps2pd xmm0, xmm0
movss dword [ebp - 0x18a0], xmm1
movss dword [ebp - 0x18a4], xmm1
movsd qword [ebp - 0x1898], xmm0
movss xmm0, dword [ebp - 0x1890]
fld qword [ebp - 0x1898]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x1898], xmm0
fld qword [ebp - 0x1898]
call sub.api_ms_win_crt_math_l1_1_0.dll__CIatan2
movss xmm0, dword [ebp - 0x182c]
sub esp, 8
addss xmm0, dword [esi + 0x10]
fstp qword [ebp - 0x1898]
movsd xmm1, qword [ebp - 0x1898]
cvtpd2ps xmm1, xmm1
mulss xmm1, dword [0x1006f3b0]
subss xmm1, xmm0
movss dword [ebp - 0x1890], xmm1
fld dword [ebp - 0x1890]
fstp dword [esp + 4]
fld dword [ebp - 0x18a4]
fstp dword [esp]
movss dword [ebp - 0x18ac], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
movss xmm1, dword [ebp - 0x18b0]
add esp, 8
fstp dword [ebp - 0x1890]
movss xmm0, dword [ebp - 0x1890]
comiss xmm1, xmm0
jbe 0x100497b3
movss xmm4, dword [ebp - 0x18a0]
xorps xmm2, xmm2
subss xmm2, dword [ebp - 0x18bc]
movss xmm3, dword [ebp - 0x18ac]
movss dword [ebp - 0x18b0], xmm0
movss dword [ebp - 0x188c], xmm4
movss dword [ebp - 0x1888], xmm3
movss dword [ebp - 0x1884], xmm2
jmp 0x100497cb
mov esi, dword [ebp - 0x189c]
movss xmm4, dword [ebp - 0x188c]
movss xmm3, dword [ebp - 0x1888]
movss xmm2, dword [ebp - 0x1884]
mov edx, dword [ebp - 0x18b4]
mov eax, dword [0x1007277c]
inc edx
mov dword [ebp - 0x18b4], edx
cmp edx, dword [eax + 0x18]
jle 0x10049370
movss xmm0, dword [0x100722ac]
movaps xmm1, xmm0
mulss xmm3, xmm0
mulss xmm1, xmm4
addss xmm3, dword [esi + 0x10]
mulss xmm0, xmm2
addss xmm1, dword [esi + 0xc]
addss xmm0, dword [esi + 0x14]
unpcklps xmm1, xmm3
movq qword [esi + 0xc], xmm1
movss dword [ebp - 0x18c0], xmm0
mov eax, dword [ebp - 0x18c0]
mov dword [esi + 0x14], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10049c21
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret