Function at 0x10026e60
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f1bbb
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x3c8
mov eax, dword [0x101110c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x294]
mov dword [ebp - 0x364], 0
push eax
mov ecx, 0x101477f0
mov dword [ebp - 0x294], 0
call fcn.10026a50
push 0
push dword [0x10134afc]
push dword [0x10134af8]
call fcn.100f0090
cmp eax, dword [0x10134afc]
je 0x10026f0d
cmp dword [ebp - 0x294], 0
jne 0x10026f0d
mov eax, dword [0x1014b1fc]
cmp eax, dword [0x1014b200]
je 0x10026efc
mov dword [0x1014b200], eax
lea eax, [ebp - 0x294]
mov ecx, 0x101477f0
push eax
call fcn.10026a50
cmp dword [0x1013115c], 0
jne 0x10026f23
cmp dword [0x10131154], 0x1f
jne 0x1002951d
mov ecx, dword [0x1014b1f0]
mov edx, dword [0x1014b1f4]
cmp ecx, edx
je 0x1002951d
push dword [ebp - 0x1c]
mov eax, edx
sub eax, ecx
sar eax, 2
push eax
call fcn.1002d5f0
movaps xmm0, xmmword [0x101052a0]
xor eax, eax
mov ecx, dword [0x1014b1f4]
add esp, 8
movups xmmword [ebp - 0x358], xmm0
xor edi, edi
mov dword [ebp - 0x3b8], eax
movaps xmm0, xmmword [0x101052a0]
mov dword [ebp - 0x334], eax
mov dword [ebp - 0x31c], eax
mov byte [0x10131248], al
mov eax, dword [0x1014b1f0]
mov dword [ebp - 0x3a0], 0xffffffff
mov dword [ebp - 0x3b4], 0xffffffff
mov dword [ebp - 0x320], 0xbf800000
mov dword [ebp - 0x318], 0xffffffff
mov dword [ebp - 0x314], 0xffffffff
mov dword [ebp - 0x360], eax
mov dword [ebp - 0x1c], ecx
movups xmmword [ebp - 0x330], xmm0
cmp eax, ecx
je 0x100285aa
nop
mov eax, dword [eax]
cmp byte [eax + 0x38], 0
lea edi, [eax + 0x38]
lea esi, [eax + 0x34]
jne 0x10028386
cmp dword [esi], 2
jne 0x10026ff4
cmp byte [0x1013480c], 0
jne 0x10028386
push eax
mov ecx, 0x101477d4
call fcn.100cb290
mov edi, dword [ebp - 0x360]
mov ecx, dword [edi]
mov dword [ecx + 0x30], eax
mov eax, dword [edi]
mov edx, dword [eax + 0x30]
lea esi, [eax + 0x30]
cmp edx, 3
je 0x10028590
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x10028590
xorps xmm0, xmm0
mov dword [ebp - 0x20], 0
movq qword [ebp - 0x28], xmm0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 4], 2
cmp edx, 2
je 0x10027461
cmp edx, 1
je 0x10027461
xor edi, edi
mov dword [ebp - 0x378], 0xffffffff
mov byte [ebp - 0x372], 0
mov byte [ebp - 0x366], 0
mov byte [ebp - 0x371], 0
mov dword [ebp - 0x37c], 0xffffffff
mov byte [ebp - 0x365], 0
test ecx, ecx
je 0x10028372
nop dword [eax]
lea ecx, [eax + 8]
push edi
call fcn.1002b220
mov esi, eax
test esi, esi
je 0x100270cc
mov ecx, esi
call fcn.100247a0
test al, al
je 0x100270cc
xorps xmm0, xmm0
comiss xmm0, dword [esi + 4]
jb 0x100270cc
cmp byte [esi + 0x81], 0
je 0x100270ee
mov eax, dword [ebp - 0x360]
inc edi
mov eax, dword [eax]
cmp edi, dword [eax + 0x18]
jb 0x100270a0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.1002ad50
jmp 0x10028590
test edi, edi
jle 0x100270f9
mov byte [0x10131248], 1
lea eax, [ebp - 0x2bc]
mov dword [ebp - 0x2bc], esi
push eax
lea ecx, [ebp - 0x28]
call fcn.1002ad20
mov eax, dword [ebp - 0x360]
mov esi, dword [ebp - 0x2bc]
mov eax, dword [eax]
movss xmm2, dword [esi + 0x54]
push dword [eax]
call fcn.100de3b0
mov byte [ebp - 0x367], al
mov eax, dword [esi + 0x84]
mov esi, dword [ebp - 0x360]
mov dword [ebp - 0x380], eax
mov ecx, dword [esi]
mov edi, dword [ecx + 0x18]
sub edi, 1
js 0x10027709
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x36c], eax
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x10]
add eax, edi
dec ecx
and ecx, eax
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*4]
mov dword [ebp - 0x294], esi
test esi, esi
je 0x1002742a
mov ecx, dword [0x101ae9f8]
mov eax, dword [0x10130e2c]
add ecx, 0xffffffc1
xor ecx, 0xb391dfb
push 1
movd xmm0, dword [ecx + eax]
mov eax, dword [0x101ae7cc]
mov ecx, dword [0x101ae7d8]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
mov eax, dword [ecx]
movss dword [ebp - 0x18], xmm0
movss xmm0, dword [0x10131190]
addss xmm0, dword [0x1013118c]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x370], eax
movss dword [ebp - 0x3a4], xmm0
call dword [ebp - 0x370]
mov ecx, dword [0x101ae814]
fstp dword [ebp - 0x80]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x370], eax
call dword [ebp - 0x370]
mov eax, dword [0x101ae7cc]
xorps xmm3, xmm3
movss xmm0, dword [esi + 0x18]
fstp dword [ebp - 0x370]
movss xmm2, dword [eax + 0x20]
divss xmm0, xmm2
addss xmm0, dword [0x10104728]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 0x80]
addss xmm0, dword [ebp - 0x3a4]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
minss xmm0, dword [ebp - 0x370]
mulss xmm1, xmm2
movss xmm2, dword [ebp - 0x18]
maxss xmm0, xmm3
subss xmm2, xmm1
subss xmm0, xmm2
call fcn.100239e0
movss xmm1, dword [0x101046e4]
comiss xmm1, xmm0
jbe 0x1002742a
comiss xmm3, dword [esi + 4]
jb 0x1002742a
cmp byte [esi + 0x81], 0
jne 0x1002742a
mov ecx, dword [ebp - 0x2bc]
movss xmm1, dword [ecx + 0x20]
movss xmm0, dword [ecx + 0x24]
subss xmm0, dword [esi + 0x24]
subss xmm1, dword [esi + 0x20]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10023a10
cmp byte [ebp - 0x372], 0
jne 0x100272e9
comiss xmm0, dword [0x101046d4]
jbe 0x100272d7
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x28]
call fcn.1002ad20
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x366], 1
mov byte [ebp - 0x371], 1
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x378], edi
mov byte [ebp - 0x372], 1
jmp 0x1002742a
cmp byte [ebp - 0x366], 0
je 0x10027325
mov eax, dword [ebp - 0x378]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jge 0x10027325
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x28]
call fcn.1002ad20
mov eax, dword [ebp - 0x28]
mov byte [ebp - 0x366], 0
mov dword [ebp - 0x36c], eax
jmp 0x1002742a
cmp byte [ebp - 0x371], 0
je 0x100273bc
mov eax, dword [esi + 0x84]
cmp eax, dword [ecx + 0x84]
jb 0x10027361
mov eax, dword [ebp - 0x360]
movss xmm2, dword [esi + 0x54]
mov eax, dword [eax]
push dword [eax]
call fcn.100de3b0
test al, al
je 0x10027361
cmp byte [ebp - 0x367], 0
je 0x1002737b
cmp dword [ebp - 0x380], 4
ja 0x1002742a
cmp dword [esi + 0x84], 4
jbe 0x1002742a
mov eax, dword [ebp - 0x37c]
cmp eax, 0xffffffff
je 0x10027393
mov edx, dword [ebp - 0x36c]
mov dword [edx + eax*4], 0
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x28]
call fcn.1002ad20
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
sub eax, ecx
sar eax, 2
dec eax
mov dword [ebp - 0x36c], ecx
mov dword [ebp - 0x37c], eax
jmp 0x1002742a
cmp dword [ebp - 0x380], 4
ja 0x10027714
cmp byte [ebp - 0x365], 0
jne 0x10027421
movss xmm0, dword [esi + 0x54]
subss xmm0, dword [ecx + 0x54]
lea ecx, [ebp - 0x80]
movss dword [ebp - 0x80], xmm0
call fcn.100d47c0
movss xmm0, dword [ebp - 0x80]
call fcn.100239e0
movss xmm1, dword [0x101046d4]
comiss xmm1, xmm0
jbe 0x10027421
lea eax, [ebp - 0x294]
mov byte [ebp - 0x365], 1
push eax
lea ecx, [ebp - 0x28]
call fcn.1002ad20
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x36c], eax
jmp 0x1002742a
cmp dword [esi + 0x84], 4
ja 0x10027444
sub edi, 1
mov esi, dword [ebp - 0x360]
jns 0x10027157
mov edx, dword [ebp - 0x36c]
jmp 0x10027720
lea eax, [ebp - 0x294]
push eax
lea ecx, [ebp - 0x28]
call fcn.1002ad20
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x36c], edx
jmp 0x1002771a
mov ecx, dword [eax + 0x10]
dec ecx
and ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x338], eax
test eax, eax
je 0x100281c5
comiss xmm0, dword [eax + 4]
jb 0x100281c5
cmp edx, 2
jne 0x1002753a
movaps xmm0, xmmword [0x10105830]
xor eax, eax
movups xmmword [ebp - 0x2e8], xmm0
mov dword [ebp - 0x2c8], 0xde888d97
movaps xmm0, xmmword [0x10104c10]
movups xmmword [ebp - 0x2d8], xmm0
mov dword [ebp - 0x2c4], 0xadde888d
movaps xmm0, xmmword [0x10105130]
nop dword [eax + eax]
movaps xmm1, xmm0
movups xmm0, xmmword [ebp + eax - 0x2e8]
xorps xmm1, xmm0
movaps xmm0, xmmword [0x10105130]
movups xmmword [ebp + eax - 0x2e8], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x100274d0
cmp eax, 0x28
jae 0x1002750e
nop word [eax + eax]
xor byte [ebp + eax - 0x2e8], 0xad
inc eax
cmp eax, 0x28
jb 0x10027500
push esi
mov esi, dword [ebp - 0x360]
lea edx, [ebp - 0x2e8]
push esi
lea ecx, [ebp - 0x39c]
call fcn.1002c840
add esp, 8
mov byte [ebp - 4], 7
or dword [ebp - 0x364], 1
jmp 0x100275f7
lea ecx, [ebp - 0x2b0]
call fcn.10023b90
mov ecx, eax
mov dword [ebp - 4], 8
movaps xmm0, xmmword [0x10105830]
mov edi, dword [ebp - 0x364]
movups xmmword [ebp - 0x2e4], xmm0
or edi, 2
mov word [ebp - 0x2c4], 0xadde
movaps xmm0, xmmword [0x10104aa0]
xor eax, eax
movups xmmword [ebp - 0x2d4], xmm0
mov dword [ebp - 0x364], edi
movaps xmm0, xmmword [0x10105130]
nop dword [eax + eax]
movaps xmm1, xmm0
movups xmm0, xmmword [ebp + eax - 0x2e4]
xorps xmm1, xmm0
movaps xmm0, xmmword [0x10105130]
movups xmmword [ebp + eax - 0x2e4], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x10027590
cmp eax, 0x22
jae 0x100275ce
nop word [eax + eax]
xor byte [ebp + eax - 0x2e4], 0xad
inc eax
cmp eax, 0x22
jb 0x100275c0
mov esi, dword [ebp - 0x360]
lea edx, [ebp - 0x2e4]
push ecx
push esi
lea ecx, [ebp - 0x78]
call fcn.1002c9b0
add esp, 8
or edi, 4
mov dword [ebp - 4], 9
mov dword [ebp - 0x364], edi
push eax
mov ecx, 0x101ac208
call fcn.1002b0c0
mov eax, dword [ebp - 0x364]
test al, 4
je 0x10027623
and eax, 0xfffffffb
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x364], eax
call fcn.1002b9c0
mov eax, dword [ebp - 0x364]
test al, 2
je 0x10027641
and eax, 0xfffffffd
lea ecx, [ebp - 0x2b0]
mov dword [ebp - 0x364], eax
call fcn.1002b9c0
mov eax, dword [ebp - 0x364]
mov dword [ebp - 4], 2
test al, 1
je 0x10027660
and eax, 0xfffffffe
lea ecx, [ebp - 0x39c]
mov dword [ebp - 0x364], eax
call fcn.1002b9c0
mov edx, dword [esi]
lea ecx, [ebp - 0x2b0]
mov edx, dword [edx + 0x30]
call fcn.10023b90
mov ecx, eax
mov byte [ebp - 4], 0xa
mov eax, 0x10
movaps xmm0, xmmword [0x101052d0]
xorps xmm0, xmmword [0x10105130]
mov dword [ebp - 0x38c], 0xc2c08ddd
mov dword [ebp - 0x388], 0x8d97c8c9
mov word [ebp - 0x384], 0xde88
mov byte [ebp - 0x382], 0xad
movups xmmword [ebp - 0x39c], xmm0
xor byte [ebp + eax - 0x39c], 0xad
inc eax
cmp eax, 0x1b
jb 0x100276b4
push ecx
lea edx, [ebp - 0x39c]
lea ecx, [ebp - 0x78]
call fcn.1002c710
add esp, 4
push eax
mov ecx, 0x101ac208
mov byte [ebp - 4], 0xb
call fcn.1002b0c0
lea ecx, [ebp - 0x78]
call fcn.1002b9c0
lea ecx, [ebp - 0x2b0]
mov byte [ebp - 4], 2
call fcn.1002b9c0
lea eax, [ebp - 0x338]
push eax
lea ecx, [ebp - 0x28]
call fcn.1002ad20
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x36c], edx
jmp 0x10027720
mov edx, dword [ebp - 0x36c]
mov esi, dword [ebp - 0x360]
cmp edx, dword [ebp - 0x24]
jne 0x10027782
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x10028590
mov eax, dword [ebp - 0x20]
sub eax, edx
sar eax, 2
lea ecx, [eax*4]
mov eax, edx
cmp ecx, 0x1000
jb 0x10027761
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028e59
push ecx
push edx
call fcn.100f079b
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
jmp 0x1002858d
cmp byte [0x10135508], 0
je 0x100277a8
mov eax, dword [esi]
mov byte [ebp - 0x365], 1
movd xmm0, dword [eax + 0xb4]
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x1013561c]
ja 0x100277af
mov byte [ebp - 0x365], 0
mov edi, dword [ebp - 0x24]
mov al, byte [0x10135590]
sub edi, edx
sar edi, 2
sub edi, 1
mov byte [ebp - 0x367], al
mov dword [ebp - 0x378], edi
js 0x10028168
mov edi, dword [edx + edi*4]
test edi, edi
je 0x10028153
mov eax, dword [edi + 0x1bcc]
mov esi, dword [0x101aea68]
add esi, 0xffffffa5
xor esi, 0xb391e17
add esi, dword [edi]
lea eax, [eax + eax*2]
shl eax, 4
push eax
lea eax, [edi + 0x3cc]
push eax
push dword [esi]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [edi + 0x1bcc]
add esp, 0xc
mov dword [esi + 0xc], eax
lea esi, [edi + 0x20]
mov ecx, dword [0x101ae990]
mov eax, dword [esi]
add ecx, 0xffffffdb
xor ecx, 0xb391de1
add ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov dword [ecx + 8], eax
mov ecx, dword [0x101ae99c]
mov eax, dword [edi + 0x38]
add ecx, 0xffffffd8
xor ecx, 0xb391de4
add ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [edi + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x40]
mov dword [ecx + 8], eax
mov ecx, dword [0x101ae9a0]
mov eax, dword [edi + 0x44]
add ecx, 0xffffffd7
xor ecx, 0xb391de5
add ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [edi + 0x48]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x4c]
mov dword [ecx + 8], eax
lea eax, [edi + 0x6c]
mov edx, dword [0x101ae884]
mov ecx, dword [edi]
push eax
call edx
mov eax, dword [0x101ae888]
mov ecx, dword [edi]
push esi
call eax
mov eax, dword [ebp - 0x360]
xorps xmm0, xmm0
mov ecx, dword [0x101ae9dc]
add ecx, 0xffffffc8
xor ecx, 0xb391df4
mov edx, dword [eax]
mov eax, dword [edx]
movd xmm1, dword [ecx + eax]
cvtdq2ps xmm1, xmm1
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x4c], 0
movq qword [ebp - 0x54], xmm0
movss dword [ebp - 0x294], xmm1
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
cmp byte [ebp - 0x365], 0
mov byte [ebp - 4], 0xc
je 0x10027904
cmp dword [edi + 0x84], 4
jbe 0x10027900
cmp byte [ebp - 0x367], 0
jne 0x10027904
mov cl, 1
jmp 0x10027906
xor cl, cl
cmp dword [0x10131154], 0x1f
jne 0x10027914
movaps xmm3, xmm1
jmp 0x1002797a
cmp dword [0x10135a88], 0
je 0x10027933
mov eax, dword [0x101359cc]
cmp eax, 0xffffffff
je 0x10027946
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x10145628]
jmp 0x10027938
mov al, byte [0x101ac243]
test al, al
je 0x10027946
movss xmm2, dword [0x10135b00]
jmp 0x1002794e
movss xmm2, dword [0x10135100]
cmp byte [0x101351b8], 0
movaps xmm0, xmm1
mulss xmm0, dword [0x101046a8]
mulss xmm0, xmm2
movaps xmm3, xmm0
je 0x1002797a
cmp dword [0x1013115c], 1
jne 0x1002797a
mulss xmm3, dword [0x10104728]
maxss xmm3, dword [0x1010477c]
lea eax, [ebp - 0x54]
push eax
push ecx
lea eax, [edi + 0x3cc]
mov ecx, edx
push eax
push edi
call fcn.10029f10
movss xmm1, dword [0x10104988]
xor esi, esi
cmp dword [edi + 0x84], 4
movss dword [ebp - 0x80], xmm1
mov dword [ebp - 0x370], 0xffffffff
mov dword [ebp - 0x2bc], esi
ja 0x100279fa
mov eax, dword [ebp - 0x360]
mov eax, dword [eax]
cmp dword [eax + 0xc4], esi
jle 0x100279fa
push dword [0x10135704]
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], esi
push dword [0x10135700]
lea ecx, [ebp - 0x3c8]
call fcn.1002c450
mov ecx, dword [0x10135704]
add esp, 8
cmp dword [eax], ecx
jne 0x10027a56
jmp 0x10027a00
mov ecx, dword [0x10135704]
test byte [edi + 0x1c], 1
jne 0x10027a1e
push 1
push ecx
push dword [0x10135700]
call fcn.100f0090
mov ecx, dword [0x10135704]
cmp eax, ecx
jne 0x10027a56
cmp dword [edi + 0x84], 6
jne 0x10027a60
cmp dword [edi + 0xc], 2
jge 0x10027a60
push ecx
push dword [0x10135700]
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], 2
lea ecx, [ebp - 0x3cc]
call fcn.1002c450
add esp, 8
mov eax, dword [eax]
cmp eax, dword [0x10135704]
je 0x10027a60
mov esi, 1
jmp 0x10027af4
cmp dword [edi + 0x84], 5
jne 0x10027a88
push 0
push dword [0x101357ac]
push dword [0x101357a8]
call fcn.100f0090
mov ecx, dword [0x101357ac]
cmp eax, ecx
jne 0x10027aef
jmp 0x10027a8e
mov ecx, dword [0x101357ac]
cmp dword [edi + 0x84], 6
jne 0x10027ac0
push ecx
push dword [0x101357a8]
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], 1
lea ecx, [ebp - 0x3d0]
call fcn.1002c450
mov ecx, dword [0x101357ac]
add esp, 8
cmp dword [eax], ecx
jne 0x10027aef
cmp dword [edi + 0xc], 2
jge 0x10027afa
push ecx
push dword [0x101357a8]
lea edx, [ebp - 0x18]
mov dword [ebp - 0x18], 2
lea ecx, [ebp - 0x3a8]
call fcn.1002c450
add esp, 8
mov eax, dword [eax]
cmp eax, dword [0x101357ac]
je 0x10027afa
mov esi, 2
mov dword [ebp - 0x2bc], esi
cmp dword [ebp - 0x378], 0
jne 0x10027b11
mov eax, dword [ebp - 0x360]
mov eax, dword [eax]
mov dword [eax + 0xdc], esi
mov esi, dword [ebp - 0x54]
xor ecx, ecx
mov dword [ebp - 0x380], ecx
mov eax, 0x92492493
mov ecx, dword [ebp - 0x50]
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10027e50
xor eax, eax
mov dword [ebp - 0x37c], eax
nop dword [eax]
nop word [eax + eax]
cmp dword [0x10131154], 0x1f
movups xmm0, xmmword [eax + esi]
movups xmmword [ebp - 0x7c], xmm0
movq xmm0, qword [eax + esi + 0x10]
mov eax, dword [eax + esi + 0x18]
movq qword [ebp - 0x6c], xmm0
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x2ac], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0
jne 0x10027b9b
movss xmm0, dword [ebp - 0x294]
jmp 0x10027c06
cmp dword [0x10135a88], 0
je 0x10027bba
mov eax, dword [0x101359cc]
cmp eax, 0xffffffff
je 0x10027bcd
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x10145628]
jmp 0x10027bbf
mov al, byte [0x101ac243]
test al, al
je 0x10027bcd
movss xmm0, dword [0x10135b00]
jmp 0x10027bd5
movss xmm0, dword [0x10135100]
cmp byte [0x101351b8], 0
movss xmm1, dword [ebp - 0x294]
mulss xmm1, dword [0x101046a8]
mulss xmm1, xmm0
movaps xmm0, xmm1
je 0x10027c06
cmp dword [0x1013115c], 1
jne 0x10027c06
mulss xmm0, dword [0x10104728]
maxss xmm0, dword [0x1010477c]
mov al, byte [0x101349a4]
lea edx, [ebp - 0x90]
mov byte [ebp - 0x29c], al
lea ecx, [ebp - 0x2b4]
mov eax, dword [edi]
mov dword [ebp - 0x2b0], eax
mov eax, dword [0x10130e2c]
movss dword [ebp - 0x2a0], xmm0
movss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x2ac], xmm0
movss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x2a8], xmm0
movss xmm0, dword [ebp - 0x74]
mov dword [ebp - 0x2b4], eax
movss dword [ebp - 0x2a4], xmm0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0xffffffff
mov byte [ebp - 0x84], 0
call fcn.100da380
test al, al
je 0x10027e16
mov eax, dword [0x101ae7cc]
mov byte [0x101ac241], 1
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x360]
add ecx, 0x20
mov eax, dword [eax]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x70]
cmp ecx, dword [ebp - 0x370]
jne 0x10027d31
movss xmm1, dword [ebp - 0x68]
comiss xmm1, dword [ebp - 0x320]
jbe 0x10027e16
mov eax, dword [edi]
movss xmm0, dword [ebp - 0x8c]
movss dword [ebp - 0x324], xmm0
movss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x330], xmm0
movss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x32c], xmm0
movss xmm0, dword [ebp - 0x74]
push ecx
mov dword [ebp - 0x334], eax
movss dword [ebp - 0x328], xmm0
mov dword [ebp - 0x31c], edi
mov dword [ebp - 0x318], ecx
call fcn.10024880
movss dword [ebp - 0x320], xmm1
jmp 0x10027e10
mov eax, dword [ebp - 0x2bc]
movss xmm2, dword [0x10134cc8]
sub eax, 1
je 0x10027d53
sub eax, 1
jne 0x10027d5b
movss xmm2, dword [0x101049a4]
jmp 0x10027d5b
movss xmm2, dword [0x101048e8]
movss xmm3, dword [ebp - 0x8c]
movaps xmm1, xmm2
xorps xmm1, xmmword [0x10104a20]
movss xmm4, dword [ebp - 0x294]
maxss xmm1, dword [0x1010477c]
maxss xmm2, dword [0x1010477c]
comiss xmm4, xmm3
ja 0x10027d90
movss xmm0, xmm4
jmp 0x10027d94
movss xmm0, xmm3
divss xmm0, xmm4
mulss xmm0, xmm1
movss xmm1, dword [ebp - 0x6c]
mulss xmm1, xmm2
addss xmm1, xmm0
comiss xmm1, dword [ebp - 0x80]
jbe 0x10027e16
mov eax, dword [edi]
movss xmm0, dword [ebp - 0x7c]
movss dword [ebp - 0x330], xmm0
movss xmm0, dword [ebp - 0x78]
movss dword [ebp - 0x32c], xmm0
movss xmm0, dword [ebp - 0x74]
push ecx
mov dword [ebp - 0x334], eax
movss dword [ebp - 0x324], xmm3
movss dword [ebp - 0x328], xmm0
mov dword [ebp - 0x31c], edi
mov dword [ebp - 0x318], ecx
call fcn.10024880
movss xmm0, dword [ebp - 0x68]
movss dword [ebp - 0x320], xmm0
movss dword [ebp - 0x80], xmm1
mov dword [ebp - 0x370], ecx
mov dword [ebp - 0x314], eax
mov ecx, dword [ebp - 0x50]
mov eax, 0x92492493
mov esi, dword [ebp - 0x54]
sub ecx, esi
inc dword [ebp - 0x380]
add dword [ebp - 0x37c], 0x1c
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x380], eax
mov eax, dword [ebp - 0x37c]
jb 0x10027b50
movss xmm0, dword [ebp - 0x324]
comiss xmm0, dword [0x10104660]
jbe 0x100280e4
push 0
push dword [0x10135490]
push dword [0x1013548c]
call fcn.100f0090
movss xmm2, dword [ebp - 0x324]
mov ecx, dword [ebp - 0x318]
movss dword [ebp - 0x370], xmm2
cmp eax, dword [0x10135490]
je 0x100285ef
mov eax, dword [ebp - 0x360]
movss xmm0, dword [ebp - 0x294]
mov esi, dword [eax]
add esi, 0x24
movd xmm1, dword [esi]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jb 0x10027ec2
comiss xmm0, xmm2
ja 0x10027ed6
test ecx, ecx
je 0x10027ed6
movaps xmm0, xmm2
mulss xmm0, dword [0x101047b0]
comiss xmm1, xmm0
jbe 0x100285ef
movaps xmm0, xmmword [0x10105130]
mov eax, 0x10
xorps xmm0, xmmword [0x10104a60]
mov dword [ebp - 0x6c], 0x888d978d
mov dword [ebp - 0x68], 0xde888dde
mov byte [ebp - 0x64], 0xad
movups xmmword [ebp - 0x7c], xmm0
nop
xor byte [ebp + eax - 0x7c], 0xad
inc eax
cmp eax, 0x19
jb 0x10027f00
push 0x98
lea eax, [ebp - 0x138]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x138]
call fcn.1002b900
lea eax, [ebp - 0x2d8]
mov byte [ebp - 4], 0xd
mov dword [ebp - 0x2e0], eax
mov ecx, 2
mov dword [ebp - 0x2dc], 2
lea eax, [ebp - 0x2d0]
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x10027f51
push dword [ebp - 0x2dc]
lea eax, [ebp - 0x324]
mov dword [ebp - 0x2d4], 0x1002ea40
push dword [ebp - 0x2e0]
lea edx, [ebp - 0x7c]
mov dword [ebp - 0x2d8], eax
lea ecx, [ebp - 0x138]
mov dword [ebp - 0x2d0], 0x1002ea60
mov dword [ebp - 0x2cc], esi
mov dword [ebp - 0x2c8], 0x1002e9a0
mov dword [ebp - 0x2c4], 0x1002e9c0
call fcn.10024350
add esp, 8
lea eax, [ebp - 0x39c]
lea ecx, [ebp - 0x134]
push eax
call fcn.1002be20
or dword [ebp - 0x364], 0x60
mov eax, dword [ebp - 0x138]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x138], 0x100ffabc
mov eax, dword [ebp - 0x138]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x13c], eax
lea ecx, [ebp - 0x134]
call fcn.1002b830
lea ecx, [ebp - 0x130]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0xe8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov byte [ebp - 4], 0xe
mov eax, dword [0x101ac20c]
cmp eax, dword [0x101ac210]
je 0x10028089
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmm0, xmmword [ebp - 0x39c]
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x38c]
movq qword [eax + 0x10], xmm0
mov eax, 0xf
add dword [0x101ac20c], 0x18
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0x388], eax
mov byte [ebp - 0x39c], 0
jmp 0x100280a1
lea ecx, [ebp - 0x39c]
push ecx
push eax
mov ecx, 0x101ac208
call fcn.1002ddf0
mov eax, dword [ebp - 0x388]
mov byte [ebp - 4], 0xc
cmp eax, 0xf
jbe 0x100280db
mov edx, dword [ebp - 0x39c]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x100280d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028bbc
push ecx
push edx
call fcn.100f079b
add esp, 8
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x54]
jmp 0x100280e8
mov byte [ebp - 4], 2
test esi, esi
je 0x1002814d
mov ecx, dword [ebp - 0x4c]
mov eax, 0x92492493
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
shl ecx, 2
cmp ecx, 0x1000
jb 0x1002812e
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028bbc
push ecx
push esi
call fcn.100f079b
mov dword [ebp - 0x4c], 0
add esp, 8
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x54], 0
mov edx, dword [ebp - 0x36c]
mov edi, dword [ebp - 0x378]
sub edi, 1
mov dword [ebp - 0x378], edi
jns 0x100277d1
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x10028590
mov eax, dword [ebp - 0x20]
sub eax, edx
sar eax, 2
lea ecx, [eax*4]
mov eax, edx
cmp ecx, 0x1000
jb 0x100281a4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028e59
push ecx
push edx
call fcn.100f079b
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
jmp 0x1002858d
movss xmm0, dword [eax + 4]
comiss xmm0, dword [0x10104660]
mov word [ebp - 0x298], 0xadde
movaps xmm0, xmmword [0x101052d0]
movaps xmm2, xmmword [0x10105130]
movups xmmword [ebp - 0x2b8], xmm0
movaps xmm0, xmmword [0x10104a90]
seta byte [ebp - 0x373]
movups xmmword [ebp - 0x2a8], xmm0
xor eax, eax
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x2b8]
movaps xmm1, xmm2
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x2b8], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x10028210
cmp eax, 0x22
jae 0x10028241
xor byte [ebp + eax - 0x2b8], 0xad
inc eax
cmp eax, 0x22
jb 0x10028233
push 0x98
lea eax, [ebp - 0x1d0]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x1d0]
call fcn.1002b900
lea eax, [ebp - 0x373]
mov byte [ebp - 4], 3
push eax
lea edx, [ebp - 0x338]
lea ecx, [ebp - 0x2e0]
call fcn.1002e5f0
add esp, 4
lea edx, [ebp - 0x2b8]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.100246f0
add esp, 4
lea eax, [ebp - 0x78]
lea ecx, [ebp - 0x1d0]
push eax
call fcn.1002b8e0
or dword [ebp - 0x364], 0x80
lea ecx, [ebp - 0x1d0]
call fcn.100246b0
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 4
push eax
mov ecx, 0x101ac208
call fcn.1002b0c0
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 2
call fcn.1002b9c0
mov edx, dword [edi]
lea ecx, [ebp - 0x2b0]
mov edx, dword [edx + 0x30]
call fcn.10023b90
mov ecx, eax
mov byte [ebp - 4], 5
mov eax, 0x10
movaps xmm0, xmmword [0x10105130]
xorps xmm0, xmmword [0x101052d0]
mov dword [ebp - 0x38c], 0xc2c08ddd
mov dword [ebp - 0x388], 0x8d97c8c9
mov word [ebp - 0x384], 0xde88
mov byte [ebp - 0x382], 0xad
movups xmmword [ebp - 0x39c], xmm0
nop dword [eax]
xor byte [ebp + eax - 0x39c], 0xad
inc eax
cmp eax, 0x1b
jb 0x10028330
push ecx
lea edx, [ebp - 0x39c]
lea ecx, [ebp - 0x78]
call fcn.1002c710
add esp, 4
push eax
mov ecx, 0x101ac208
mov byte [ebp - 4], 6
call fcn.1002b0c0
lea ecx, [ebp - 0x78]
call fcn.1002b9c0
lea ecx, [ebp - 0x2b0]
call fcn.1002b9c0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.1002ad50
jmp 0x10028590
movaps xmm0, xmmword [0x10105130]
mov eax, 0x10
xorps xmm0, xmmword [0x10105320]
mov dword [ebp - 0x6c], 0x8dd9dec4
mov dword [ebp - 0x68], 0xde888d97
mov dword [ebp - 0x64], 0xadde888d
movups xmmword [ebp - 0x7c], xmm0
xor byte [ebp + eax - 0x7c], 0xad
inc eax
cmp eax, 0x1c
jb 0x100283b2
push 0x98
lea eax, [ebp - 0x1d0]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 8
lea ecx, [ebp - 0x1d0]
call fcn.1002b900
lea eax, [ebp - 0x2d8]
mov dword [ebp - 4], 0
mov dword [ebp - 0x2e0], eax
mov ecx, 2
mov dword [ebp - 0x2dc], 2
lea eax, [ebp - 0x2d0]
mov dword [eax - 8], 0
lea eax, [eax + 0xc]
mov dword [eax - 0x10], 0
mov dword [eax - 0xc], 0
sub ecx, 1
jne 0x10028406
push dword [ebp - 0x2dc]
lea edx, [ebp - 0x7c]
mov dword [ebp - 0x2d8], edi
push dword [ebp - 0x2e0]
lea ecx, [ebp - 0x1d0]
mov dword [ebp - 0x2d4], 0x1002e9d0
mov dword [ebp - 0x2d0], 0x1002e9f0
mov dword [ebp - 0x2cc], esi
mov dword [ebp - 0x2c8], 0x1002e9a0
mov dword [ebp - 0x2c4], 0x1002e9c0
call fcn.10024350
add esp, 8
lea eax, [ebp - 0x2b0]
lea ecx, [ebp - 0x1cc]
push eax
call fcn.1002be20
or dword [ebp - 0x364], 0x18
mov eax, dword [ebp - 0x1d0]
mov eax, dword [eax + 4]
mov dword [ebp + eax - 0x1d0], 0x100ffabc
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x1d4], eax
lea ecx, [ebp - 0x1cc]
call fcn.1002b830
lea ecx, [ebp - 0x1c8]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ostream_char__struct_std::char_traits_char__::destructor_void_]
lea ecx, [ebp - 0x180]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov dword [ebp - 4], 1
mov eax, dword [0x101ac20c]
cmp eax, dword [0x101ac210]
je 0x1002853b
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmm0, xmmword [ebp - 0x2b0]
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x2a0]
movq qword [eax + 0x10], xmm0
mov eax, 0xf
add dword [0x101ac20c], 0x18
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x29c], eax
mov byte [ebp - 0x2b0], 0
jmp 0x10028553
lea ecx, [ebp - 0x2b0]
push ecx
push eax
mov ecx, 0x101ac208
call fcn.1002ddf0
mov eax, dword [ebp - 0x29c]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0xf
jbe 0x10028590
mov edx, dword [ebp - 0x2b0]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x10028586
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028bbc
push ecx
push edx
call fcn.100f079b
add esp, 8
mov eax, dword [ebp - 0x360]
add eax, 4
mov dword [ebp - 0x360], eax
cmp eax, dword [ebp - 0x1c]
jne 0x10026fd0
xor edi, edi
movss xmm0, dword [ebp - 0x34c]
movss xmm5, dword [ebp - 0x350]
movss xmm2, dword [ebp - 0x354]
movss xmm1, dword [ebp - 0x358]
movss dword [ebp - 0x370], xmm0
movss dword [ebp - 0x294], xmm5
movss dword [ebp - 0x360], xmm2
movss dword [ebp - 0x364], xmm1
jmp 0x100286fa
movss xmm0, dword [ebp - 0x330]
mov eax, dword [ebp - 0x31c]
mov edi, dword [ebp - 0x334]
movss dword [ebp - 0x364], xmm0
movss xmm0, dword [ebp - 0x32c]
movss dword [ebp - 0x360], xmm0
movss xmm0, dword [ebp - 0x328]
mov dword [ebp - 0x3b8], eax
mov eax, dword [ebp - 0x314]
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x54]
movss dword [ebp - 0x294], xmm0
mov dword [ebp - 0x3a0], ecx
mov dword [ebp - 0x3b4], eax
test esi, esi
je 0x1002869a
mov ecx, dword [ebp - 0x4c]
mov eax, 0x92492493
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
shl ecx, 2
cmp ecx, 0x1000
jb 0x10028690
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028bbc
push ecx
push esi
call fcn.100f079b
add esp, 8
mov edx, dword [ebp - 0x36c]
mov dword [ebp - 4], 0xffffffff
test edx, edx
je 0x100286e2
mov eax, dword [ebp - 0x20]
sub eax, edx
sar eax, 2
lea ecx, [eax*4]
mov eax, edx
cmp ecx, 0x1000
jb 0x100286d8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028e59
push ecx
push edx
call fcn.100f079b
add esp, 8
movss xmm5, dword [ebp - 0x294]
movss xmm2, dword [ebp - 0x360]
movss xmm1, dword [ebp - 0x364]
test edi, edi
je 0x1002951d
mov esi, dword [ebp - 0x3b8]
test esi, esi
je 0x1002951d
movq xmm0, qword [0x10130e38]
movaps xmm3, xmm1
subss xmm3, dword [0x10130e38]
mov eax, dword [0x10130e40]
movaps xmm4, xmm2
subss xmm4, dword [0x10130e3c]
movq qword [ebp - 0x54], xmm0
movaps xmm2, xmm5
subss xmm2, dword [0x10130e40]
movaps xmm0, xmm3
mov dword [ebp - 0x4c], eax
mulss xmm0, xmm3
movaps xmm1, xmm4
mulss xmm1, xmm4
addss xmm0, xmm1
call fcn.10023a10
movss xmm5, dword [0x101048c0]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10028797
xorps xmm2, xmmword [0x10104a20]
movaps xmm1, xmm0
movaps xmm0, xmm2
call fcn.1002f960
movaps xmm2, xmm0
movaps xmm1, xmm3
movaps xmm0, xmm4
mulss xmm2, xmm5
call fcn.1002f960
mulss xmm0, xmm5
jmp 0x100287b1
comiss xmm2, xmm1
jbe 0x100287a6
movss xmm2, dword [0x101049a0]
jmp 0x100287ae
movss xmm2, dword [0x101048e0]
xorps xmm0, xmm0
movaps xmm1, xmm2
movss dword [0x101ac218], xmm2
movss dword [0x101ac21c], xmm0
mov dword [0x101ac220], 0
call fcn.10025040
movss xmm3, dword [ebp - 0x364]
movss xmm7, dword [ebp - 0x360]
movss xmm4, dword [0x10130e38]
movss xmm5, dword [0x10130e3c]
subss xmm3, xmm4
movss xmm2, dword [ebp - 0x294]
subss xmm7, xmm5
movss xmm6, dword [0x10130e40]
subss xmm2, xmm6
movaps xmm1, xmm3
movaps xmm0, xmm7
mulss xmm1, xmm3
mulss xmm0, xmm7
addss xmm0, xmm1
call fcn.10023a10
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10028860
xorps xmm2, xmmword [0x10104a20]
movaps xmm1, xmm0
movaps xmm0, xmm2
call fcn.1002f960
movaps xmm2, xmm0
movaps xmm1, xmm3
mulss xmm2, dword [0x101048c0]
movaps xmm0, xmm7
call fcn.1002f960
mulss xmm0, dword [0x101048c0]
jmp 0x1002887a
comiss xmm2, xmm1
jbe 0x1002886f
movss xmm2, dword [0x101049a0]
jmp 0x10028877
movss xmm2, dword [0x101048e0]
xorps xmm0, xmm0
movss dword [0x101ac21c], xmm0
movaps xmm1, xmm6
subss xmm1, dword [ebp - 0x4c]
movss dword [0x101ac218], xmm2
movaps xmm0, xmm5
subss xmm0, dword [ebp - 0x50]
movaps xmm2, xmm4
mov dword [0x101ac220], 0
subss xmm2, dword [ebp - 0x54]
mulss xmm1, xmm1
mulss xmm0, xmm0
mulss xmm2, xmm2
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.10023a10
comiss xmm0, dword [0x101046d4]
jbe 0x10028be4
mov eax, dword [0x101ae9dc]
add eax, 0xffffffc8
xor eax, 0xb391df4
cmp dword [0x10131154], 0x1f
movd xmm0, dword [eax + edi]
cvtdq2ps xmm0, xmm0
je 0x10028953
cmp dword [0x10135a88], 0
je 0x1002890f
mov eax, dword [0x101359cc]
cmp eax, 0xffffffff
je 0x10028922
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x10145628]
jmp 0x10028914
mov al, byte [0x101ac243]
test al, al
je 0x10028922
movss xmm1, dword [0x10135b00]
jmp 0x1002892a
movss xmm1, dword [0x10135100]
cmp byte [0x101351b8], 0
mulss xmm0, dword [0x101046a8]
mulss xmm1, xmm0
movaps xmm0, xmm1
je 0x10028953
cmp dword [0x1013115c], 1
jne 0x10028953
mulss xmm0, dword [0x10104728]
maxss xmm0, dword [0x1010477c]
mov al, byte [0x101349a4]
lea edx, [ebp - 0x58]
mov byte [ebp - 0x2c4], al
lea ecx, [ebp - 0x2dc]
mov eax, dword [0x10130e2c]
mov dword [ebp - 0x2d8], edi
movss dword [ebp - 0x2c8], xmm0
movss xmm0, dword [ebp - 0x364]
movss dword [ebp - 0x2d4], xmm0
movss xmm0, dword [ebp - 0x360]
movss dword [ebp - 0x2d0], xmm0
movss xmm0, dword [ebp - 0x294]
mov dword [ebp - 0x2dc], eax
movss dword [ebp - 0x2cc], xmm0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xffffffff
mov byte [ebp - 0x4c], 0
call fcn.100da380
movaps xmm0, xmmword [0x10105130]
test al, al
xorps xmm0, xmmword [0x101057a0]
mov eax, 0x10
mov dword [ebp - 0x2a4], 0x8d978dc8
mov word [ebp - 0x29c], 0xc9c8
mov byte [ebp - 0x29a], 0xad
movups xmmword [ebp - 0x2b4], xmm0
jne 0x10028aec
mov dword [ebp - 0x2a0], 0xc1c4cccb
nop dword [eax]
xor byte [ebp + eax - 0x2b4], 0xad
inc eax
cmp eax, 0x1b
jb 0x10028a20
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x2b4]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028a50
sub ecx, edx
lea eax, [ebp - 0x2b4]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.1002cd90
mov dword [ebp - 4], 0xf
mov eax, dword [0x101ac20c]
cmp eax, dword [0x101ac210]
je 0x10028aa0
movups xmm0, xmmword [ebp - 0x34]
mov ecx, 0xf
mov byte [ebp - 0x34], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x24]
movq qword [eax + 0x10], xmm0
add dword [0x101ac20c], 0x18
jmp 0x10028ab2
lea ecx, [ebp - 0x34]
push ecx
push eax
mov ecx, 0x101ac208
call fcn.1002ddf0
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x1002951d
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10028add
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028bbc
push ecx
push edx
call fcn.100f079b
add esp, 8
jmp 0x1002951d
mov dword [ebp - 0x2a0], 0xdedeccdd
nop word [eax + eax]
xor byte [ebp + eax - 0x2b4], 0xad
inc eax
cmp eax, 0x1b
jb 0x10028b00
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x2b4]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028b30
sub ecx, edx
lea eax, [ebp - 0x2b4]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.1002cd90
mov dword [ebp - 4], 0x10
mov eax, dword [0x101ac20c]
cmp eax, dword [0x101ac210]
je 0x10028b80
movups xmm0, xmmword [ebp - 0x34]
mov ecx, 0xf
mov byte [ebp - 0x34], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x24]
movq qword [eax + 0x10], xmm0
add dword [0x101ac20c], 0x18
jmp 0x10028b92
lea ecx, [ebp - 0x34]
push ecx
push eax
mov ecx, 0x101ac208
call fcn.1002ddf0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x10028bcc
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10028bc2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10028bc2
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100f079b
add esp, 8
movss xmm4, dword [0x10130e38]
movss xmm5, dword [0x10130e3c]
movss xmm6, dword [0x10130e40]
movss xmm3, dword [ebp - 0x364]
movss xmm2, dword [ebp - 0x294]
subss xmm3, xmm4
movss xmm4, dword [ebp - 0x360]
subss xmm2, xmm6
subss xmm4, xmm5
movaps xmm1, xmm3
mulss xmm1, xmm3
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm0, xmm1
call fcn.10023a10
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10028c59
xorps xmm2, xmmword [0x10104a20]
movaps xmm1, xmm0
movaps xmm0, xmm2
call fcn.1002f960
movaps xmm2, xmm0
movaps xmm1, xmm3
mulss xmm2, dword [0x101048c0]
movaps xmm0, xmm4
call fcn.1002f960
mulss xmm0, dword [0x101048c0]
jmp 0x10028c73
comiss xmm2, xmm1
jbe 0x10028c68
movss xmm2, dword [0x101049a0]
jmp 0x10028c70
movss xmm2, dword [0x101048e0]
xorps xmm0, xmm0
push dword [ebp - 0x3a0]
lea eax, [ebp - 0x9c]
movss dword [ebp - 0x9c], xmm2
push esi
push eax
push edi
mov ecx, 0x101477f0
movss dword [ebp - 0x98], xmm0
mov dword [ebp - 0x94], 0
call fcn.10029540
movaps xmm0, xmmword [0x10105130]
test al, al
mov word [ebp - 0x4c], 0xadc9
mov eax, 0x10
jne 0x10028d91
xorps xmm0, xmmword [0x101056b0]
mov dword [ebp - 0x50], 0xc8c1c4cc
movups xmmword [ebp - 0x60], xmm0
xor byte [ebp + eax - 0x60], 0xad
inc eax
cmp eax, 0x16
jb 0x10028cd2
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028cf8
sub ecx, edx
lea eax, [ebp - 0x60]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.1002cd90
mov dword [ebp - 4], 0x11
mov eax, dword [0x101ac20c]
cmp eax, dword [0x101ac210]
je 0x10028d45
movups xmm0, xmmword [ebp - 0x34]
mov ecx, 0xf
mov byte [ebp - 0x34], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x24]
movq qword [eax + 0x10], xmm0
add dword [0x101ac20c], 0x18
jmp 0x10028d57
lea edx, [ebp - 0x34]
mov ecx, 0x101ac208
push edx
push eax
call fcn.1002ddf0
mov ecx, dword [ebp - 0x20]
cmp ecx, 0xf
jbe 0x1002951d
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10028d82
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10028e59
push ecx
push edx
call fcn.100f079b
add esp, 8
jmp 0x1002951d
xorps xmm0, xmmword [0x10105980]
mov dword [ebp - 0x50], 0xc8dedecc
movups xmmword [ebp - 0x60], xmm0
xor byte [ebp + eax - 0x60], 0xad
inc eax
cmp eax, 0x16
jb 0x10028da3
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x20], 0
movups xmmword [ebp - 0x34], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028dd0
sub ecx, edx
lea eax, [ebp - 0x60]
push ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.1002cd90
mov dword [ebp - 4], 0x12
mov eax, dword [0x101ac20c]
cmp eax, dword [0x101ac210]
je 0x10028e1d
movups xmm0, xmmword [ebp - 0x34]
mov ecx, 0xf
mov byte [ebp - 0x34], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0x24]
movq qword [eax + 0x10], xmm0
add dword [0x101ac20c], 0x18
jmp 0x10028e2f
lea ecx, [ebp - 0x34]
push ecx
push eax
mov ecx, 0x101ac208
call fcn.1002ddf0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0xf
jbe 0x10028e69
mov edx, dword [ebp - 0x34]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10028e5f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10028e5f
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100f079b
add esp, 8
cmp dword [0x10131178], 0
movss xmm0, dword [ebp - 0x364]
mov eax, dword [ebp - 0x3a0]
movss dword [0x101ac224], xmm0
movss xmm0, dword [ebp - 0x360]
movss dword [0x101ac228], xmm0
movss xmm0, dword [ebp - 0x294]
movss dword [0x101ac22c], xmm0
movss xmm0, dword [ebp - 0x370]
mov dword [0x101ac238], eax
mov eax, dword [ebp - 0x3b4]
mov dword [0x101ac214], edi
movss dword [0x101ac230], xmm0
mov dword [0x101ac234], esi
mov dword [0x101ac23c], eax
jne 0x10028eef
mov eax, dword [0x10131180]
mov byte [eax], 0
mov eax, dword [0x101311a8]
and dword [eax + 0x30], 0xfffffffe
call fcn.100ca420
jmp 0x1002951d
cmp byte [0x10134894], 0
jne 0x10028f0a
mov ecx, dword [0x101ae76c]
push 0x101ac218
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
mov ecx, dword [0x101ae858]
mov esi, dword [0x101aea44]
add esi, 0xffffffae
xor esi, 0xb391e0e
mov eax, dword [ecx]
add esi, dword [0x10130e2c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1c], eax
call dword [ebp - 0x1c]
movss xmm4, dword [0x101ac218]
movss xmm1, dword [0x101ac21c]
mov eax, dword [0x101311a8]
fstp dword [ebp - 0x1c]
movss xmm3, dword [ebp - 0x1c]
movaps xmm0, xmm3
movaps xmm2, xmm3
mulss xmm0, dword [esi]
mulss xmm2, dword [esi + 4]
mulss xmm3, dword [esi + 8]
subss xmm4, xmm0
movss xmm0, dword [0x101ac220]
subss xmm1, xmm2
subss xmm0, xmm3
movss dword [0x101ac218], xmm4
movss dword [0x10131210], xmm4
movss dword [0x10131214], xmm1
movss dword [0x101ac21c], xmm1
movss dword [0x101ac220], xmm0
movss dword [0x10131218], xmm0
movss dword [eax + 0xc], xmm4
movss xmm0, dword [0x10131214]
movss dword [eax + 0x10], xmm0
movss xmm0, dword [0x10131218]
movss dword [eax + 0x14], xmm0
cmp byte [0x1013491c], 0
je 0x10028fd6
mov eax, dword [0x101311a8]
or dword [eax + 0x30], 1
mov eax, dword [0x101311a8]
test byte [eax + 0x30], 1
je 0x1002951d
mov eax, dword [0x10131180]
mov byte [eax], 0
mov eax, dword [0x101ac234]
movss xmm0, dword [eax + 0x18]
addss xmm0, dword [0x1013118c]
mov eax, dword [0x101ae7cc]
divss xmm0, dword [eax + 0x20]
mov eax, dword [0x101311a8]
addss xmm0, dword [0x10104728]
cvttss2si ecx, xmm0
mov dword [eax + 8], ecx
mov eax, dword [0x10131158]
mov ecx, dword [0x101ac214]
mov byte [0x10130e45], 1
mov byte [0x10146288], 1
mov eax, dword [eax + 0xf4]
test ecx, ecx
je 0x10029050
movss xmm0, dword [0x101ac230]
mov edx, dword [0x101ac234]
jmp 0x1002905c
movss xmm0, dword [0x10104984]
xor ecx, ecx
xor edx, edx
push dword [0x101ac238]
movaps xmm2, xmm0
push edx
push eax
push ecx
call fcn.100ccf90
push dword [0x10134ba4]
lea edx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 2
push dword [0x10134ba0]
lea ecx, [ebp - 0x3a8]
call fcn.1002c450
add esp, 8
mov eax, dword [eax]
cmp eax, dword [0x10134ba4]
je 0x100291de
mov ecx, dword [0x101ac214]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov ecx, dword [0x101ae76c]
lea esi, [ebp - 0x290]
push esi
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0x20]
call edx
test al, al
je 0x100291de
mov edx, dword [0x101ac234]
mov ecx, dword [0x101aea04]
add ecx, 0xffffffbe
mov esi, dword [0x10102948]
xor ecx, 0xb391dfe
lea eax, [edx + 0x81]
mov dword [ebp - 0x1c], eax
lea edi, [edx + 0x84]
lea eax, [edx + 0x80]
mov dword [ebp - 0x18], eax
mov eax, dword [0x101ac214]
push dword [0x101ac238]
movss xmm0, dword [ecx + eax]
subss xmm0, dword [edx + 0x18]
mov eax, dword [0x101ae7cc]
divss xmm0, dword [eax + 0x20]
addss xmm0, dword [0x10104728]
cvttss2si eax, xmm0
mov dword [ebp - 0x3a4], eax
lea eax, [ebp - 0x60]
push eax
call fcn.10024920
mov dword [ebp - 4], 0x13
lea ecx, [ebp - 0x3a4]
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
push edi
push ecx
push 0x101ac230
push 0x101ac23c
push eax
lea eax, [ebp - 0x280]
push eax
lea ecx, [ebp - 0x2b0]
call fcn.1002cb20
mov edi, eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0x14
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0x41000000
push eax
mov edx, edi
mov dword [ebp - 0x18], esi
lea ecx, [ebp - 0x3ac]
call fcn.1002c390
add esp, 0x28
push eax
mov byte [ebp - 4], 0x15
call fcn.1002b000
lea ecx, [ebp - 0x3ac]
mov byte [ebp - 4], 0x14
call fcn.1002afd0
sub esp, 0x18
mov ecx, esp
push edi
call fcn.1002baa0
push 0x10130c20
call fcn.1003adb0
add esp, 0x1c
lea ecx, [ebp - 0x2b0]
call fcn.1002b9c0
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], 0xffffffff
call fcn.1002b9c0
mov eax, dword [0x101ac234]
add eax, 0x3cc
push eax
push dword [0x101ac214]
call fcn.100357e0
cmp byte [0x10144934], 0
je 0x1002951d
push 0x54
lea eax, [ebp - 0xf8]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0xf8]
call fcn.10024ca0
movss xmm2, dword [0x101ac224]
lea ecx, [ebp - 0x300]
movss xmm3, dword [0x10130e38]
xorps xmm0, xmm0
movss xmm1, dword [0x101ac228]
subss xmm2, xmm3
movss xmm4, dword [0x10130e3c]
movss xmm5, dword [0x10130e40]
subss xmm1, xmm4
mov eax, dword [0x10130e2c]
movlpd qword [ebp - 0x68], xmm0
movss xmm0, dword [0x101ac22c]
subss xmm0, xmm5
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x90]
mov dword [ebp - 0x74], 0
push eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x78], 0x101032d8
mov dword [ebp - 0x310], 0
mov dword [ebp - 0x30c], 0
mov dword [ebp - 0x308], 0
mov dword [ebp - 0x300], 0
mov dword [ebp - 0x2fc], 0
mov dword [ebp - 0x2f8], 0
movss dword [ebp - 0x90], xmm2
movss dword [ebp - 0x8c], xmm1
movss dword [ebp - 0x88], xmm0
mov dword [ebp - 0x84], 0
call fcn.10024720
movss xmm0, dword [ebp - 0x300]
movss xmm1, dword [ebp - 0x2fc]
mulss xmm0, xmm0
mov byte [ebp - 0x2cb], 1
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x2f8]
mulss xmm0, xmm0
addss xmm1, xmm0
ucomiss xmm1, dword [0x10104660]
lahf
test ah, 0x44
jp 0x10029337
mov byte [ebp - 0x2cb], 0
lea eax, [ebp - 0x60]
mov dword [ebp - 0x2d0], 0
push eax
lea ecx, [ebp - 0x310]
mov byte [ebp - 0x2cc], 1
movss dword [ebp - 0x60], xmm3
movss dword [ebp - 0x5c], xmm4
movss dword [ebp - 0x58], xmm5
mov dword [ebp - 0x54], 0
call fcn.10024720
mov ecx, dword [0x101ae788]
lea edx, [ebp - 0xf8]
push edx
mov dword [ebp - 0x2e8], 0
lea edx, [ebp - 0x78]
mov dword [ebp - 0x2ec], 0
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2dc], 0
mov dword [ebp - 0x2e0], 0
mov eax, dword [ecx]
push edx
push 0x46004003
lea edx, [ebp - 0x310]
mov eax, dword [eax + 0x14]
push edx
call eax
mov ecx, dword [0x101ae7ac]
lea edx, [ebp - 0x54]
push ecx
mov dword [esp], 0x40400000
push 0x7f
push 0
push 0
push 0xff
push edx
lea edx, [ebp - 0x28]
mov dword [ebp - 0x54], 0
push edx
mov dword [ebp - 0x50], 0
lea edx, [ebp - 0x3b0]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x28], 0x40000000
mov dword [ebp - 0x24], 0x40000000
mov dword [ebp - 0x20], 0x40000000
mov dword [ebp - 0x3b0], 0xc0000000
mov dword [ebp - 0x3ac], 0xc0000000
mov dword [ebp - 0x3a8], 0xc0000000
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0xec]
push edx
mov eax, dword [eax + 4]
call eax
movss xmm1, dword [ebp - 0xec]
movss xmm0, dword [ebp - 0xe8]
subss xmm0, dword [0x101ac228]
subss xmm1, dword [0x101ac224]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10023a10
comiss xmm0, dword [0x10104874]
jbe 0x1002951d
mov ecx, dword [0x101ae7ac]
lea edx, [ebp - 0x3c4]
push ecx
mov dword [esp], 0x40400000
push 0x7f
push 0
push 0
push 0xff
push edx
mov dword [ebp - 0x3c4], 0
lea edx, [ebp - 0x390]
mov dword [ebp - 0x3c0], 0
mov dword [ebp - 0x3bc], 0
mov dword [ebp - 0x390], 0x40000000
mov dword [ebp - 0x38c], 0x40000000
mov dword [ebp - 0x388], 0x40000000
mov dword [ebp - 0x8c], 0xc0000000
mov dword [ebp - 0x88], 0xc0000000
mov dword [ebp - 0x84], 0xc0000000
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x8c]
push edx
mov eax, dword [eax + 4]
push 0x101ac224
call 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.100f0320
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret