Function at 0x10064800
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports
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], 0x1006eaf0
mov ecx, dword fs:[0]
mov dword [esi + 0x430], ecx
mov dword fs:[0], eax
cmp dword [edx + 0x4c], 0
jle 0x10068c4f
push edx
call fcn.10069010
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 0x10068c4f
mov eax, dword [eax + 0x14]
test eax, eax
je 0x10064898
push eax
call fcn.10048500
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x100648ab
push eax
call fcn.10048500
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 0x1006490e
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.100484d0
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 0x1006495a
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.100484d0
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 0x10065575
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 0x100649f0
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 0x10065575
cmp ecx, edx
je 0x10068c4f
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 0x10068c4f
mov eax, dword [eax + 0x38]
test eax, eax
je 0x10064a23
cmp eax, dword [ebp + 8]
jne 0x10068c4f
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 0x10068c4f
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 0x10064ab0
inc edi
cmp edi, eax
jge 0x10068c4f
cmp edx, ecx
jne 0x10064a90
jmp 0x10068c4f
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 0x10064af0
test ecx, ecx
je 0x10064b30
cmp ecx, 0x31
jne 0x10068c4f
cmp byte [ebx + 1], 0
je 0x10064b3a
jmp 0x10068c4f
cmp ecx, 0x4f
je 0x10064b50
cmp ecx, 0x74
jne 0x10068c4f
movzx ecx, byte [ebx + 1]
cmp ecx, 0x72
je 0x10064b6f
cmp ecx, 0x74
je 0x10065503
cmp ecx, 0x79
jne 0x10068c4f
cmp byte [ebx + 2], 0x70
jne 0x10068c4f
cmp byte [ebx + 3], 0x31
je 0x10064b90
jmp 0x10068c4f
cmp byte [ebx + 1], 1
jne 0x10068c4f
cmp byte [ebx + 2], 0
jne 0x10068c4f
cmp byte [ebx + 3], 0
je 0x10064b90
jmp 0x10068c4f
cmp byte [ebx + 1], 0x54
jne 0x10068c4f
cmp byte [ebx + 2], 0x54
jne 0x10068c4f
cmp byte [ebx + 3], 0x4f
je 0x10064b90
jmp 0x10068c4f
cmp byte [ebx + 2], 0x75
jne 0x10068c4f
cmp byte [ebx + 3], 0x65
jne 0x10068c4f
nop word cs:[eax + eax]
neg eax
mov edi, 0
sbb edi, edi
test edi, edi
js 0x10068c4f
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 0x10064c95
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 0x10064c17
add ebx, 0x10
cmp edx, ebx
je 0x10064c50
cmp byte [ecx + ebx - 0xb], 0x63
jne 0x10064c10
cmp byte [ecx + ebx - 0xa], 0x6d
jne 0x10064c10
cmp byte [ecx + ebx - 9], 0x61
jne 0x10064c10
cmp byte [ecx + ebx - 8], 0x70
jne 0x10064c10
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 0x10064c66
mov dword [esi + 8], 0
mov edi, dword [esi + 0x80]
jmp 0x10064c66
add ecx, 0x10
dec eax
je 0x10064c90
cmp byte [ecx - 0xb], 0x6c
jne 0x10064c60
cmp byte [ecx - 0xa], 0x6f
jne 0x10064c60
cmp byte [ecx - 9], 0x63
jne 0x10064c60
cmp byte [ecx - 8], 0x61
jne 0x10064c60
mov ecx, dword [ecx - 3]
bswap ecx
jmp 0x10064c92
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 0x10064d17
lea ecx, [ebx + edi]
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x10064cd7
add edx, 0x10
cmp eax, edx
je 0x10064d10
cmp byte [ecx + edx - 0xb], 0x68
jne 0x10064cd0
cmp byte [ecx + edx - 0xa], 0x65
jne 0x10064cd0
cmp byte [ecx + edx - 9], 0x61
jne 0x10064cd0
cmp byte [ecx + edx - 8], 0x64
jne 0x10064cd0
lea eax, [ebx + edi]
mov eax, dword [edx + eax + 0x14]
bswap eax
mov dword [esi + 0x30], eax
jmp 0x10064d17
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 0x10064d92
lea ecx, [ebx + edi]
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x10064d67
add edx, 0x10
cmp eax, edx
je 0x10064d90
cmp byte [ecx + edx - 0xb], 0x67
jne 0x10064d60
cmp byte [ecx + edx - 0xa], 0x6c
jne 0x10064d60
cmp byte [ecx + edx - 9], 0x79
jne 0x10064d60
cmp byte [ecx + edx - 8], 0x66
jne 0x10064d60
lea eax, [ebx + edi]
mov ecx, dword [edx + eax + 0x14]
bswap ecx
jmp 0x10064d92
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 0x10064e07
lea ecx, [ebx + edi]
add ecx, 0x17
shl edx, 4
shl eax, 0xc
or eax, edx
xor edx, edx
jmp 0x10064dc7
add edx, 0x10
cmp eax, edx
je 0x10064e00
cmp byte [ecx + edx - 0xb], 0x68
jne 0x10064dc0
cmp byte [ecx + edx - 0xa], 0x68
jne 0x10064dc0
cmp byte [ecx + edx - 9], 0x65
jne 0x10064dc0
cmp byte [ecx + edx - 8], 0x61
jne 0x10064dc0
lea eax, [ebx + edi]
mov eax, dword [edx + eax + 0x14]
bswap eax
mov dword [esi + 0x60], eax
jmp 0x10064e07
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 0x10064e95
mov eax, dword [esi + 0x80]
add eax, edx
add eax, 0x17
shl ebx, 4
shl ecx, 0xc
or ecx, ebx
xor ebx, ebx
jmp 0x10064e57
add ebx, 0x10
cmp ecx, ebx
je 0x10064e90
cmp byte [eax + ebx - 0xb], 0x68
jne 0x10064e50
cmp byte [eax + ebx - 0xa], 0x6d
jne 0x10064e50
cmp byte [eax + ebx - 9], 0x74
jne 0x10064e50
cmp byte [eax + ebx - 8], 0x78
jne 0x10064e50
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x80]
add eax, edx
mov eax, dword [ebx + eax + 0x14]
bswap eax
jmp 0x10064e95
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 0x10064f05
mov eax, dword [esi + 0x80]
add edx, eax
add edx, 0x17
shl ebx, 4
shl ecx, 0xc
or ecx, ebx
xor ebx, ebx
jmp 0x10064ed7
add ebx, 0x10
cmp ecx, ebx
je 0x10064f00
cmp byte [edx + ebx - 0xb], 0x6b
jne 0x10064ed0
cmp byte [edx + ebx - 0xa], 0x65
jne 0x10064ed0
cmp byte [edx + ebx - 9], 0x72
jne 0x10064ed0
cmp byte [edx + ebx - 8], 0x6e
jne 0x10064ed0
mov edx, dword [esi + 0x50]
add eax, edx
mov edi, dword [ebx + eax + 0x14]
bswap edi
jmp 0x10064f05
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 0x10064f70
add edx, edi
add edx, 0x17
shl ebx, 4
shl ecx, 0xc
or ecx, ebx
xor ebx, ebx
jmp 0x10064f47
add ebx, 0x10
cmp ecx, ebx
je 0x10064f70
cmp byte [edx + ebx - 0xb], 0x47
jne 0x10064f40
cmp byte [edx + ebx - 0xa], 0x50
jne 0x10064f40
cmp byte [edx + ebx - 9], 0x4f
jne 0x10064f40
cmp byte [edx + ebx - 8], 0x53
jne 0x10064f40
mov eax, dword [esi + 0x50]
add eax, edi
mov ecx, dword [ebx + eax + 0x14]
bswap ecx
jmp 0x10064f72
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov dword [eax + 0x28], ecx
cmp dword [esi + 8], 0
mov ebx, dword [esi + 0xc]
je 0x10065550
cmp dword [esi + 0x30], 0
je 0x10065550
cmp dword [esi + 0x60], 0
je 0x10065550
cmp dword [esi + 0x20], 0
je 0x10065550
cmp dword [esi + 0x28], 0
je 0x10065060
cmp dword [esi + 0xb4], 0
je 0x10065550
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 0x100653d0
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 0x1006500b
add eax, 0x10
cmp ecx, eax
je 0x100653c0
cmp byte [edx + eax - 0xb], 0x6d
jne 0x10065000
cmp byte [edx + eax - 0xa], 0x61
jne 0x10065000
cmp byte [edx + eax - 9], 0x78
jne 0x10065000
cmp byte [edx + eax - 8], 0x70
jne 0x10065000
add edi, dword [esi + 0x50]
mov eax, dword [eax + edi + 0x14]
bswap eax
test eax, eax
mov edx, 0xffff
je 0x100653d3
mov ecx, dword [esi + 0x50]
movzx eax, word [ecx + eax + 4]
rol ax, 8
movzx edx, ax
jmp 0x100653d3
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 0x10065550
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 0x100650cb
add eax, 0x10
cmp ecx, eax
je 0x10065550
cmp byte [edx + eax - 0xb], 0x43
jne 0x100650c0
cmp byte [edx + eax - 0xa], 0x46
jne 0x100650c0
cmp byte [edx + eax - 9], 0x46
jne 0x100650c0
cmp byte [edx + eax - 8], 0x20
jne 0x100650c0
mov ecx, dword [esi + 0x50]
add ecx, edi
mov eax, dword [eax + ecx + 0x14]
bswap eax
test eax, eax
je 0x10065550
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 0x10068c4f
add ecx, 2
cmp eax, ecx
jl 0x10068c4f
xor edx, edx
cmp ecx, eax
jge 0x10065165
mov edx, dword [esi + 0x1f8]
movzx edx, byte [edx + ecx]
cmp eax, edx
jl 0x10068c4f
mov dword [esi + 0x1fc], edx
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b5c0
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b5c0
mov edx, dword [esi + 0xc4]
lea ecx, [esi + 0xf0]
push 0
push dword [esi + 0xcc]
call fcn.1006b770
add esp, 8
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b5c0
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b5c0
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.1006b920
add esp, 8
lea ecx, [esi + 0xf0]
mov edx, 0x106
lea eax, [esi + 0x9c]
push eax
push 1
call fcn.1006b920
add esp, 8
lea ecx, [esi + 0xf0]
mov edx, 0x124
lea eax, [esi + 0x104]
push eax
push 1
call fcn.1006b920
add esp, 8
lea ecx, [esi + 0xf0]
mov edx, 0x125
lea eax, [esi + 0x118]
push eax
push 1
call fcn.1006b920
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.1006bb00
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 0x10065550
mov ecx, dword [esi + 0x108]
test ecx, ecx
je 0x10065550
mov eax, dword [esi + 0x104]
test eax, eax
je 0x1006536a
mov edx, dword [esi + 0x118]
test edx, edx
je 0x10065550
mov dword [esi + 0x20], edx
mov dword [esi + 0x60], ecx
test eax, eax
js 0x10068c4f
cmp dword [esi + 0x30], eax
jl 0x10068c4f
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.1006b5c0
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 0x10068c4f
cmp dword [esi + 0x30], ecx
jl 0x10068c4f
mov dword [esi + 0x1fc], ecx
lea ecx, [esi + 0xc4]
lea edx, [esi + 0x1f8]
call fcn.1006b5c0
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 0x10064fba
mov edx, 0xffff
jmp 0x100653d3
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 0x10065550
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 0x10065424
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 0x10065460
movzx ebx, word [ecx + edi*8 - 7]
rol bx, 8
test bx, bx
je 0x10065410
movzx ebx, bx
cmp ebx, 3
jne 0x1006541f
movzx ebx, word [ecx + edi*8 - 5]
rol bx, 8
cmp bx, 0xa
je 0x10065410
movzx ebx, bx
cmp ebx, 1
je 0x10065410
jmp 0x1006541f
test edx, edx
mov ebx, dword [esi + 0xc]
je 0x10065550
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 0x10068c4f
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0xa0]
mov ecx, dword [ecx + edx + 0x30]
test ecx, ecx
mov edx, 0x101a90d0
cmove ecx, edx
mov edx, dword [esi + 0xd0]
mov dword [ebx + edx + 0x9c], ecx
cmp word [ecx], 0
je 0x100649b0
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 0x100649b0
mov ebx, dword [edx]
cmp ebx, edi
cmovg edi, ebx
mov dword [edx], edi
cmp word [ecx], 0
lea ecx, [ecx + 4]
jne 0x100654e0
jmp 0x100649b0
cmp byte [ebx + 2], 0x63
jne 0x10068c4f
cmp byte [ebx + 3], 0x66
jne 0x10068c4f
mov ecx, dword [ebx + 4]
bswap ecx
cmp ecx, 0x20000
je 0x10065530
cmp ecx, 0x10000
jne 0x10068c4f
mov ecx, dword [ebx + 8]
bswap ecx
cmp ecx, eax
jle 0x10068c4f
mov edi, dword [ebx + eax*4 + 0xc]
bswap edi
test edi, edi
jns 0x10064ba1
jmp 0x10068c4f
mov eax, dword [esi + 0x24]
test eax, eax
je 0x10065ca2
mov dword [esi + 0x438], 4
push eax
call fcn.10048500
add esp, 4
xor eax, eax
jmp 0x10068c1a
add eax, 0x1c
mov dword [esi + 0x1a8], eax
xor ecx, ecx
mov dword [esi + 0x20], 0
jmp 0x10065597
mov ecx, dword [esi + 0xa0]
inc ecx
cmp ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x98]
jge 0x1006589e
imul edi, ecx, 0xc4
mov edx, dword [ebx + edi + 0xa0]
cmp eax, edx
jle 0x10068c4f
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 0x1006568c
test edi, edi
je 0x100655ff
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
add eax, edi
jmp 0x10065604
mov eax, 8
cmp eax, edx
cmovle eax, edx
cmp edi, eax
jge 0x1006568c
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.100484d0
mov ebx, dword [esi + 0xc]
add esp, 4
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx + 8]
test edx, edx
je 0x1006567d
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.10048500
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 0x100657a1
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 0x1006578b
test eax, eax
mov dword [esi + 0x50], eax
je 0x100656f7
mov eax, dword [esi + 0x50]
shr eax, 0x1f
add eax, dword [esi + 0x50]
sar eax, 1
add eax, dword [esi + 0x50]
jmp 0x100656fc
mov eax, 8
cmp eax, ecx
cmovle eax, ecx
cmp dword [esi + 0x50], eax
jge 0x1006578b
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.100484d0
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 0x10065779
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.10048500
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 0x10065590
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 0x10065803
movzx eax, word [edi + 4]
add edi, 4
test ax, ax
mov ebx, dword [esi + 0xc]
je 0x10065590
movzx ecx, word [edi + 2]
test cx, cx
je 0x10065590
cmp ax, cx
ja 0x100657f0
movzx ecx, ax
mov dword [esi + 0x50], edi
jmp 0x10065836
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 0x100657f0
mov ebx, ecx
shr ebx, 5
cmp dword [edx], ebx
jle 0x10068c4f
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 0x10065823
mov ecx, dword [esi + 0x80]
call fcn.10069160
test eax, eax
je 0x10065820
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 0x10068c4f
mov eax, dword [eax + 8]
or dword [eax + ebx*4], edi
cmp dword [ecx], ebx
jle 0x10068c4f
mov eax, dword [ecx + 8]
or dword [eax + ebx*4], edi
inc dword [esi + 0x20]
jmp 0x10065820
xor edi, edi
jmp 0x100658cf
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 0x10068c4f
cmp edi, dword [esi + 0x7c]
jge 0x10065b5e
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 0x10065992
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.100484d0
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 0x10065981
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.10048500
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 0x10065b0c
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 0x100659ec
add eax, 4
cmp eax, dword [esi + 0x28]
jae 0x10065b00
mov edi, dword [eax]
mov dword [esi + 0x50], edi
test edi, edi
je 0x100659e0
mov edi, eax
sub edi, edx
shl edi, 3
mov dword [esi + 0x60], edi
xor edi, edi
mov dword [esi + 0x30], eax
jmp 0x10065a40
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 0x100659e0
mov dword [esi + 0x10], edi
mov edi, dword [esi + 0x50]
mov ebx, dword [esi + 0x10]
bt edi, ebx
mov edi, dword [esi + 0x10]
jae 0x10065a3a
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
jne 0x10065a19
lea edx, [eax + 1]
test eax, eax
je 0x10065a6f
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
add ecx, eax
jmp 0x10065a74
mov ecx, 8
cmp ecx, edx
cmovg edx, ecx
cmp eax, edx
jge 0x10065a19
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.100484d0
add esp, 4
mov edi, dword [esi + 0x80]
mov edx, dword [edi]
test edx, edx
je 0x10065a06
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.10048500
mov eax, dword [esi + 0x2c]
mov edi, dword [esi + 0x80]
add esp, 4
jmp 0x10065a06
mov eax, dword [esi + 0xb4]
mov edx, dword [eax + 8]
mov edi, dword [esi + 0x4c]
test edx, edx
je 0x100658b0
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.10048500
add esp, 4
mov eax, dword [esi + 0xb4]
mov dword [eax + 8], 0
mov edi, dword [esi + 0x4c]
mov ecx, dword [esi + 4]
jmp 0x100658b0
xor edx, edx
jmp 0x10065b84
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 0x10065bd0
lea ecx, [edx + edx*2]
mov eax, dword [eax + ecx*8 + 0x14]
test eax, eax
je 0x10065b7d
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.10048500
mov ebx, dword [esi + 0xc]
add esp, 4
jmp 0x10065b70
test eax, eax
je 0x10065bf3
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.10048500
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 0x10065cb1
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.100484d0
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.100484d0
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 0x10065cbb
xor eax, eax
test ebx, ebx
jne 0x10068c21
jmp 0x10068c3a
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 0x10065fba
mov dword [esi + 0xd0], 0
xor edi, edi
xor edx, edx
xor ecx, ecx
jmp 0x10065d20
mov edx, dword [esi + 0x20]
mov ecx, dword [esi + 0x2c]
inc ecx
cmp ecx, dword [esi + 0x7c]
je 0x10065fc4
imul eax, ecx, 0xc4
mov ebx, dword [esi + 0xc]
mov ebx, dword [ebx + eax + 0xa8]
test ebx, ebx
je 0x10065d16
mov dword [esi + 0x80], ebx
mov dword [esi + 0x2c], ecx
cmp dword [esi + 0xf0], edi
jle 0x10068c4f
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 0x10068c4f
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 0x10068c4f
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 [0x101a8780]
mov dword [esi + 0x30], edi
jbe 0x10065e50
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 0x10065e70
xorps xmm1, xmmword [0x101a87e0]
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 0x10065d10
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 0x10068c4f
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.10069160
test eax, eax
je 0x10068c4f
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.10069460
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 0x10065ed0
mov edi, dword [esi + 0x24]
jmp 0x10065d10
mov dword [esi + 0xd0], 0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esi + 0xd0]
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x10065fe2
sqrtsd xmm0, xmm0
jmp 0x10066000
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 0x1006604e
cvtsd2ss xmm0, xmm0
cvttss2si eax, xmm0
mov ecx, 0x1000
cmp eax, 0xb32
jg 0x1006604e
mov ecx, 0x800
cmp eax, 0x598
jg 0x1006604e
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.100484d0
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.100484d0
add esp, 4
mov dword [esi + 0xe4], eax
cmp dword [esi + 0xb8], 0
mov eax, dword [esi + 0xe4]
je 0x100661d6
test eax, eax
je 0x100661d6
cmp dword [esi + 0x30], 0xffff8001
mov ebx, dword [esi + 0x50]
jl 0x10068c4f
cmp ebx, 0xffff
jg 0x10068c4f
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 0x1006616c
lea ecx, [ebx - 2]
mov edx, dword [esi + 0x10]
and edx, 7
xor edi, edi
cmp ecx, 7
jb 0x10066149
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 0x10066110
mov ecx, dword [esi + 0x10]
test edx, edx
mov eax, dword [esi + 0xe4]
mov ebx, dword [esi + 0x50]
je 0x1006616c
lea ecx, [eax + edi*8]
add ecx, 8
nop
mov dword [ecx - 4], ecx
add ecx, 8
dec edx
jne 0x10066160
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 0x10066246
cmp dword [esi + 0xb8], 0
je 0x100661ed
push dword [esi + 0xb8]
call fcn.10048500
add esp, 4
mov eax, dword [esi + 0xe4]
test eax, eax
je 0x10066224
mov dword [esi + 0x30], 0
push eax
call fcn.10048500
add esp, 4
mov dword [esi + 0xe4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xb8], 0
jmp 0x10066246
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.10069660
add esp, 8
cmp dword [esi + 0x7c], 0
jle 0x10066314
xor eax, eax
jmp 0x10066280
mov eax, dword [esi + 0x80]
inc eax
cmp eax, dword [esi + 0x7c]
je 0x10066314
mov dword [esi + 0x80], eax
imul ebx, eax, 0xc4
mov eax, dword [esi + 0xc]
mov eax, dword [eax + ebx + 0xa8]
test eax, eax
je 0x10066270
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.10069880
add esp, 4
mov dword [esi + 0x50], edi
mov edi, dword [edi]
test edi, edi
jle 0x10066270
mov eax, dword [esi + 0xc]
add eax, ebx
add eax, 0x94
mov dword [esi + 0x10], eax
xor ecx, ecx
mov edx, 0xc
jmp 0x100662e8
inc ecx
add edx, 0x10
cmp ecx, edi
jge 0x10066270
mov eax, dword [esi + 0x10]
mov ebx, dword [eax]
cmp dword [ebx + edx], 0
je 0x100662e0
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 0x100662e0
mov eax, dword [ebp + 8]
test byte [eax + 4], 1
mov eax, dword [eax + 0x20]
jne 0x1006634d
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 [0x101a8790]
divps xmm1, xmm0
movlps qword [edx + 0x24], xmm1
imul eax, ecx
mov dword [esi + 0x438], 7
push eax
call fcn.100484d0
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 [0x101a87e0]
movaps xmm2, xmmword [0x101af2b0]
mov edx, dword [esi + 0xc]
jmp 0x100663f3
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 0x100687e9
cmp dword [eax + 0x4c], ebx
jle 0x10068c4f
imul ecx, ebx, 0xc4
cmp dword [edx + ecx + 0xa8], 0
je 0x100663f2
mov eax, edx
add edx, ecx
mov dword [esi + 0x128], ecx
movss xmm3, dword [eax + ecx + 0x7c]
ucomiss xmm3, dword [0x101a8780]
mov dword [esi + 0x12c], ebx
mov dword [esi + 0x158], edx
jbe 0x10066480
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 0x1006649e
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 0x100664fa
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 0x10066556
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 [0x101a87e0]
jle 0x10068400
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 [0x101a7280]
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 [0x101af234]
divss xmm3, xmm0
movaps xmm0, xmmword [0x101a87e0]
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 0x10066770
movaps xmm2, xmmword [0x101af2b0]
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 [0x101a87e0]
mov ebx, dword [esi + 0x128]
mov ecx, dword [esi + 0x134]
mov edi, dword [esi + 0x100]
inc edi
cmp edi, eax
jge 0x10068400
mov edx, edi
mov dword [esi + 0x100], edi
shl edi, 4
cmp dword [ecx + edi + 0xc], 0
je 0x10066761
cmp word [ecx + edi + 4], 0
je 0x10066761
cmp word [ecx + edi + 6], 0
je 0x10066761
mov edx, dword [esi + 0x1b4]
mov eax, dword [edx]
mov dword [esi + 0x1bc], eax
mov eax, dword [edx - 8]
test eax, eax
je 0x100667b2
mov edx, dword [esi + 0x100]
mov edx, dword [eax + edx*4]
jmp 0x100667bb
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.10069160
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.10069460
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.1006d120
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.10069460
add esp, 0x10
mov dword [esi + 0xbc], edi
test edi, edi
je 0x10066ddb
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 0x10066ddb
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 0x10066dd1
xor edi, edi
mov edx, 0
cmp dword [esi + 4], 8
jb 0x10066a47
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 [0x101af240]
movdqa xmm5, xmmword [0x101af250]
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 0x100669b0
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 0x10066a70
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 0x10066a60
mov eax, edi
mov dword [esi + 0x170], edi
test edi, edi
je 0x10066dd1
mov eax, dword [esi + 0x170]
lea eax, [eax*4]
mov dword [esi + 0x438], 7
push eax
call fcn.100484d0
add esp, 4
mov dword [esi + 0xc0], eax
cmp dword [esi + 0xc0], 0
je 0x10066dd1
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 0x10066b27
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 0x10066d3f
mov dword [esi + 0x30], edx
mov dword [esi + 0x60], ecx
test al, 1
je 0x10066b5a
mov eax, dword [esi + 0x1f8]
shl eax, 3
mov dword [esi + 0x438], 7
push eax
call fcn.100484d0
add esp, 4
mov dword [esi + 0x2c], eax
cmp dword [esi + 0x2c], 0
je 0x10066db9
mov dword [esi + 0x1f8], 0
pxor xmm0, xmm0
mov edx, 0xffffffff
mov ebx, dword [esi + 4]
mov edi, dword [esi + 0xa0]
jmp 0x10066c0e
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.1006e160
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 0x10066b00
movzx eax, byte [edi + 0xc]
dec eax
cmp eax, 3
ja case.default.0x10066c18
jmp dword [eax*4 + 0x101af390]
test edx, edx
js 0x10066c35
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.0x10066c18
movlps qword [eax + ecx*8], xmm0
jmp case.default.0x10066c18
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.1006e3e0
mov edx, dword [esi + 0x10]
add esp, 0x1c
jmp 0x10066bf3
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.0x10066c18
movlps qword [ecx + eax*8], xmm0
jmp case.default.0x10066c18
cmp dword [esi + 0x2c], 0
je 0x10066ddb
xor ecx, ecx
mov eax, 0
mov edi, dword [esi + 0x170]
cmp edi, 8
mov edx, dword [esi + 0xc0]
jb 0x100675b0
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 0x10066d80
paddd xmm1, xmm0
pshufd xmm0, xmm1, 0xee
paddd xmm0, xmm1
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd ecx, xmm1
jmp 0x100675b4
push 0
call fcn.10048500
add esp, 4
push dword [esi + 0xc0]
call fcn.10048500
add esp, 4
mov dword [esi + 0x438], 7
mov eax, dword [esi + 0x118]
mov dword [esi + 0x438], 7
push eax
call fcn.10048500
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 [0x101af2b0]
mov edi, dword [esi + 0x100]
jb 0x10067280
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 0x10067280
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 0x10066eaf
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 0x10067280
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.0x10066ed9
jmp dword [eax*4 + 0x101af3a0]
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101af2b0]
jb 0x10067228
xor ecx, ecx
mov ebx, 0
cmp edx, dword [esi + 0x50]
mov eax, dword [esi + 0x10]
je 0x10066f9b
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 0x10066f20
mov eax, dword [esi + 0x60]
mov edi, eax
test al, 1
mov edx, dword [esi + 0x30]
je 0x10067228
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 0x10067228
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101af2b0]
jb 0x10067228
xor ecx, ecx
mov eax, 0
cmp edx, dword [esi + 0x50]
mov edi, dword [esi + 0x10]
je 0x1006709d
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 0x10067030
mov edx, dword [esi + 0x60]
mov edi, edx
test dl, 1
mov edx, dword [esi + 0x30]
je 0x10067228
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 0x10067228
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101af2b0]
jb 0x10067228
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 0x10067110
jmp 0x10067223
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101af2b0]
jb 0x10067228
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 0x10067180
jmp 0x10067223
xor edi, edi
mov ecx, 0
mov eax, dword [esi + 0x30]
cmp eax, edx
mov edx, eax
movaps xmm2, xmmword [0x101af2b0]
jb 0x10067228
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 0x100671e0
mov edi, ebx
mov edx, dword [esi + 0x30]
cmp edi, edx
mov eax, dword [esi + 0x10]
jge 0x10066e90
nop word cs:[eax + eax]
cmp byte [eax + edi], 0
jne 0x10068c4f
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 0x10067240
jmp 0x10066e90
cmp byte [esi + 0xef], 2
jb 0x10066653
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 0x10066646
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 0x10067306
inc dword [esi + 0xa0]
mov ebx, dword [esi + 0xd0]
inc ebx
cmp ebx, dword [esi + 0x24]
je 0x10066646
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.0x10067330
jmp dword [eax*4 + 0x101af3b0]
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067553
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 0x10067360
jmp 0x10067550
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067553
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 0x100673c0
jmp 0x10067550
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067553
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 0x10067420
jmp 0x10067550
xor ebx, ebx
mov ecx, 0
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0x80]
jb 0x10067553
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 0x10067490
jmp 0x10067550
xor ebx, ebx
mov ecx, 0
cmp dword [esi + 0x10], edi
jb 0x10067553
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 0x10067500
nop word cs:[eax + eax]
mov ebx, dword [esi + 0x30]
cmp ebx, dword [esi + 0x10]
jge 0x100672f0
mov edi, dword [esi + 8]
imul edi, ebx
add edi, dword [esi + 0xa0]
nop dword [eax + eax]
cmp byte [edi], 0
jne 0x10068c4f
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 0x10067570
jmp 0x100672f0
add ecx, dword [edx + eax*4]
inc eax
cmp edi, eax
jne 0x100675b0
lea eax, [ecx + ecx*4]
lea eax, [eax*4 + 0x14]
mov dword [esi + 0x438], 7
push eax
call fcn.100484d0
add esp, 4
mov dword [esi + 0x94], eax
cmp dword [esi + 0x94], 0
je 0x100683d9
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 0x10067629
mov edx, dword [esi + 0x28]
add edx, dword [esi + 0x98]
mov ecx, dword [esi + 0x20]
inc ecx
cmp ecx, dword [esi + 0x170]
je 0x10067763
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 0x10067610
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 0x10067707
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 0x10067610
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 0x1006771d
jnp 0x100676fa
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 0x10067661
mov ecx, ebx
mov dword [esi + 0xa0], eax
mov ebx, dword [esi + 0x10]
jmp 0x1006767a
mov ecx, dword [esi + 0x94]
mov ebx, dword [esi + 4]
mov edx, ebx
call fcn.1006e7b0
cmp ebx, 2
mov dword [esi + 4], ebx
jl 0x10067837
mov eax, 1
mov edi, dword [esi + 0x94]
jmp 0x1006779f
inc eax
mov edi, dword [esi + 0x10]
add edi, 0x14
cmp eax, ebx
je 0x10067837
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 0x10067806
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 0x100677e0
xor edx, edx
mov ebx, dword [esi + 4]
cmp eax, edx
je 0x10067790
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 0x10067790
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 0x1006787f
lea eax, [ecx*8 + 4]
mov dword [esi + 0x438], 7
push eax
call fcn.100484d0
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 [0x101a7280]
lea eax, [ebx + ebx*4]
mov edi, dword [esi + 0x94]
movss dword [edi + eax*4 + 4], xmm0
cmp dword [esi + 0x110], 0x7ffffffe
ja 0x100683ab
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 0x10067991
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 0x10068378
mov dword [esi + 0x1a4], edx
xorps xmm0, xmm0
cvtsi2ss xmm0, edx
movss dword [esi + 0x4c], xmm0
addss xmm0, dword [0x101a7280]
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 0x10067a30
lea eax, [esi + 0x9c]
movss xmm6, dword [esi + 0x4c]
jmp 0x100679f8
mov eax, edi
mov edi, dword [eax]
test edi, edi
je 0x10067a35
ucomiss xmm6, dword [edi + 0x18]
jb 0x100679f0
mov ecx, dword [edi]
mov dword [eax], ecx
movss xmm0, dword [edi + 0x10]
ucomiss xmm0, dword [0x101a8780]
jne 0x10067a16
jnp 0x10068c4f
mov dword [edi + 0x10], 0
mov ecx, dword [esi + 0xbc]
mov dword [edi], ecx
mov dword [esi + 0xbc], edi
jmp 0x100679f2
movss xmm6, dword [esi + 0x4c]
mov ecx, dword [esi + 0x14c]
movss xmm0, dword [ecx + 4]
movss xmm1, dword [esi + 0x20]
ucomiss xmm1, xmm0
jae 0x100681c0
mov dword [esi + 0x14c], ecx
mov ebx, dword [esi + 0x9c]
jmp 0x10067a62
mov ebx, dword [ebx]
test ebx, ebx
mov edx, dword [esi + 0xe8]
je 0x10068100
movss xmm0, dword [ebx + 0x18]
ucomiss xmm0, xmm6
jb 0x10068c4f
movss xmm7, dword [ebx + 4]
movss xmm4, dword [ebx + 8]
ucomiss xmm4, dword [0x101a8780]
jne 0x10067ae0
jp 0x10067ae0
movss xmm0, dword [esi + 0x114]
ucomiss xmm0, xmm7
jbe 0x10067a60
ucomiss xmm7, dword [0x101a8780]
jae 0x10067e82
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 0x10067edd
movss xmm1, dword [ebx + 0x14]
movss xmm2, dword [esi + 0x20]
ucomiss xmm2, xmm1
jb 0x10068c4f
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 [0x101a8780]
mov dword [esi + 0x10], ebx
jb 0x10067c10
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 [0x101a8780]
jb 0x10067c10
movss xmm2, dword [esi + 0x114]
ucomiss xmm2, xmm5
jbe 0x10067c10
movss xmm2, dword [esi + 0x114]
ucomiss xmm2, xmm4
jbe 0x10067c10
maxss xmm1, xmm6
cvttss2si edx, xmm5
minss xmm0, dword [esi + 0x20]
cvttss2si ebx, xmm4
cmp edx, ebx
jne 0x10067ef1
test edx, edx
js 0x10068c4f
cmp dword [esi + 0x11c], edx
jl 0x10068c4f
xorps xmm2, xmm2
cvtsi2ss xmm2, edx
subss xmm5, xmm2
subss xmm4, xmm2
addss xmm4, xmm5
mulss xmm4, dword [0x101a8d94]
addss xmm4, dword [0x101a7280]
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 0x10067a62
cmp dword [esi + 0x11c], 0x7ffffffe
movss xmm0, dword [esi + 0x98]
ja 0x10067a60
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 0x10067d20
ucomiss xmm3, xmm2
jbe 0x10067d20
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.1006e980
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.1006e980
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 0x10067ddf
ucomiss xmm5, xmm3
jbe 0x10067d80
ucomiss xmm7, xmm2
jbe 0x10067d80
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.1006e980
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 0x10067db8
ucomiss xmm5, xmm7
jbe 0x10067d8a
ucomiss xmm3, xmm5
ja 0x10067d9c
ucomiss xmm5, xmm3
jbe 0x10067e1f
ucomiss xmm7, xmm5
jbe 0x10067e1f
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.1006e980
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.1006e980
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 0x10067c40
jmp 0x10067a60
ucomiss xmm2, xmm7
jbe 0x10067e29
ucomiss xmm3, xmm2
ja 0x10067e33
ucomiss xmm2, xmm3
jbe 0x10067e5e
ucomiss xmm7, xmm2
jbe 0x10067e5e
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 0x10067ce3
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 0x10067de6
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.1006e980
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.1006e980
movss xmm6, dword [esi + 0x4c]
add esp, 8
mov ebx, dword [ebx]
jmp 0x10067a62
mov eax, dword [esi + 0x10]
movss xmm2, dword [eax + 0xc]
ucomiss xmm5, xmm4
jbe 0x10067f3b
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 [0x101a87e0]
mov eax, edx
movaps xmm0, xmm3
movaps xmm3, xmm5
movaps xmm5, xmmword [esi + 0xd0]
jmp 0x10067f4b
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 [0x101a7280]
addss xmm4, xmm2
mulss xmm4, dword [0x101a8d94]
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 0x10068055
mov dword [esi + 0xd0], edi
movaps xmm4, xmm5
mulss xmm4, xmm7
movaps xmm2, xmm4
mulss xmm2, dword [0x101a72c0]
mov ecx, ebx
not ecx
add ecx, eax
lea edi, [eax - 2]
mov dword [esi + 0xa0], edi
test cl, 1
je 0x1006800d
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 0x10068058
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 0x10068020
jmp 0x10068058
mov ecx, dword [esi + 0x28]
movaps xmm2, xmm6
andps xmm2, xmmword [0x101a87c0]
movss xmm4, dword [0x101af260]
ucomiss xmm4, xmm2
mov ebx, dword [esi + 0x10]
jb 0x10068c4f
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 [0x101a8780]
mulss xmm3, dword [0x101a8d94]
addss xmm3, dword [0x101a7280]
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 0x10067a62
cmp dword [esi + 0x11c], 0x7ffffffe
movss xmm2, dword [0x101a72c0]
movaps xmm3, xmmword [0x101a87c0]
movss xmm4, dword [0x101a7294]
mov ecx, dword [esi + 0x28]
mov ebx, dword [esi + 0x198]
ja 0x10068184
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 0x10068140
mov dword [esi + 0xe8], edx
mov edi, dword [esi + 0x9c]
test edi, edi
je 0x10067960
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 0x100681a0
jmp 0x10067960
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 0x10068214
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 0x10067a4e
movss xmm1, dword [edx + 0xc]
ucomiss xmm0, xmm1
jne 0x10068220
jnp 0x100681f0
test eax, eax
je 0x10068240
mov ecx, dword [eax]
mov dword [esi + 0xbc], ecx
jmp 0x100682c0
mov eax, dword [esi + 0x160]
test eax, eax
mov dword [esi + 0x60], edx
je 0x10068256
dec eax
mov ecx, dword [esi + 0xfc]
jmp 0x10068298
mov dword [esi + 0x438], 7
push 0xdac4
call fcn.100484d0
add esp, 4
test eax, eax
movss xmm6, dword [esi + 0x4c]
mov edx, dword [esi + 0x60]
je 0x10068c4f
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 0x100682e0
jnp 0x100682ec
movss xmm1, dword [0x101a7280]
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 + 0x101a89b0]
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 0x10068356
movss dword [eax + 0x18], xmm6
movaps xmm0, xmm6
ucomiss xmm0, xmm6
jb 0x10068c4f
mov ecx, dword [esi + 0x9c]
mov dword [eax], ecx
mov dword [esi + 0x9c], eax
mov eax, dword [esi + 0xbc]
jmp 0x100681f6
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x100683ab
mov dword [esi + 0x438], 7
nop dword [eax]
mov ecx, dword [eax]
mov dword [esi + 0xfc], ecx
push eax
call fcn.10048500
add esp, 4
mov eax, dword [esi + 0xfc]
test eax, eax
jne 0x10068390
mov dword [esi + 0x438], 7
lea eax, [esi + 0x1f8]
cmp dword [esi + 0x28], eax
je 0x100683cb
push dword [esi + 0x28]
call fcn.10048500
add esp, 4
push dword [esi + 0x94]
call fcn.10048500
add esp, 4
push dword [esi + 0xc0]
call fcn.10048500
add esp, 4
push dword [esi + 0x2c]
call fcn.10048500
add esp, 4
jmp 0x10066ddb
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 [0x101a7280]
jne 0x1006843b
jnp 0x100663e3
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 [0x101af2a0]
movaps xmm3, xmmword [0x101af290]
movaps xmm1, xmmword [str._b_t_n_v]
movaps xmmword [esi + 0x10], xmm1
movaps xmm7, xmmword [0x101af270]
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 [0x101af2c0]
orps xmm3, xmm4
movdqa xmm5, xmmword [esi + 0x50]
psrld xmm5, 0x10
movdqa xmm1, xmmword [0x101af2d0]
por xmm5, xmm1
movaps xmm1, xmmword [0x101af2e0]
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 [0x101af2d0]
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 [0x101af2d0]
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 [0x101af2f0]
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 [0x101a87e0]
pxor xmm0, xmm2
movdqa xmm4, xmmword [0x101af300]
movdqa xmm3, xmm4
pcmpgtd xmm3, xmm0
pand xmm1, xmm3
movdqa xmm2, xmmword [0x101af310]
pandn xmm3, xmm2
por xmm3, xmm1
movdqa xmm0, xmm7
pxor xmm0, xmmword [0x101a87e0]
movdqa xmm1, xmm4
pcmpgtd xmm1, xmm0
pand xmm7, xmm1
pandn xmm1, xmm2
por xmm1, xmm7
packuswb xmm3, xmm1
movdqa xmm0, xmm6
movdqa xmm1, xmmword [0x101a87e0]
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 [0x101af2b0]
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 [0x101af320]
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 0x10068480
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
test eax, eax
mov ebx, dword [esi + 0x12c]
movaps xmm0, xmmword [0x101a87e0]
jle 0x100663e0
mov ecx, dword [esi + 0xd0]
mov ecx, dword [ecx]
xor edx, edx
jmp 0x100686f0
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 0x100663e0
cmp dword [ecx + 0xc], 0
je 0x100686e4
movzx edi, word [ecx + 6]
mov dword [esi + 0x10], edi
test edi, edi
je 0x100686e4
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 0x10068758
mov ecx, dword [esi + 0x10]
lea eax, [ecx - 1]
add edi, dword [esi + 0x80]
cmp ecx, 1
mov dword [esi + 0x10], eax
jle 0x100686d0
cmp word [esi + 0x50], 0
je 0x10068740
xor ecx, ecx
cmp word [esi + 0x50], 4
mov ebx, dword [esi + 0x30]
jb 0x100687b9
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 0x10068770
test edx, edx
je 0x10068740
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 0x100687d0
jmp 0x10068740
mov dword [esi + 0x438], 7
push dword [esi + 0xe4]
call fcn.10048500
add esp, 4
push dword [esi + 0xb8]
call fcn.10048500
add esp, 4
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x10068840
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf0], 0
push eax
call fcn.10048500
add esp, 4
mov dword [esi + 0xf8], 0
xor ebx, ebx
mov eax, dword [esi + 0xc]
jmp 0x10068851
inc ebx
cmp ebx, dword [esi + 0x7c]
jge 0x10068b72
imul edx, ebx, 0xc4
cmp dword [eax + edx + 0xa8], 0
je 0x10068850
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4c], ebx
jle 0x10068c4f
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 [0x101a87b0]
test ax, ax
jle 0x100688be
movss xmm0, dword [0x101a7280]
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 [0x101a87b0]
test cx, cx
jle 0x100688e8
movss xmm1, dword [0x101a7280]
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.10069f10
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 [0x101a72c0]
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 0x10068850
cmp dword [edi + 0x10], edx
jle 0x10068c4f
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 0x10068a1a
jnp 0x10068a41
mov edx, dword [esi + 0x30]
cmp byte [edx - 0x1c], 0
movaps xmm3, xmm6
subss xmm3, xmm2
mulss xmm3, dword [0x101a72c0]
je 0x10068a39
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 [0x101a7280]
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.1006a000
mov edx, dword [esi + 0x50]
inc edx
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0xd0]
jmp 0x100689c0
cmp dword [esi + 0x7c], 0
jle 0x10068bc9
lea ecx, [eax + 0xc0]
jmp 0x10068b8b
add ecx, 0xc4
dec dword [esi + 0x7c]
je 0x10068bc9
mov eax, dword [ecx]
test eax, eax
mov dword [esi + 0x10], ecx
je 0x10068baa
mov dword [esi + 0x438], 0
push eax
call fcn.10048500
mov ecx, dword [esi + 0x10]
add esp, 4
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x10068b80
mov dword [esi + 0x438], 1
push eax
call fcn.10048500
mov ecx, dword [esi + 0x10]
add esp, 4
jmp 0x10068b80
mov dword [esi + 0x438], 7
push dword [ebp + 8]
call fcn.1006a190
add esp, 4
mov eax, dword [esi + 0xcc]
test eax, eax
je 0x10068bfb
mov dword [esi + 0x438], 2
push eax
call fcn.10048500
add esp, 4
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x10068c18
mov dword [esi + 0x438], 3
push eax
call fcn.10048500
add esp, 4
mov al, 1
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10068c3a
mov dword [esi + 0x438], 5
push ebx
mov dword [esi + 0x10], eax
call fcn.10048500
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.1005f130
lea ecx, [esi + 0xf0]
call fcn.1005f130
mov dword [esi + 0x74], 0
mov eax, dword [esi + 0xc]
mov dword [esi + 0x78], eax
add esp, 0x28
pop ebp
ret