Function at 0x10066fb0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x440
mov esi, esp
mov dword [esi + 0x428], ebp
mov edx, dword [ebp + 8]
mov dword [esi + 0x42c], esp
mov dword [esi + 0x438], 0xffffffff
lea eax, [esi + 0x430]
mov dword [esi + 0x434], 0x1006ebc0
mov ecx, dword fs:[0]
mov dword [esi + 0x430], ecx
mov dword fs:[0], eax
cmp dword [edx + 0x4c], 0
jle 0x10068d1f
push edx
call fcn.100690e0
mov eax, dword [ebp + 8]
add esp, 4
mov dword [eax + 8], 0
xorps xmm0, xmm0
movups xmmword [eax + 0x1c], xmm0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
cmp byte [eax], 0
jne 0x10068d1f
mov eax, dword [eax + 0x14]
test eax, eax
je 0x10064968
push eax
call fcn.100485d0
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x1006497b
push eax
call fcn.100485d0
add esp, 4
mov eax, dword [ebp + 8]
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov ecx, dword [eax + 0x4c]
mov dword [esi + 0x24], 0
mov edx, 0
mov dword [esi + 0x7c], ecx
test ecx, ecx
jle 0x100649de
mov ecx, dword [esi + 0x7c]
cmp ecx, 9
mov eax, 8
cmovge eax, ecx
imul eax, eax, 0xc4
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x438], 6
push eax
call fcn.100485a0
add esp, 4
mov ecx, eax
mov eax, dword [ebp + 8]
mov edx, ecx
mov eax, dword [eax + 0x34]
test eax, eax
mov dword [esi + 0xc], edx
mov dword [esi + 0x98], eax
jle 0x10064a2a
cmp eax, 9
mov ecx, eax
mov eax, 8
cmovge eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], edx
mov dword [esi + 0x438], 6
push eax
call fcn.100485a0
mov edx, dword [esi + 0xc]
add esp, 4
mov dword [esi + 0x24], eax
mov eax, dword [esi + 0x98]
mov edi, eax
imul eax, dword [esi + 0x7c], 0xc4
push eax
push 0
mov ebx, edx
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [edi*8]
lea eax, [eax + eax*2]
push eax
push 0
push dword [esi + 0x24]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [ebp + 8]
cmp dword [eax + 0x4c], 0
jle 0x10065645
mov ecx, dword [esi + 0x7c]
test ecx, ecx
mov edx, 0
cmovg edx, ecx
xorps xmm0, xmm0
xor ecx, ecx
mov dword [esi + 0x170], edx
jmp 0x10064ac0
lea eax, [eax + eax*2]
mov edi, dword [esi + 0x24]
lea ecx, [edi + eax*8]
inc dword [ecx]
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 0xd0]
mov ebx, edx
mov ecx, dword [edx + ecx + 0xa4]
mov edx, dword [edi + eax*8 + 4]
cmp edx, ecx
cmovg ecx, edx
mov dword [edi + eax*8 + 4], ecx
mov ecx, dword [esi + 0x4c]
inc ecx
mov eax, dword [ebp + 8]
cmp ecx, dword [eax + 0x4c]
mov edx, dword [esi + 0x170]
jge 0x10065645
cmp ecx, edx
je 0x10068d1f
mov eax, dword [eax + 0x54]
imul edx, ecx, 0x74
mov dword [esi + 4], eax
mov dword [esi + 0xa0], edx
mov eax, dword [eax + edx + 0x70]
test eax, eax
je 0x10068d1f
mov eax, dword [eax + 0x38]
test eax, eax
je 0x10064af3
cmp eax, dword [ebp + 8]
jne 0x10068d1f
mov dword [esi + 0x4c], ecx
imul eax, ecx, 0xc4
mov dword [esi + 0xd0], eax
mov dword [ebx + eax + 0xa0], 0xffffffff
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
test eax, eax
jle 0x10068d1f
mov edi, dword [esi + 0xd0]
mov ecx, dword [esi + 0xc]
add ecx, edi
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 0xa0]
lea edx, [ecx + ebx]
mov dword [esi + 8], edx
lea ecx, [ecx + ebx + 0x70]
mov edx, dword [esi + 0xc]
lea edx, [edx + edi + 0xa0]
mov dword [esi + 0x2c], edx
mov edx, dword [ecx]
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 0x3c]
xor edi, edi
nop word cs:[eax + eax]
mov ecx, dword [ebx + edi*4]
cmp edx, ecx
je 0x10064b80
inc edi
cmp edi, eax
jge 0x10068d1f
cmp edx, ecx
jne 0x10064b60
jmp 0x10068d1f
mov eax, dword [esi + 0x2c]
mov dword [eax], edi
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0xa0]
mov eax, dword [eax + ecx + 0xc]
mov ecx, dword [esi + 8]
mov ebx, dword [ecx]
movzx ecx, byte [ebx]
cmp ecx, 0x4e
jg 0x10064bc0
test ecx, ecx
je 0x10064c00
cmp ecx, 0x31
jne 0x10068d1f
cmp byte [ebx + 1], 0
je 0x10064c0a
jmp 0x10068d1f
cmp ecx, 0x4f
je 0x10064c20
cmp ecx, 0x74
jne 0x10068d1f
movzx ecx, byte [ebx + 1]
cmp ecx, 0x72
je 0x10064c3f
cmp ecx, 0x74
je 0x100655d3
cmp ecx, 0x79
jne 0x10068d1f
cmp byte [ebx + 2], 0x70
jne 0x10068d1f
cmp byte [ebx + 3], 0x31
je 0x10064c60
jmp 0x10068d1f
cmp byte [ebx + 1], 1
jne 0x10068d1f
cmp byte [ebx + 2], 0
jne 0x10068d1f
cmp byte [ebx + 3], 0
je 0x10064c60
jmp 0x10068d1f
cmp byte [ebx + 1], 0x54
jne 0x10068d1f
cmp byte [ebx + 2], 0x54
jne 0x10068d1f
cmp byte [ebx + 3], 0x4f
je 0x10064c60
jmp 0x10068d1f
cmp byte [ebx + 2], 0x75
jne 0x10068d1f
cmp byte [ebx + 3], 0x65
jne 0x10068d1f
nop word cs:[eax + eax]
neg eax
mov edi, 0
sbb edi, edi
test edi, edi
js 0x10068d1f
mov eax, dword [esi + 0x10]
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x3c], 0
movzx edx, byte [ebx + edi + 4]
mov eax, edx
shl eax, 8
movzx ecx, byte [ebx + edi + 5]
mov dword [esi + 0x30], 0
mov dword [esi + 0x60], ecx
or eax, ecx
mov dword [esi + 8], 0
mov ecx, 0
mov dword [esi + 0x50], ebx
mov dword [esi + 0x80], edi
je 0x10064d65
lea ecx, [ebx + edi]
add ecx, 0x17
mov edi, dword [esi + 0x60]
shl edi, 4
shl edx, 0xc
or edx, edi
xor ebx, ebx
jmp 0x10064ce7
add ebx, 0x10
cmp edx, ebx
je 0x10064d20
cmp byte [ecx + ebx - 0xb], 0x63
jne 0x10064ce0
cmp byte [ecx + ebx - 0xa], 0x6d
jne 0x10064ce0
cmp byte [ecx + ebx - 9], 0x61
jne 0x10064ce0
cmp byte [ecx + ebx - 8], 0x70
jne 0x10064ce0
mov edx, dword [esi + 0x50]
mov edi, dword [esi + 0x80]
add edx, edi
mov edx, dword [ebx + edx + 0x14]
bswap edx
mov dword [esi + 8], edx
jmp 0x10064d36
mov dword [esi + 8], 0
mov edi, dword [esi + 0x80]
jmp 0x10064d36
add ecx, 0x10
dec eax
je 0x10064d60
cmp byte [ecx - 0xb], 0x6c
jne 0x10064d30
cmp byte [ecx - 0xa], 0x6f
jne 0x10064d30
cmp byte [ecx - 9], 0x63
jne 0x10064d30
cmp byte [ecx - 8], 0x61
jne 0x10064d30
mov ecx, dword [ecx - 3]
bswap ecx
jmp 0x10064d62
xor ecx, ecx
mov ebx, dword [esi + 0x50]
mov eax, dword [esi + 0x10]
mov dword [esi + 0xb4], ecx
mov dword [eax + 0x10], ecx
movzx eax, byte [ebx + edi + 4]
mov ecx, eax
shl ecx, 8
movzx edx, byte [ebx + edi + 5]
or ecx, edx
je 0x10064de7
lea ecx, [ebx + edi]
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x10064da7
add edx, 0x10
cmp eax, edx
je 0x10064de0
cmp byte [ecx + edx - 0xb], 0x68
jne 0x10064da0
cmp byte [ecx + edx - 0xa], 0x65
jne 0x10064da0
cmp byte [ecx + edx - 9], 0x61
jne 0x10064da0
cmp byte [ecx + edx - 8], 0x64
jne 0x10064da0
lea eax, [ebx + edi]
mov eax, dword [edx + eax + 0x14]
bswap eax
mov dword [esi + 0x30], eax
jmp 0x10064de7
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x30]
mov dword [eax + 0x14], ecx
movzx eax, byte [ebx + edi + 4]
mov ecx, eax
shl ecx, 8
movzx edx, byte [ebx + edi + 5]
mov dword [esi + 0x60], 0
or ecx, edx
mov ecx, 0
je 0x10064e62
lea ecx, [ebx + edi]
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x10064e37
add edx, 0x10
cmp eax, edx
je 0x10064e60
cmp byte [ecx + edx - 0xb], 0x67
jne 0x10064e30
cmp byte [ecx + edx - 0xa], 0x6c
jne 0x10064e30
cmp byte [ecx + edx - 9], 0x79
jne 0x10064e30
cmp byte [ecx + edx - 8], 0x66
jne 0x10064e30
lea eax, [ebx + edi]
mov ecx, dword [edx + eax + 0x14]
bswap ecx
jmp 0x10064e62
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov dword [esi + 0x28], ecx
mov dword [eax + 0x18], ecx
movzx eax, byte [ebx + edi + 4]
mov ecx, eax
shl ecx, 8
movzx edx, byte [ebx + edi + 5]
or ecx, edx
je 0x10064ed7
lea ecx, [ebx + edi]
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x10064e97
add edx, 0x10
cmp eax, edx
je 0x10064ed0
cmp byte [ecx + edx - 0xb], 0x68
jne 0x10064e90
cmp byte [ecx + edx - 0xa], 0x68
jne 0x10064e90
cmp byte [ecx + edx - 9], 0x65
jne 0x10064e90
cmp byte [ecx + edx - 8], 0x61
jne 0x10064e90
lea eax, [ebx + edi]
mov eax, dword [edx + eax + 0x14]
bswap eax
mov dword [esi + 0x60], eax
jmp 0x10064ed7
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x60]
mov dword [eax + 0x1c], ecx
movzx ecx, byte [ebx + edi + 4]
mov eax, ecx
shl eax, 8
mov edx, ebx
movzx ebx, byte [ebx + edi + 5]
xor edi, edi
or eax, ebx
mov eax, 0
je 0x10064f65
mov eax, dword [esi + 0x80]
add eax, edx
add eax, 0x17
shl ebx, 4
shl ecx, 0xc
or ecx, ebx
xor ebx, ebx
jmp 0x10064f27
add ebx, 0x10
cmp ecx, ebx
je 0x10064f60
cmp byte [eax + ebx - 0xb], 0x68
jne 0x10064f20
cmp byte [eax + ebx - 0xa], 0x6d
jne 0x10064f20
cmp byte [eax + ebx - 9], 0x74
jne 0x10064f20
cmp byte [eax + ebx - 8], 0x78
jne 0x10064f20
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x80]
add eax, edx
mov eax, dword [ebx + eax + 0x14]
bswap eax
jmp 0x10064f65
xor eax, eax
mov edx, dword [esi + 0x50]
mov ecx, eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], ecx
mov dword [eax + 0x20], ecx
mov ebx, dword [esi + 0x80]
movzx ecx, byte [edx + ebx + 4]
mov eax, ecx
shl eax, 8
movzx ebx, byte [edx + ebx + 5]
or eax, ebx
je 0x10064fd5
mov eax, dword [esi + 0x80]
add edx, eax
add edx, 0x17
shl ebx, 4
shl ecx, 0xc
or ecx, ebx
xor ebx, ebx
jmp 0x10064fa7
add ebx, 0x10
cmp ecx, ebx
je 0x10064fd0
cmp byte [edx + ebx - 0xb], 0x6b
jne 0x10064fa0
cmp byte [edx + ebx - 0xa], 0x65
jne 0x10064fa0
cmp byte [edx + ebx - 9], 0x72
jne 0x10064fa0
cmp byte [edx + ebx - 8], 0x6e
jne 0x10064fa0
mov edx, dword [esi + 0x50]
add eax, edx
mov edi, dword [ebx + eax + 0x14]
bswap edi
jmp 0x10064fd5
xor edi, edi
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x10]
mov dword [eax + 0x24], edi
mov edi, dword [esi + 0x80]
movzx ecx, byte [edx + edi + 4]
mov eax, ecx
shl eax, 8
movzx ebx, byte [edx + edi + 5]
or eax, ebx
je 0x10065040
add edx, edi
add edx, 0x17
shl ebx, 4
shl ecx, 0xc
or ecx, ebx
xor ebx, ebx
jmp 0x10065017
add ebx, 0x10
cmp ecx, ebx
je 0x10065040
cmp byte [edx + ebx - 0xb], 0x47
jne 0x10065010
cmp byte [edx + ebx - 0xa], 0x50
jne 0x10065010
cmp byte [edx + ebx - 9], 0x4f
jne 0x10065010
cmp byte [edx + ebx - 8], 0x53
jne 0x10065010
mov eax, dword [esi + 0x50]
add eax, edi
mov ecx, dword [ebx + eax + 0x14]
bswap ecx
jmp 0x10065042
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov dword [eax + 0x28], ecx
cmp dword [esi + 8], 0
mov ebx, dword [esi + 0xc]
je 0x10065620
cmp dword [esi + 0x30], 0
je 0x10065620
cmp dword [esi + 0x60], 0
je 0x10065620
cmp dword [esi + 0x20], 0
je 0x10065620
cmp dword [esi + 0x28], 0
je 0x10065130
cmp dword [esi + 0xb4], 0
je 0x10065620
mov ebx, edi
mov edi, dword [esi + 0x50]
movzx ecx, byte [edi + ebx + 4]
mov edx, ecx
shl edx, 8
movzx eax, byte [edi + ebx + 5]
or edx, eax
mov edx, 0xffff
je 0x100654a0
lea edx, [edi + ebx]
add edx, 0x17
shl eax, 4
shl ecx, 0xc
or ecx, eax
xor eax, eax
mov edi, ebx
mov ebx, dword [esi + 0xc]
jmp 0x100650db
add eax, 0x10
cmp ecx, eax
je 0x10065490
cmp byte [edx + eax - 0xb], 0x6d
jne 0x100650d0
cmp byte [edx + eax - 0xa], 0x61
jne 0x100650d0
cmp byte [edx + eax - 9], 0x78
jne 0x100650d0
cmp byte [edx + eax - 8], 0x70
jne 0x100650d0
add edi, dword [esi + 0x50]
mov eax, dword [eax + edi + 0x14]
bswap eax
test eax, eax
mov edx, 0xffff
je 0x100654a3
mov ecx, dword [esi + 0x50]
movzx eax, word [ecx + eax + 4]
rol ax, 8
movzx edx, ax
jmp 0x100654a3
mov dword [esi + 0x9c], 2
mov dword [esi + 0x108], 0
mov dword [esi + 0x104], 0
mov dword [esi + 0x118], 0
mov eax, dword [esi + 0x50]
movzx ecx, byte [eax + edi + 4]
mov edx, ecx
shl edx, 8
movzx eax, byte [eax + edi + 5]
or edx, eax
je 0x10065620
mov edx, dword [esi + 0x10]
add edx, 0x34
mov dword [esi + 0x30], edx
mov edx, dword [esi + 0x50]
add edx, edi
add edx, 0x17
shl eax, 4
shl ecx, 0xc
or ecx, eax
xor eax, eax
jmp 0x1006519b
add eax, 0x10
cmp ecx, eax
je 0x10065620
cmp byte [edx + eax - 0xb], 0x43
jne 0x10065190
cmp byte [edx + eax - 0xa], 0x46
jne 0x10065190
cmp byte [edx + eax - 9], 0x46
jne 0x10065190
cmp byte [edx + eax - 8], 0x20
jne 0x10065190
mov ecx, dword [esi + 0x50]
add ecx, edi
mov eax, dword [eax + ecx + 0x14]
bswap eax
test eax, eax
je 0x10065620
add eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x10]
movups xmmword [ecx + 0x64], xmm0
mov dword [ecx + 0x78], 0
mov dword [ecx + 0x74], 0
mov dword [ecx + 0x34], eax
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x3c], 0x20000000
mov eax, dword [esi + 0x30]
movsd xmm0, qword [eax]
movsd qword [esi + 0x1f8], xmm0
mov eax, dword [eax + 8]
mov dword [esi + 0x200], eax
mov ecx, dword [esi + 0x1fc]
cmp ecx, 0xfffffffe
jl 0x10068d1f
add ecx, 2
cmp eax, ecx
jl 0x10068d1f
xor edx, edx
cmp ecx, eax
jge 0x10065235
mov edx, dword [esi + 0x1f8]
movzx edx, byte [edx + ecx]
cmp eax, edx
jl 0x10068d1f
mov dword [esi + 0x1fc], edx
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b690
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b690
mov edx, dword [esi + 0xc4]
lea ecx, [esi + 0xf0]
push 0
push dword [esi + 0xcc]
call fcn.1006b840
add esp, 8
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b690
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b690
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0x10]
mov dword [ecx + 0x54], eax
movsd xmm0, qword [esi + 0xc4]
movsd qword [ecx + 0x4c], xmm0
lea ecx, [esi + 0xf0]
mov edx, 0x11
lea eax, [esi + 0x108]
push eax
push 1
call fcn.1006b9f0
add esp, 8
lea ecx, [esi + 0xf0]
mov edx, 0x106
lea eax, [esi + 0x9c]
push eax
push 1
call fcn.1006b9f0
add esp, 8
lea ecx, [esi + 0xf0]
mov edx, 0x124
lea eax, [esi + 0x104]
push eax
push 1
call fcn.1006b9f0
add esp, 8
lea ecx, [esi + 0xf0]
mov edx, 0x125
lea eax, [esi + 0x118]
push eax
push 1
call fcn.1006b9f0
add esp, 8
mov edx, dword [esi + 0x1f8]
mov eax, dword [esi + 0x200]
lea ecx, [esi + 0xc4]
push dword [esi + 0xf8]
push dword [esi + 0xf4]
push dword [esi + 0xf0]
mov dword [esi + 0x30], eax
push eax
call fcn.1006bbd0
add esp, 0x10
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0x10]
mov dword [ecx + 0x60], eax
movsd xmm0, qword [esi + 0xc4]
movsd qword [ecx + 0x58], xmm0
cmp dword [esi + 0x9c], 2
jne 0x10065620
mov ecx, dword [esi + 0x108]
test ecx, ecx
je 0x10065620
mov eax, dword [esi + 0x104]
test eax, eax
je 0x1006543a
mov edx, dword [esi + 0x118]
test edx, edx
je 0x10065620
mov dword [esi + 0x20], edx
mov dword [esi + 0x60], ecx
test eax, eax
js 0x10068d1f
cmp dword [esi + 0x30], eax
jl 0x10068d1f
mov ebx, dword [esi + 0x10]
lea ecx, [ebx + 0x64]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x1fc], eax
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b690
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0x30]
mov dword [ecx + 8], eax
movsd xmm0, qword [esi + 0xc4]
movsd qword [ecx], xmm0
mov eax, dword [esi + 0x200]
mov dword [esi + 0x30], eax
mov ecx, dword [esi + 0x20]
sub eax, ecx
setl byte [esi + 0x28]
mov edx, eax
or edx, ecx
sets dl
or dl, byte [esi + 0x28]
add ecx, dword [esi + 0x1f8]
test dl, dl
mov edx, 0
cmovne ecx, edx
mov dword [ebx + 0x70], ecx
cmovne eax, edx
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x78], eax
mov ecx, dword [esi + 0x60]
test ecx, ecx
js 0x10068d1f
cmp dword [esi + 0x30], ecx
jl 0x10068d1f
mov dword [esi + 0x1fc], ecx
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b690
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0x10]
mov dword [ecx + 0x48], eax
movsd xmm0, qword [esi + 0xc4]
movsd qword [ecx + 0x40], xmm0
xorps xmm0, xmm0
jmp 0x1006508a
mov edx, 0xffff
jmp 0x100654a3
mov ebx, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
mov dword [ecx + 0xc], edx
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 8]
movzx eax, word [eax + edx + 2]
rol ax, 8
mov dword [ecx + 0x2c], 0
test ax, ax
je 0x10065620
movzx eax, ax
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 8]
add ecx, edx
add ecx, 0xb
xor edx, edx
xor edi, edi
jmp 0x100654f4
mov edx, dword [ecx + edi*8 - 3]
bswap edx
add edx, dword [esi + 8]
mov ebx, dword [esi + 0x10]
mov dword [ebx + 0x2c], edx
inc edi
cmp eax, edi
je 0x10065530
movzx ebx, word [ecx + edi*8 - 7]
rol bx, 8
test bx, bx
je 0x100654e0
movzx ebx, bx
cmp ebx, 3
jne 0x100654ef
movzx ebx, word [ecx + edi*8 - 5]
rol bx, 8
cmp bx, 0xa
je 0x100654e0
movzx ebx, bx
cmp ebx, 1
je 0x100654e0
jmp 0x100654ef
test edx, edx
mov ebx, dword [esi + 0xc]
je 0x10065620
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + 0x14]
mov edx, dword [esi + 0x50]
movzx eax, word [edx + eax + 0x32]
rol ax, 8
movzx eax, ax
mov dword [ecx + 0x30], eax
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
cmp dword [esi + 0x98], eax
jle 0x10068d1f
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xa0]
mov ecx, dword [ecx + edx + 0x30]
test ecx, ecx
mov edx, 0x101aa0d0
cmove ecx, edx
mov edx, dword [esi + 0xd0]
mov dword [ebx + edx + 0x9c], ecx
cmp word [ecx], 0
je 0x10064a80
mov edx, dword [esi + 0xc]
mov edi, dword [esi + 0xd0]
add edx, edi
add edx, 0xa4
add ecx, 4
nop word cs:[eax + eax]
movzx edi, word [ecx - 2]
test edi, edi
je 0x10064a80
mov ebx, dword [edx]
cmp ebx, edi
cmovg edi, ebx
mov dword [edx], edi
cmp word [ecx], 0
lea ecx, [ecx + 4]
jne 0x100655b0
jmp 0x10064a80
cmp byte [ebx + 2], 0x63
jne 0x10068d1f
cmp byte [ebx + 3], 0x66
jne 0x10068d1f
mov ecx, dword [ebx + 4]
bswap ecx
cmp ecx, 0x20000
je 0x10065600
cmp ecx, 0x10000
jne 0x10068d1f
mov ecx, dword [ebx + 8]
bswap ecx
cmp ecx, eax
jle 0x10068d1f
mov edi, dword [ebx + eax*4 + 0xc]
bswap edi
test edi, edi
jns 0x10064c71
jmp 0x10068d1f
mov eax, dword [esi + 0x24]
test eax, eax
je 0x10065d72
mov dword [esi + 0x438], 4
push eax
call fcn.100485d0
add esp, 4
xor eax, eax
jmp 0x10068cea
add eax, 0x1c
mov dword [esi + 0x1a8], eax
xor ecx, ecx
mov dword [esi + 0x20], 0
jmp 0x10065667
mov ecx, dword [esi + 0xa0]
inc ecx
cmp ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x98]
jge 0x1006596e
imul edi, ecx, 0xc4
mov edx, dword [ebx + edi + 0xa0]
cmp eax, edx
jle 0x10068d1f
mov dword [esi + 8], edx
lea eax, [ebx + edi]
add eax, 0xac
mov dword [esi + 0x30], eax
mov edx, dword [ebx + edi + 0xa4]
mov dword [esi + 0x10], edi
mov edi, dword [ebx + edi + 0xb0]
add edx, 0x20
sar edx, 5
cmp edi, edx
mov dword [esi + 0xa0], ecx
jge 0x1006575c
test edi, edi
je 0x100656cf
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
add eax, edi
jmp 0x100656d4
mov eax, 8
cmp eax, edx
cmovle eax, edx
cmp edi, eax
jge 0x1006575c
mov dword [esi + 0x50], edx
mov dword [esi + 0x80], eax
lea eax, [eax*4]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x438], 6
push eax
call fcn.100485a0
mov ebx, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx + 8]
test edx, edx
je 0x1006574d
mov ecx, dword [esi + 0x30]
mov ecx, dword [ecx]
shl ecx, 2
push ecx
push edx
push eax
mov dword [esi + 0x60], eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x30]
mov eax, dword [eax + 8]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ebx
push eax
call fcn.100485d0
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x30]
mov ebx, dword [esi + 0xc]
add esp, 4
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x80]
mov dword [ecx + 4], eax
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x30]
mov dword [eax], edx
shl edx, 2
push edx
push 0
push dword [eax + 8]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [esi + 8]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x24]
lea edx, [eax + ecx*8]
add edx, 0xc
mov dword [esi + 4], ecx
cmp dword [eax + ecx*8 + 0xc], 0
mov dword [esi + 8], edx
mov edi, dword [esi + 0x10]
jne 0x10065871
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 4]
mov ecx, dword [eax + ecx*8 + 4]
add ecx, 0x20
sar ecx, 5
mov eax, dword [edx + 4]
cmp eax, ecx
jge 0x1006585b
test eax, eax
mov dword [esi + 0x50], eax
je 0x100657c7
mov eax, dword [esi + 0x50]
shr eax, 0x1f
add eax, dword [esi + 0x50]
sar eax, 1
add eax, dword [esi + 0x50]
jmp 0x100657cc
mov eax, 8
cmp eax, ecx
cmovle eax, ecx
cmp dword [esi + 0x50], eax
jge 0x1006585b
mov dword [esi + 0x50], ecx
mov dword [esi + 0x80], eax
lea eax, [eax*4]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x438], 6
push eax
call fcn.100485a0
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
add esp, 4
mov edi, eax
mov eax, dword [edx + 8]
test eax, eax
je 0x10065849
mov ecx, dword [edx]
shl ecx, 2
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov eax, dword [eax + 8]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ebx
push eax
mov dword [esi + 0x60], edi
call fcn.100485d0
mov edi, dword [esi + 0x60]
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0xc]
add esp, 4
mov dword [edx + 8], edi
mov eax, dword [esi + 0x80]
mov dword [edx + 4], eax
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x50]
mov dword [edx], ecx
shl ecx, 2
push ecx
push 0
push dword [edx + 8]
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esi + 8]
add esp, 0xc
mov ecx, edi
mov eax, dword [ebx + edi + 0x9c]
mov dword [esi + 0x50], eax
movzx eax, word [eax]
test ax, ax
je 0x10065660
mov edi, ebx
mov ecx, dword [esi + 0x10]
add ecx, ebx
mov dword [esi + 0x80], ecx
mov ecx, dword [esi + 0x10]
lea ecx, [ebx + ecx + 0xa8]
mov dword [esi + 0x60], ecx
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 4]
lea ecx, [ecx + edi*8]
add ecx, 8
mov dword [esi + 4], ecx
mov edi, dword [esi + 0x50]
jmp 0x100658d3
movzx eax, word [edi + 4]
add edi, 4
test ax, ax
mov ebx, dword [esi + 0xc]
je 0x10065660
movzx ecx, word [edi + 2]
test cx, cx
je 0x10065660
cmp ax, cx
ja 0x100658c0
movzx ecx, ax
mov dword [esi + 0x50], edi
jmp 0x10065906
mov edx, dword [esi + 0x10]
lea eax, [edx + 1]
mov edi, dword [esi + 0x50]
movzx ecx, word [edi + 2]
cmp edx, ecx
mov ecx, eax
mov edx, dword [esi + 8]
jae 0x100658c0
mov ebx, ecx
shr ebx, 5
cmp dword [edx], ebx
jle 0x10068d1f
mov edi, 1
shl edi, cl
mov dword [esi + 0x10], ecx
mov eax, dword [edx + 8]
mov eax, dword [eax + ebx*4]
mov ecx, dword [esi + 0x10]
bt eax, ecx
mov edx, dword [esi + 0x10]
jb 0x100658f3
mov ecx, dword [esi + 0x80]
call fcn.10069230
test eax, eax
je 0x100658f0
mov eax, dword [esi + 0x60]
inc dword [eax]
mov eax, dword [esi + 4]
inc dword [eax]
mov eax, dword [esi + 0x30]
cmp dword [eax], ebx
mov ecx, dword [esi + 8]
jle 0x10068d1f
mov eax, dword [eax + 8]
or dword [eax + ebx*4], edi
cmp dword [ecx], ebx
jle 0x10068d1f
mov eax, dword [ecx + 8]
or dword [eax + ebx*4], edi
inc dword [esi + 0x20]
jmp 0x100658f0
xor edi, edi
jmp 0x1006599f
mov ebx, dword [esi + 0xc]
lea eax, [ebx + ecx]
add eax, 0xa8
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
inc edi
cmp ecx, dword [eax]
mov eax, dword [esi + 0x98]
jne 0x10068d1f
cmp edi, dword [esi + 0x7c]
jge 0x10065c2e
imul ecx, edi, 0xc4
lea eax, [ebx + ecx]
add eax, 0xb8
mov dword [esi + 8], eax
mov eax, dword [ebx + ecx + 0xa8]
cmp dword [ebx + ecx + 0xbc], eax
mov dword [esi + 0x4c], edi
mov dword [esi + 4], ecx
jge 0x10065a62
mov dword [esi + 0x10], eax
lea eax, [eax*4]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x438], 6
push eax
call fcn.100485a0
mov ebx, dword [esi + 0xc]
add esp, 4
mov edx, dword [esi + 4]
mov ecx, ebx
lea edi, [ebx + edx]
add edi, 0xc0
mov edx, dword [ebx + edx + 0xc0]
test edx, edx
je 0x10065a51
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
shl ecx, 2
push ecx
push edx
push eax
mov dword [esi + 0x50], eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], ebx
push eax
mov dword [esi + 0x80], edi
call fcn.100485d0
mov edi, dword [esi + 0x80]
mov eax, dword [esi + 0x50]
mov ebx, dword [esi + 0xc]
add esp, 4
mov dword [edi], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov edi, dword [esi + 0x4c]
mov ecx, dword [esi + 4]
lea eax, [ebx + ecx]
add eax, 0xac
mov dword [esi + 0xb4], eax
mov eax, dword [ebx + ecx + 0xac]
mov edx, dword [ebx + ecx + 0xb4]
test eax, eax
jle 0x10065bdc
lea eax, [edx + eax*4]
mov dword [esi + 0x28], eax
lea eax, [ebx + ecx]
add eax, 0xc0
mov dword [esi + 0x80], eax
mov eax, edx
mov dword [esi + 0xa0], edx
jmp 0x10065abc
add eax, 4
cmp eax, dword [esi + 0x28]
jae 0x10065bd0
mov edi, dword [eax]
mov dword [esi + 0x50], edi
test edi, edi
je 0x10065ab0
mov edi, eax
sub edi, edx
shl edi, 3
mov dword [esi + 0x60], edi
xor edi, edi
mov dword [esi + 0x30], eax
jmp 0x10065b10
mov dword [edi], eax
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xd0]
mov dword [eax + 4], ecx
mov eax, dword [eax]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x60]
add ecx, edi
mov edx, dword [esi + 0x80]
mov edx, dword [edx]
mov dword [edx + eax*4], ecx
mov eax, dword [esi + 8]
inc dword [eax]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xa0]
mov eax, dword [esi + 0x30]
inc edi
cmp edi, 0x20
je 0x10065ab0
mov dword [esi + 0x10], edi
mov edi, dword [esi + 0x50]
mov ebx, dword [esi + 0x10]
bt edi, ebx
mov edi, dword [esi + 0x10]
jae 0x10065b0a
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
jne 0x10065ae9
lea edx, [eax + 1]
test eax, eax
je 0x10065b3f
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x10065b44
mov ecx, 8
cmp ecx, edx
cmovg edx, ecx
cmp eax, edx
jge 0x10065ae9
mov dword [esi + 0xd0], edx
lea eax, [edx*4]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x78], ecx
mov dword [esi + 0x438], 6
push eax
call fcn.100485a0
add esp, 4
mov edi, dword [esi + 0x80]
mov edx, dword [edi]
test edx, edx
je 0x10065ad6
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
shl ecx, 2
push ecx
push edx
push eax
mov dword [esi + 0x2c], eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi]
mov ecx, dword [esi + 0x24]
mov dword [esi + 0x74], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x78], ecx
push eax
call fcn.100485d0
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x80]
add esp, 4
jmp 0x10065ad6
mov eax, dword [esi + 0xb4]
mov edx, dword [eax + 8]
mov edi, dword [esi + 0x4c]
test edx, edx
je 0x10065980
mov eax, dword [esi + 0xb4]
mov dword [eax + 4], 0
mov dword [eax], 0
mov eax, dword [esi + 0x24]
mov dword [esi + 0x74], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x78], eax
mov dword [esi + 0x438], 6
push edx
call fcn.100485d0
add esp, 4
mov eax, dword [esi + 0xb4]
mov dword [eax + 8], 0
mov edi, dword [esi + 0x4c]
mov ecx, dword [esi + 4]
jmp 0x10065980
xor edx, edx
jmp 0x10065c54
mov eax, dword [esi + 8]
mov dword [eax + 8], 0
mov edx, dword [esi + 0x10]
inc edx
mov eax, dword [esi + 0x98]
cmp edx, eax
mov eax, dword [esi + 0x24]
jge 0x10065ca0
lea ecx, [edx + edx*2]
mov eax, dword [eax + ecx*8 + 0x14]
test eax, eax
je 0x10065c4d
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x24]
lea ecx, [edx + ecx*8]
add ecx, 0xc
mov dword [ecx + 4], 0
mov dword [esi + 8], ecx
mov dword [ecx], 0
mov dword [esi + 0x74], edx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x438], 6
push eax
call fcn.100485d0
mov ebx, dword [esi + 0xc]
add esp, 4
jmp 0x10065c40
test eax, eax
je 0x10065cc3
mov eax, dword [esi + 0x24]
mov dword [esi + 0x74], eax
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x78], ecx
mov dword [esi + 0x438], 6
push eax
call fcn.100485d0
add esp, 4
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xc8], 0
mov dword [esi + 0xc4], 0
mov dword [esi + 0xcc], 0
mov edi, dword [esi + 0x20]
test edi, edi
jle 0x10065d81
cmp edi, 9
mov eax, 8
cmovge eax, edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x10], eax
shl eax, 4
mov dword [esi + 0x438], 7
push eax
call fcn.100485a0
add esp, 4
mov dword [esi + 0xf8], eax
mov edx, dword [esi + 0x10]
mov dword [esi + 0xf4], edx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0xf0], ecx
lea ecx, [edx + edx*8]
lea ecx, [ecx + ecx*2]
add ecx, edx
push ecx
mov dword [esi + 8], eax
call fcn.100485a0
mov ecx, dword [esi + 8]
add esp, 4
mov ebx, eax
mov dword [esi + 0xcc], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0xc8], eax
mov edi, dword [esi + 0x20]
jmp 0x10065d8b
xor eax, eax
test ebx, ebx
jne 0x10068cf1
jmp 0x10068d0a
mov dword [esi + 0xf0], edi
xor ebx, ebx
xor ecx, ecx
mov dword [esi + 0xc4], edi
mov eax, edi
shl eax, 4
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [edi + edi*8]
lea eax, [eax + eax*2]
add eax, edi
push eax
push 0
push ebx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp dword [esi + 0x7c], 0
jle 0x1006608a
mov dword [esi + 0xd0], 0
xor edi, edi
xor edx, edx
xor ecx, ecx
jmp 0x10065df0
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x2c]
inc ecx
cmp ecx, dword [esi + 0x7c]
je 0x10066094
imul eax, ecx, 0xc4
mov ebx, dword [esi + 0xc]
mov ebx, dword [ebx + eax + 0xa8]
test ebx, ebx
je 0x10065de6
mov dword [esi + 0x80], ebx
mov dword [esi + 0x2c], ecx
cmp dword [esi + 0xf0], edi
jle 0x10068d1f
mov ecx, edi
shl ecx, 4
add ecx, dword [esi + 0xf8]
mov ebx, dword [esi + 0xc]
mov dword [ebx + eax + 0x94], ecx
cmp dword [esi + 0xc4], edx
jle 0x10068d1f
mov dword [esi + 0x24], edi
lea ecx, [edx + edx*8]
lea ecx, [ecx + ecx*2]
mov dword [esi + 0x20], edx
add ecx, edx
add ecx, dword [esi + 0xcc]
mov dword [ebx + eax + 0x98], ecx
mov edx, dword [ebp + 8]
mov edi, dword [esi + 0x2c]
cmp dword [edx + 0x4c], edi
jle 0x10068d1f
mov edx, dword [edx + 0x54]
mov dword [esi + 8], edx
imul edi, edi, 0x74
mov dword [esi + 0x10], edi
movss xmm0, dword [edx + edi + 0x10]
movss dword [ebx + eax + 0x7c], xmm0
mov dword [ebx + eax + 0x80], 0
mov edx, dword [ebx + eax + 0xb8]
mov edi, dword [ebx + eax + 0xc0]
mov dword [ebx + eax + 0x84], edi
mov dword [esi + 0x50], edx
mov dword [ebx + eax + 0x88], edx
mov dword [ebx + eax + 0x8c], ecx
mov edx, dword [esi + 8]
mov edi, dword [esi + 0x10]
movzx ecx, byte [edx + edi + 0x14]
mov byte [ebx + eax + 0x90], cl
movzx ecx, byte [edx + edi + 0x18]
mov byte [ebx + eax + 0x91], cl
mov dword [esi + 4], eax
lea edi, [ebx + eax]
mov eax, dword [esi + 0x10]
movss xmm1, dword [edx + eax + 0x10]
ucomiss xmm1, dword [0x101a9780]
mov dword [esi + 0x30], edi
jbe 0x10065f20
mov eax, dword [edi + 4]
mov ebx, dword [edi + 0x1c]
movzx edi, byte [eax + ebx + 4]
shl edi, 8
movzx ecx, byte [eax + ebx + 5]
movsx edi, di
or edi, ecx
movzx ecx, byte [eax + ebx + 6]
movzx ebx, byte [eax + ebx + 7]
shl ecx, 8
movsx ecx, cx
or ecx, ebx
sub edi, ecx
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
jmp 0x10065f40
xorps xmm1, xmmword [0x101a97e0]
mov ecx, dword [edi + 4]
mov edi, dword [edi + 0x14]
movzx ecx, word [ecx + edi + 0x12]
rol cx, 8
movzx ecx, cx
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
divss xmm1, xmm0
mov ecx, dword [esi + 0x80]
mov edi, dword [esi + 0x24]
add edi, ecx
add dword [esi + 0x20], ecx
cmp dword [esi + 0x50], 0
mov eax, dword [esi + 4]
jle 0x10065de0
movaps xmmword [esi + 0x60], xmm1
mov dword [esi + 0x24], edi
mov ecx, dword [esi + 0xc]
add ecx, eax
add ecx, 0x94
mov eax, dword [esi + 8]
mov edi, dword [esi + 0x10]
lea eax, [eax + edi + 0x14]
mov dword [esi + 4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x10], eax
xor edi, edi
xor ebx, ebx
mov eax, dword [esi + 0x50]
mov dword [esi + 0xa0], ecx
nop word cs:[eax + eax]
mov dword [esi + 8], edi
cmp eax, ebx
jle 0x10068d1f
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x50], ebx
mov edx, dword [eax + ebx*4]
mov edi, dword [esi + 0x30]
mov ecx, edi
call fcn.10069230
test eax, eax
je 0x10068d1f
mov ebx, dword [esi + 4]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [ebx + 4]
movaps xmm2, xmmword [esi + 0x60]
mulss xmm1, xmm2
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [ebx]
mulss xmm0, xmm2
mov ecx, edi
mov edx, eax
lea eax, [esi + 0x104]
push eax
lea eax, [esi + 0x108]
push eax
lea eax, [esi + 0x9c]
push eax
lea eax, [esi + 0x1f8]
push eax
call fcn.10069530
add esp, 0x10
mov edx, dword [ebx]
mov ecx, dword [esi + 0x108]
add ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0x1f8]
add ecx, edx
dec ecx
mov dword [esi + 0x80], ecx
mov edx, dword [esi + 0xa0]
mov ecx, dword [edx]
mov edi, dword [esi + 8]
mov eax, dword [esi + 0x80]
mov word [ecx + edi + 4], ax
mov ebx, dword [ebx + 4]
mov ecx, dword [esi + 0x104]
add ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0x9c]
lea eax, [ecx + ebx]
dec eax
mov ecx, dword [edx]
mov word [ecx + edi + 6], ax
mov eax, dword [edx]
movzx ecx, word [eax + edi + 4]
movzx eax, word [eax + edi + 6]
imul eax, ecx
add dword [esi + 0xd0], eax
mov ebx, dword [esi + 0x50]
inc ebx
mov eax, dword [edx + 0x24]
add edi, 0x10
cmp ebx, eax
mov ecx, edx
jl 0x10065fa0
mov edi, dword [esi + 0x24]
jmp 0x10065de0
mov dword [esi + 0xd0], 0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0xd0]
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x100660b2
sqrtsd xmm0, xmm0
jmp 0x100660d0
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0x1d0]
movsd xmm0, qword [esi + 0x1d0]
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 0
mov ecx, dword [eax + 0xc]
test ecx, ecx
jg 0x1006611e
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
mov ecx, 0x1000
cmp eax, 0xb32
jg 0x1006611e
mov ecx, 0x800
cmp eax, 0x598
jg 0x1006611e
xor ecx, ecx
cmp eax, 0x2cc
setge cl
shl ecx, 9
add ecx, 0x200
mov dword [esi + 0x438], 7
mov eax, dword [ebp + 8]
mov dword [esi + 8], ecx
mov dword [eax + 0x1c], ecx
mov eax, dword [eax + 0x10]
mov dword [esi + 0x30], eax
mov dword [esi + 0x438], 7
push 0x30
call fcn.100485a0
add esp, 4
mov dword [esi + 0xb8], eax
mov eax, dword [esi + 8]
sub eax, dword [esi + 0x30]
mov dword [esi + 0x50], eax
lea eax, [eax*8]
push eax
call fcn.100485a0
add esp, 4
mov dword [esi + 0xe4], eax
cmp dword [esi + 0xb8], 0
mov eax, dword [esi + 0xe4]
je 0x100662a6
test eax, eax
je 0x100662a6
cmp dword [esi + 0x30], 0xffff8001
mov ebx, dword [esi + 0x50]
jl 0x10068d1f
cmp ebx, 0xffff
jg 0x10068d1f
mov ecx, 0x8000
sub ecx, dword [esi + 0x30]
mov dword [esi + 0x80], ecx
lea ecx, [ebx - 1]
mov dword [esi + 0x10], ecx
xor ecx, ecx
cmp ebx, 2
jl 0x1006623c
lea ecx, [ebx - 2]
mov edx, dword [esi + 0x10]
and edx, 7
xor edi, edi
cmp ecx, 7
jb 0x10066219
mov eax, dword [esi + 0x10]
and eax, 0xfffffff8
xor edi, edi
mov ecx, dword [esi + 0xe4]
nop word [eax + eax]
lea ebx, [ecx + 8]
mov dword [ecx + 4], ebx
lea ebx, [ecx + 0x10]
mov dword [ecx + 0xc], ebx
lea ebx, [ecx + 0x18]
mov dword [ecx + 0x14], ebx
lea ebx, [ecx + 0x20]
mov dword [ecx + 0x1c], ebx
lea ebx, [ecx + 0x28]
mov dword [ecx + 0x24], ebx
lea ebx, [ecx + 0x30]
mov dword [ecx + 0x2c], ebx
lea ebx, [ecx + 0x38]
mov dword [ecx + 0x34], ebx
add edi, 8
lea ebx, [ecx + 0x40]
mov dword [ecx + 0x3c], ebx
mov ecx, ebx
cmp eax, edi
jne 0x100661e0
mov ecx, dword [esi + 0x10]
test edx, edx
mov eax, dword [esi + 0xe4]
mov ebx, dword [esi + 0x50]
je 0x1006623c
lea ecx, [eax + edi*8]
add ecx, 8
nop
mov dword [ecx - 4], ecx
add ecx, 8
dec edx
jne 0x10066230
mov ecx, dword [esi + 0x10]
mov dword [eax + ecx*8 + 4], 0
mov ecx, dword [esi + 0xb8]
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x1c], eax
lea eax, [ecx + 0x20]
mov dword [ecx + 0x18], eax
mov dword [ecx], ebx
mov eax, dword [esi + 0x80]
mov dword [ecx + 4], eax
mov dword [ecx + 0x14], ebx
mov eax, dword [esi + 0x10]
add eax, ebx
cdq
idiv ebx
mov dword [ecx + 8], eax
mov dword [ecx + 0x20], 0
mov eax, ecx
add eax, 0x28
mov dword [ecx + 0x24], eax
mov word [ecx + 0x28], bx
mov word [ecx + 0x2a], 0xffff
mov dword [ecx + 0x2c], 0
mov dword [esi + 0x438], 7
jmp 0x10066316
cmp dword [esi + 0xb8], 0
je 0x100662bd
push dword [esi + 0xb8]
call fcn.100485d0
add esp, 4
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x100662f4
mov dword [esi + 0x30], 0
push eax
call fcn.100485d0
add esp, 4
mov dword [esi + 0xe4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xb8], 0
jmp 0x10066316
mov dword [esi + 0xe4], 0
mov dword [esi + 0x30], 0
mov dword [esi + 8], 0
mov dword [esi + 0xb8], 0
push dword [esi + 0xb8]
push dword [ebp + 8]
call fcn.10069730
add esp, 8
cmp dword [esi + 0x7c], 0
jle 0x100663e4
xor eax, eax
jmp 0x10066350
mov eax, dword [esi + 0x80]
inc eax
cmp eax, dword [esi + 0x7c]
je 0x100663e4
mov dword [esi + 0x80], eax
imul ebx, eax, 0xc4
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ebx + 0xa8]
test eax, eax
je 0x10066340
mov ecx, dword [esi + 0xc]
lea edi, [ecx + ebx]
add edi, 0xa8
mov edx, dword [ecx + ebx + 0x94]
mov ecx, dword [esi + 0xb8]
push eax
call fcn.10069950
add esp, 4
mov dword [esi + 0x50], edi
mov edi, dword [edi]
test edi, edi
jle 0x10066340
mov eax, dword [esi + 0xc]
add eax, ebx
add eax, 0x94
mov dword [esi + 0x10], eax
xor ecx, ecx
mov edx, 0xc
jmp 0x100663b8
inc ecx
add edx, 0x10
cmp ecx, edi
jge 0x10066340
mov eax, dword [esi + 0x10]
mov ebx, dword [eax]
cmp dword [ebx + edx], 0
je 0x100663b0
movzx edi, word [ebx + edx - 2]
movzx ebx, word [ebx + edx - 6]
add ebx, edi
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x20]
cmp edi, ebx
cmovg ebx, edi
mov dword [eax + 0x20], ebx
mov eax, dword [esi + 0x50]
mov edi, dword [eax]
jmp 0x100663b0
mov eax, dword [ebp + 8]
test byte [eax + 4], 1
mov eax, dword [eax + 0x20]
jne 0x1006641d
dec eax
mov ecx, eax
sar ecx, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or eax, ecx
mov ecx, eax
sar ecx, 4
or ecx, eax
mov edx, ecx
sar edx, 8
or edx, ecx
mov eax, edx
sar eax, 0x10
or eax, edx
mov dword [esi + 0x438], 7
inc eax
mov edx, dword [ebp + 8]
mov dword [edx + 0x20], eax
mov ecx, dword [edx + 0x1c]
movd xmm0, eax
movd xmm1, ecx
punpckldq xmm1, xmm0
cvtdq2ps xmm0, xmm1
movaps xmm1, xmmword [0x101a9790]
divps xmm1, xmm0
movlps qword [edx + 0x24], xmm1
imul eax, ecx
mov dword [esi + 0x438], 7
push eax
call fcn.100485a0
add esp, 4
mov edi, dword [ebp + 8]
mov dword [edi + 0x14], eax
mov ecx, dword [edi + 0x20]
imul ecx, dword [edi + 0x1c]
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, edi
add esp, 0xc
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x120], ecx
movd xmm0, dword [esi + 0x30]
pshuflw xmm0, xmm0, 0
movdqa xmmword [esi + 0x410], xmm0
xor ebx, ebx
movaps xmm0, xmmword [0x101a97e0]
movaps xmm2, xmmword [0x101b02b0]
mov edx, dword [esi + 0xc]
jmp 0x100664c3
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 0xd0]
mov dword [eax], 0
mov eax, dword [ebp + 8]
inc ebx
cmp ebx, dword [esi + 0x7c]
jge 0x100688b9
cmp dword [eax + 0x4c], ebx
jle 0x10068d1f
imul ecx, ebx, 0xc4
cmp dword [edx + ecx + 0xa8], 0
je 0x100664c2
mov eax, edx
add edx, ecx
mov dword [esi + 0x128], ecx
movss xmm3, dword [eax + ecx + 0x7c]
ucomiss xmm3, dword [0x101a9780]
mov dword [esi + 0x12c], ebx
mov dword [esi + 0x158], edx
jbe 0x10066550
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x1c]
movzx ecx, byte [eax + edx + 4]
shl ecx, 8
movzx edi, byte [eax + edx + 5]
movsx ecx, cx
or ecx, edi
movzx edi, byte [eax + edx + 6]
movzx eax, byte [eax + edx + 7]
shl edi, 8
movsx edx, di
mov edi, dword [esi + 0xc]
or edx, eax
sub ecx, edx
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
jmp 0x1006656e
mov edi, eax
xorps xmm3, xmm0
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0x14]
movzx eax, word [eax + ecx + 0x12]
rol ax, 8
movzx eax, ax
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm3, xmm0
movaps xmmword [esi + 0x1c0], xmm3
mov eax, dword [esi + 0x128]
mov ebx, eax
add eax, edi
add eax, 0x90
movzx eax, byte [eax]
mov edx, 1
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
sub edx, eax
xorps xmm0, xmm0
movss dword [esi + 0x154], xmm0
movss dword [esi + 0x150], xmm0
mov dword [esi + 0x50], eax
test eax, eax
je 0x100665ca
cvtsi2ss xmm4, edx
movaps xmm0, xmm3
addss xmm0, xmm3
divss xmm4, xmm0
movss dword [esi + 0x150], xmm4
movss dword [esi + 0x10c], xmm3
mov dword [esi + 0x194], edx
mov eax, dword [esi + 0xc]
add eax, ebx
add eax, 0x91
movzx eax, byte [eax]
movzx ecx, al
xorps xmm4, xmm4
cvtsi2ss xmm4, ecx
mov edx, 1
mov dword [esi + 0x80], ecx
sub edx, ecx
mov byte [esi + 0xef], al
test al, al
je 0x10066626
movaps xmm3, xmm4
xorps xmm4, xmm4
cvtsi2ss xmm4, edx
movaps xmm0, xmm3
addss xmm0, xmm3
divss xmm4, xmm0
movss dword [esi + 0x154], xmm4
movaps xmm4, xmm3
mov dword [esi + 0x190], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x54]
mov dword [esi + 0x18c], eax
mov eax, dword [esi + 0xc]
add eax, ebx
add eax, 0x88
mov dword [esi + 0x1b8], eax
mov eax, dword [eax]
test eax, eax
movaps xmm0, xmmword [0x101a97e0]
jle 0x100684d0
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + ebx + 0x94]
add ecx, ebx
add ecx, 0x8c
mov dword [esi + 0x1b4], ecx
movss xmm0, dword [0x101a8280]
movaps xmm1, xmm0
movss xmm3, dword [esi + 0x10c]
divss xmm1, xmm3
movss dword [esi + 0x1b0], xmm1
divss xmm0, xmm4
movss dword [esi + 0x1ac], xmm0
movaps xmm0, xmmword [esi + 0x1c0]
mulss xmm4, xmm0
movaps xmmword [esi + 0x1e0], xmm4
mulss xmm3, xmm0
movaps xmm0, xmm4
movss dword [esi + 0x10c], xmm3
minss xmm0, xmm3
movss xmm3, dword [0x101b0234]
divss xmm3, xmm0
movaps xmm0, xmmword [0x101a97e0]
mulss xmm3, xmm3
movss dword [esi + 0x164], xmm3
xorps xmm4, xmm0
movaps xmmword [esi + 0x400], xmm4
mov ecx, dword [esi + 0x50]
lea edi, [ecx*4]
mov ecx, 4
sub ecx, edi
mov dword [esi + 0x188], ecx
mov ecx, edx
mov ebx, dword [esi + 0x128]
xor edi, edi
mov dword [esi + 0x134], edx
jmp 0x10066840
movaps xmm2, xmmword [0x101b02b0]
mov edi, dword [esi + 0x100]
lea eax, [edi + edi*8]
lea eax, [eax + eax*2]
add eax, edi
mov edi, dword [esi + 0x1bc]
lea ecx, [edi + eax]
mov ebx, dword [esi + 0x2c]
movzx edx, word [ebx]
mov word [ecx], dx
movzx ecx, word [ebx + 2]
mov word [edi + eax + 2], cx
mov edx, dword [esi + 0x130]
movzx ecx, word [edx]
add cx, word [ebx]
mov word [edi + eax + 4], cx
movzx ecx, word [edx + 2]
add cx, word [ebx + 2]
mov word [edi + eax + 6], cx
movzx ecx, word [esi + 0x142]
rol cx, 8
movsx ecx, cx
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mulss xmm0, dword [esi + 0x1c0]
movss dword [edi + eax + 0x10], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x16c]
movss xmm5, dword [esi + 0x1b0]
mulss xmm0, xmm5
movss xmm4, dword [esi + 0x150]
addss xmm0, xmm4
movss dword [edi + eax + 8], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x168]
movss xmm6, dword [esi + 0x1ac]
mulss xmm0, xmm6
movss xmm3, dword [esi + 0x154]
addss xmm0, xmm3
movss dword [edi + eax + 0xc], xmm0
movzx ecx, word [edx]
add ecx, dword [esi + 0x16c]
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mulss xmm0, xmm5
addss xmm0, xmm4
movss dword [edi + eax + 0x14], xmm0
movzx ecx, word [edx + 2]
add ecx, dword [esi + 0x168]
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mulss xmm0, xmm6
addss xmm0, xmm3
movss dword [edi + eax + 0x18], xmm0
mov eax, dword [esi + 0x1b8]
mov eax, dword [eax]
movaps xmm0, xmmword [0x101a97e0]
mov ebx, dword [esi + 0x128]
mov ecx, dword [esi + 0x134]
mov edi, dword [esi + 0x100]
inc edi
cmp edi, eax
jge 0x100684d0
mov edx, edi
mov dword [esi + 0x100], edi
shl edi, 4
cmp dword [ecx + edi + 0xc], 0
je 0x10066831
cmp word [ecx + edi + 4], 0
je 0x10066831
cmp word [ecx + edi + 6], 0
je 0x10066831
mov edx, dword [esi + 0x1b4]
mov eax, dword [edx]
mov dword [esi + 0x1bc], eax
mov eax, dword [edx - 8]
test eax, eax
je 0x10066882
mov edx, dword [esi + 0x100]
mov edx, dword [eax + edx*4]
jmp 0x1006688b
mov edx, dword [edx - 0xc]
add edx, dword [esi + 0x100]
mov dword [esi + 0x438], 7
mov dword [esi + 0x15c], edi
lea ebx, [ecx + edi]
add ebx, 4
mov edi, dword [esi + 0x158]
mov ecx, edi
call fcn.10069230
mov edx, eax
movq xmm0, qword [ebx]
movdqa xmm1, xmm0
movdqa xmm2, xmmword [esi + 0x410]
psubw xmm1, xmm2
paddw xmm0, xmm2
pshufd xmm0, xmm0, 0x55
punpckldq xmm1, xmm0
movq qword [ebx], xmm1
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x1c]
movzx ecx, word [eax + ecx + 0x22]
rol cx, 8
movzx ecx, cx
mov dword [esi + 0x60], ecx
add eax, dword [edi + 0x20]
mov dword [esi + 0x10], edx
lea ecx, [edx*4]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x60]
cmp ecx, edx
lea ecx, [ecx*4 - 4]
cmovg ecx, dword [esi + 0x30]
movzx eax, word [ecx + eax]
mov word [esi + 0x142], ax
mov ecx, edi
mov edx, dword [esi + 0x10]
movss xmm0, dword [esi + 0x10c]
movaps xmm1, xmmword [esi + 0x1e0]
lea eax, [esi + 0x1d8]
push eax
lea eax, [esi + 0x1dc]
push eax
lea eax, [esi + 0x168]
push eax
lea eax, [esi + 0x16c]
push eax
call fcn.10069530
add esp, 0x10
movzx eax, word [ebx + 2]
mov dword [esi + 0x110], eax
mov dword [esi + 0x130], ebx
movzx eax, word [ebx]
mov dword [esi + 0x4c], eax
mov ecx, dword [esi + 0x15c]
mov edx, dword [esi + 0x134]
movzx eax, word [edx + ecx + 8]
mov dword [esi + 0x30], eax
movzx eax, word [edx + ecx + 0xa]
mov dword [esi + 0xe8], eax
mov ecx, edi
mov edx, dword [esi + 0x10]
lea eax, [esi + 0x118]
push eax
call fcn.1006d1f0
add esp, 4
mov dword [esi + 4], eax
mov eax, dword [esi + 0x80]
neg eax
mov ecx, dword [esi + 0x110]
lea edi, [ecx + eax]
inc edi
mov ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x10]
movd xmm0, dword [esi + 0x10c]
movdqa xmm1, xmmword [esi + 0x1e0]
push 0
push 0
lea eax, [esi + 0x104]
push eax
lea eax, [esi + 0x108]
push eax
call fcn.10069530
add esp, 0x10
mov dword [esi + 0xbc], edi
test edi, edi
je 0x10066eab
mov eax, dword [esi + 0x50]
neg eax
mov ecx, dword [esi + 0x4c]
add eax, ecx
inc eax
mov dword [esi + 0xb4], eax
test eax, eax
je 0x10066eab
mov eax, dword [esi + 0x104]
mov dword [esi + 0x144], eax
mov eax, dword [esi + 0x108]
mov dword [esi + 0x13c], eax
mov eax, dword [esi + 0x118]
mov dword [esi + 0xa0], eax
mov dword [esi + 0x1f8], 0
cmp dword [esi + 4], 0
jle 0x10066ea1
xor edi, edi
mov edx, 0
cmp dword [esi + 4], 8
jb 0x10066b17
mov edx, dword [esi + 4]
and edx, 0xfffffff8
mov eax, dword [esi + 0xa0]
lea ecx, [eax + 0x6e]
pxor xmm0, xmm0
mov dword [esi + 0x10], edx
pxor xmm1, xmm1
movdqa xmm4, xmmword [0x101b0240]
movdqa xmm5, xmmword [0x101b0250]
nop dword [eax + eax]
movzx ebx, byte [ecx - 0x62]
movzx eax, byte [ecx - 0x46]
movzx edi, byte [ecx - 0x38]
shl edi, 8
or edi, eax
movzx eax, byte [ecx - 0x54]
shl eax, 8
or eax, ebx
movd xmm2, eax
pinsrw xmm2, edi, 1
movzx ebx, byte [ecx - 0x2a]
movzx eax, byte [ecx - 0xe]
movzx edi, byte [ecx]
shl edi, 8
or edi, eax
movzx eax, byte [ecx - 0x1c]
shl eax, 8
or eax, ebx
movd xmm3, eax
pinsrw xmm3, edi, 1
pcmpeqb xmm2, xmm4
punpcklbw xmm2, xmm2
punpcklwd xmm2, xmm2
pand xmm2, xmm5
paddd xmm0, xmm2
pcmpeqb xmm3, xmm4
punpcklbw xmm3, xmm3
punpcklwd xmm3, xmm3
pand xmm3, xmm5
paddd xmm1, xmm3
add ecx, 0x70
add edx, 0xfffffff8
jne 0x10066a80
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd edi, xmm1
mov edx, dword [esi + 0x10]
cmp dword [esi + 4], edx
je 0x10066b40
mov ecx, dword [esi + 4]
sub ecx, edx
lea eax, [edx + edx]
shl edx, 4
sub edx, eax
mov eax, dword [esi + 0xa0]
add eax, edx
add eax, 0xc
nop
xor edx, edx
cmp byte [eax], 1
sete dl
add edi, edx
add eax, 0xe
dec ecx
jne 0x10066b30
mov eax, edi
mov dword [esi + 0x170], edi
test edi, edi
je 0x10066ea1
mov eax, dword [esi + 0x170]
lea eax, [eax*4]
mov dword [esi + 0x438], 7
push eax
call fcn.100485a0
add esp, 4
mov dword [esi + 0xc0], eax
cmp dword [esi + 0xc0], 0
je 0x10066ea1
mov ecx, dword [esi + 0x30]
add ecx, dword [esi + 0x120]
mov eax, dword [esi + 0xe8]
imul eax, dword [esi + 8]
add eax, ecx
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0x110]
sub eax, dword [esi + 0x80]
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0x4c]
sub eax, dword [esi + 0x50]
mov dword [esi + 0x11c], eax
xor eax, eax
mov cl, 1
xor edx, edx
mov dword [esi + 0x2c], 0
jmp 0x10066bf7
mov eax, dword [esi + 0x1f8]
mov edi, edx
mov edx, dword [esi + 0x30]
sub eax, edx
mov ecx, dword [esi + 0xc0]
mov dword [ecx + edi*4], eax
mov al, 1
test byte [esi + 0x60], 1
mov ecx, 0
je 0x10066e0f
mov dword [esi + 0x30], edx
mov dword [esi + 0x60], ecx
test al, 1
je 0x10066c2a
mov eax, dword [esi + 0x1f8]
shl eax, 3
mov dword [esi + 0x438], 7
push eax
call fcn.100485a0
add esp, 4
mov dword [esi + 0x2c], eax
cmp dword [esi + 0x2c], 0
je 0x10066e89
mov dword [esi + 0x1f8], 0
pxor xmm0, xmm0
mov edx, 0xffffffff
mov ebx, dword [esi + 4]
mov edi, dword [esi + 0xa0]
jmp 0x10066cde
movsx eax, word [edi + 2]
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
movsx eax, word [edi]
xorps xmm4, xmm4
cvtsi2ss xmm4, eax
movsx eax, word [edi + 6]
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
movsx eax, word [edi + 4]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
sub esp, 0x14
movss xmm6, dword [esi + 0x164]
movss dword [esp + 0xc], xmm6
movss dword [esp + 8], xmm3
movss dword [esp + 4], xmm4
movss dword [esp], xmm5
mov dword [esp + 0x10], 0
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x10], edx
lea edx, [esi + 0x1f8]
call fcn.1006e230
mov edx, dword [esi + 0x10]
add esp, 0x14
movd xmm0, dword [edi]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
add edi, 0xe
dec ebx
je 0x10066bd0
movzx eax, byte [edi + 0xc]
dec eax
cmp eax, 3
ja case.default.0x10066ce8
jmp dword [eax*4 + 0x101b0390]
test edx, edx
js 0x10066d05
mov eax, dword [esi + 0x1f8]
sub eax, dword [esi + 0x30]
mov ecx, dword [esi + 0xc0]
mov dword [ecx + edx*4], eax
mov ecx, dword [esi + 0x1f8]
lea eax, [ecx + 1]
movd xmm0, dword [edi]
mov dword [esi + 0x1f8], eax
inc edx
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
mov eax, dword [esi + 0x2c]
test eax, eax
mov dword [esi + 0x30], ecx
je case.default.0x10066ce8
movlps qword [eax + ecx*8], xmm0
jmp case.default.0x10066ce8
movsx eax, word [edi + 2]
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
movsx eax, word [edi]
xorps xmm4, xmm4
cvtsi2ss xmm4, eax
movsx eax, word [edi + 0xa]
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
movsx eax, word [edi + 8]
xorps xmm6, xmm6
cvtsi2ss xmm6, eax
movsx eax, word [edi + 6]
xorps xmm7, xmm7
cvtsi2ss xmm7, eax
movsx eax, word [edi + 4]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movdqa xmm1, xmm0
shufps xmm1, xmm0, 0x55
sub esp, 0x1c
movss dword [esp + 0x10], xmm3
movss dword [esp + 0xc], xmm4
movss dword [esp + 8], xmm5
movss dword [esp + 4], xmm6
movss dword [esp], xmm7
movss xmm3, dword [esi + 0x164]
movss dword [esp + 0x14], xmm3
mov dword [esp + 0x18], 0
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x10], edx
lea edx, [esi + 0x1f8]
call fcn.1006e4b0
mov edx, dword [esi + 0x10]
add esp, 0x1c
jmp 0x10066cc3
mov eax, dword [esi + 0x1f8]
lea ecx, [eax + 1]
movd xmm0, dword [edi]
pshuflw xmm0, xmm0, 0x60
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
mov dword [esi + 0x1f8], ecx
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je case.default.0x10066ce8
movlps qword [ecx + eax*8], xmm0
jmp case.default.0x10066ce8
cmp dword [esi + 0x2c], 0
je 0x10066eab
xor ecx, ecx
mov eax, 0
mov edi, dword [esi + 0x170]
cmp edi, 8
mov edx, dword [esi + 0xc0]
jb 0x10067680
mov eax, edi
and eax, 0xfffffff8
xorps xmm0, xmm0
xor ecx, ecx
pxor xmm1, xmm1
nop word cs:[eax + eax]
movdqu xmm2, xmmword [edx + ecx*4]
paddd xmm0, xmm2
movdqu xmm2, xmmword [edx + ecx*4 + 0x10]
paddd xmm1, xmm2
add ecx, 8
cmp eax, ecx
jne 0x10066e50
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd ecx, xmm1
jmp 0x10067684
push 0
call fcn.100485d0
add esp, 4
push dword [esi + 0xc0]
call fcn.100485d0
add esp, 4
mov dword [esi + 0x438], 7
mov eax, dword [esi + 0x118]
mov dword [esi + 0x438], 7
push eax
call fcn.100485d0
add esp, 4
mov eax, dword [esi + 0x134]
mov ecx, dword [esi + 0x15c]
add eax, ecx
add eax, 8
mov dword [esi + 0x2c], eax
mov ecx, dword [esi + 0x50]
cmp cl, 2
movaps xmm2, xmmword [0x101b02b0]
mov edi, dword [esi + 0x100]
jb 0x10067350
mov eax, dword [esi + 0x130]
movzx ebx, word [eax + 2]
movzx eax, word [eax]
mov dword [esi + 0x30], eax
mov edx, dword [esi + 0x2c]
movzx eax, word [edx]
movzx edx, word [edx + 2]
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0x30]
mov dword [esi + 0x1fc], 0
mov dword [esi + 0x1f8], 0
mov dword [esi + 0x24], ebx
test ebx, ebx
je 0x10067350
add eax, dword [esi + 0x120]
mov ebx, dword [esi + 0x10]
imul ebx, dword [esi + 8]
add ebx, eax
mov dword [esi + 0x10], ebx
mov eax, dword [esi + 0x194]
add eax, edx
mov dword [esi + 0x60], eax
and eax, 0xfffffffe
mov dword [esi + 0xa0], eax
xor eax, eax
jmp 0x10066f7f
add eax, dword [esi + 8]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xd0]
inc eax
cmp eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x50]
mov edi, dword [esi + 0x100]
je 0x10067350
mov dword [esi + 0xd0], eax
push ecx
push 0
lea eax, [esi + 0x1f8]
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esi + 0x50]
add esp, 0xc
movzx eax, dl
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x10066fa9
jmp dword [eax*4 + 0x101b03a0]
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101b02b0]
jb 0x100672f8
xor ecx, ecx
mov ebx, 0
cmp edx, dword [esi + 0x50]
mov eax, dword [esi + 0x10]
je 0x1006706b
xor ecx, ecx
xor edx, edx
mov dword [esi + 0x10], eax
nop word cs:[eax + eax]
mov eax, edx
and eax, 6
movzx eax, byte [esi + eax + 0x1f8]
mov dword [esi + 4], eax
lea ebx, [edx + 2]
mov edi, ebx
and edi, 6
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edx]
mov byte [esi + edi + 0x1f8], al
mov edi, eax
sub edi, dword [esi + 4]
add edi, ecx
mov eax, edi
shr eax, 1
mov ecx, dword [esi + 0x10]
mov byte [ecx + edx], al
lea eax, [edx + 1]
and eax, 7
movzx eax, byte [esi + eax + 0x1f8]
mov dword [esi + 4], eax
lea ecx, [edx + 3]
and ecx, 7
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edx + 1]
mov byte [esi + ecx + 0x1f8], al
mov ecx, eax
sub ecx, dword [esi + 4]
add ecx, edi
mov eax, ecx
shr eax, 1
mov edi, dword [esi + 0x10]
mov byte [edi + edx + 1], al
mov edi, dword [esi + 0xa0]
mov edx, ebx
cmp edi, ebx
jne 0x10066ff0
mov eax, dword [esi + 0x60]
mov edi, eax
test al, 1
mov edx, dword [esi + 0x30]
je 0x100672f8
mov eax, dword [esi + 0x10]
movzx edx, byte [eax + ebx]
mov eax, ebx
and eax, 7
movzx eax, byte [esi + eax + 0x1f8]
lea edi, [ebx + 2]
and edi, 7
mov byte [esi + edi + 0x1f8], dl
sub edx, eax
add ecx, edx
mov edx, dword [esi + 0x30]
mov eax, ecx
shr eax, 1
mov edi, dword [esi + 0x10]
mov byte [edi + ebx], al
mov edi, dword [esi + 0x60]
jmp 0x100672f8
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101b02b0]
jb 0x100672f8
xor ecx, ecx
mov eax, 0
cmp edx, dword [esi + 0x50]
mov edi, dword [esi + 0x10]
je 0x1006716d
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x10], edi
nop word cs:[eax + eax]
movzx edx, byte [edi + eax]
mov edi, eax
and edi, 6
movzx edi, byte [esi + edi + 0x1f8]
lea ebx, [eax + 4]
and ebx, 6
mov byte [esi + ebx + 0x1f8], dl
sub edx, edi
add edx, ecx
mov ecx, edx
shr ecx, 2
mov edi, dword [esi + 0x10]
mov byte [edi + eax], cl
lea edi, [eax + 1]
mov ecx, dword [esi + 0x10]
movzx ecx, byte [ecx + eax + 1]
and edi, 7
movzx edi, byte [esi + edi + 0x1f8]
lea ebx, [eax + 5]
and ebx, 7
mov byte [esi + ebx + 0x1f8], cl
sub ecx, edi
mov edi, dword [esi + 0x10]
add ecx, edx
mov edx, ecx
shr edx, 2
mov byte [edi + eax + 1], dl
mov edx, dword [esi + 0xa0]
add eax, 2
cmp edx, eax
jne 0x10067100
mov edx, dword [esi + 0x60]
mov edi, edx
test dl, 1
mov edx, dword [esi + 0x30]
je 0x100672f8
mov edx, dword [esi + 0x10]
movzx edx, byte [edx + eax]
mov edi, eax
and edi, 7
movzx edi, byte [esi + edi + 0x1f8]
lea ebx, [eax + 4]
and ebx, 7
mov byte [esi + ebx + 0x1f8], dl
sub edx, edi
add ecx, edx
mov edx, ecx
shr edx, 2
mov edi, dword [esi + 0x10]
mov byte [edi + eax], dl
mov edx, dword [esi + 0x30]
mov edi, dword [esi + 0x60]
jmp 0x100672f8
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101b02b0]
jb 0x100672f8
xor ecx, ecx
xor edi, edi
nop
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edi]
mov edx, edi
and edx, 7
movzx edx, byte [esi + edx + 0x1f8]
lea ebx, [edi + 5]
and ebx, 7
mov byte [esi + ebx + 0x1f8], al
mov ebx, dword [esi + 0x60]
sub eax, edx
add ecx, eax
mov eax, ecx
mov edx, 0xcccccccd
mul edx
shr edx, 2
mov eax, dword [esi + 0x10]
mov byte [eax + edi], dl
inc edi
cmp ebx, edi
jne 0x100671e0
jmp 0x100672f3
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101b02b0]
jb 0x100672f8
xor ecx, ecx
xor edi, edi
nop word cs:[eax + eax]
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edi]
mov edx, edi
and edx, 7
movzx edx, byte [esi + edx + 0x1f8]
lea ebx, [edi + 3]
and ebx, 7
mov byte [esi + ebx + 0x1f8], al
mov ebx, dword [esi + 0x60]
sub eax, edx
add ecx, eax
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
mov eax, dword [esi + 0x10]
mov byte [eax + edi], dl
inc edi
cmp ebx, edi
jne 0x10067250
jmp 0x100672f3
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101b02b0]
jb 0x100672f8
xor ecx, ecx
xor edi, edi
nop dword [eax + eax]
mov eax, dword [esi + 0x10]
movzx eax, byte [eax + edi]
mov dword [esi + 4], eax
mov edx, edi
and edx, 7
movzx edx, byte [esi + edx + 0x1f8]
mov eax, dword [esi + 0x50]
lea ebx, [eax + edi]
and ebx, 7
mov eax, dword [esi + 4]
mov byte [esi + ebx + 0x1f8], al
mov ebx, dword [esi + 0x60]
sub eax, edx
add ecx, eax
mov eax, ecx
xor edx, edx
div dword [esi + 0x50]
mov edx, dword [esi + 0x10]
mov byte [edx + edi], al
inc edi
cmp ebx, edi
jne 0x100672b0
mov edi, ebx
mov edx, dword [esi + 0x30]
cmp edi, edx
mov eax, dword [esi + 0x10]
jge 0x10066f60
nop word cs:[eax + eax]
cmp byte [eax + edi], 0
jne 0x10068d1f
mov eax, edi
and eax, 7
movzx eax, byte [esi + eax + 0x1f8]
sub ecx, eax
mov eax, ecx
xor edx, edx
div dword [esi + 0x50]
mov edx, dword [esi + 0x30]
mov ebx, dword [esi + 0x10]
mov byte [ebx + edi], al
mov eax, dword [esi + 0x10]
inc edi
cmp edx, edi
jne 0x10067310
jmp 0x10066f60
cmp byte [esi + 0xef], 2
jb 0x10066723
mov eax, dword [esi + 0x130]
movzx ecx, word [eax + 2]
mov dword [esi + 0x10], ecx
movzx edx, word [eax]
mov ecx, dword [esi + 0x2c]
movzx eax, word [ecx]
movzx ecx, word [ecx + 2]
mov dword [esi + 0x1fc], 0
mov dword [esi + 0x1f8], 0
mov dword [esi + 0x24], edx
test edx, edx
je 0x10066716
add eax, dword [esi + 0x120]
imul ecx, dword [esi + 8]
add ecx, eax
mov dword [esi + 0xa0], ecx
mov eax, dword [esi + 0x190]
mov ecx, dword [esi + 0x10]
add eax, ecx
mov dword [esi + 0x30], eax
xor ebx, ebx
jmp 0x100673d6
inc dword [esi + 0xa0]
mov ebx, dword [esi + 0xd0]
inc ebx
cmp ebx, dword [esi + 0x24]
je 0x10066716
mov edi, dword [esi + 0x80]
push edi
push 0
lea eax, [esi + 0x1f8]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [edi - 2]
cmp eax, 3
mov dword [esi + 0xd0], ebx
ja case.default.0x10067400
jmp dword [eax*4 + 0x101b03b0]
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067623
xor ecx, ecx
mov eax, dword [esi + 0xa0]
xor edx, edx
nop word [eax + eax]
movzx ebx, byte [eax]
mov edi, edx
and edi, 7
movzx edi, byte [esi + edi + 0x1f8]
mov dword [esi + 0x60], edi
lea edi, [edx + 2]
and edi, 7
mov byte [esi + edi + 0x1f8], bl
sub ebx, dword [esi + 0x60]
add ecx, ebx
mov ebx, ecx
shr ebx, 1
mov byte [eax], bl
inc edx
add eax, dword [esi + 8]
cmp dword [esi + 0x30], edx
jne 0x10067430
jmp 0x10067620
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067623
xor ecx, ecx
mov eax, dword [esi + 0xa0]
xor edx, edx
movzx ebx, byte [eax]
mov edi, edx
and edi, 7
movzx edi, byte [esi + edi + 0x1f8]
mov dword [esi + 0x60], edi
lea edi, [edx + 4]
and edi, 7
mov byte [esi + edi + 0x1f8], bl
sub ebx, dword [esi + 0x60]
add ecx, ebx
mov ebx, ecx
shr ebx, 2
mov byte [eax], bl
inc edx
add eax, dword [esi + 8]
cmp dword [esi + 0x30], edx
jne 0x10067490
jmp 0x10067620
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067623
xor ecx, ecx
mov eax, dword [esi + 0xa0]
xor edi, edi
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
movzx eax, byte [eax]
mov dword [esi + 0x60], eax
mov eax, edi
and eax, 7
movzx eax, byte [esi + eax + 0x1f8]
mov edx, dword [esi + 0x60]
sub edx, eax
add ecx, edx
mov eax, ecx
mov edx, 0xcccccccd
mul edx
lea eax, [edi + 5]
and eax, 7
mov ebx, dword [esi + 0x60]
mov byte [esi + eax + 0x1f8], bl
mov eax, dword [esi + 4]
shr edx, 2
mov byte [eax], dl
inc edi
add eax, dword [esi + 8]
cmp dword [esi + 0x30], edi
jne 0x100674f0
jmp 0x10067620
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067623
xor ecx, ecx
mov eax, dword [esi + 0xa0]
xor edi, edi
nop
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
movzx eax, byte [eax]
mov dword [esi + 0x60], eax
mov eax, edi
and eax, 7
movzx eax, byte [esi + eax + 0x1f8]
mov edx, dword [esi + 0x60]
sub edx, eax
add ecx, edx
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
lea eax, [edi + 3]
and eax, 7
mov ebx, dword [esi + 0x60]
mov byte [esi + eax + 0x1f8], bl
mov eax, dword [esi + 4]
shr edx, 1
mov byte [eax], dl
inc edi
add eax, dword [esi + 8]
cmp dword [esi + 0x30], edi
jne 0x10067560
jmp 0x10067620
xor ebx, ebx
mov ecx, 0
cmp dword [esi + 0x10], edi
jb 0x10067623
xor ecx, ecx
mov ebx, dword [esi + 0xa0]
xor edi, edi
nop word cs:[eax + eax]
movzx eax, byte [ebx]
mov dword [esi + 4], eax
mov edx, edi
and edx, 7
movzx edx, byte [esi + edx + 0x1f8]
mov dword [esi + 0x60], edx
mov eax, dword [esi + 0x80]
lea edx, [eax + edi]
and edx, 7
mov eax, dword [esi + 4]
mov byte [esi + edx + 0x1f8], al
sub eax, dword [esi + 0x60]
add ecx, eax
mov eax, ecx
xor edx, edx
div dword [esi + 0x80]
mov byte [ebx], al
inc edi
add ebx, dword [esi + 8]
cmp dword [esi + 0x30], edi
jne 0x100675d0
nop word cs:[eax + eax]
mov ebx, dword [esi + 0x30]
cmp ebx, dword [esi + 0x10]
jge 0x100673c0
mov edi, dword [esi + 8]
imul edi, ebx
add edi, dword [esi + 0xa0]
nop dword [eax + eax]
cmp byte [edi], 0
jne 0x10068d1f
mov eax, ebx
and eax, 7
movzx eax, byte [esi + eax + 0x1f8]
sub ecx, eax
mov eax, ecx
xor edx, edx
div dword [esi + 0x80]
mov byte [edi], al
inc ebx
add edi, dword [esi + 8]
cmp dword [esi + 0x10], ebx
jne 0x10067640
jmp 0x100673c0
add ecx, dword [edx + eax*4]
inc eax
cmp edi, eax
jne 0x10067680
lea eax, [ecx + ecx*4]
lea eax, [eax*4 + 0x14]
mov dword [esi + 0x438], 7
push eax
call fcn.100485a0
add esp, 4
mov dword [esi + 0x94], eax
cmp dword [esi + 0x94], 0
je 0x100684a9
mov eax, dword [esi + 0x2c]
add eax, 4
mov dword [esi + 0x114], eax
mov dword [esi + 4], 0
xor ecx, ecx
xor edx, edx
movss xmm2, dword [esi + 0x10c]
movaps xmm3, xmmword [esi + 0x400]
jmp 0x100676f9
mov edx, dword [esi + 0x28]
add edx, dword [esi + 0x98]
mov ecx, dword [esi + 0x20]
inc ecx
cmp ecx, dword [esi + 0x170]
je 0x10067833
mov eax, dword [esi + 0xc0]
mov dword [esi + 0x20], ecx
mov ebx, dword [eax + ecx*4]
test ebx, ebx
mov dword [esi + 0x28], edx
mov dword [esi + 0x98], ebx
jle 0x100676e0
mov eax, dword [esi + 0x2c]
lea eax, [eax + edx*8]
mov dword [esi + 0x30], eax
lea edi, [ebx - 1]
mov eax, dword [esi + 0x114]
lea eax, [eax + edx*8]
mov dword [esi + 0x60], eax
xor edx, edx
jmp 0x100677d7
mov ecx, ebx
mov ebx, dword [esi + 0x10]
lea edx, [ecx + ebx*4]
add edx, 0x10
mov dword [edx], 1
mov dword [esi + 0xa0], edi
mov edi, eax
lea ecx, [ecx + ebx*4]
mov dword [esi + 0xd0], ecx
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0xa0]
movss xmm0, dword [edx + ecx*8]
mulss xmm0, xmm2
pxor xmm1, xmm1
addss xmm0, xmm1
mov ebx, dword [esi + 0xd0]
movss dword [ebx], xmm0
movss xmm0, dword [edx + ecx*8 + 4]
mulss xmm0, xmm3
addss xmm0, xmm1
mov ecx, dword [esi + 0x94]
mov ebx, dword [esi + 0x10]
movss dword [ecx + ebx*4 + 4], xmm0
movss xmm0, dword [edx + edi*8]
mulss xmm0, xmm2
addss xmm0, xmm1
movss dword [ecx + ebx*4 + 8], xmm0
movss xmm0, dword [edx + edi*8 + 4]
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [ecx + ebx*4 + 0xc], xmm0
inc dword [esi + 4]
mov ecx, dword [esi + 0xc0]
mov edx, dword [esi + 0x20]
mov ebx, dword [ecx + edx*4]
lea edx, [eax + 1]
mov edi, eax
cmp edx, ebx
jge 0x100676e0
mov eax, edx
mov edx, dword [esi + 0x30]
movss xmm0, dword [edx + edi*8 + 4]
mov ecx, dword [esi + 0x60]
ucomiss xmm0, dword [ecx + eax*8]
jne 0x100677ed
jnp 0x100677ca
mov ebx, dword [esi + 4]
mov dword [esi + 0x24], eax
lea eax, [ebx + ebx*4]
mov dword [esi + 0x10], eax
mov ebx, dword [esi + 0x94]
mov eax, dword [esi + 0x10]
mov dword [ebx + eax*4 + 0x10], 0
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x94]
movss xmm0, dword [edx + edi*8 + 4]
ucomiss xmm0, dword [ecx + eax*8]
ja 0x10067731
mov ecx, ebx
mov dword [esi + 0xa0], eax
mov ebx, dword [esi + 0x10]
jmp 0x1006774a
mov ecx, dword [esi + 0x94]
mov ebx, dword [esi + 4]
mov edx, ebx
call fcn.1006e880
cmp ebx, 2
mov dword [esi + 4], ebx
jl 0x10067907
mov eax, 1
mov edi, dword [esi + 0x94]
jmp 0x1006786f
inc eax
mov edi, dword [esi + 0x10]
add edi, 0x14
cmp eax, ebx
je 0x10067907
lea edx, [eax + eax*4]
mov ecx, dword [esi + 0x94]
movsd xmm0, qword [ecx + edx*4]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
mov ebx, edi
mov edi, dword [ecx + edx*4 + 0x10]
mov dword [esi + 0x200], edi
movsd xmm2, qword [ecx + edx*4 + 8]
movsd qword [esi + 0x1f8], xmm2
mov dword [esi + 0x10], ebx
mov edi, ebx
mov edx, eax
nop word cs:[eax + eax]
movss xmm2, dword [edi + 4]
ucomiss xmm2, xmm1
jbe 0x100678d6
lea ebx, [edx - 1]
mov ecx, dword [edi + 0x10]
mov dword [edi + 0x24], ecx
movups xmm2, xmmword [edi]
movups xmmword [edi + 0x14], xmm2
add edi, 0xffffffec
cmp edx, 1
mov edx, ebx
jg 0x100678b0
xor edx, edx
mov ebx, dword [esi + 4]
cmp eax, edx
je 0x10067860
lea ecx, [edx + edx*4]
mov edi, dword [esi + 0x94]
movlps qword [edi + ecx*4], xmm0
movsd xmm0, qword [esi + 0x1f8]
movsd qword [edi + ecx*4 + 8], xmm0
mov edx, dword [esi + 0x200]
mov dword [edi + ecx*4 + 0x10], edx
jmp 0x10067860
mov dword [esi + 0x9c], 0
lea eax, [esi + 0x1f8]
mov dword [esi + 0x28], eax
cmp dword [esi + 0x11c], 0x40
mov ecx, dword [esi + 0xb4]
jl 0x1006794f
lea eax, [ecx*8 + 4]
mov dword [esi + 0x438], 7
push eax
call fcn.100485a0
add esp, 4
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0xb4]
mov ebx, dword [esi + 4]
mov edx, dword [esi + 0x144]
mov eax, dword [esi + 0xbc]
add eax, edx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
addss xmm0, dword [0x101a8280]
lea eax, [ebx + ebx*4]
mov edi, dword [esi + 0x94]
movss dword [edi + eax*4 + 4], xmm0
cmp dword [esi + 0x110], 0x7ffffffe
ja 0x1006847b
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0x13c]
movss dword [esi + 0x13c], xmm0
mov edi, dword [esi + 0x28]
lea eax, [edi + ecx*4]
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
movss dword [esi + 0x114], xmm0
mov dword [esi + 0x138], eax
add eax, 4
mov dword [esi + 0x148], eax
lea eax, [ecx*4]
mov dword [esi + 0x1a0], eax
mov eax, dword [esi + 0x188]
mov ebx, dword [esi + 0x4c]
lea eax, [eax + ebx*4]
add eax, edi
mov dword [esi + 0x198], eax
lea eax, [ecx*4 + 4]
mov dword [esi + 0x19c], eax
xor edi, edi
mov eax, dword [esi + 0x94]
mov dword [esi + 0x14c], eax
mov dword [esi + 0x124], 0
mov dword [esi + 0x160], 0
mov dword [esi + 0xbc], 0
mov dword [esi + 0xfc], 0
jmp 0x10067a61
mov edx, dword [esi + 0x1a4]
inc edx
mov eax, dword [esi + 0xe8]
add eax, dword [esi + 8]
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0x124]
cmp eax, dword [esi + 0x110]
lea eax, [eax + 1]
mov dword [esi + 0x124], eax
je 0x10068448
mov dword [esi + 0x1a4], edx
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [esi + 0x4c], xmm0
addss xmm0, dword [0x101a8280]
movss dword [esi + 0x20], xmm0
push dword [esi + 0x1a0]
push 0
push dword [esi + 0x28]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push dword [esi + 0x19c]
push 0
push dword [esi + 0x138]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
test edi, edi
je 0x10067b00
lea eax, [esi + 0x9c]
movss xmm6, dword [esi + 0x4c]
jmp 0x10067ac8
mov eax, edi
mov edi, dword [eax]
test edi, edi
je 0x10067b05
ucomiss xmm6, dword [edi + 0x18]
jb 0x10067ac0
mov ecx, dword [edi]
mov dword [eax], ecx
movss xmm0, dword [edi + 0x10]
ucomiss xmm0, dword [0x101a9780]
jne 0x10067ae6
jnp 0x10068d1f
mov dword [edi + 0x10], 0
mov ecx, dword [esi + 0xbc]
mov dword [edi], ecx
mov dword [esi + 0xbc], edi
jmp 0x10067ac2
movss xmm6, dword [esi + 0x4c]
mov ecx, dword [esi + 0x14c]
movss xmm0, dword [ecx + 4]
movss xmm1, dword [esi + 0x20]
ucomiss xmm1, xmm0
jae 0x10068290
mov dword [esi + 0x14c], ecx
mov ebx, dword [esi + 0x9c]
jmp 0x10067b32
mov ebx, dword [ebx]
test ebx, ebx
mov edx, dword [esi + 0xe8]
je 0x100681d0
movss xmm0, dword [ebx + 0x18]
ucomiss xmm0, xmm6
jb 0x10068d1f
movss xmm7, dword [ebx + 4]
movss xmm4, dword [ebx + 8]
ucomiss xmm4, dword [0x101a9780]
jne 0x10067bb0
jp 0x10067bb0
movss xmm0, dword [esi + 0x114]
ucomiss xmm0, xmm7
jbe 0x10067b30
ucomiss xmm7, dword [0x101a9780]
jae 0x10067f52
sub esp, 8
movss xmm0, dword [esi + 0x20]
movss dword [esp + 4], xmm0
mov dword [esp], ebx
mov ecx, dword [esi + 0x138]
xor edx, edx
movaps xmm0, xmm7
movaps xmm1, xmm6
movaps xmm2, xmm7
jmp 0x10067fad
movss xmm1, dword [ebx + 0x14]
movss xmm2, dword [esi + 0x20]
ucomiss xmm2, xmm1
jb 0x10068d1f
movaps xmm3, xmm4
addss xmm3, xmm7
movaps xmm2, xmm1
subss xmm2, xmm6
movss dword [esi + 0x98], xmm4
mulss xmm2, xmm4
addss xmm2, xmm7
movaps xmm5, xmm6
cmpltss xmm5, xmm1
andps xmm2, xmm5
andnps xmm5, xmm7
orps xmm5, xmm2
ucomiss xmm5, dword [0x101a9780]
mov dword [esi + 0x10], ebx
jb 0x10067ce0
movaps xmm2, xmm0
subss xmm2, xmm6
mulss xmm2, dword [esi + 0x98]
addss xmm2, xmm7
movaps xmm4, xmm0
cmpltss xmm4, dword [esi + 0x20]
andps xmm2, xmm4
andnps xmm4, xmm3
orps xmm4, xmm2
ucomiss xmm4, dword [0x101a9780]
jb 0x10067ce0
movss xmm2, dword [esi + 0x114]
ucomiss xmm2, xmm5
jbe 0x10067ce0
movss xmm2, dword [esi + 0x114]
ucomiss xmm2, xmm4
jbe 0x10067ce0
maxss xmm1, xmm6
cvttss2si edx, xmm5
minss xmm0, dword [esi + 0x20]
cvttss2si ebx, xmm4
cmp edx, ebx
jne 0x10067fc1
test edx, edx
js 0x10068d1f
cmp dword [esi + 0x11c], edx
jl 0x10068d1f
xorps xmm2, xmm2
cvtsi2ss xmm2, edx
subss xmm5, xmm2
subss xmm4, xmm2
addss xmm4, xmm5
mulss xmm4, dword [0x101a9d94]
addss xmm4, dword [0x101a8280]
mov ebx, dword [esi + 0x10]
mulss xmm4, dword [ebx + 0x10]
subss xmm0, xmm1
mulss xmm4, xmm0
mov eax, dword [esi + 0x28]
addss xmm4, dword [eax + edx*4]
movss dword [eax + edx*4], xmm4
mulss xmm0, dword [ebx + 0x10]
mov eax, dword [esi + 0x148]
addss xmm0, dword [eax + edx*4]
movss dword [eax + edx*4], xmm0
mov ebx, dword [ebx]
jmp 0x10067b32
cmp dword [esi + 0x11c], 0x7ffffffe
movss xmm0, dword [esi + 0x98]
ja 0x10067b30
xor eax, eax
movaps xmmword [esi + 0x170], xmm7
movaps xmmword [esi + 0xd0], xmm3
nop dword [eax + eax]
mov edi, eax
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
inc eax
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
movaps xmm4, xmm5
subss xmm4, xmm7
divss xmm4, xmm0
addss xmm4, xmm6
movaps xmm1, xmm2
subss xmm1, xmm7
divss xmm1, xmm0
addss xmm1, xmm6
ucomiss xmm5, xmm7
mov dword [esi + 0x24], eax
movss dword [esi + 0x30], xmm4
movss dword [esi + 0x60], xmm5
jbe 0x10067df0
ucomiss xmm3, xmm2
jbe 0x10067df0
sub esp, 8
movss dword [esp + 4], xmm4
mov dword [esp], ebx
mov ebx, dword [esi + 0x28]
mov ecx, ebx
mov edx, edi
movaps xmm0, xmm7
movss dword [esi + 4], xmm1
movaps xmm1, xmm6
movss dword [esi + 0xa0], xmm2
movaps xmm2, xmm5
call fcn.1006ea50
movss xmm0, dword [esi + 4]
movss dword [esp + 4], xmm0
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov ecx, ebx
mov edx, edi
movss xmm0, dword [esi + 0x60]
movss xmm1, dword [esi + 0x30]
movss xmm2, dword [esi + 0xa0]
call fcn.1006ea50
movss xmm0, dword [esi + 0x20]
movss dword [esp + 4], xmm0
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov ecx, ebx
mov ebx, dword [esi + 0x10]
mov edx, edi
movss xmm0, dword [esi + 0xa0]
movss xmm1, dword [esi + 4]
jmp 0x10067eaf
ucomiss xmm5, xmm3
jbe 0x10067e50
ucomiss xmm7, xmm2
jbe 0x10067e50
sub esp, 8
movss dword [esp + 4], xmm1
mov dword [esp], ebx
mov ebx, dword [esi + 0x28]
mov ecx, ebx
mov edx, edi
movaps xmm0, xmm7
movss dword [esi + 4], xmm1
movaps xmm1, xmm6
movss dword [esi + 0xa0], xmm2
call fcn.1006ea50
movss xmm0, dword [esi + 0x30]
movss dword [esp + 4], xmm0
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov ecx, ebx
mov edx, edi
movss xmm0, dword [esi + 0xa0]
movss xmm1, dword [esi + 4]
movss xmm2, dword [esi + 0x60]
jmp 0x10067e88
ucomiss xmm5, xmm7
jbe 0x10067e5a
ucomiss xmm3, xmm5
ja 0x10067e6c
ucomiss xmm5, xmm3
jbe 0x10067eef
ucomiss xmm7, xmm5
jbe 0x10067eef
sub esp, 8
movss dword [esp + 4], xmm4
mov dword [esp], ebx
mov ebx, dword [esi + 0x28]
mov ecx, ebx
mov edx, edi
movaps xmm0, xmm7
movaps xmm1, xmm6
movaps xmm2, xmm5
call fcn.1006ea50
movss xmm0, dword [esi + 0x20]
movss dword [esp + 4], xmm0
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov ecx, ebx
mov ebx, dword [esi + 0x10]
mov edx, edi
movss xmm0, dword [esi + 0x60]
movss xmm1, dword [esi + 0x30]
movaps xmm2, xmmword [esi + 0xd0]
call fcn.1006ea50
add esp, 8
mov edi, dword [esi + 0xb4]
mov eax, dword [esi + 0x24]
cmp edi, eax
movss xmm6, dword [esi + 0x4c]
movaps xmm7, xmmword [esi + 0x170]
movaps xmm3, xmmword [esi + 0xd0]
movss xmm0, dword [esi + 0x98]
jne 0x10067d10
jmp 0x10067b30
ucomiss xmm2, xmm7
jbe 0x10067ef9
ucomiss xmm3, xmm2
ja 0x10067f03
ucomiss xmm2, xmm3
jbe 0x10067f2e
ucomiss xmm7, xmm2
jbe 0x10067f2e
sub esp, 8
movss dword [esp + 4], xmm1
mov dword [esp], ebx
mov ebx, dword [esi + 0x28]
mov ecx, ebx
mov edx, edi
movaps xmm0, xmm7
movss dword [esi + 4], xmm1
movaps xmm1, xmm6
movss dword [esi + 0xa0], xmm2
jmp 0x10067db3
sub esp, 8
movss xmm0, dword [esi + 0x20]
movss dword [esp + 4], xmm0
mov dword [esp], ebx
mov ecx, dword [esi + 0x28]
mov edx, edi
movaps xmm0, xmm7
movaps xmm1, xmm6
movaps xmm2, xmm3
jmp 0x10067eb6
cvttss2si edi, xmm7
sub esp, 8
movss xmm0, dword [esi + 0x20]
movss dword [esp + 4], xmm0
mov dword [esp], ebx
mov ecx, dword [esi + 0x28]
mov edx, edi
movaps xmm0, xmm7
movaps xmm1, xmm6
movaps xmm2, xmm7
movaps xmmword [esi + 0x170], xmm7
call fcn.1006ea50
add esp, 8
inc edi
sub esp, 8
movss xmm0, dword [esi + 0x20]
movss dword [esp + 4], xmm0
mov dword [esp], ebx
mov ecx, dword [esi + 0x138]
mov edx, edi
movaps xmm0, xmmword [esi + 0x170]
movss xmm1, dword [esi + 0x4c]
movaps xmm2, xmm0
call fcn.1006ea50
movss xmm6, dword [esi + 0x4c]
add esp, 8
mov ebx, dword [ebx]
jmp 0x10067b32
mov eax, dword [esi + 0x10]
movss xmm2, dword [eax + 0xc]
ucomiss xmm5, xmm4
jbe 0x1006800b
subss xmm1, xmm6
movaps xmm7, xmm2
movss xmm2, dword [esi + 0x20]
movaps xmmword [esi + 0xd0], xmm3
movaps xmm3, xmm2
subss xmm3, xmm1
subss xmm0, xmm6
movaps xmm1, xmm2
subss xmm1, xmm0
xorps xmm7, xmmword [0x101a97e0]
mov eax, edx
movaps xmm0, xmm3
movaps xmm3, xmm5
movaps xmm5, xmmword [esi + 0xd0]
jmp 0x1006801b
mov eax, ebx
mov ebx, edx
movaps xmm3, xmm4
movaps xmm4, xmm5
movaps xmm5, xmm7
movaps xmm7, xmm2
movaps xmmword [esi + 0x30], xmm7
lea edx, [ebx + 1]
xorps xmm2, xmm2
cvtsi2ss xmm2, edx
subss xmm2, xmm5
mulss xmm2, xmm7
xorps xmm5, xmm5
cvtsi2ss xmm5, ebx
addss xmm2, xmm6
mov ecx, dword [esi + 0x10]
movss xmm7, dword [ecx + 0x10]
subss xmm4, xmm5
movss dword [esi + 4], xmm2
movaps xmm6, xmm2
subss xmm6, xmm1
mulss xmm6, xmm7
movaps xmm5, xmmword [esi + 0x30]
movss xmm2, dword [0x101a8280]
addss xmm4, xmm2
mulss xmm4, dword [0x101a9d94]
addss xmm4, xmm2
mulss xmm4, xmm6
mov ecx, dword [esi + 0x28]
addss xmm4, dword [ecx + ebx*4]
movss dword [ecx + ebx*4], xmm4
mov edi, eax
sub edi, edx
movss dword [esi + 0x60], xmm7
jle 0x10068125
mov dword [esi + 0xd0], edi
movaps xmm4, xmm5
mulss xmm4, xmm7
movaps xmm2, xmm4
mulss xmm2, dword [0x101a82c0]
mov ecx, ebx
not ecx
add ecx, eax
lea edi, [eax - 2]
mov dword [esi + 0xa0], edi
test cl, 1
je 0x100680dd
movaps xmm5, xmm2
addss xmm5, xmm6
mov ecx, dword [esi + 0x28]
addss xmm5, dword [ecx + ebx*4 + 4]
movss dword [ecx + ebx*4 + 4], xmm5
addss xmm6, xmm4
lea edx, [ebx + 2]
cmp dword [esi + 0xa0], ebx
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 0xd0]
je 0x10068128
nop
movaps xmm5, xmm2
addss xmm5, xmm6
addss xmm5, dword [ecx + edx*4]
movss dword [ecx + edx*4], xmm5
addss xmm6, xmm4
movaps xmm5, xmm2
addss xmm5, xmm6
addss xmm5, dword [ecx + edx*4 + 4]
movss dword [ecx + edx*4 + 4], xmm5
addss xmm6, xmm4
add edx, 2
cmp eax, edx
jne 0x100680f0
jmp 0x10068128
mov ecx, dword [esi + 0x28]
movaps xmm2, xmm6
andps xmm2, xmmword [0x101a97c0]
movss xmm4, dword [0x101b0260]
ucomiss xmm4, xmm2
mov ebx, dword [esi + 0x10]
jb 0x10068d1f
xorps xmm2, xmm2
cvtsi2ss xmm2, edi
movaps xmm4, xmmword [esi + 0x30]
mulss xmm4, xmm2
addss xmm4, dword [esi + 4]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
subss xmm3, xmm2
movaps xmm2, xmm0
subss xmm2, xmm4
addss xmm3, dword [0x101a9780]
mulss xmm3, dword [0x101a9d94]
addss xmm3, dword [0x101a8280]
movss xmm4, dword [esi + 0x60]
mulss xmm3, xmm4
mulss xmm2, xmm3
addss xmm2, xmm6
addss xmm2, dword [ecx + eax*4]
movss dword [ecx + eax*4], xmm2
subss xmm0, xmm1
mulss xmm0, xmm4
mov ecx, dword [esi + 0x148]
addss xmm0, dword [ecx + eax*4]
movss dword [ecx + eax*4], xmm0
movss xmm6, dword [esi + 0x4c]
mov ebx, dword [ebx]
jmp 0x10067b32
cmp dword [esi + 0x11c], 0x7ffffffe
movss xmm2, dword [0x101a82c0]
movaps xmm3, xmmword [0x101a97c0]
movss xmm4, dword [0x101a8294]
mov ecx, dword [esi + 0x28]
mov ebx, dword [esi + 0x198]
ja 0x10068254
xor eax, eax
xorps xmm0, xmm0
mov dword [esi + 0x28], ecx
nop word cs:[eax + eax]
addss xmm0, dword [ebx + eax*4]
movss xmm1, dword [ecx + eax*4]
addss xmm1, xmm0
andps xmm1, xmm3
mulss xmm1, xmm4
addss xmm1, xmm2
cvttss2si ecx, xmm1
cmp ecx, 0xff
mov edi, edx
mov edx, ebx
mov ebx, 0xff
cmovge ecx, ebx
mov ebx, edx
mov edx, edi
mov edi, dword [esi + 0xb4]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x28]
inc eax
cmp edi, eax
jne 0x10068210
mov dword [esi + 0xe8], edx
mov edi, dword [esi + 0x9c]
test edi, edi
je 0x10067a30
mov ecx, edi
lea eax, [esi + 0x9c]
movss xmm0, dword [ecx + 8]
addss xmm0, dword [ecx + 4]
movss dword [ecx + 4], xmm0
mov eax, dword [eax]
mov ecx, dword [eax]
test ecx, ecx
jne 0x10068270
jmp 0x10067a30
cmp dword [esi + 0x144], 0
setne al
cmp dword [esi + 0x124], 0
sete dl
and dl, al
mov byte [esi + 0x30], dl
lea eax, [ecx + 4]
mov dword [esi + 0x10], eax
mov edx, ecx
mov eax, dword [esi + 0xbc]
jmp 0x100682e4
mov dword [esi + 0xbc], eax
lea ecx, [edx + 0x14]
movss xmm0, dword [edx + 0x18]
add edx, 0x18
movss xmm1, dword [esi + 0x20]
ucomiss xmm1, xmm0
mov dword [esi + 0x10], edx
mov edx, ecx
jb 0x10067b1e
movss xmm1, dword [edx + 0xc]
ucomiss xmm0, xmm1
jne 0x100682f0
jnp 0x100682c0
test eax, eax
je 0x10068310
mov ecx, dword [eax]
mov dword [esi + 0xbc], ecx
jmp 0x10068390
mov eax, dword [esi + 0x160]
test eax, eax
mov dword [esi + 0x60], edx
je 0x10068326
dec eax
mov ecx, dword [esi + 0xfc]
jmp 0x10068368
mov dword [esi + 0x438], 7
push 0xdac4
call fcn.100485a0
add esp, 4
test eax, eax
movss xmm6, dword [esi + 0x4c]
mov edx, dword [esi + 0x60]
je 0x10068d1f
mov ecx, dword [esi + 0xfc]
mov dword [eax], ecx
movss xmm1, dword [edx + 0xc]
mov ecx, dword [esi + 0x10]
movss xmm0, dword [ecx]
mov ecx, eax
mov eax, 0x7cf
mov edx, eax
lea eax, [eax + eax*8]
lea eax, [eax + eax*2]
mov dword [esi + 0x160], edx
add eax, edx
mov dword [esi + 0xfc], ecx
add eax, ecx
add eax, 4
mov dword [esi + 0xbc], 0
mov edx, dword [esi + 0x60]
subss xmm1, xmm0
movss xmm0, dword [edx + 8]
subss xmm0, dword [edx]
divss xmm0, xmm1
movss dword [eax + 8], xmm0
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jne 0x100683b0
jnp 0x100683bc
movss xmm1, dword [0x101a8280]
divss xmm1, xmm0
movss dword [eax + 0xc], xmm1
movaps xmm1, xmm6
mov ebx, dword [esi + 0x10]
subss xmm1, dword [ebx]
mulss xmm0, xmm1
addss xmm0, dword [edx]
subss xmm0, dword [esi + 0x13c]
movss dword [eax + 4], xmm0
xor ecx, ecx
cmp dword [edx + 0x10], 0
sete cl
movss xmm0, dword [ecx*4 + 0x101a99b0]
movss dword [eax + 0x10], xmm0
movss xmm0, dword [ebx]
movss dword [eax + 0x14], xmm0
movss xmm0, dword [edx + 0xc]
movss dword [eax + 0x18], xmm0
mov dword [eax], 0
ucomiss xmm6, xmm0
seta cl
and cl, byte [esi + 0x30]
cmp cl, 1
jne 0x10068426
movss dword [eax + 0x18], xmm6
movaps xmm0, xmm6
ucomiss xmm0, xmm6
jb 0x10068d1f
mov ecx, dword [esi + 0x9c]
mov dword [eax], ecx
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xbc]
jmp 0x100682c6
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x1006847b
mov dword [esi + 0x438], 7
nop dword [eax]
mov ecx, dword [eax]
mov dword [esi + 0xfc], ecx
push eax
call fcn.100485d0
add esp, 4
mov eax, dword [esi + 0xfc]
test eax, eax
jne 0x10068460
mov dword [esi + 0x438], 7
lea eax, [esi + 0x1f8]
cmp dword [esi + 0x28], eax
je 0x1006849b
push dword [esi + 0x28]
call fcn.100485d0
add esp, 4
push dword [esi + 0x94]
call fcn.100485d0
add esp, 4
push dword [esi + 0xc0]
call fcn.100485d0
add esp, 4
push dword [esi + 0x2c]
call fcn.100485d0
add esp, 4
jmp 0x10066eab
mov edx, dword [esi + 0xc]
lea eax, [edx + ebx]
add eax, 0x94
mov dword [esi + 0xd0], eax
mov edi, ebx
mov ebx, dword [esi + 0x12c]
imul eax, ebx, 0x74
mov ecx, dword [esi + 0x18c]
movss xmm3, dword [ecx + eax + 0x44]
movaps xmmword [esi + 0x60], xmm3
ucomiss xmm3, dword [0x101a8280]
jne 0x1006850b
jnp 0x100664b3
lea eax, [edx + edi]
add eax, 0xa8
mov dword [esi + 0xa0], eax
movaps xmm3, xmmword [esi + 0x60]
shufps xmm3, xmm3, 0
movaps xmmword [esi + 0x60], xmm3
xor edx, edx
movaps xmm6, xmmword [0x101b02a0]
movaps xmm3, xmmword [0x101b0290]
movaps xmm1, xmmword [str._b_t_n_v]
movaps xmmword [esi + 0x10], xmm1
movaps xmm7, xmmword [0x101b0270]
nop word [eax + eax]
movaps xmmword [esi + 0x30], xmm7
movaps xmmword [esi + 0x50], xmm3
movaps xmmword [esi + 0x80], xmm6
movaps xmm3, xmmword [esi + 0x50]
andps xmm3, xmm2
movaps xmm4, xmmword [0x101b02c0]
orps xmm3, xmm4
movdqa xmm5, xmmword [esi + 0x50]
psrld xmm5, 0x10
movdqa xmm1, xmmword [0x101b02d0]
por xmm5, xmm1
movaps xmm1, xmmword [0x101b02e0]
subps xmm5, xmm1
addps xmm5, xmm3
movaps xmm3, xmm6
andps xmm3, xmm2
orps xmm3, xmm4
movdqa xmm6, xmmword [esi + 0x80]
psrld xmm6, 0x10
movdqa xmm0, xmmword [0x101b02d0]
por xmm6, xmm0
subps xmm6, xmm1
addps xmm6, xmm3
movaps xmm3, xmm7
andps xmm3, xmm2
orps xmm3, xmm4
movdqa xmm7, xmmword [esi + 0x30]
psrld xmm7, 0x10
por xmm7, xmm0
subps xmm7, xmm1
addps xmm7, xmm3
movaps xmm3, xmmword [esi + 0x10]
movaps xmm0, xmm3
movaps xmmword [esi + 0x10], xmm3
andps xmm0, xmm2
orps xmm0, xmm4
psrld xmm3, 0x10
por xmm3, xmmword [0x101b02d0]
subps xmm3, xmm1
addps xmm3, xmm0
movaps xmm0, xmmword [esi + 0x60]
mulps xmm3, xmm0
mulps xmm7, xmm0
mulps xmm6, xmm0
mulps xmm5, xmm0
cvttps2dq xmm2, xmm5
movdqa xmm0, xmm2
psrad xmm0, 0x1f
movaps xmm1, xmmword [0x101b02f0]
subps xmm5, xmm1
cvttps2dq xmm5, xmm5
pand xmm5, xmm0
por xmm5, xmm2
cvttps2dq xmm0, xmm6
movdqa xmm2, xmm0
psrad xmm2, 0x1f
subps xmm6, xmm1
cvttps2dq xmm6, xmm6
pand xmm6, xmm2
por xmm6, xmm0
cvttps2dq xmm0, xmm7
movdqa xmm2, xmm0
psrad xmm2, 0x1f
subps xmm7, xmm1
cvttps2dq xmm7, xmm7
pand xmm7, xmm2
por xmm7, xmm0
cvttps2dq xmm0, xmm3
movdqa xmm2, xmm0
psrad xmm2, 0x1f
subps xmm3, xmm1
cvttps2dq xmm1, xmm3
pand xmm1, xmm2
por xmm1, xmm0
movdqa xmm0, xmm1
movdqa xmm2, xmmword [0x101a97e0]
pxor xmm0, xmm2
movdqa xmm4, xmmword [0x101b0300]
movdqa xmm3, xmm4
pcmpgtd xmm3, xmm0
pand xmm1, xmm3
movdqa xmm2, xmmword [0x101b0310]
pandn xmm3, xmm2
por xmm3, xmm1
movdqa xmm0, xmm7
pxor xmm0, xmmword [0x101a97e0]
movdqa xmm1, xmm4
pcmpgtd xmm1, xmm0
pand xmm7, xmm1
pandn xmm1, xmm2
por xmm1, xmm7
packuswb xmm3, xmm1
movdqa xmm0, xmm6
movdqa xmm1, xmmword [0x101a97e0]
pxor xmm0, xmm1
movdqa xmm7, xmm4
pcmpgtd xmm7, xmm0
pand xmm6, xmm7
pandn xmm7, xmm2
por xmm7, xmm6
movdqa xmm6, xmmword [esi + 0x80]
movdqa xmm0, xmm5
pxor xmm0, xmm1
pcmpgtd xmm4, xmm0
pand xmm5, xmm4
pandn xmm4, xmm2
movaps xmm2, xmmword [0x101b02b0]
por xmm4, xmm5
packuswb xmm7, xmm4
packuswb xmm7, xmm3
movdqa xmm3, xmmword [esi + 0x50]
movdqu xmmword [esi + edx + 0x1f8], xmm7
movdqa xmm7, xmmword [esi + 0x30]
add edx, 0x10
movdqa xmm0, xmmword [0x101b0320]
paddd xmm6, xmm0
paddd xmm3, xmm0
movdqa xmm1, xmmword [esi + 0x10]
paddd xmm1, xmm0
movdqa xmmword [esi + 0x10], xmm1
paddd xmm7, xmm0
cmp edx, 0x100
jne 0x10068550
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
test eax, eax
mov ebx, dword [esi + 0x12c]
movaps xmm0, xmmword [0x101a97e0]
jle 0x100664b0
mov ecx, dword [esi + 0xd0]
mov ecx, dword [ecx]
xor edx, edx
jmp 0x100687c0
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
mov ebx, dword [esi + 0x12c]
mov ecx, dword [esi + 0x60]
mov edx, dword [esi + 4]
inc edx
add ecx, 0x10
cmp edx, eax
jge 0x100664b0
cmp dword [ecx + 0xc], 0
je 0x100687b4
movzx edi, word [ecx + 6]
mov dword [esi + 0x10], edi
test edi, edi
je 0x100687b4
mov dword [esi + 4], edx
mov eax, dword [esi + 0x1a8]
mov edx, dword [eax]
movzx ebx, word [ecx + 4]
movzx eax, word [ecx + 8]
mov dword [esi + 0x60], ecx
movzx edi, word [ecx + 0xa]
mov ecx, dword [ebp + 8]
add eax, dword [ecx + 0x14]
mov dword [esi + 0x80], edx
imul edi, edx
add edi, eax
mov word [esi + 0x50], bx
movzx eax, bx
mov edx, eax
and edx, 3
and eax, 0xfffffffc
mov dword [esi + 0x30], eax
jmp 0x10068828
mov ecx, dword [esi + 0x10]
lea eax, [ecx - 1]
add edi, dword [esi + 0x80]
cmp ecx, 1
mov dword [esi + 0x10], eax
jle 0x100687a0
cmp word [esi + 0x50], 0
je 0x10068810
xor ecx, ecx
cmp word [esi + 0x50], 4
mov ebx, dword [esi + 0x30]
jb 0x10068889
xor ecx, ecx
nop dword [eax]
movzx eax, byte [edi + ecx]
movzx eax, byte [esi + eax + 0x1f8]
mov byte [edi + ecx], al
movzx eax, byte [edi + ecx + 1]
movzx eax, byte [esi + eax + 0x1f8]
mov byte [edi + ecx + 1], al
movzx eax, byte [edi + ecx + 2]
movzx eax, byte [esi + eax + 0x1f8]
mov byte [edi + ecx + 2], al
movzx eax, byte [edi + ecx + 3]
movzx eax, byte [esi + eax + 0x1f8]
mov byte [edi + ecx + 3], al
add ecx, 4
cmp ebx, ecx
jne 0x10068840
test edx, edx
je 0x10068810
add ecx, edi
xor ebx, ebx
nop word cs:[eax + eax]
movzx eax, byte [ecx + ebx]
movzx eax, byte [esi + eax + 0x1f8]
mov byte [ecx + ebx], al
inc ebx
cmp edx, ebx
jne 0x100688a0
jmp 0x10068810
mov dword [esi + 0x438], 7
push dword [esi + 0xe4]
call fcn.100485d0
add esp, 4
push dword [esi + 0xb8]
call fcn.100485d0
add esp, 4
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x10068910
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf0], 0
push eax
call fcn.100485d0
add esp, 4
mov dword [esi + 0xf8], 0
xor ebx, ebx
mov eax, dword [esi + 0xc]
jmp 0x10068921
inc ebx
cmp ebx, dword [esi + 0x7c]
jge 0x10068c42
imul edx, ebx, 0xc4
cmp dword [eax + edx + 0xa8], 0
je 0x10068920
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4c], ebx
jle 0x10068d1f
mov dword [esi + 0x50], edx
add eax, edx
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0x1c]
movzx eax, byte [ecx + edx + 4]
shl eax, 8
movzx edi, byte [ecx + edx + 5]
cwde
or eax, edi
movzx edi, byte [ecx + edx + 6]
movzx edx, byte [ecx + edx + 7]
shl edi, 8
movsx ecx, di
or ecx, edx
imul edx, ebx, 0x74
mov dword [esi + 0x10], edx
movss xmm0, dword [0x101a97b0]
test ax, ax
jle 0x1006898e
movss xmm0, dword [0x101a8280]
mov dword [esi + 4], ebx
mov edi, eax
sub edi, ecx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x54]
mov ebx, dword [esi + 0x10]
mov dword [esi + 8], edx
add edx, ebx
movss xmm1, dword [0x101a97b0]
test cx, cx
jle 0x100689b8
movss xmm1, dword [0x101a8280]
xorps xmm2, xmm2
cvtsi2ss xmm2, edi
xorps xmm3, xmm3
cvtsi2ss xmm3, eax
mov eax, dword [esi + 8]
movss xmm4, dword [eax + ebx + 0x10]
divss xmm4, xmm2
mulss xmm3, xmm4
addss xmm3, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
mov eax, dword [eax + ebx + 0x70]
cvttps2dq xmm2, xmm3
cvtdq2ps xmm2, xmm2
mulss xmm0, xmm4
addss xmm0, xmm1
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
mov dword [esi + 0x438], 7
sub esp, 0x14
mov dword [esp + 8], edx
mov dword [esi + 0x60], eax
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
movss dword [esp + 0x10], xmm0
movss dword [esp + 0xc], xmm2
call fcn.10069fe0
add esp, 0x14
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x50]
lea edi, [eax + ecx]
add edi, 0xa8
mov edx, dword [esi + 8]
mov ebx, dword [esi + 0x10]
movss xmm0, dword [edx + ebx + 0x28]
movss dword [esi + 0x80], xmm0
mov ecx, dword [esi + 0x60]
movss xmm0, dword [ecx + 0x48]
addss xmm0, dword [0x101a82c0]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm0, xmm0
addss xmm0, dword [edx + ebx + 0x2c]
movaps xmmword [esi + 0xa0], xmm0
lea ecx, [edx + ebx]
add ecx, 0x38
mov dword [esi + 0x30], ecx
xor edx, edx
mov dword [esi + 0xd0], edi
nop word cs:[eax + eax]
cmp edx, dword [edi]
mov ebx, dword [esi + 4]
jge 0x10068920
cmp dword [edi + 0x10], edx
jle 0x10068d1f
mov eax, dword [edi - 0x10]
lea ecx, [edx + edx*8]
lea ecx, [ecx + ecx*2]
mov ebx, edx
add ecx, edx
movss xmm2, dword [eax + ecx + 0x10]
mov edx, dword [esi + 0x30]
movss xmm1, dword [edx]
movss xmm3, dword [edx - 4]
minss xmm1, xmm2
movaps xmm6, xmm2
cmpltss xmm6, xmm3
movaps xmm4, xmm6
andnps xmm4, xmm1
andps xmm6, xmm3
orps xmm6, xmm4
ucomiss xmm2, xmm6
movss xmm3, dword [esi + 0x80]
jne 0x10068aea
jnp 0x10068b11
mov edx, dword [esi + 0x30]
cmp byte [edx - 0x1c], 0
movaps xmm3, xmm6
subss xmm3, xmm2
mulss xmm3, dword [0x101a82c0]
je 0x10068b09
cvttps2dq xmm1, xmm3
cvtdq2ps xmm3, xmm1
addss xmm3, dword [esi + 0x80]
movzx edx, word [eax + ecx]
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movzx edx, word [eax + ecx + 2]
xorps xmm1, xmm1
cvtsi2ss xmm1, edx
movss dword [esi + 0x10], xmm1
movzx edx, word [eax + ecx + 4]
xorps xmm1, xmm1
cvtsi2ss xmm1, edx
movss dword [esi + 0x50], xmm1
movzx edx, word [eax + ecx + 6]
xorps xmm2, xmm2
cvtsi2ss xmm2, edx
mov edx, dword [ebp + 8]
cvtsi2ss xmm5, dword [edx + 0x20]
movss xmm1, dword [0x101a8280]
movaps xmm7, xmm1
divss xmm7, xmm5
xorps xmm5, xmm5
cvtsi2ss xmm5, dword [edx + 0x1c]
divss xmm1, xmm5
movss xmm5, dword [eax + ecx + 8]
xorps xmm4, xmm4
addss xmm5, xmm4
mulss xmm0, xmm1
movss dword [esi + 8], xmm0
movss xmm4, dword [esi + 0x50]
mulss xmm4, xmm1
movss xmm1, dword [eax + ecx + 0xc]
movss xmm0, dword [esi + 0x10]
mulss xmm0, xmm7
movss dword [esi + 0x10], xmm0
mulss xmm2, xmm7
movss xmm7, dword [eax + ecx + 0x14]
xorps xmm0, xmm0
addss xmm7, xmm0
addss xmm7, xmm3
addss xmm5, xmm3
movss xmm3, dword [eax + ecx + 0x18]
mov eax, dword [edi + 0x18]
mov dword [esi + 0x50], ebx
mov eax, dword [eax + ebx*4]
addss xmm1, xmm0
addss xmm3, xmm0
movaps xmm0, xmmword [esi + 0xa0]
addss xmm3, xmm0
addss xmm1, xmm0
sub esp, 0x28
movss dword [esp + 0x24], xmm6
movss dword [esp + 0x20], xmm2
movss dword [esp + 0x1c], xmm4
movss xmm0, dword [esi + 0x10]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esi + 8]
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x10], xmm3
movss dword [esp + 0xc], xmm7
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm5
movzx eax, ax
mov dword [esp], eax
mov ecx, dword [esi + 0x60]
call fcn.1006a0d0
mov edx, dword [esi + 0x50]
inc edx
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0xd0]
jmp 0x10068a90
cmp dword [esi + 0x7c], 0
jle 0x10068c99
lea ecx, [eax + 0xc0]
jmp 0x10068c5b
add ecx, 0xc4
dec dword [esi + 0x7c]
je 0x10068c99
mov eax, dword [ecx]
test eax, eax
mov dword [esi + 0x10], ecx
je 0x10068c7a
mov dword [esi + 0x438], 0
push eax
call fcn.100485d0
mov ecx, dword [esi + 0x10]
add esp, 4
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x10068c50
mov dword [esi + 0x438], 1
push eax
call fcn.100485d0
mov ecx, dword [esi + 0x10]
add esp, 4
jmp 0x10068c50
mov dword [esi + 0x438], 7
push dword [ebp + 8]
call fcn.1006a260
add esp, 4
mov eax, dword [esi + 0xcc]
test eax, eax
je 0x10068ccb
mov dword [esi + 0x438], 2
push eax
call fcn.100485d0
add esp, 4
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x10068ce8
mov dword [esi + 0x438], 3
push eax
call fcn.100485d0
add esp, 4
mov al, 1
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10068d0a
mov dword [esi + 0x438], 5
push ebx
mov dword [esi + 0x10], eax
call fcn.100485d0
mov eax, dword [esi + 0x10]
add esp, 4
mov ecx, dword [esi + 0x430]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
nop word [eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x43c]
mov ebp, dword [esi + 0x428]
call sub.VCRUNTIME140.dll___std_terminate
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x43c]
mov ebp, dword [esi + 0x428]
call sub.VCRUNTIME140.dll___std_terminate
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x43c]
mov ebp, dword [esi + 0x428]
call sub.VCRUNTIME140.dll___std_terminate
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x43c]
mov ebp, dword [esi + 0x428]
call sub.VCRUNTIME140.dll___std_terminate
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x43c]
mov ebp, dword [esi + 0x428]
call sub.VCRUNTIME140.dll___std_terminate
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x43c]
mov ebp, dword [esi + 0x428]
call sub.VCRUNTIME140.dll___std_terminate
nop word cs:[eax + eax]
push ebp
sub esp, 0x28
lea esi, [ebp - 0x43c]
mov ebp, dword [esi + 0x428]
lea ecx, [esi + 0xc4]
call fcn.1005f200
lea ecx, [esi + 0xf0]
call fcn.1005f200
mov dword [esi + 0x74], 0
mov eax, dword [esi + 0xc]
mov dword [esi + 0x78], eax
add esp, 0x28
pop ebp
ret