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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x120
mov esi, esp
mov dword [esi + 0x108], ebp
mov ebx, ecx
mov dword [esi + 0x10c], esp
mov dword [esi + 0x118], 0xffffffff
lea eax, [esi + 0x110]
mov dword [esi + 0x114], 0x10047ec0
mov ecx, dword fs:[0]
mov dword [esi + 0x110], ecx
mov dword fs:[0], eax
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x178]
mov edx, dword [ecx]
mov ecx, dword [0x1029fc3c]
mov eax, dword [eax + edx]
mov edx, dword [ecx]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
test eax, eax
je 0x10045388
mov edi, eax
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x108]
mov edx, dword [ecx]
movzx eax, word [eax + edi]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
test eax, eax
je 0x10045388
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x108]
mov edx, dword [ecx]
movzx eax, word [eax + edi]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
cmp dword [eax + 0xc8], 9
je 0x10045632
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x108]
mov edx, dword [ecx]
movzx eax, word [eax + edi]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
cmp dword [eax + 0xc8], 7
je 0x10045632
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x108]
mov edx, dword [ecx]
movzx eax, word [eax + edi]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
cmp dword [eax + 0xc8], 0
je 0x10045632
mov ecx, dword [0x1029fb9c]
cmp byte [ecx + 0x4005], 0
mov edx, dword [0x1029fc18]
je 0x100453f4
test byte [edx + 0xc], 1
je 0x100453f4
mov eax, dword [0x1029fbcc]
cmp byte [eax + 8], 0
je 0x100453f4
mov ecx, dword [0x1029fbf8]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
mov dword [esp], 0x1029ff44
call fcn.1003cc20
sub esp, 0xc
mov edx, dword [0x1029fc18]
mov ecx, dword [0x1029fb9c]
test al, al
je 0x100453f4
mov dword [esi + 0x50], 1
mov al, 1
mov dword [esi + 0x90], eax
jmp 0x1004540f
mov eax, dword [edx + 0x16c]
test eax, eax
je 0x10045619
mov dword [esi + 0x50], eax
mov dword [esi + 0x90], 0
mov dword [edx + 0x16c], 0
mov eax, dword [ecx]
mov ecx, dword [ecx + 0x28]
mov eax, dword [eax]
test byte [ecx + eax], 1
je 0x10045632
mov eax, dword [ebp + 8]
test byte [eax + 0x30], 2
jne 0x10045632
mov eax, dword [0x1029ff54]
test al, 1
je 0x10045ea8
test al, 2
je 0x10045f96
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x178]
mov edx, dword [ecx]
mov ecx, dword [0x1029fc3c]
mov eax, dword [eax + edx]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
mov dword [esi + 0x118], 0xffffffff
mov dword [esp], eax
call edx
sub esp, 4
test eax, eax
je 0x10045632
mov edi, eax
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x108]
mov edx, dword [ecx]
movzx eax, word [eax + edi]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
test eax, eax
je 0x10045632
mov dword [esi + 0xb0], edi
mov dword [esi + 0x60], ebx
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x178]
mov edx, dword [ecx]
mov ecx, dword [0x1029fc3c]
mov eax, dword [eax + edx]
mov edx, dword [ecx]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
vmovss xmm0, dword [0x10146f80]
vmovss dword [esi + 0x40], xmm0
test eax, eax
je 0x10045589
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x178]
mov edx, dword [ecx]
mov ecx, dword [0x1029fc3c]
mov eax, dword [eax + edx]
mov edx, dword [ecx]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
mov edx, dword [0x1029fb9c]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x108]
mov ebx, dword [ecx]
movzx eax, word [edx + eax]
mov dword [esp], eax
call dword [ebx + 8]
sub esp, 4
test eax, eax
je 0x10045589
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov edx, dword [eax + 0x178]
mov edi, dword [ecx]
mov eax, dword [eax + 0x1e8]
movzx ebx, byte [eax + edi]
mov ecx, dword [0x1029fc3c]
mov eax, dword [edx + edi]
mov edx, dword [ecx]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
mov edx, dword [0x1029fb9c]
mov ecx, dword [edx + 4]
mov edx, dword [edx + 0x108]
mov edi, dword [ecx]
movzx eax, word [edx + eax]
mov dword [esp], eax
call dword [edi + 8]
sub esp, 4
vmovss xmm0, dword [eax + ebx*4 + 0x12c]
vmovss dword [esi + 0x40], xmm0
vmovss xmm0, dword [esi + 0x40]
vmulss xmm0, xmm0, dword [0x10146f90]
vmovss dword [esi + 0xac], xmm0
cmp dword [esi + 0x50], 1
je 0x100455a8
vxorps xmm0, xmm0, xmm0
vmovss dword [esi + 0x3c], xmm0
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x34]
mov ecx, dword [ecx]
vmovsd xmm0, qword [eax + ecx]
vmovsd qword [esi + 0x70], xmm0
mov eax, dword [eax + ecx + 8]
mov dword [esi + 0x78], eax
cmp byte [esi + 0x90], 0
mov ebx, dword [esi + 0x60]
je 0x100455ed
lea eax, [esi + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov ecx, ebx
call fcn.10047b00
sub esp, 8
vmovss xmm0, dword [esi + 0x70]
vmovss xmm1, dword [esi + 0x74]
vxorps xmm2, xmm2, xmm2
vfmadd231ss xmm2, xmm0, xmm0
vfmadd231ss xmm2, xmm1, xmm1
vcvtss2sd xmm0, xmm2, xmm2
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x10045648
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10045660
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2c]
mov dword [ecx + 0x4030], eax
vmovsd xmm0, qword [edx + 0x24]
vmovsd qword [ecx + 0x4028], xmm0
mov eax, dword [esi + 0x110]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
fstp qword [esi + 0x100]
vmovsd xmm0, qword [esi + 0x100]
mov eax, dword [esi + 0x50]
vcvtsd2ss xmm1, xmm0, xmm0
cmp eax, 2
jne 0x1004567f
vmovss xmm0, dword [0x10144ae0]
vucomiss xmm0, xmm1
jbe 0x1004568e
jmp 0x10045ab4
vmovss xmm0, dword [esi + 0x3c]
vucomiss xmm0, xmm1
jae 0x10045acd
vmovss dword [esi + 0x3c], xmm1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x30]
mov ecx, eax
and ecx, 0xfffdffff
mov dword [edx + 0x30], ecx
vmovss xmm0, dword [0x101474e4]
mov bl, 1
test al, 4
jne 0x100456c7
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x28]
mov ecx, dword [ecx]
movzx ebx, byte [eax + ecx]
and bl, 2
shr bl, 1
vminss xmm0, xmm0, dword [esi + 0x40]
vmovss dword [esi + 0x90], xmm0
mov ecx, dword [0x1029ff50]
mov eax, dword [ecx]
call dword [eax + 0x34]
test eax, eax
je 0x100458d2
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax + 0x16c]
mov edx, dword [esi + 0xb0]
cmp dword [ecx + edx], 0
vmovss xmm2, dword [esi + 0x90]
jle 0x100458de
mov ecx, edx
mov eax, dword [eax + 0x108]
movzx eax, word [eax + edx]
mov dword [esi + 0x10], 0x68fdd45f
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0xa02b02a3
mov ecx, dword [esi + 0x10]
cmp ecx, eax
je 0x1004580c
mov dword [esi + 0x10], 0xeac8fe90
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0x6f143716
mov ecx, dword [esi + 0x10]
rorx ecx, ecx, 0xf
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
cmp ecx, eax
je 0x1004580c
mov dword [esi + 0x10], 0xaf19c459
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0xa6cbe651
mov ecx, dword [esi + 0x10]
rorx ecx, ecx, 0x14
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
cmp ecx, eax
je 0x1004580c
mov dword [esi + 0x10], 0xb365fbbd
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0x52049a4d
mov ecx, dword [esi + 0x10]
rorx ecx, ecx, 0x19
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
cmp ecx, eax
je 0x1004580c
mov dword [esi + 0x10], 0x1deb4d27
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0x74b214e3
mov ecx, dword [esi + 0x10]
rorx ecx, ecx, 0x1a
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
cmp ecx, eax
je 0x1004580c
mov dword [esi + 0x10], 0xeedab298
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0x67ed2512
mov ecx, dword [esi + 0x10]
rorx ecx, ecx, 0x12
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
cmp ecx, eax
jne 0x100458de
mov dword [esi + 0x10], 0xf5a2c659
mov eax, dword [esi + 0x10]
bswap eax
mov dword [esi + 0x10], eax
add dword [esi + 0x10], 0x26395dad
mov eax, dword [esi + 0x10]
rorx eax, eax, 0x1b
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x10], 0x3b71e625
mov ecx, dword [esi + 0x10]
bswap ecx
mov dword [esi + 0x10], ecx
add dword [esi + 0x10], 0xda2352c5
mov ecx, dword [esi + 0x10]
rorx ecx, ecx, 6
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x10], 0x9a28c7d9
mov edx, dword [esi + 0x10]
bswap edx
mov dword [esi + 0x10], edx
add dword [esi + 0x10], 0x26395dad
mov edx, dword [esi + 0x10]
rorx edx, edx, 0x1b
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x10], 0x3b71e625
mov edi, dword [esi + 0x10]
bswap edi
mov dword [esi + 0x10], edi
add dword [esi + 0x10], 0xda2352c5
mov edi, dword [esi + 0x10]
rorx edi, edi, 6
mov dword [esi + 0x10], edi
mov edi, dword [esi + 0x10]
vmovd xmm0, eax
vpinsrd xmm0, xmm0, edx, 1
vcvtdq2ps xmm0, xmm0
vmovd xmm1, ecx
vpinsrd xmm1, xmm1, edi, 1
vcvtdq2ps xmm1, xmm1
vdivps xmm0, xmm0, xmm1
vmulss xmm1, xmm0, dword [esi + 0x40]
vmovshdup xmm0, xmm0
vucomiss xmm0, xmm1
seta al
jmp 0x100458e0
xor eax, eax
vmovss xmm2, dword [esi + 0x90]
jmp 0x10045906
xor eax, eax
test al, al
sete cl
test bl, cl
je 0x100458ed
xor eax, eax
jmp 0x10045906
vmovss xmm0, dword [esi + 0x40]
vdivss xmm0, xmm0, dword [0x101474e4]
vminss xmm0, xmm0, dword [0x10144ae0]
vmulss xmm2, xmm2, xmm0
test al, al
sete al
and bl, al
cmp bl, 1
jne 0x10045979
mov dword [esi + 0x10], 0xbda2c619
mov eax, dword [esi + 0x10]
bswap eax
mov dword [esi + 0x10], eax
add dword [esi + 0x10], 0x26395dad
mov eax, dword [esi + 0x10]
rorx eax, eax, 0x1b
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
vcvtsi2ss xmm0, xmm3, eax
mov dword [esi + 0x10], 0x3b71e625
mov eax, dword [esi + 0x10]
bswap eax
mov dword [esi + 0x10], eax
add dword [esi + 0x10], 0xda2352c5
mov eax, dword [esi + 0x10]
rorx eax, eax, 6
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
vcvtsi2ss xmm1, xmm3, eax
vdivss xmm0, xmm0, xmm1
vmulss xmm2, xmm2, xmm0
vmovss dword [esi + 0x90], xmm2
mov ebx, dword [esi + 0x60]
jmp 0x10045984
mov ebx, dword [esi + 0x60]
vmovss dword [esi + 0x90], xmm2
mov eax, dword [0x1029fbac]
bswap eax
mov edx, dword [0x1029fbb0]
add edx, eax
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm0, dword [edx + 0x20]
vmovss dword [esi + 0x60], xmm0
mov ecx, dword [0x1029ff58]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esi + 0xbc]
vmovss xmm0, dword [esi + 0x60]
vmulss xmm0, xmm0, dword [esi + 0xbc]
vmulss xmm0, xmm0, dword [esi + 0x90]
mov eax, dword [0x1029fb9c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x1cc]
mov ecx, dword [ecx]
vmulss xmm1, xmm0, dword [eax + ecx]
cmp dword [esi + 0x50], 1
jne 0x10045a53
vmovss xmm0, dword [esi + 0x40]
vmulss xmm0, xmm0, dword [0x10145ac4]
vmovss xmm2, dword [esi + 0x3c]
vucomiss xmm2, xmm0
jbe 0x10045ac5
vmovss xmm3, dword [esi + 0x70]
vmovss xmm4, dword [esi + 0x74]
vmovss xmm2, dword [esi + 0x78]
vxorps xmm0, xmm0, xmm0
vucomiss xmm4, xmm0
vmovaps xmmword [esi + 0x90], xmm1
jne 0x10045af2
jp 0x10045af2
vucomiss xmm3, xmm0
jne 0x10045af2
jp 0x10045af2
vucomiss xmm0, xmm2
jbe 0x10045cbc
vmovss xmm1, dword [0x10147178]
jmp 0x10045cc4
vmovss xmm0, dword [esi + 0x3c]
vucomiss xmm0, dword [0x101474e8]
jbe 0x10045ab4
vmovss xmm3, dword [esi + 0x70]
vmovss xmm4, dword [esi + 0x74]
vmovss xmm2, dword [esi + 0x78]
vxorps xmm0, xmm0, xmm0
vucomiss xmm4, xmm0
vmovaps xmmword [esi + 0x90], xmm1
jne 0x10045bd7
jp 0x10045bd7
vucomiss xmm3, xmm0
jne 0x10045bd7
jp 0x10045bd7
vucomiss xmm0, xmm2
jbe 0x10045da2
vmovss xmm1, dword [0x10147178]
jmp 0x10045daa
vxorps xmm0, xmm0, xmm0
mov eax, dword [ebp + 8]
vmovlps qword [eax + 0x24], xmm0
jmp 0x10045632
vmovss xmm0, dword [esi + 0xac]
vmovss dword [ebx + 4], xmm0
vmovss dword [ebx], xmm0
lea eax, [esi + 0x70]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov ecx, ebx
call fcn.100478a0
sub esp, 8
jmp 0x10045632
vbroadcastss xmm0, dword [0x10144e60]
vxorps xmm1, xmm4, xmm0
vxorps xmm0, xmm3, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
vmovss dword [esi + 0x50], xmm2
vmovaps xmmword [esi + 0x40], xmm3
vmovaps xmmword [esi + 0x60], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp qword [esi + 0xd8]
vmovaps xmm0, xmmword [esi + 0x60]
vmulss xmm0, xmm0, xmm0
vmovaps xmm1, xmmword [esi + 0x40]
vfmadd231ss xmm0, xmm1, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vsqrtsd xmm0, xmm0, xmm0
vcvtsd2ss xmm0, xmm0, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vmovss xmm1, dword [esi + 0x50]
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp qword [esi + 0xd0]
vmovsd xmm0, qword [esi + 0xd0]
vmovhpd xmm0, xmm0, qword [esi + 0xd8]
vcvtpd2ps xmm0, xmm0
vbroadcastss xmm1, dword [0x10145abc]
vmulps xmm0, xmm0, xmm1
vbroadcastss xmm1, dword [0x10145a70]
vdivps xmm1, xmm0, xmm1
vmovshdup xmm0, xmm1
vmovss xmm2, dword [0x10145ab8]
vxorps xmm3, xmm3, xmm3
vcmpltps xmm3, xmm1, xmm3
vshufps xmm3, xmm3, xmm3, 0x50
vmovmskpd eax, xmm3
test al, 2
je 0x10045bc6
vaddss xmm0, xmm0, xmm2
test al, 1
je 0x10045cc4
vaddss xmm1, xmm1, xmm2
jmp 0x10045cc4
vbroadcastss xmm0, dword [0x10144e60]
vxorps xmm1, xmm4, xmm0
vxorps xmm0, xmm3, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
vmovss dword [esi + 0x50], xmm2
vmovaps xmmword [esi + 0x40], xmm3
vmovaps xmmword [esi + 0x60], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp qword [esi + 0xf8]
vmovaps xmm0, xmmword [esi + 0x60]
vmulss xmm0, xmm0, xmm0
vmovaps xmm1, xmmword [esi + 0x40]
vfmadd231ss xmm0, xmm1, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vsqrtsd xmm0, xmm0, xmm0
vcvtsd2ss xmm0, xmm0, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vmovss xmm1, dword [esi + 0x50]
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp qword [esi + 0xf0]
vmovsd xmm0, qword [esi + 0xf0]
vmovhpd xmm0, xmm0, qword [esi + 0xf8]
vcvtpd2ps xmm0, xmm0
vbroadcastss xmm1, dword [0x10145abc]
vmulps xmm0, xmm0, xmm1
vbroadcastss xmm1, dword [0x10145a70]
vdivps xmm1, xmm0, xmm1
vmovshdup xmm0, xmm1
vmovss xmm2, dword [0x10145ab8]
vxorps xmm3, xmm3, xmm3
vcmpltps xmm3, xmm1, xmm3
vshufps xmm3, xmm3, xmm3, 0x50
vmovmskpd eax, xmm3
test al, 2
je 0x10045cab
vaddss xmm0, xmm0, xmm2
test al, 1
je 0x10045daa
vaddss xmm1, xmm1, xmm2
jmp 0x10045daa
vmovss xmm1, dword [0x10145a5c]
mov edi, dword [ebp + 8]
vmovss xmm2, dword [edi + 0x10]
vsubss xmm0, xmm2, xmm0
vmovss dword [esi + 0x40], xmm0
vmulss xmm0, xmm1, dword [0x10145a6c]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x50], xmm0
vmovsd qword [esp], xmm0
call fcn.10029f80
sub esp, 8
fstp st(0)
vmovsd xmm0, qword [esi + 0x50]
vmovsd qword [esp], xmm0
call fcn.10029f90
sub esp, 8
fstp dword [esi + 0xb4]
vmovss xmm0, dword [esi + 0xb4]
vmovaps xmmword [esi + 0x50], xmm0
vmovss xmm0, dword [0x10145a6c]
vmulss xmm0, xmm0, dword [esi + 0x40]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x40], xmm0
vmovsd qword [esp], xmm0
call fcn.10029f80
sub esp, 8
fstp qword [esi + 0xc8]
vmovsd xmm0, qword [esi + 0x40]
vmovsd qword [esp], xmm0
call fcn.10029f90
sub esp, 8
fstp qword [esi + 0xc0]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10029f80
sub esp, 8
fstp st(0)
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10029f90
sub esp, 8
fstp st(0)
vmovsd xmm0, qword [esi + 0xc0]
vmovhpd xmm0, xmm0, qword [esi + 0xc8]
jmp 0x10045e83
vmovss xmm1, dword [0x10145a5c]
mov edi, dword [ebp + 8]
vmovss xmm2, dword [edi + 0x10]
vsubss xmm0, xmm2, xmm0
vmovss dword [esi + 0x40], xmm0
vmulss xmm0, xmm1, dword [0x10145a6c]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x50], xmm0
vmovsd qword [esp], xmm0
call fcn.10029f80
sub esp, 8
fstp st(0)
vmovsd xmm0, qword [esi + 0x50]
vmovsd qword [esp], xmm0
call fcn.10029f90
sub esp, 8
fstp dword [esi + 0xb8]
vmovss xmm0, dword [esi + 0xb8]
vmovaps xmmword [esi + 0x50], xmm0
vmovss xmm0, dword [0x10145a6c]
vmulss xmm0, xmm0, dword [esi + 0x40]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esi + 0x40], xmm0
vmovsd qword [esp], xmm0
call fcn.10029f80
sub esp, 8
fstp qword [esi + 0xe8]
vmovsd xmm0, qword [esi + 0x40]
vmovsd qword [esp], xmm0
call fcn.10029f90
sub esp, 8
fstp qword [esi + 0xe0]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10029f80
sub esp, 8
fstp st(0)
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.10029f90
sub esp, 8
fstp st(0)
vmovsd xmm0, qword [esi + 0xe0]
vmovhpd xmm0, xmm0, qword [esi + 0xe8]
vcvtpd2ps xmm0, xmm0
vbroadcastss xmm1, dword [esi + 0x50]
vmulps xmm0, xmm1, xmm0
vbroadcastss xmm1, dword [esi + 0x90]
vmulps xmm0, xmm1, xmm0
vmovlps qword [edi + 0x24], xmm0
jmp 0x10045632
mov dword [esi + 0x60], ebx
or eax, 1
mov dword [0x1029ff54], eax
mov ecx, dword [0x1029fc64]
mov eax, 0x6d6bde14
mov edx, 0xa452d969
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov eax, 0xe1873b35
mov edx, 0xe541da16
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], eax
mov eax, 0xa2a81a6c
mov edx, 0x1f83fea5
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], eax
mov eax, 0x3352494d
mov edx, 0xf815da58
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], eax
mov eax, 0xc34a867
mov edx, 0xc837ba0a
mov dword [esi + 0x74], edx
mov dword [esi + 0x70], eax
mov eax, 0x95e64950
mov edx, 0x96348573
mov dword [esi + 0x7c], edx
mov dword [esi + 0x78], eax
mov eax, 0xc7df4509
mov edx, 0x71ec8ec4
mov dword [esi + 0x84], edx
mov dword [esi + 0x80], eax
mov eax, 0x56223a12
mov edx, 0xf815be3d
mov dword [esi + 0x8c], edx
mov dword [esi + 0x88], eax
lea eax, [esi + 0x70]
xor edx, edx
vmovaps xmm0, xmmword [esi + 0x10]
vxorps xmm0, xmm0, xmmword [eax]
vmovaps xmmword [esi + 0x10], xmm0
vmovaps xmm0, xmmword [esi + 0x20]
vxorps xmm0, xmm0, xmmword [eax + 0x10]
vmovaps xmmword [esi + 0x20], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0x118], 0
lea edx, [esi + 0x10]
mov dword [esp], edx
call eax
sub esp, 4
mov dword [0x1029ff50], eax
mov eax, dword [0x1029ff54]
mov ebx, dword [esi + 0x60]
test al, 2
jne 0x1004544c
mov dword [esi + 0x60], ebx
or eax, 2
mov dword [0x1029ff54], eax
mov ecx, dword [0x1029fc64]
mov eax, 0x6d6bde14
mov edx, 0xa452d969
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov eax, 0xe1873b35
mov edx, 0x96348516
mov dword [esi + 0x1c], edx
mov dword [esi + 0x18], eax
mov eax, 0xc34a867
mov edx, 0xc837ba0a
mov dword [esi + 0x74], edx
mov dword [esi + 0x70], eax
mov eax, 0x95e64950
mov edx, 0x96348573
mov dword [esi + 0x7c], edx
mov dword [esi + 0x78], eax
lea eax, [esi + 0x70]
xor edx, edx
vmovaps xmm0, xmmword [esi + 0x10]
vxorps xmm0, xmm0, xmmword [eax]
vmovaps xmmword [esi + 0x10], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
mov dword [esi + 0x118], 1
lea edx, [esi + 0x10]
mov dword [esp], edx
call eax
sub esp, 4
mov dword [0x1029ff58], eax
mov ebx, dword [esi + 0x60]
jmp 0x1004544c