Function at 0x1002f2b0
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 0x10102698
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x338
mov eax, dword [0x101210c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1b8], edi
lea eax, [ebp - 0xb8]
mov byte [edi + 0x64857], 0
push eax
mov dword [ebp - 0xb8], 0
call fcn.1002ebe0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x84], 0
push eax
mov ecx, 0x10144ab8
call fcn.10033a30
mov ecx, 0x10144ab8
mov esi, dword [eax]
lea eax, [ebp - 0x90]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x84]
lea ecx, [ebp - 0x1c0]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0xbc]
mov ecx, 0x10144ab8
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x1002f388
cmp dword [ebp - 0xb8], 0
jne 0x1002f388
lea eax, [ebp - 0xb8]
mov ecx, edi
push eax
call fcn.1002ebe0
cmp dword [0x10141160], 0
jne 0x1002f39e
cmp dword [0x10141158], 0x1f
jne 0x1003184a
mov eax, dword [edi + 0x3804]
add edi, 0x3800
cmp dword [edi], eax
je 0x1003184a
push edi
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x1c0], 0
call fcn.100348c0
mov esi, dword [ebp - 0x84]
lea eax, [ebp - 0x28]
push eax
mov ecx, edi
call fcn.10033a40
push dword [ebp - 0x1c0]
push esi
push dword [eax]
call fcn.100352c0
movaps xmm0, xmmword [0x10116470]
add esp, 0xc
mov byte [0x10141254], 0
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x190], 0xbf800000
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0xffffffff
mov dword [ebp - 0x184], 0xffffffff
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x148], 0xbf800000
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0xffffffff
mov dword [ebp - 0x13c], 0xffffffff
mov dword [ebp - 0x1ac], esi
mov dword [ebp - 0x28], eax
movups xmmword [ebp - 0x1a0], xmm0
movups xmmword [ebp - 0x158], xmm0
cmp esi, eax
je 0x1003184a
nop
push dword [esi]
mov ecx, 0x10165a5c
call fcn.100d6210
mov ecx, dword [esi]
mov dword [ecx + 0x30], eax
mov eax, dword [esi]
cmp dword [eax + 0x30], 3
je 0x10030d5e
cmp dword [eax + 0x18], 0
je 0x10030d5e
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x24]
movq qword [ebp - 0x24], xmm0
call fcn.10033e70
mov dword [ebp - 4], 0
mov ecx, dword [esi]
mov eax, dword [ecx + 0x30]
cmp eax, 2
je 0x1002f82c
cmp eax, 1
je 0x1002f82c
cmp eax, 3
je 0x1002f82c
xor eax, eax
mov dword [ebp - 0x134], 0
or edi, 0xffffffff
mov dword [ebp - 0x1bc], 0xffffffff
mov byte [ebp - 0x1a6], 0
mov byte [ebp - 0x1a5], 0
mov byte [ebp - 0x1a7], 0
mov byte [ebp - 0x1a8], 0
mov dword [ebp - 0x1b0], eax
cmp dword [ecx + 0x18], eax
jbe 0x1002f818
nop dword [eax]
add ecx, 8
push eax
call fcn.100349a0
mov esi, eax
test esi, esi
je 0x1002f560
mov ecx, esi
call fcn.1002ca90
test al, al
je 0x1002f560
xorps xmm0, xmm0
comiss xmm0, dword [esi + 4]
jb 0x1002f560
cmp byte [esi + 0x81], 0
je 0x1002f694
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x1b0]
inc eax
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ecx]
cmp eax, dword [ecx + 0x18]
jb 0x1002f530
mov esi, dword [ebp - 0x134]
test esi, esi
je 0x1002f812
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x24]
call fcn.10035bf0
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [ecx]
mov ecx, 0x10165a5d
push dword [eax]
mov eax, dword [ebp - 0x134]
movss xmm2, dword [eax + 0x54]
call fcn.100eab40
mov ecx, dword [ebp - 0x134]
mov byte [ebp - 0x1b1], al
mov eax, dword [ecx + 0x84]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1ac]
mov ecx, dword [eax]
mov esi, dword [ecx + 0x18]
sub esi, 1
js 0x1002fae8
nop
mov ecx, dword [eax]
add ecx, 8
push esi
call fcn.100349a0
mov dword [ebp - 0x138], eax
test eax, eax
je 0x1002f7f3
mov ecx, eax
call fcn.1002ca90
test al, al
je 0x1002f7f3
mov ecx, dword [ebp - 0x138]
xorps xmm0, xmm0
comiss xmm0, dword [ecx + 4]
jb 0x1002f7f3
cmp byte [ecx + 0x81], 0
jne 0x1002f7f3
mov eax, dword [ebp - 0x134]
movss xmm1, dword [eax + 0x20]
movss xmm0, dword [eax + 0x24]
subss xmm0, dword [ecx + 0x24]
subss xmm1, dword [ecx + 0x20]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1002bd80
cmp byte [ebp - 0x1a6], 0
jne 0x1002f6af
comiss xmm0, dword [0x10114dcc]
jbe 0x1002f682
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x24]
call fcn.10035bf0
mov byte [ebp - 0x1a5], 1
mov byte [ebp - 0x1a7], 1
mov dword [ebp - 0x1bc], esi
mov byte [ebp - 0x1a6], 1
jmp 0x1002f7f3
cmp dword [ebp - 0x1b0], 0
jle 0x1002f6a4
mov byte [0x10141254], 1
mov dword [ebp - 0x134], esi
jmp 0x1002f580
cmp byte [ebp - 0x1a5], 0
je 0x1002f6e2
mov eax, dword [ebp - 0x1bc]
cdq
sub eax, edx
sar eax, 1
cmp esi, eax
jge 0x1002f6e2
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x24]
call fcn.10035bf0
mov byte [ebp - 0x1a5], 0
jmp 0x1002f7f3
cmp byte [ebp - 0x1a7], 0
je 0x1002f776
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x134]
mov ecx, dword [edx + 0x84]
cmp ecx, dword [eax + 0x84]
jb 0x1002f735
mov eax, dword [ebp - 0x1ac]
mov ecx, 0x10165a5d
movss xmm2, dword [edx + 0x54]
mov eax, dword [eax]
push dword [eax]
call fcn.100eab40
test al, al
je 0x1002f72f
cmp byte [ebp - 0x1b1], 0
je 0x1002f74c
mov edx, dword [ebp - 0x138]
cmp dword [ebp - 0x18], 3
jbe 0x1002f7f3
cmp dword [edx + 0x84], 3
ja 0x1002f7f3
cmp edi, 0xffffffff
je 0x1002f75b
mov eax, dword [ebp - 0x24]
mov dword [eax + edi*4], 0
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x24]
call fcn.10035bf0
mov edi, dword [ebp - 0x20]
sub edi, dword [ebp - 0x24]
sar edi, 2
dec edi
jmp 0x1002f7f3
cmp dword [ebp - 0x18], 3
jbe 0x1002fae8
cmp byte [ebp - 0x1a8], 0
jne 0x1002f7e4
mov eax, dword [ebp - 0x138]
lea ecx, [ebp - 0xbc]
movss xmm0, dword [eax + 0x54]
mov eax, dword [ebp - 0x134]
subss xmm0, dword [eax + 0x54]
movss dword [ebp - 0xbc], xmm0
call fcn.100e0830
movss xmm0, dword [ebp - 0xbc]
call fcn.1002bd50
movss xmm1, dword [0x10114dcc]
comiss xmm1, xmm0
jbe 0x1002f7e4
lea eax, [ebp - 0x138]
mov byte [ebp - 0x1a8], 1
push eax
lea ecx, [ebp - 0x24]
call fcn.10035bf0
jmp 0x1002f7f3
mov eax, dword [ebp - 0x138]
cmp dword [eax + 0x84], 3
jbe 0x1002f807
sub esi, 1
js 0x1002fae8
mov eax, dword [ebp - 0x1ac]
jmp 0x1002f5e0
lea eax, [ebp - 0x138]
jmp 0x1002fadf
mov esi, dword [ebp - 0x1ac]
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10033990
jmp 0x10030d5e
add ecx, 8
push 0
call fcn.100349a0
mov dword [ebp - 0x84], eax
test eax, eax
je 0x10030bd8
xorps xmm0, xmm0
comiss xmm0, dword [eax + 4]
jb 0x10030bd8
mov esi, dword [esi]
mov edi, dword [ebp - 0x1b8]
add esi, 0x30
add edi, 0x64818
mov edx, dword [esi]
cmp edx, 2
jne 0x1002f900
lea ecx, [ebp - 0xb0]
call fcn.1002bf00
mov byte [ebp - 4], 4
xor ecx, ecx
movaps xmm0, xmmword [0x101159f0]
movaps xmm1, xmmword [0x101157e0]
movups xmmword [ebp - 0x1ec], xmm0
mov word [ebp - 0x1cc], 0x5e03
movaps xmm0, xmmword [0x10115f30]
movups xmmword [ebp - 0x1dc], xmm0
mov byte [ebp - 0x1ca], 0x23
movups xmm0, xmmword [ebp + ecx - 0x1ec]
xorps xmm0, xmm1
movups xmmword [ebp + ecx - 0x1ec], xmm0
add ecx, 0x10
cmp ecx, 0x20
jb 0x1002f8b1
cmp ecx, 0x23
jae 0x1002f8df
xor byte [ebp + ecx - 0x1ec], 0x23
inc ecx
cmp ecx, 0x23
jb 0x1002f8d1
lea eax, [ebp - 0xb0]
push eax
lea edx, [ebp - 0x1ec]
lea ecx, [ebp - 0x78]
call fcn.10035470
add esp, 4
mov byte [ebp - 4], 5
jmp 0x1002faba
cmp edx, 1
jne 0x1002f9aa
movaps xmm0, xmmword [0x10116040]
xor ecx, ecx
movups xmmword [ebp - 0x1ec], xmm0
mov dword [ebp - 0x1cc], 0x3500603
movaps xmm0, xmmword [0x10116200]
movups xmmword [ebp - 0x1dc], xmm0
mov word [ebp - 0x1c8], 0x235e
nop word [eax + eax]
movups xmm0, xmmword [ebp + ecx - 0x1ec]
movaps xmm1, xmmword [0x101157e0]
xorps xmm1, xmm0
movups xmmword [ebp + ecx - 0x1ec], xmm1
add ecx, 0x10
cmp ecx, 0x20
jb 0x1002f940
cmp ecx, 0x26
jae 0x1002f97e
nop word [eax + eax]
xor byte [ebp + ecx - 0x1ec], 0x23
inc ecx
cmp ecx, 0x26
jb 0x1002f970
push esi
push dword [ebp - 0x1ac]
lea edx, [ebp - 0x1ec]
lea ecx, [ebp - 0xb0]
call fcn.100355b0
add esp, 8
push eax
mov ecx, edi
mov byte [ebp - 4], 6
call fcn.10035c50
jmp 0x1002faca
lea ecx, [ebp - 0xb0]
cmp edx, 3
jne 0x1002fa2f
call fcn.1002bf00
mov byte [ebp - 4], 7
mov ecx, 0x10
movaps xmm0, xmmword [0x101157e0]
xorps xmm0, xmmword [0x10116260]
mov dword [ebp - 0x208], 0x4e035803
mov dword [ebp - 0x204], 0x1946474c
mov dword [ebp - 0x200], 0x3500603
mov word [ebp - 0x1fc], 0x235e
movups xmmword [ebp - 0x218], xmm0
nop
xor byte [ebp + ecx - 0x218], 0x23
inc ecx
cmp ecx, 0x1e
jb 0x1002fa00
lea eax, [ebp - 0xb0]
push eax
lea edx, [ebp - 0x218]
lea ecx, [ebp - 0x78]
call fcn.10035470
add esp, 4
mov byte [ebp - 4], 8
jmp 0x1002faba
call fcn.1002bf00
mov byte [ebp - 4], 9
xor ecx, ecx
movaps xmm0, xmmword [0x101160b0]
movups xmmword [ebp - 0x180], xmm0
mov byte [ebp - 0x160], 0x23
movaps xmm0, xmmword [0x10116250]
movups xmmword [ebp - 0x170], xmm0
nop dword [eax]
movups xmm0, xmmword [ebp + ecx - 0x180]
movaps xmm1, xmmword [0x101157e0]
xorps xmm1, xmm0
movups xmmword [ebp + ecx - 0x180], xmm1
add ecx, 0x10
cmp ecx, 0x20
jb 0x1002fa60
cmp ecx, 0x21
jae 0x1002fa9e
nop word [eax + eax]
xor byte [ebp + ecx - 0x180], 0x23
inc ecx
cmp ecx, 0x21
jb 0x1002fa90
lea eax, [ebp - 0xb0]
push eax
lea edx, [ebp - 0x180]
lea ecx, [ebp - 0x78]
call fcn.10035470
add esp, 4
mov byte [ebp - 4], 0xa
push eax
mov ecx, edi
call fcn.10035c50
lea ecx, [ebp - 0x78]
call fcn.100345f0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0
call fcn.100345f0
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x24]
call fcn.10035bf0
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x20]
je 0x10030d49
cmp byte [0x10145880], 0
mov ecx, dword [ebp - 0x1ac]
mov byte [ebp - 0x1a6], 0
je 0x1002fb27
mov eax, dword [ecx]
mov byte [ebp - 0x1a8], 1
movd xmm0, dword [eax + 0xac]
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x10145994]
ja 0x1002fb2e
mov byte [ebp - 0x1a8], 0
cmp byte [0x10145908], 0
je 0x1002fb49
mov eax, dword [ecx]
mov byte [ebp - 0x1a7], 1
cmp dword [eax + 0xac], 2
jg 0x1002fb50
mov byte [ebp - 0x1a7], 0
mov edi, dword [ebp - 0x20]
sub edi, dword [ebp - 0x24]
sar edi, 2
sub edi, 1
mov dword [ebp - 0x1bc], edi
js 0x10030abd
mov eax, dword [ebp - 0x24]
mov edi, dword [eax + edi*4]
test edi, edi
je 0x10030a81
mov eax, dword [edi + 0x1bcc]
mov esi, dword [0x101ccb00]
add esi, 0xffffffa5
xor esi, 0x5910728a
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 [0x101cca28]
mov eax, dword [esi]
add ecx, 0xffffffdb
xor ecx, 0x59107254
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 [0x101cca34]
mov eax, dword [edi + 0x38]
add ecx, 0xffffffd8
xor ecx, 0x59107257
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 [0x101cca38]
mov eax, dword [edi + 0x44]
add ecx, 0xffffffd7
xor ecx, 0x59107258
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 [0x101cc91c]
mov ecx, dword [edi]
push eax
call edx
mov eax, dword [0x101cc920]
mov ecx, dword [edi]
push esi
call eax
mov esi, dword [ebp - 0x1ac]
mov ecx, dword [0x101cca74]
add ecx, 0xffffffc8
xor ecx, 0x59107267
mov eax, dword [esi]
mov eax, dword [eax]
movd xmm0, dword [ecx + eax]
lea ecx, [ebp - 0x38]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x30], 0
movss dword [ebp - 0x134], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x38], xmm0
call fcn.10033e70
cmp byte [ebp - 0x1a8], 0
mov byte [ebp - 4], 0xb
mov esi, dword [esi]
je 0x1002fc98
cmp dword [edi + 0x84], 3
ja 0x1002fc8f
cmp byte [ebp - 0x1a7], 0
jne 0x1002fc98
mov byte [ebp - 0x1c0], 1
jmp 0x1002fc9f
mov byte [ebp - 0x1c0], 0
movss xmm1, dword [ebp - 0x134]
mov ecx, 0x10165a78
call fcn.1002deb0
lea eax, [ebp - 0x38]
movaps xmm3, xmm0
push eax
push dword [ebp - 0x1c0]
lea eax, [edi + 0x3cc]
mov ecx, esi
push eax
push edi
call fcn.10032520
cmp dword [edi + 0x84], 3
movss xmm0, dword [0x10115100]
movss dword [ebp - 0x1f4], xmm0
mov dword [ebp - 0x1b0], 0xffffffff
mov dword [ebp - 0x1c4], 0
ja 0x1002fd67
mov eax, dword [ebp - 0x1ac]
mov eax, dword [eax]
cmp dword [eax + 0xbc], 0
jle 0x1002fd67
lea eax, [ebp - 0x2fc]
mov dword [ebp - 0x18], 0
push eax
mov ecx, 0x10145a78
call fcn.10033a30
mov ecx, 0x10145a78
mov esi, dword [eax]
lea eax, [ebp - 0x300]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x304]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x308]
mov ecx, 0x10145a78
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x1002fe2c
test byte [edi + 0x1c], 1
jne 0x1002fdc5
lea eax, [ebp - 0x33c]
mov dword [ebp - 0x18], 1
push eax
mov ecx, 0x10145a78
call fcn.10033a30
mov ecx, 0x10145a78
mov esi, dword [eax]
lea eax, [ebp - 0x294]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x298]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x29c]
mov ecx, 0x10145a78
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x1002fe2c
cmp dword [edi + 0x84], 3
jne 0x1002fe3c
cmp dword [edi + 0xc], 2
jge 0x1002fe3c
lea eax, [ebp - 0x338]
mov dword [ebp - 0x18], 2
push eax
mov ecx, 0x10145a78
call fcn.10033a30
mov ecx, 0x10145a78
mov esi, dword [eax]
lea eax, [ebp - 0x334]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x330]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x32c]
mov ecx, 0x10145a78
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x1002fe3c
mov ecx, 1
mov dword [ebp - 0x1c4], ecx
jmp 0x1002ff73
cmp dword [edi + 0x84], 1
jne 0x1002fea1
lea eax, [ebp - 0x328]
mov dword [ebp - 0x18], 0
push eax
mov ecx, 0x10145b20
call fcn.10033a30
mov ecx, 0x10145b20
mov esi, dword [eax]
lea eax, [ebp - 0x324]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x320]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x31c]
mov ecx, 0x10145b20
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x1002ff60
cmp dword [edi + 0x84], 3
jne 0x1002ff02
lea eax, [ebp - 0x314]
mov dword [ebp - 0x18], 1
push eax
mov ecx, 0x10145b20
call fcn.10033a30
mov ecx, 0x10145b20
mov esi, dword [eax]
lea eax, [ebp - 0x310]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x30c]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2f0]
mov ecx, 0x10145b20
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
jne 0x1002ff60
cmp dword [edi + 0xc], 2
jge 0x1002ff6d
lea eax, [ebp - 0x318]
mov dword [ebp - 0x18], 2
push eax
mov ecx, 0x10145b20
call fcn.10033a30
mov ecx, 0x10145b20
mov esi, dword [eax]
lea eax, [ebp - 0x2a0]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x2a4]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2a8]
mov ecx, 0x10145b20
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x1002ff6d
mov ecx, 2
mov dword [ebp - 0x1c4], ecx
jmp 0x1002ff73
mov ecx, dword [ebp - 0x1c4]
cmp dword [ebp - 0x1bc], 0
jne 0x1002ff8a
mov eax, dword [ebp - 0x1ac]
mov eax, dword [eax]
mov dword [eax + 0xd4], ecx
mov esi, dword [ebp - 0x38]
xor ecx, ecx
mov dword [ebp - 0x1f0], ecx
mov eax, 0x92492493
mov ecx, dword [ebp - 0x34]
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10030903
xor eax, eax
mov dword [ebp - 0x18], eax
nop dword [eax + eax]
movups xmm0, xmmword [eax + esi]
mov ecx, 0x10165a78
movss xmm1, dword [ebp - 0x134]
movups xmmword [ebp - 0x210], xmm0
movups xmmword [ebp - 0xb4], xmm0
movq xmm0, qword [eax + esi + 0x10]
mov eax, dword [eax + esi + 0x18]
movq qword [ebp - 0xa4], xmm0
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x174], 0
mov dword [ebp - 0x170], 0
call fcn.1002deb0
movss xmm1, dword [ebp - 0x134]
mov ecx, 0x10165a78
movss dword [ebp - 0x16c], xmm0
call fcn.1002df40
mov al, byte [0x10144964]
lea edx, [ebp - 0xcc]
movss dword [ebp - 0x168], xmm0
lea ecx, [ebp - 0x180]
movups xmm0, xmmword [ebp - 0x210]
mov byte [ebp - 0x164], al
mov eax, dword [edi]
movaps xmm1, xmm0
mov dword [ebp - 0x17c], eax
mov eax, dword [0x10140e2c]
shufps xmm1, xmm0, 0x55
movups xmmword [ebp - 0x230], xmm1
mov dword [ebp - 0x180], eax
movss dword [ebp - 0x174], xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movss dword [ebp - 0x178], xmm0
movups xmmword [ebp - 0x70], xmm1
mov dword [ebp - 0xcc], 0
movss dword [ebp - 0x170], xmm1
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xc4], 0xffffffff
mov byte [ebp - 0xc0], 0
call fcn.100e5640
test al, al
je 0x100308cf
lea edx, [ebp - 0xcc]
lea ecx, [ebp - 0x180]
call fcn.100e5640
test al, al
je 0x1003012e
movss xmm0, dword [ebp - 0xc8]
mov ecx, 0x10165a78
movss xmm1, dword [ebp - 0x134]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x98], xmm0
call fcn.1002deb0
movsd xmm1, qword [ebp - 0x98]
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x10114ed8]
comisd xmm1, xmm0
jbe 0x1003012e
mov dl, 1
mov byte [0x101ca2cf], dl
jmp 0x10030134
mov dl, byte [0x101ca2cf]
test byte [0x10140e34], 1
je 0x1003015e
mov ecx, dword [0x101cca6c]
mov eax, dword [0x10140e2c]
add ecx, 0xffffffca
xor ecx, 0x59107265
mov byte [ebp - 0x1a5], 1
test byte [ecx + eax], 1
jne 0x10030165
mov byte [ebp - 0x1a5], 0
test dl, dl
je 0x10030257
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x90], 4
push eax
mov ecx, 0x1014575c
call fcn.10033a30
mov ecx, 0x1014575c
mov esi, dword [eax]
lea eax, [ebp - 0x2b0]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x90]
lea ecx, [ebp - 0x2b4]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2b8]
mov ecx, 0x1014575c
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x10030257
cmp byte [ebp - 0x1a5], 0
je 0x1003033d
cmp byte [0x10141164], 0
jne 0x10030336
lea eax, [ebp - 0x2bc]
mov dword [ebp - 0x90], 1
push eax
mov ecx, 0x1014575c
call fcn.10033a30
mov ecx, 0x1014575c
mov esi, dword [eax]
lea eax, [ebp - 0x2c0]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x90]
lea ecx, [ebp - 0x2c4]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2c8]
mov ecx, 0x1014575c
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x1003033d
cmp byte [0x10140e44], 0
jmp 0x10030334
cmp byte [ebp - 0x1a5], 0
je 0x1003033d
cmp byte [0x10141164], 0
jne 0x10030336
lea eax, [ebp - 0x2cc]
mov dword [ebp - 0x90], 1
push eax
mov ecx, 0x1014575c
call fcn.10033a30
mov ecx, 0x1014575c
mov esi, dword [eax]
lea eax, [ebp - 0x2d0]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x90]
lea ecx, [ebp - 0x2d4]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2d8]
mov ecx, 0x1014575c
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x100302d8
cmp byte [0x10140e44], 0
jne 0x10030336
lea eax, [ebp - 0x2dc]
mov dword [ebp - 0x90], 0
push eax
mov ecx, 0x1014575c
call fcn.10033a30
mov ecx, 0x1014575c
mov esi, dword [eax]
lea eax, [ebp - 0x2e0]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x90]
lea ecx, [ebp - 0x2e4]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2e8]
mov ecx, 0x1014575c
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x1003033d
mov byte [0x101ca2cd], 1
mov eax, dword [0x101cc864]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x1ac]
add ecx, 0x20
mov eax, dword [eax]
mov dword [eax + 0x1c], ecx
cmp byte [0x10145f14], 0
movss xmm3, dword [ebp - 0xc8]
je 0x100304cf
cmp dword [0x10141158], 0x1f
je 0x100304cf
mov esi, dword [ebp - 0xa8]
cmp esi, dword [ebp - 0x1b0]
jne 0x1003063f
movss xmm1, dword [ebp - 0xa0]
comiss xmm1, dword [ebp - 0x148]
jbe 0x100308cf
mov eax, dword [edi]
movaps xmm0, xmm3
movss dword [ebp - 0x14c], xmm0
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x140], esi
movups xmm0, xmmword [ebp - 0x210]
movss dword [ebp - 0x158], xmm0
movups xmm0, xmmword [ebp - 0x230]
movss dword [ebp - 0x154], xmm0
movups xmm0, xmmword [ebp - 0x70]
movss dword [ebp - 0x150], xmm0
cmp esi, 0x13
ja case.default.0x100303f1
movzx eax, byte [esi + 0x10031884]
jmp dword [eax*4 + 0x10031868]
mov eax, 1
jmp 0x1003042e
mov eax, 2
jmp 0x1003042e
mov eax, 3
jmp 0x1003042e
mov eax, 6
jmp 0x1003042e
mov eax, 7
jmp 0x1003042e
mov eax, 4
jmp 0x1003042e
mov eax, 5
jmp 0x1003042e
mov eax, 9
movaps xmm0, xmmword [str.PBEF]
xor ecx, ecx
mov esi, dword [ebp - 0x1b8]
movups xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0x13c], eax
movaps xmm0, xmmword [0x10115300]
movss dword [ebp - 0x148], xmm1
movups xmmword [ebp - 0x70], xmm0
mov word [ebp - 0x60], 0x235e
movups xmm0, xmmword [ebp + ecx - 0x80]
movaps xmm1, xmmword [0x101157e0]
xorps xmm1, xmm0
movups xmmword [ebp + ecx - 0x80], xmm1
add ecx, 0x10
cmp ecx, 0x20
jb 0x10030460
cmp ecx, 0x22
jae 0x1003048c
xor byte [ebp + ecx - 0x80], 0x23
inc ecx
cmp ecx, 0x22
jb 0x10030481
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x140]
push eax
lea edx, [ebp - 0x80]
lea ecx, [ebp - 0xb0]
call fcn.10035740
add esp, 8
push eax
lea ecx, [esi + 0x64818]
mov byte [ebp - 4], 0xc
call fcn.10035c50
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0xb
call fcn.100345f0
jmp 0x100308cf
mov esi, dword [ebp - 0xa8]
cmp esi, dword [ebp - 0x1b0]
jne 0x1003063f
comiss xmm3, dword [ebp - 0x14c]
movups xmm4, xmmword [ebp - 0x210]
movups xmm6, xmmword [ebp - 0x230]
movups xmm7, xmmword [ebp - 0x70]
jbe 0x10030651
mov eax, dword [edi]
mov dword [ebp - 0x15c], eax
movss dword [ebp - 0x14c], xmm3
movss dword [ebp - 0x158], xmm4
movss dword [ebp - 0x154], xmm6
movss dword [ebp - 0x150], xmm7
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x140], esi
cmp esi, 0x13
ja case.default.0x10030544
movzx eax, byte [esi + 0x100318b4]
jmp dword [eax*4 + 0x10031898]
movss xmm5, dword [ebp - 0xa0]
mov eax, 1
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movss xmm5, dword [ebp - 0xa0]
mov eax, 2
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movss xmm5, dword [ebp - 0xa0]
mov eax, 3
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movss xmm5, dword [ebp - 0xa0]
mov eax, 6
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movss xmm5, dword [ebp - 0xa0]
mov eax, 7
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movss xmm5, dword [ebp - 0xa0]
mov eax, 4
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movss xmm5, dword [ebp - 0xa0]
mov eax, 5
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movss xmm5, dword [ebp - 0xa0]
mov eax, 9
mov dword [ebp - 0x13c], eax
movss dword [ebp - 0x148], xmm5
jmp 0x10030659
movups xmm7, xmmword [ebp - 0x70]
movups xmm6, xmmword [ebp - 0x230]
movups xmm4, xmmword [ebp - 0x210]
movss xmm5, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x1c4]
movss xmm2, dword [0x10144ec8]
sub eax, 1
je 0x1003067b
sub eax, 1
jne 0x10030683
movss xmm2, dword [0x1011511c]
jmp 0x10030683
movss xmm2, dword [0x10115040]
comiss xmm3, dword [ebp - 0x14c]
movaps xmm0, xmm3
movaps xmm1, xmm2
minss xmm0, dword [ebp - 0x134]
xorps xmm1, xmmword [0x10116460]
maxss xmm1, dword [0x10114e70]
maxss xmm2, dword [0x10114e70]
divss xmm0, dword [ebp - 0x134]
mulss xmm0, xmm1
movss xmm1, dword [ebp - 0xa4]
mulss xmm1, xmm2
addss xmm1, xmm0
jbe 0x100308cf
comiss xmm1, dword [ebp - 0x1f4]
jbe 0x100307f9
mov eax, dword [edi]
mov dword [ebp - 0x15c], eax
movss dword [ebp - 0x14c], xmm3
movss dword [ebp - 0x158], xmm4
movss dword [ebp - 0x154], xmm6
movss dword [ebp - 0x150], xmm7
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x140], esi
cmp esi, 0x13
ja case.default.0x10030722
movzx eax, byte [esi + 0x100318e4]
jmp dword [eax*4 + 0x100318c8]
mov eax, 1
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov eax, 2
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov eax, 3
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov eax, 6
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov eax, 7
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov eax, 4
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov eax, 5
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov eax, 9
movss dword [ebp - 0x148], xmm5
movss dword [ebp - 0x1f4], xmm1
jmp 0x100308c3
mov ecx, dword [ebp - 0x1b8]
push edi
call fcn.1002ef10
test al, al
je 0x100308cf
mov eax, dword [edi]
movss xmm0, dword [ebp - 0xc8]
movss dword [ebp - 0x14c], xmm0
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x144], edi
mov dword [ebp - 0x140], esi
movups xmm0, xmmword [ebp - 0x210]
movss dword [ebp - 0x158], xmm0
movups xmm0, xmmword [ebp - 0x230]
movss dword [ebp - 0x154], xmm0
movups xmm0, xmmword [ebp - 0x70]
movss dword [ebp - 0x150], xmm0
cmp esi, 0x13
ja case.default.0x10030867
movzx eax, byte [esi + 0x10031914]
jmp dword [eax*4 + 0x100318f8]
mov eax, 1
jmp 0x100308a4
mov eax, 2
jmp 0x100308a4
mov eax, 3
jmp 0x100308a4
mov eax, 6
jmp 0x100308a4
mov eax, 7
jmp 0x100308a4
mov eax, 4
jmp 0x100308a4
mov eax, 5
jmp 0x100308a4
mov eax, 9
movss xmm0, dword [ebp - 0xa0]
movss dword [ebp - 0x148], xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1f4], xmm0
mov dword [ebp - 0x1b0], esi
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp - 0x34]
mov eax, 0x92492493
mov esi, dword [ebp - 0x38]
sub ecx, esi
inc dword [ebp - 0x1f0]
add dword [ebp - 0x18], 0x1c
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x1f0], eax
mov eax, dword [ebp - 0x18]
jb 0x1002ffc0
movss xmm0, dword [ebp - 0x14c]
comiss xmm0, dword [0x10114d54]
jbe 0x10030a75
lea eax, [ebp - 0x2ec]
mov dword [ebp - 0x90], 0
push eax
mov ecx, 0x10145804
call fcn.10033a30
mov ecx, 0x10145804
mov esi, dword [eax]
lea eax, [ebp - 0x340]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x90]
lea ecx, [ebp - 0x2f4]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2f8]
mov ecx, 0x10145804
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x10030a98
mov eax, dword [ebp - 0x1ac]
movss xmm2, dword [ebp - 0x134]
movss xmm0, dword [ebp - 0x14c]
mov ecx, dword [eax]
add ecx, 0x24
movd xmm1, dword [ecx]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm2
jb 0x100309af
comiss xmm2, xmm0
ja 0x100309c0
cmp dword [ebp - 0x140], 0
je 0x100309c0
mulss xmm0, dword [0x10114eb0]
comiss xmm1, xmm0
jbe 0x10030a98
movaps xmm0, xmmword [0x10115ea0]
xor eax, eax
mov esi, dword [ebp - 0x1b8]
movups xmmword [ebp - 0x1ec], xmm0
mov dword [ebp - 0x1cc], 0x5e035006
movaps xmm0, xmmword [str.BZFG]
movups xmmword [ebp - 0x1dc], xmm0
mov byte [ebp - 0x1c8], 0x23
nop word [eax + eax]
movups xmm0, xmmword [ebp + eax - 0x1ec]
movaps xmm1, xmmword [0x101157e0]
xorps xmm1, xmm0
movups xmmword [ebp + eax - 0x1ec], xmm1
add eax, 0x10
cmp eax, 0x20
jb 0x10030a00
cmp eax, 0x25
jae 0x10030a3e
nop word [eax + eax]
xor byte [ebp + eax - 0x1ec], 0x23
inc eax
cmp eax, 0x25
jb 0x10030a30
push ecx
lea eax, [ebp - 0x14c]
push eax
lea edx, [ebp - 0x1ec]
lea ecx, [ebp - 0xb0]
call fcn.100358d0
add esp, 8
push eax
lea ecx, [esi + 0x64818]
mov byte [ebp - 4], 0xd
call fcn.10035c50
lea ecx, [ebp - 0xb0]
call fcn.100345f0
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0
call fcn.10033920
mov edi, dword [ebp - 0x1bc]
sub edi, 1
mov dword [ebp - 0x1bc], edi
jns 0x1002fb68
jmp 0x10030abd
lea eax, [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x1a4]
call fcn.10031930
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x1a6], 1
mov byte [ebp - 4], 0
call fcn.10033920
cmp byte [0x101559a8], 0
je 0x10030bb7
mov edi, dword [ebp - 0x1ac]
mov eax, dword [edi]
cmp byte [eax + 0x38], 0
je 0x10030bb7
lea eax, [ebp - 0x234]
mov dword [ebp - 0x90], 0
push eax
mov ecx, 0x10155a5c
call fcn.10033a30
mov ecx, 0x10155a5c
mov esi, dword [eax]
lea eax, [ebp - 0x238]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x90]
lea ecx, [ebp - 0x23c]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x240]
mov ecx, 0x10155a5c
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x10030bb7
mov edx, dword [edi]
add edx, 0x39
cmp byte [edx], 0
je 0x10030bb7
movaps xmm0, xmmword [0x101157e0]
mov ecx, 0x10
xorps xmm0, xmmword [0x10115f60]
mov edi, dword [ebp - 0x1b8]
mov dword [ebp - 0x6c], 0x3035e03
mov dword [ebp - 0x68], 0x50060358
mov word [ebp - 0x64], 0x5e03
mov byte [ebp - 0x62], 0x23
movups xmmword [ebp - 0x7c], xmm0
nop dword [eax]
xor byte [ebp + ecx - 0x7c], 0x23
inc ecx
cmp ecx, 0x1b
jb 0x10030b80
push 0x10144674
push edx
lea edx, [ebp - 0x7c]
lea ecx, [ebp - 0xb0]
call fcn.10035a60
add esp, 8
push eax
lea ecx, [edi + 0x64818]
mov byte [ebp - 4], 0xe
call fcn.10035c50
jmp 0x10030d3e
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10033990
cmp byte [ebp - 0x1a6], 0
jne 0x10030d70
jmp 0x10030d58
movss xmm0, dword [eax + 4]
comiss xmm0, dword [0x10114d54]
mov edi, dword [ebp - 0x1b8]
mov word [ebp - 0x160], 0x235e
movaps xmm0, xmmword [0x10115d10]
movaps xmm1, xmmword [0x101157e0]
movups xmmword [ebp - 0x180], xmm0
movaps xmm0, xmmword [0x10115310]
seta byte [ebp - 0x1b2]
movups xmmword [ebp - 0x170], xmm0
xor ecx, ecx
nop
movups xmm0, xmmword [ebp + ecx - 0x180]
xorps xmm0, xmm1
movups xmmword [ebp + ecx - 0x180], xmm0
add ecx, 0x10
cmp ecx, 0x20
jb 0x10030c20
cmp ecx, 0x22
jae 0x10030c4e
xor byte [ebp + ecx - 0x180], 0x23
inc ecx
cmp ecx, 0x22
jb 0x10030c40
lea eax, [ebp - 0x1b2]
push eax
lea eax, [ebp - 0x84]
push eax
lea edx, [ebp - 0x180]
lea ecx, [ebp - 0xb0]
call fcn.100352e0
add esp, 8
push eax
lea ecx, [edi + 0x64818]
mov byte [ebp - 4], 1
call fcn.10035c50
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0
call fcn.100345f0
mov eax, dword [ebp - 0x1ac]
lea ecx, [ebp - 0xb0]
mov eax, dword [eax]
mov edx, dword [eax + 0x30]
call fcn.1002bf00
mov byte [ebp - 4], 2
xor ecx, ecx
movaps xmm0, xmmword [0x10115a50]
movaps xmm1, xmmword [0x101157e0]
movups xmmword [ebp - 0x180], xmm0
mov word [ebp - 0x160], 0x235e
movaps xmm0, xmmword [0x101152f0]
movups xmmword [ebp - 0x170], xmm0
nop word [eax + eax]
movups xmm0, xmmword [ebp + ecx - 0x180]
xorps xmm0, xmm1
movups xmmword [ebp + ecx - 0x180], xmm0
add ecx, 0x10
cmp ecx, 0x20
jb 0x10030ce0
cmp ecx, 0x22
jae 0x10030d0e
xor byte [ebp + ecx - 0x180], 0x23
inc ecx
cmp ecx, 0x22
jb 0x10030d00
lea eax, [ebp - 0xb0]
push eax
lea edx, [ebp - 0x180]
lea ecx, [ebp - 0x78]
call fcn.10035470
add esp, 4
push eax
lea ecx, [edi + 0x64818]
mov byte [ebp - 4], 3
call fcn.10035c50
lea ecx, [ebp - 0x78]
call fcn.100345f0
lea ecx, [ebp - 0xb0]
call fcn.100345f0
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 0xffffffff
call fcn.10033990
mov esi, dword [ebp - 0x1ac]
add esi, 4
mov dword [ebp - 0x1ac], esi
cmp esi, dword [ebp - 0x28]
jne 0x1002f480
cmp dword [ebp - 0x1a4], 0
je 0x1003184a
cmp dword [ebp - 0x18c], 0
je 0x1003184a
movq xmm0, qword [0x10140e38]
lea ecx, [ebp - 0x24]
mov edi, dword [ebp - 0x1b8]
mov eax, dword [0x10140e40]
movq qword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x1a0]
subss xmm0, dword [0x10140e38]
push 0
lea edx, [edi + 0x64828]
mov dword [ebp - 0x30], eax
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x19c]
subss xmm0, dword [0x10140e3c]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x198]
subss xmm0, dword [0x10140e40]
movss dword [ebp - 0x1c], xmm0
call fcn.100e08f0
movss xmm1, dword [edi + 0x64828]
add esp, 4
mov ecx, edi
call fcn.1002cf80
movss xmm0, dword [ebp - 0x1a0]
lea edx, [edi + 0x64828]
subss xmm0, dword [0x10140e38]
push 0
lea ecx, [ebp - 0x24]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 0x19c]
subss xmm0, dword [0x10140e3c]
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x198]
subss xmm0, dword [0x10140e40]
movss dword [ebp - 0x1c], xmm0
call fcn.100e08f0
movss xmm0, dword [0x10140e3c]
add esp, 4
subss xmm0, dword [ebp - 0x34]
movss xmm1, dword [0x10140e38]
subss xmm1, dword [ebp - 0x38]
movss xmm2, dword [0x10140e40]
subss xmm2, dword [ebp - 0x30]
mulss xmm0, xmm0
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm0, xmm1
addss xmm0, xmm2
call fcn.1002bd80
comiss xmm0, dword [0x10114dcc]
jbe 0x100310b2
mov eax, dword [0x101cca74]
mov ecx, edi
add eax, 0xffffffc8
xor eax, 0x59107267
add eax, dword [ebp - 0x1a4]
movd xmm1, dword [eax]
cvtdq2ps xmm1, xmm1
call fcn.1002deb0
mov eax, dword [0x101cca74]
mov ecx, 0x10165a78
add eax, 0xffffffc8
movss dword [ebp - 0x16c], xmm0
xor eax, 0x59107267
add eax, dword [ebp - 0x1a4]
movd xmm1, dword [eax]
cvtdq2ps xmm1, xmm1
call fcn.1002df40
mov al, byte [0x10144964]
lea edx, [ebp - 0x70]
movss dword [ebp - 0x168], xmm0
lea ecx, [ebp - 0x180]
movss xmm0, dword [ebp - 0x1a0]
movss dword [ebp - 0x178], xmm0
movss xmm0, dword [ebp - 0x19c]
mov byte [ebp - 0x164], al
mov eax, dword [ebp - 0x1a4]
movss dword [ebp - 0x174], xmm0
movss xmm0, dword [ebp - 0x198]
mov dword [ebp - 0x17c], eax
mov eax, dword [0x10140e2c]
mov dword [ebp - 0x180], eax
movss dword [ebp - 0x170], xmm0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xffffffff
mov byte [ebp - 0x64], 0
call fcn.100e5640
movaps xmm0, xmmword [0x101163a0]
xor ecx, ecx
test al, al
jne 0x10031020
movups xmmword [ebp - 0x1e8], xmm0
mov word [ebp - 0x1c8], 0x237e
movaps xmm0, xmmword [0x101152c0]
movups xmmword [ebp - 0x1d8], xmm0
nop dword [eax]
nop word [eax + eax]
movups xmm0, xmmword [ebp + ecx - 0x1e8]
movaps xmm1, xmmword [0x101157e0]
xorps xmm1, xmm0
movups xmmword [ebp + ecx - 0x1e8], xmm1
add ecx, 0x10
cmp ecx, 0x20
jb 0x10030fb0
cmp ecx, 0x22
jae 0x10030fee
nop word [eax + eax]
xor byte [ebp + ecx - 0x1e8], 0x23
inc ecx
cmp ecx, 0x22
jb 0x10030fe0
lea eax, [ebp - 0x1e8]
push eax
lea ecx, [ebp - 0x44]
call fcn.10034690
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 0xf
push eax
lea ecx, [edi + 0x64818]
call fcn.10035c50
lea ecx, [ebp - 0x44]
call fcn.100345f0
jmp 0x1003184a
movaps xmm1, xmmword [0x101157e0]
movups xmmword [ebp - 0x1ec], xmm0
mov word [ebp - 0x1cc], 0x7e03
movaps xmm0, xmmword [0x10116160]
movups xmmword [ebp - 0x1dc], xmm0
mov byte [ebp - 0x1ca], 0x23
nop dword [eax]
movups xmm0, xmmword [ebp + ecx - 0x1ec]
xorps xmm0, xmm1
movups xmmword [ebp + ecx - 0x1ec], xmm0
add ecx, 0x10
cmp ecx, 0x20
jb 0x10031050
cmp ecx, 0x23
jae 0x1003107e
xor byte [ebp + ecx - 0x1ec], 0x23
inc ecx
cmp ecx, 0x23
jb 0x10031070
lea eax, [ebp - 0x1ec]
push eax
lea ecx, [ebp - 0x44]
call fcn.10034690
lea eax, [ebp - 0x44]
mov dword [ebp - 4], 0x10
push eax
lea ecx, [edi + 0x64818]
call fcn.10035c50
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 0xffffffff
call fcn.100345f0
movss xmm0, dword [ebp - 0x1a0]
lea edx, [ebp - 0xd8]
subss xmm0, dword [0x10140e38]
push 0
lea ecx, [ebp - 0x38]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x19c]
subss xmm0, dword [0x10140e3c]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x198]
subss xmm0, dword [0x10140e40]
movss dword [ebp - 0x30], xmm0
call fcn.100e08f0
add esp, 4
cmp byte [0x10141164], 0
je 0x10031152
cmp byte [0x10140e44], 0
je 0x10031152
lea eax, [ebp - 0xd8]
mov ecx, 0x10165a78
push eax
push dword [ebp - 0x1a4]
call fcn.10031970
test eax, eax
setne al
jmp 0x10031154
xor al, al
movaps xmm0, xmmword [0x101157e0]
test al, al
xorps xmm0, xmmword [0x10116150]
mov eax, 0x10
mov dword [ebp - 0x38], 0x319574f
movups xmmword [ebp - 0x48], xmm0
jne 0x100311ca
mov dword [ebp - 0x34], 0x4f4a4245
mov dword [ebp - 0x30], 0x7e034746
mov byte [ebp - 0x2c], 0x23
nop dword [eax + eax]
xor byte [ebp + eax - 0x48], 0x23
inc eax
cmp eax, 0x1d
jb 0x10031190
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x78]
call fcn.10034690
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 0x11
push eax
lea ecx, [edi + 0x64818]
call fcn.10035c50
lea ecx, [ebp - 0x78]
call fcn.100345f0
jmp 0x1003184a
mov dword [ebp - 0x34], 0x51514c40
mov dword [ebp - 0x30], 0x3574046
mov word [ebp - 0x2c], 0x237e
nop
xor byte [ebp + eax - 0x48], 0x23
inc eax
cmp eax, 0x1e
jb 0x100311e0
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x78]
call fcn.10034690
lea eax, [ebp - 0x78]
mov dword [ebp - 4], 0x12
push eax
lea ecx, [edi + 0x64818]
call fcn.10035c50
lea ecx, [ebp - 0x78]
mov dword [ebp - 4], 0xffffffff
call fcn.100345f0
movups xmm0, xmmword [ebp - 0x1a0]
mov eax, dword [ebp - 0x1a4]
mov dword [edi + 0x64824], eax
mov eax, dword [ebp - 0x18c]
movups xmmword [edi + 0x64834], xmm0
mov dword [edi + 0x64844], eax
mov eax, dword [ebp - 0x188]
mov dword [edi + 0x64848], eax
mov eax, dword [ebp - 0x184]
mov dword [edi + 0x6484c], eax
cmp dword [0x1014117c], 0
jne 0x10031283
mov eax, dword [0x10141184]
mov ecx, 0x10165a44
mov byte [eax], 0
mov eax, dword [0x101411ac]
and dword [eax + 0x30], 0xfffffffe
call fcn.100d5390
jmp 0x1003184a
cmp byte [0x10144854], 0
jne 0x100312a0
mov ecx, dword [0x101cc804]
lea eax, [edi + 0x64828]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
call eax
mov ecx, dword [0x101cc8f0]
mov esi, dword [0x101ccadc]
add esi, 0xffffffae
xor esi, 0x59107281
mov eax, dword [ecx]
add esi, dword [0x10140e2c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x28], eax
call dword [ebp - 0x28]
movss xmm2, dword [esi + 4]
movss xmm5, dword [edi + 0x64828]
movss xmm4, dword [esi + 8]
fstp dword [ebp - 0x28]
movss xmm3, dword [ebp - 0x28]
movaps xmm0, xmm3
movaps xmm1, xmm3
mulss xmm0, dword [esi]
mulss xmm1, xmm2
subss xmm5, xmm0
mulss xmm3, xmm4
movss xmm0, dword [edi + 0x6482c]
subss xmm0, xmm1
movss dword [edi + 0x64828], xmm5
movss dword [edi + 0x6482c], xmm0
movss xmm0, dword [edi + 0x64830]
subss xmm0, xmm3
movss dword [edi + 0x64830], xmm0
mov eax, dword [0x101411ac]
movss dword [0x10141214], xmm5
movss xmm0, dword [edi + 0x6482c]
movss dword [0x10141218], xmm0
movss xmm0, dword [edi + 0x64830]
movss dword [0x1014121c], xmm0
movss dword [eax + 0xc], xmm5
movss xmm0, dword [0x10141218]
movss dword [eax + 0x10], xmm0
movss xmm0, dword [0x1014121c]
movss dword [eax + 0x14], xmm0
cmp byte [0x101448dc], 0
je 0x10031384
mov eax, dword [0x101411ac]
or dword [eax + 0x30], 1
mov eax, dword [0x101411ac]
test byte [eax + 0x30], 1
je 0x1003184a
mov eax, dword [0x10141184]
mov byte [eax], 0
mov eax, dword [edi + 0x64844]
movss xmm0, dword [eax + 0x18]
addss xmm0, dword [0x10141190]
mov eax, dword [0x101cc864]
divss xmm0, dword [eax + 0x20]
mov eax, dword [0x101411ac]
addss xmm0, dword [0x10114e18]
cvttss2si ecx, xmm0
mov dword [eax + 8], ecx
mov eax, dword [0x1014115c]
mov byte [0x10140e45], 1
mov byte [0x10157100], 1
mov ecx, dword [edi + 0x64824]
mov eax, dword [eax + 0xf4]
test ecx, ecx
je 0x100313ff
movss xmm0, dword [edi + 0x64840]
mov edx, dword [edi + 0x64844]
jmp 0x1003140b
movss xmm0, dword [0x101150fc]
xor ecx, ecx
xor edx, edx
push dword [edi + 0x64848]
movaps xmm2, xmm0
push edx
push eax
push ecx
mov ecx, 0x101cd400
call fcn.100d9360
lea eax, [ebp - 0x240]
mov dword [ebp - 0x28], 0
push eax
mov ecx, 0x10144b60
call fcn.10033a30
mov ecx, 0x10144b60
mov esi, dword [eax]
lea eax, [ebp - 0x23c]
push eax
call fcn.10033a40
push esi
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x238]
push dword [eax]
call fcn.10034fd0
add esp, 8
mov esi, eax
lea eax, [ebp - 0x234]
mov ecx, 0x10144b60
push eax
call fcn.10033a30
mov ecx, dword [esi]
cmp ecx, dword [eax]
je 0x100314d6
mov ecx, dword [edi + 0x64844]
push 0xff
push dword [edi + 0x64848]
lea eax, [ecx + 0x3cc]
push eax
push ecx
mov ecx, 0x10157228
call fcn.100fcf60
mov ecx, dword [edi + 0x64824]
mov esi, dword [edi + 0x64848]
add ecx, 8
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
imul eax, eax, 0x1840
mov ecx, 0x10157228
push 0xff
push esi
add eax, 0x1fd8
add eax, edi
push eax
push dword [edi + 0x64844]
call fcn.100fcf60
cmp byte [0x101554e4], 0
je 0x1003184a
push 0x54
lea eax, [ebp - 0x130]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x130]
call fcn.1002cb90
xorps xmm0, xmm0
lea ecx, [ebp - 0xb0]
movups xmmword [ebp - 0xb0], xmm0
movq qword [ebp - 0xa0], xmm0
call fcn.1002ca40
movss xmm0, dword [edi + 0x64834]
lea ecx, [ebp - 0x280]
subss xmm0, dword [0x10140e38]
mov eax, dword [0x10140e2c]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0x70]
push eax
mov dword [ebp - 0xb0], 0x10113308
movss dword [ebp - 0x70], xmm0
movss xmm0, dword [edi + 0x64838]
subss xmm0, dword [0x10140e3c]
mov dword [ebp - 0x290], 0
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x288], 0
mov dword [ebp - 0x280], 0
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [edi + 0x6483c]
subss xmm0, dword [0x10140e40]
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x258], 0
movss dword [ebp - 0x68], xmm0
mov dword [ebp - 0x64], 0
call fcn.1002c9f0
movss xmm0, dword [ebp - 0x280]
movss xmm1, dword [ebp - 0x27c]
mulss xmm0, xmm0
mov byte [ebp - 0x24b], 1
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x278]
mulss xmm0, xmm0
addss xmm1, xmm0
ucomiss xmm1, dword [0x10114d54]
lahf
test ah, 0x44
jp 0x10031647
mov byte [ebp - 0x24b], 0
movss xmm0, dword [0x10140e38]
lea eax, [ebp - 0x70]
movss dword [ebp - 0x70], xmm0
lea ecx, [ebp - 0x290]
movss xmm0, dword [0x10140e3c]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [0x10140e40]
push eax
mov dword [ebp - 0x250], 0
mov byte [ebp - 0x24c], 1
movss dword [ebp - 0x68], xmm0
mov dword [ebp - 0x64], 0
call fcn.1002c9f0
mov ecx, dword [0x101cc820]
lea edx, [ebp - 0x130]
push edx
mov dword [ebp - 0x268], 0
lea edx, [ebp - 0xb0]
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x270], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x260], 0
mov eax, dword [ecx]
push edx
push 0x46004003
lea edx, [ebp - 0x290]
mov eax, dword [eax + 0x14]
push edx
call eax
mov ecx, dword [0x101cc844]
lea edx, [ebp - 0x38]
push ecx
mov dword [esp], 0x40400000
push 0x7f
push 0
push 0
push 0xff
push edx
lea edx, [ebp - 0x24]
mov dword [ebp - 0x38], 0
push edx
mov dword [ebp - 0x34], 0
lea edx, [ebp - 0x98]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x24], 0x40000000
mov dword [ebp - 0x20], 0x40000000
mov dword [ebp - 0x1c], 0x40000000
mov dword [ebp - 0x98], 0xc0000000
mov dword [ebp - 0x94], 0xc0000000
mov dword [ebp - 0x90], 0xc0000000
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x124]
push edx
mov eax, dword [eax + 4]
call eax
movss xmm1, dword [ebp - 0x124]
movss xmm0, dword [ebp - 0x120]
subss xmm0, dword [edi + 0x64838]
subss xmm1, dword [edi + 0x64834]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1002bd80
comiss xmm0, dword [0x10114fa4]
jbe 0x1003184a
mov ecx, dword [0x101cc844]
lea eax, [ebp - 0x22c]
push ecx
mov dword [esp], 0x40400000
push 0x7f
push 0
push 0
push 0xff
push eax
lea eax, [ebp - 0x208]
mov dword [ebp - 0x22c], 0
push eax
mov dword [ebp - 0x228], 0
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x208], 0x40000000
mov dword [ebp - 0x204], 0x40000000
mov dword [ebp - 0x200], 0x40000000
mov dword [ebp - 0xc8], 0xc0000000
mov dword [ebp - 0xc4], 0xc0000000
mov dword [ebp - 0xc0], 0xc0000000
mov edx, dword [ecx]
push eax
lea eax, [edi + 0x64834]
push eax
mov eax, dword [edx + 4]
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.10100d90
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret