Function at 0x10078190
Capabilities:
Terminate process

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
sub esp, 0x208
mov eax, dword [0x1016c008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebx + 8]
xor eax, eax
push edi
mov edi, edx
mov dword [ebp - 0x1b0], eax
mov edx, ecx
mov dword [ebp - 0x1c4], edi
xor ecx, ecx
mov dword [ebp - 0x1b4], edx
mov dword [ebp - 0x148], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1a4], esi
movq xmm0, qword [edx + 0x58]
mov eax, dword [edx + 0x60]
movq qword [ebp - 0x1d4], xmm0
movq xmm0, qword [edx + 0x40]
mov dword [ebp - 0x1cc], eax
mov eax, dword [edx + 0x48]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
lea eax, [ebp - 0x1e8]
push eax
mov ecx, edi
mov dword [ebp - 0x184], 1
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x1a0], 0
call fcn.10075620
movss xmm1, dword [ebp - 0xa0]
add esp, 0x10
movss xmm3, dword [ebp - 0xb0]
xor ecx, ecx
movss xmm4, dword [ebp - 0xb4]
movq xmm0, qword [eax]
mov edi, dword [eax + 8]
movss xmm2, dword [ebp - 0xb8]
movss xmm7, dword [ebp - 0xbc]
movss xmm6, dword [ebp - 0xc0]
movss xmm5, dword [ebp - 0xc8]
movss dword [ebp - 0x1ac], xmm1
movss xmm1, dword [ebp - 0xa4]
movss dword [ebp - 0x1a8], xmm1
movss xmm1, dword [ebp - 0xa8]
movss dword [ebp - 0x188], xmm1
movss xmm1, dword [ebp - 0xac]
movq qword [ebp - 0x198], xmm0
xorps xmm0, xmm0
mov eax, dword [ebp - 0x198]
mov edx, dword [ebp - 0x194]
movss dword [ebp - 0x18c], xmm1
movss xmm1, dword [ebp - 0xc4]
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x1c8], 0x46b
mov dword [ebp - 0x164], eax
movss dword [ebp - 0x150], xmm3
movss dword [ebp - 0x160], xmm4
movss dword [ebp - 0x154], xmm2
movss dword [ebp - 0x178], xmm7
movss dword [ebp - 0x170], xmm6
movss dword [ebp - 0x158], xmm1
movss dword [ebp - 0x16c], xmm5
cmp edx, edi
jge case.default.0x10077dcb
mov al, byte [eax + edx]
xor edi, edi
movzx eax, al
inc edx
mov dword [ebp - 0x19c], 1
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0x14c], edx
lea esi, [eax - 1]
mov dword [ebp - 0x194], edx
mov dword [ebp - 0x174], esi
cmp esi, 0x1e
mov esi, dword [ebp - 0x1a4]
mov dword [ebp - 0x17c], eax
ja case.default.0x100771ae
mov eax, dword [ebp - 0x174]
movzx eax, byte [eax + 0x10078428]
jmp dword [eax*4 + 0x100783d8]
cmp dword [ebp - 0x184], edi
je 0x100771d4
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x180]
sar eax, 1
add edx, eax
mov dword [ebp - 0x180], edx
jmp 0x100771da
mov edx, dword [ebp - 0x180]
lea eax, [edx + 7]
mov dword [ebp - 0x184], edi
mov edi, dword [ebp - 0x144]
cdq
and edx, 7
add edx, eax
sar edx, 3
add edx, dword [ebp - 0x14c]
cmp edx, edi
jg 0x10077204
test edx, edx
jns 0x10077ae6
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x15c]
sar eax, 1
add dword [ebp - 0x180], eax
jmp 0x10077ae0
mov dword [ebp - 0x184], edi
cmp ecx, 2
jl case.default.0x10077dcb
movss xmm3, dword [esi + 8]
lea edi, [esi + 0xc]
movss xmm1, dword [esi + 0x10]
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x1007725b
movss xmm2, dword [esi + 0x14]
movss xmm0, dword [edi]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x10077289
cvttss2si eax, dword [edi]
push 0
push 0
push 0
push 0
mov dl, 2
mov ecx, esi
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
movss xmm1, dword [esi + 0x10]
add esp, 0x18
movss xmm2, dword [esi + 0x14]
mov ecx, dword [ebp - 0x148]
addss xmm1, dword [ebp + ecx*4 - 0xd0]
addss xmm2, dword [ebp + ecx*4 - 0xcc]
push 0
cvttss2si eax, xmm2
push 0
push 0
push 0
movss dword [esi + 8], xmm1
push eax
movss dword [esi + 0x10], xmm1
movss dword [esi + 0x14], xmm2
movss dword [edi], xmm2
cvttss2si eax, xmm1
push eax
mov dl, 1
mov ecx, esi
call fcn.10076ce0
movss xmm3, dword [ebp - 0x150]
movss xmm2, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x148]
add esp, 0x18
movss xmm1, dword [ebp - 0x158]
mov edx, dword [ebp - 0x15c]
xorps xmm0, xmm0
jmp 0x10077ae0
mov dword [ebp - 0x184], edi
cmp ecx, 1
jl case.default.0x10077dcb
movss xmm3, dword [esi + 8]
lea edi, [esi + 0xc]
movss xmm2, dword [esi + 0x10]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jp 0x1007732f
movss xmm1, dword [esi + 0x14]
movss xmm0, dword [edi]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1007735d
cvttss2si eax, dword [edi]
push 0
push 0
push 0
push 0
mov dl, 2
mov ecx, esi
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
movss xmm2, dword [esi + 0x10]
add esp, 0x18
movss xmm1, dword [esi + 0x14]
mov ecx, dword [ebp - 0x148]
addss xmm1, dword [ebp + ecx*4 - 0xcc]
push 0
push 0
push 0
push 0
cvttss2si eax, xmm1
movss dword [esi + 0x10], xmm2
push eax
movss dword [esi + 8], xmm2
movss dword [esi + 0x14], xmm1
movss dword [edi], xmm1
cvttss2si eax, xmm2
jmp 0x100772bf
mov dword [ebp - 0x184], edi
cmp ecx, 1
jl case.default.0x10077dcb
movss xmm3, dword [esi + 8]
lea edi, [esi + 0xc]
movss xmm1, dword [esi + 0x10]
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x100773c6
movss xmm2, dword [esi + 0x14]
movss xmm0, dword [edi]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x100773f4
cvttss2si eax, dword [edi]
push 0
push 0
push 0
push 0
mov dl, 2
mov ecx, esi
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
movss xmm1, dword [esi + 0x10]
add esp, 0x18
movss xmm2, dword [esi + 0x14]
mov ecx, dword [ebp - 0x148]
addss xmm1, dword [ebp + ecx*4 - 0xcc]
jmp 0x1007729b
cmp ecx, 2
jl case.default.0x10077dcb
mov dword [ebp - 0x14c], 1
lea edi, [ebp - 0xc4]
nop dword [eax + eax]
movss xmm0, dword [edi]
mov dl, 2
addss xmm0, dword [esi + 0x14]
movss xmm1, dword [edi - 4]
mov ecx, esi
addss xmm1, dword [esi + 0x10]
push 0
push 0
cvttss2si eax, xmm0
push 0
push 0
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm0
push eax
call fcn.10076ce0
mov eax, dword [ebp - 0x14c]
add esp, 0x18
mov ecx, dword [ebp - 0x148]
add eax, 2
add edi, 8
mov dword [ebp - 0x14c], eax
cmp eax, ecx
jl 0x10077420
movss xmm1, dword [ebp - 0x158]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x15c]
jmp 0x10077ae0
cmp ecx, 1
jge 0x100774ed
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1012838d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp ecx, 1
jl case.default.0x10077dcb
cmp edi, ecx
jge 0x100772ea
cvttss2si eax, dword [esi + 0x14]
mov dl, 2
mov ecx, esi
push 0
push 0
push 0
push 0
movss xmm0, dword [ebp + edi*4 - 0xc8]
addss xmm0, dword [esi + 0x10]
push eax
cvttss2si eax, xmm0
movss dword [esi + 0x10], xmm0
push eax
call fcn.10076ce0
mov ecx, dword [ebp - 0x148]
add esp, 0x18
inc edi
cmp edi, ecx
jge 0x100772ea
movss xmm0, dword [ebp + edi*4 - 0xc8]
mov dl, 2
addss xmm0, dword [esi + 0x14]
push 0
push 0
push 0
push 0
cvttss2si eax, xmm0
mov ecx, esi
movss dword [esi + 0x14], xmm0
push eax
cvttss2si eax, dword [esi + 0x10]
push eax
call fcn.10076ce0
mov ecx, dword [ebp - 0x148]
add esp, 0x18
inc edi
jmp 0x100774ac
cmp ecx, 4
jl case.default.0x10077dcb
jmp 0x100775ea
cmp ecx, 4
jl case.default.0x10077dcb
lea eax, [edi + 3]
cmp eax, ecx
jge 0x10077aaa
mov eax, ecx
sub eax, edi
cmp eax, 5
jne 0x10077569
movss xmm6, dword [ebp + edi*4 - 0xb8]
jmp 0x1007756c
movaps xmm6, xmm0
movss xmm4, dword [ebp + edi*4 - 0xc8]
mov dl, 4
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [esi + 0x10]
mov ecx, esi
movaps xmm2, xmm5
addss xmm2, dword [ebp + edi*4 - 0xc4]
movaps xmm0, xmm4
addss xmm0, dword [ebp + edi*4 - 0xc0]
movaps xmm3, xmm2
addss xmm3, dword [ebp + edi*4 - 0xbc]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm2
addss xmm1, xmm6
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
mov ecx, dword [ebp - 0x148]
add esp, 0x18
add edi, 4
xorps xmm0, xmm0
lea eax, [edi + 3]
cmp eax, ecx
jge 0x10077aaa
mov eax, ecx
sub eax, edi
cmp eax, 5
jne 0x10077609
movss xmm1, dword [ebp + edi*4 - 0xb8]
jmp 0x1007760c
movaps xmm1, xmm0
movss xmm4, dword [esi + 0x14]
mov dl, 4
movss xmm5, dword [ebp + edi*4 - 0xc8]
movaps xmm0, xmm4
addss xmm5, dword [esi + 0x10]
addss xmm0, dword [ebp + edi*4 - 0xc0]
mov ecx, esi
movaps xmm2, xmm5
addss xmm2, dword [ebp + edi*4 - 0xc4]
cvttss2si eax, xmm0
movaps xmm3, xmm2
push eax
cvttss2si eax, xmm2
addss xmm3, xmm1
movaps xmm1, xmm0
addss xmm1, dword [ebp + edi*4 - 0xbc]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
mov ecx, dword [ebp - 0x148]
add esp, 0x18
add edi, 4
xorps xmm0, xmm0
jmp 0x1007754a
cmp ecx, 6
jl case.default.0x10077dcb
mov dword [ebp - 0x14c], 5
lea edi, [ebp - 0xc4]
nop dword [eax + eax]
movss xmm4, dword [esi + 0x14]
mov dl, 4
addss xmm4, dword [edi]
movss xmm5, dword [edi - 4]
mov ecx, esi
addss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [edi + 8]
movaps xmm2, xmm5
addss xmm2, dword [edi + 4]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
push eax
addss xmm1, dword [edi + 0x10]
cvttss2si eax, xmm2
addss xmm3, dword [edi + 0xc]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
mov eax, dword [ebp - 0x14c]
add esp, 0x18
mov ecx, dword [ebp - 0x148]
add eax, 6
add edi, 0x18
mov dword [ebp - 0x14c], eax
cmp eax, ecx
jl 0x100776b0
xorps xmm0, xmm0
jmp 0x10077ab2
cmp ecx, 8
jl case.default.0x10077dcb
lea eax, [ecx - 2]
mov dword [ebp - 0x174], eax
cmp eax, 5
jle 0x1007783f
mov dword [ebp - 0x14c], 5
nop dword [eax]
nop dword [eax + eax]
movss xmm4, dword [ebp + edi*4 - 0xc4]
mov dl, 4
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [ebp + edi*4 - 0xc8]
mov ecx, esi
addss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [ebp + edi*4 - 0xbc]
movaps xmm2, xmm5
addss xmm2, dword [ebp + edi*4 - 0xc0]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
push eax
addss xmm1, dword [ebp + edi*4 - 0xb4]
cvttss2si eax, xmm2
addss xmm3, dword [ebp + edi*4 - 0xb8]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
mov eax, dword [ebp - 0x14c]
add edi, 6
add eax, 6
add esp, 0x18
mov ecx, edi
mov dword [ebp - 0x14c], eax
cmp eax, dword [ebp - 0x174]
jl 0x10077770
lea eax, [ecx + 1]
cmp eax, dword [ebp - 0x148]
jge case.default.0x10077dcb
movss xmm5, dword [ebp - 0x16c]
movss xmm3, dword [ebp - 0x150]
movss xmm4, dword [ebp - 0x160]
movss xmm2, dword [ebp - 0x154]
movss xmm0, dword [ebp + edi*4 - 0xc4]
mov dl, 2
addss xmm0, dword [esi + 0x14]
movss xmm1, dword [ebp + edi*4 - 0xc8]
mov ecx, esi
addss xmm1, dword [esi + 0x10]
push 0
push 0
cvttss2si eax, xmm0
push 0
push 0
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm0
push eax
call fcn.10076ce0
jmp 0x100772d9
cmp ecx, 8
jl case.default.0x10077dcb
lea eax, [ecx - 6]
mov dword [ebp - 0x174], eax
cmp eax, 1
jle 0x1007791f
mov dword [ebp - 0x14c], 1
nop word [eax + eax]
movss xmm0, dword [ebp + edi*4 - 0xc4]
mov dl, 2
addss xmm0, dword [esi + 0x14]
movss xmm1, dword [ebp + edi*4 - 0xc8]
mov ecx, esi
addss xmm1, dword [esi + 0x10]
push 0
push 0
cvttss2si eax, xmm0
push 0
push 0
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm1
movss dword [esi + 0x14], xmm0
push eax
call fcn.10076ce0
mov eax, dword [ebp - 0x14c]
add edi, 2
add eax, 2
add esp, 0x18
mov ecx, edi
mov dword [ebp - 0x14c], eax
cmp eax, dword [ebp - 0x174]
jl 0x100778b0
lea eax, [ecx + 5]
cmp eax, dword [ebp - 0x148]
jge case.default.0x10077dcb
movss xmm4, dword [ebp + edi*4 - 0xc4]
mov dl, 4
addss xmm4, dword [esi + 0x14]
movss xmm5, dword [ebp + edi*4 - 0xc8]
mov ecx, esi
addss xmm5, dword [esi + 0x10]
movaps xmm0, xmm4
addss xmm0, dword [ebp + edi*4 - 0xbc]
movaps xmm2, xmm5
addss xmm2, dword [ebp + edi*4 - 0xc0]
cvttss2si eax, xmm0
movaps xmm1, xmm0
movaps xmm3, xmm2
push eax
addss xmm1, dword [ebp + edi*4 - 0xb4]
cvttss2si eax, xmm2
addss xmm3, dword [ebp + edi*4 - 0xb8]
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
mov ecx, dword [ebp - 0x148]
add esp, 0x18
xorps xmm0, xmm0
jmp 0x10077ab2
cmp ecx, 4
jl case.default.0x10077dcb
mov edi, ecx
movaps xmm4, xmm0
and edi, 1
je 0x100779c3
movaps xmm4, xmm5
lea eax, [edi + 3]
mov dword [ebp - 0x14c], eax
cmp eax, ecx
jge 0x10077ad8
lea edi, [ebp + edi*4 - 0xc0]
nop dword [eax + eax]
cmp dword [ebp - 0x17c], 0x1b
movss xmm0, dword [esi + 0x10]
movss xmm2, dword [edi - 4]
movss xmm6, dword [edi]
movss xmm7, dword [edi + 4]
movss xmm1, dword [edi - 8]
movss xmm3, dword [esi + 0x14]
jne 0x10077a28
addss xmm0, xmm1
addss xmm3, xmm4
movaps xmm4, xmm0
addss xmm4, xmm2
movaps xmm2, xmm3
addss xmm2, xmm6
movaps xmm1, xmm4
addss xmm1, xmm7
movaps xmm5, xmm2
jmp 0x10077a48
addss xmm3, xmm1
addss xmm0, xmm4
movaps xmm5, xmm3
movaps xmm1, xmm0
addss xmm5, xmm6
addss xmm1, xmm2
movaps xmm2, xmm5
addss xmm2, xmm7
movaps xmm4, xmm1
cvttss2si eax, xmm5
mov dl, 4
mov ecx, esi
movss dword [esi + 0x10], xmm1
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x14], xmm2
push eax
cvttss2si eax, xmm3
push eax
cvttss2si eax, xmm0
push eax
cvttss2si eax, xmm2
push eax
cvttss2si eax, xmm1
push eax
call fcn.10076ce0
mov eax, dword [ebp - 0x14c]
add esp, 0x18
mov ecx, dword [ebp - 0x148]
add eax, 4
add edi, 0x10
mov dword [ebp - 0x14c], eax
xorps xmm0, xmm0
xorps xmm4, xmm4
cmp eax, ecx
jl 0x100779e0
movss xmm7, dword [ebp - 0x178]
movss xmm6, dword [ebp - 0x170]
movss xmm5, dword [ebp - 0x16c]
movss xmm1, dword [ebp - 0x158]
movss xmm3, dword [ebp - 0x150]
movss xmm2, dword [ebp - 0x154]
mov edx, dword [ebp - 0x15c]
movss xmm4, dword [ebp - 0x160]
mov edi, dword [ebp - 0x144]
xor eax, eax
cmp dword [ebp - 0x19c], eax
cmove eax, ecx
mov ecx, eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x148], ecx
jmp 0x10077156
cmp dword [ebp - 0x1b0], edi
jne case.0x100771ae.29
mov eax, dword [ebp - 0x1b4]
cmp dword [eax + 0x78], edi
je 0x10077b43
mov edx, dword [ebp - 0x1c4]
lea ecx, [ebp - 0x1f8]
push ecx
mov ecx, eax
call fcn.10076e10
add esp, 4
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x1d4], xmm0
mov dword [ebp - 0x1cc], eax
mov ecx, dword [ebp - 0x148]
mov dword [ebp - 0x1b0], 1
cmp ecx, 1
jl case.default.0x10077dcb
mov edx, dword [ebp - 0x1a0]
dec ecx
mov dword [ebp - 0x148], ecx
cmp edx, 0xa
jge case.default.0x10077dcb
movq xmm0, qword [ebp - 0x198]
lea eax, [edx + edx*2]
mov edi, dword [ebp - 0x144]
inc edx
cmp dword [ebp - 0x17c], 0xa
movq qword [ebp + eax*4 - 0x140], xmm0
mov dword [ebp + eax*4 - 0x138], edi
cvttss2si eax, dword [ebp + ecx*4 - 0xc8]
mov dword [ebp - 0x1a0], edx
mov dword [ebp - 0x164], eax
jne 0x10077bba
lea edi, [ebp - 0x1d4]
jmp 0x10077bc3
mov edi, dword [ebp - 0x1b4]
add edi, 0x4c
movq xmm0, qword [edi]
mov edi, dword [edi + 8]
movq qword [ebp - 0x1c0], xmm0
test edi, edi
js 0x10077204
xor eax, eax
mov dword [ebp - 0x1bc], eax
test edi, edi
jg 0x10077bf4
xor dl, dl
mov dword [ebp - 0x17c], 1
jmp 0x10077c11
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x17c], 2
mov dl, byte [eax]
mov eax, 1
mov dword [ebp - 0x1bc], eax
mov dword [ebp - 0x14c], eax
movzx edx, dl
cmp eax, edi
jl 0x10077c22
xor al, al
jmp 0x10077c37
mov esi, dword [ebp - 0x1c0]
mov al, byte [esi + eax]
mov esi, dword [ebp - 0x17c]
mov dword [ebp - 0x1bc], esi
shl edx, 8
movzx eax, al
or edx, eax
mov eax, 0x6b
cmp edx, 0x846c
jb 0x10077c53
mov eax, 0x8000
jmp 0x10077c60
cmp edx, 0x4d8
cmovae eax, dword [ebp - 0x1c8]
add dword [ebp - 0x164], eax
js 0x10077ca8
cmp dword [ebp - 0x164], edx
jge 0x10077ca8
movq xmm0, qword [ebp - 0x1c0]
sub esp, 0xc
mov ecx, dword [ebp - 0x164]
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], edi
lea eax, [ebp - 0x208]
push eax
call fcn.10075620
mov ecx, dword [ebp - 0x148]
add esp, 0x10
movq xmm0, qword [eax]
mov edi, dword [eax + 8]
jmp 0x10077cc2
xor edi, edi
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1e4], edi
movq xmm0, qword [ebp - 0x1e8]
mov dword [ebp - 0x144], edi
movq qword [ebp - 0x198], xmm0
mov dword [ebp - 0x190], edi
test edi, edi
je case.default.0x10077dcb
mov eax, dword [ebp - 0x198]
xor edx, edx
movss xmm5, dword [ebp - 0x16c]
xorps xmm0, xmm0
movss xmm6, dword [ebp - 0x170]
movss xmm7, dword [ebp - 0x178]
movss xmm1, dword [ebp - 0x158]
movss xmm3, dword [ebp - 0x150]
movss xmm4, dword [ebp - 0x160]
movss xmm2, dword [ebp - 0x154]
mov dword [ebp - 0x19c], edx
mov dword [ebp - 0x164], eax
jmp 0x10077ae6
mov eax, dword [ebp - 0x1a0]
test eax, eax
jle case.default.0x10077dcb
dec eax
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x1a0], eax
lea eax, [eax + eax*2]
movq xmm0, qword [ebp + eax*4 - 0x140]
mov edi, dword [ebp + eax*4 - 0x138]
movq qword [ebp - 0x198], xmm0
xorps xmm0, xmm0
mov eax, dword [ebp - 0x198]
mov edx, dword [ebp - 0x194]
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x164], eax
jmp 0x10077ae6
mov eax, dword [ebp - 0x14c]
mov edi, dword [ebp - 0x144]
cmp eax, edi
jl 0x10077da6
xor dl, dl
jmp 0x10077dbc
mov edi, dword [ebp - 0x164]
inc eax
mov dword [ebp - 0x15c], eax
mov dl, byte [edi + edx]
mov edi, dword [ebp - 0x144]
movzx eax, dl
add eax, 0xffffffde
cmp eax, 3
ja case.default.0x10077dcb
jmp dword [eax*4 + 0x10078448]
cmp ecx, 7
jl case.default.0x10077dcb
movss xmm3, dword [esi + 0x14]
movaps xmm4, xmm5
addss xmm4, dword [esi + 0x10]
movaps xmm0, xmm6
movaps xmm2, xmm7
addss xmm0, xmm3
mov dl, 4
addss xmm1, xmm4
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
push ecx
addss xmm2, xmm1
movss dword [esi + 0x14], xmm0
push eax
cvttss2si eax, xmm3
movss dword [esi + 0x10], xmm2
push eax
cvttss2si eax, xmm4
push eax
cvttss2si eax, xmm2
push ecx
mov ecx, esi
push eax
call fcn.10076ce0
movss xmm3, dword [ebp - 0x154]
addss xmm3, dword [esi + 0x10]
movss xmm0, dword [esi + 0x14]
movss xmm4, dword [ebp - 0x160]
movaps xmm1, xmm0
movss xmm2, dword [ebp - 0x150]
subss xmm1, xmm6
addss xmm4, xmm3
movaps xmm5, xmm1
addss xmm2, xmm4
jmp 0x1007811d
cmp ecx, 0xd
jl case.default.0x10077dcb
addss xmm5, dword [esi + 0x10]
movaps xmm4, xmm1
movss xmm3, dword [ebp - 0x154]
addss xmm4, dword [esi + 0x14]
movaps xmm0, xmm7
movss xmm1, dword [ebp - 0x160]
movaps xmm2, xmm6
mov dl, 4
addss xmm2, xmm5
mov ecx, esi
addss xmm0, xmm4
addss xmm3, xmm2
cvttss2si eax, xmm0
addss xmm1, xmm0
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm2
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm4
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
movss xmm3, dword [ebp - 0x150]
movss xmm0, dword [ebp - 0x18c]
addss xmm3, dword [esi + 0x10]
addss xmm0, dword [esi + 0x14]
movss xmm4, dword [ebp - 0x188]
movss xmm5, dword [ebp - 0x1a8]
movss xmm2, dword [ebp - 0x1ac]
movss xmm1, dword [ebp - 0x9c]
addss xmm4, xmm3
addss xmm5, xmm0
addss xmm2, xmm4
addss xmm1, xmm5
jmp 0x1007811d
cmp ecx, 9
jl case.default.0x10077dcb
movaps xmm3, xmm1
movaps xmm4, xmm5
addss xmm3, dword [esi + 0x14]
addss xmm4, dword [esi + 0x10]
movaps xmm0, xmm7
movaps xmm1, xmm6
mov dl, 4
addss xmm0, xmm3
addss xmm1, xmm4
cvttss2si ecx, xmm0
cvttss2si eax, xmm1
push ecx
addss xmm2, xmm1
movss dword [esi + 0x14], xmm0
push eax
cvttss2si eax, xmm3
movss dword [esi + 0x10], xmm2
push eax
cvttss2si eax, xmm4
push eax
cvttss2si eax, xmm2
push ecx
mov ecx, esi
push eax
call fcn.10076ce0
movss xmm0, dword [esi + 0x14]
movss xmm5, dword [ebp - 0x18c]
movss xmm3, dword [ebp - 0x160]
addss xmm5, xmm0
addss xmm3, dword [esi + 0x10]
movss xmm4, dword [ebp - 0x150]
movss xmm2, dword [ebp - 0x188]
movss dword [ebp - 0x174], xmm0
movaps xmm0, xmm7
addss xmm0, dword [ebp - 0x158]
addss xmm4, xmm3
movaps xmm1, xmm5
addss xmm0, dword [ebp - 0x18c]
addss xmm2, xmm4
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x174]
jmp 0x1007811d
cmp ecx, 0xb
jl case.default.0x10077dcb
movaps xmm2, xmm5
movss xmm6, dword [ebp - 0x1ac]
addss xmm2, dword [ebp - 0x170]
movaps xmm7, xmm6
addss xmm2, dword [ebp - 0x154]
addss xmm2, xmm3
movss xmm3, dword [ebp - 0x178]
addss xmm3, xmm1
addss xmm2, dword [ebp - 0x188]
addss xmm3, xmm4
movaps xmm0, xmm2
addss xmm3, dword [ebp - 0x18c]
addss xmm3, dword [ebp - 0x1a8]
call fcn.10015ab0
movaps xmm1, xmm0
movaps xmm0, xmm3
call fcn.10015ab0
comiss xmm1, xmm0
jbe 0x10078050
movaps xmm6, xmm3
xorps xmm6, xmmword [0x10163760]
jmp 0x1007805a
movaps xmm7, xmm2
xorps xmm7, xmmword [0x10163760]
movss xmm4, dword [ebp - 0x158]
mov dl, 4
addss xmm4, dword [esi + 0x14]
movss xmm0, dword [ebp - 0x178]
mov ecx, esi
addss xmm5, dword [esi + 0x10]
movss xmm2, dword [ebp - 0x170]
movss xmm1, dword [ebp - 0x160]
addss xmm0, xmm4
movss xmm3, dword [ebp - 0x154]
addss xmm2, xmm5
cvttss2si eax, xmm0
addss xmm1, xmm0
push eax
cvttss2si eax, xmm2
addss xmm3, xmm2
movss dword [esi + 0x14], xmm1
push eax
cvttss2si eax, xmm4
movss dword [esi + 0x10], xmm3
push eax
cvttss2si eax, xmm5
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm3
push eax
call fcn.10076ce0
movss xmm3, dword [ebp - 0x150]
movss xmm0, dword [ebp - 0x18c]
addss xmm3, dword [esi + 0x10]
addss xmm0, dword [esi + 0x14]
movss xmm4, dword [ebp - 0x188]
movss xmm5, dword [ebp - 0x1a8]
addss xmm4, xmm3
addss xmm5, xmm0
movaps xmm2, xmm4
movaps xmm1, xmm5
addss xmm2, xmm7
movss xmm7, dword [ebp - 0x178]
addss xmm1, xmm6
movss xmm6, dword [ebp - 0x170]
add esp, 0x18
movss dword [esi + 0x14], xmm1
cvttss2si eax, xmm5
mov dl, 4
mov ecx, esi
movss dword [esi + 0x10], xmm2
push eax
cvttss2si eax, xmm4
push eax
cvttss2si eax, xmm0
push eax
cvttss2si eax, xmm3
push eax
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm2
push eax
call fcn.10076ce0
movss xmm5, dword [ebp - 0x16c]
add esp, 0x18
movss xmm1, dword [ebp - 0x158]
xorps xmm0, xmm0
movss xmm3, dword [ebp - 0x150]
movss xmm4, dword [ebp - 0x160]
movss xmm2, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x15c]
jmp 0x10077ae6
mov eax, dword [ebp - 0x17c]
cmp eax, 0xff
je 0x10078207
cmp eax, 0x1c
je 0x100781b0
add eax, 0xffffffe0
cmp eax, 0xde
ja case.default.0x10077dcb
dec edx
cmp edx, dword [ebp - 0x144]
jg 0x10077204
test edx, edx
js 0x10077204
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x194], edx
call fcn.100752e0
mov edi, dword [ebp - 0x190]
mov edx, dword [ebp - 0x194]
mov ecx, dword [ebp - 0x148]
cwde
mov dword [ebp - 0x144], edi
movd xmm0, eax
mov eax, dword [ebp - 0x198]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x164], eax
jmp 0x100782ae
mov eax, dword [ebp - 0x14c]
cmp eax, dword [ebp - 0x144]
jl 0x1007821e
mov byte [ebp - 0x165], 0
jmp 0x10078232
mov edi, dword [ebp - 0x164]
mov dl, byte [edi + edx]
mov byte [ebp - 0x165], dl
lea edx, [eax + 1]
mov eax, edx
movzx edi, byte [ebp - 0x165]
mov ecx, dword [ebp - 0x148]
cmp eax, dword [ebp - 0x144]
jl 0x1007824b
xor al, al
jmp 0x10078255
mov eax, dword [ebp - 0x164]
mov al, byte [eax + edx]
inc edx
shl edi, 8
movzx eax, al
or edi, eax
cmp edx, dword [ebp - 0x144]
jl 0x10078269
xor al, al
jmp 0x10078273
mov eax, dword [ebp - 0x164]
mov al, byte [eax + edx]
inc edx
shl edi, 8
movzx eax, al
or edi, eax
cmp edx, dword [ebp - 0x144]
jl 0x10078287
xor al, al
jmp 0x10078291
mov eax, dword [ebp - 0x164]
mov al, byte [eax + edx]
inc edx
shl edi, 8
movzx eax, al
or edi, eax
movd xmm0, edi
mov edi, dword [ebp - 0x144]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101625f8]
cmp ecx, 0x30
jge case.default.0x10077dcb
movss dword [ebp + ecx*4 - 0xc8], xmm0
inc ecx
movss xmm0, dword [ebp - 0xa0]
movss xmm3, dword [ebp - 0xb0]
movss xmm4, dword [ebp - 0xb4]
movss xmm2, dword [ebp - 0xb8]
movss xmm7, dword [ebp - 0xbc]
movss xmm6, dword [ebp - 0xc0]
movss xmm1, dword [ebp - 0xc4]
movss xmm5, dword [ebp - 0xc8]
movss dword [ebp - 0x1ac], xmm0
movss xmm0, dword [ebp - 0xa4]
movss dword [ebp - 0x1a8], xmm0
movss xmm0, dword [ebp - 0xa8]
movss dword [ebp - 0x188], xmm0
movss xmm0, dword [ebp - 0xac]
movss dword [ebp - 0x18c], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x19c], 0
movss dword [ebp - 0x150], xmm3
movss dword [ebp - 0x160], xmm4
movss dword [ebp - 0x154], xmm2
movss dword [ebp - 0x178], xmm7
movss dword [ebp - 0x170], xmm6
movss dword [ebp - 0x158], xmm1
movss dword [ebp - 0x16c], xmm5
jmp 0x10077ae6
movss xmm1, dword [esi + 8]
ucomiss xmm1, dword [esi + 0x10]
lahf
test ah, 0x44
jp 0x100783a1
movss xmm0, dword [esi + 0xc]
ucomiss xmm0, dword [esi + 0x14]
lahf
test ah, 0x44
jnp 0x100783c0
cvttss2si eax, dword [esi + 0xc]
push 0
push 0
push 0
push 0
mov dl, 2
mov ecx, esi
push eax
cvttss2si eax, xmm1
push eax
call fcn.10076ce0
add esp, 0x18
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
xor ecx, ebp
pop esi
call fcn.1012838d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret