Function at 0x3002b410
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
cmp byte [ebp + 0x14], 0
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x14], esi
je 0x3002df53
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x18]
inc eax
push eax
call fcn.30001040
mov edi, eax
mov eax, dword [ebp + 0x18]
dec eax
push eax
mov ecx, esi
call fcn.30001040
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 4]
mov eax, dword [edi + 0x10]
imul eax, dword [edi]
mov esi, dword [edi + 0x28]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], ecx
mov ecx, dword [edi + 4]
mov eax, esi
and eax, 0x80000007
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
jns 0x3002b47e
dec eax
or eax, 0xfffffff8
inc eax
mov edi, dword [edi + 0x1c]
mov ebx, dword [ebx + 0x18]
setne al
mov byte [esp + 0x13], al
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
test al, al
je 0x3002b49c
dec edi
mov dword [esp + 0x24], edi
cmp dword [esp + 0x24], 0
jle 0x3002b60d
mov edi, dword [esp + 0x3c]
mov al, 0x80
movd mm0, eax
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov al, 1
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add edi, 7
movq mm1, mm2
punpcklbw mm2, mm1
and edi, 0xfffffff8
movq mm4, mm2
movq qword [esp + 0x60], mm4
mov dword [esp + 0x28], edi
jmp 0x3002b4f5
movq mm4, qword [esp + 0x60]
cmp dword [ebp + 0x10], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
mov eax, edi
movq mm1, mm0
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002b584
test eax, eax
je 0x3002b5e6
mov edi, ecx
mov ecx, edx
mov edx, dword [esp + 0x54]
sub edi, ebx
mov eax, ebx
sub ecx, ebx
movq mm1, qword [edi + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub edx, 8
jne 0x3002b53c
jmp 0x3002b5da
test eax, eax
je 0x3002b5e6
mov edi, edx
mov edx, dword [esp + 0x54]
sub ecx, ebx
mov eax, ebx
sub edi, ebx
movq mm1, qword [eax + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub edx, 8
jne 0x3002b594
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
add edx, dword [esp + 0x30]
add ebx, dword [esp + 0x40]
dec eax
add ecx, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002b4f0
mov al, byte [esp + 0x13]
mov edi, dword [esp + 0x14]
test al, al
je 0x3002b760
mov eax, dword [edi + 0x2c]
cmp eax, esi
jge 0x3002b622
mov esi, eax
push esi
push ecx
mov ecx, dword [edi + 0x28]
push ecx
call fcn.30030620
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0x28]
add eax, dword [edi + 0x28]
push esi
push edx
push eax
call fcn.30030620
mov esi, dword [edi + 0x2c]
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
mov dl, 0x80
movd mm0, edx
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov dl, 1
movd mm1, edx
mov edx, dword [esp + 0x54]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm4, mm2
movd mm1, dword [edi + 0xc]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add esi, esi
movq mm1, mm2
add esp, 0x18
punpcklbw mm2, mm1
movq mm5, mm2
add eax, ecx
add edx, 7
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x30], esi
pxor mm5, mm1
jne 0x3002b708
and edx, 0xfffffff8
je 0x3002b760
sub ecx, ebx
sub eax, ebx
movq mm1, qword [ebx + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax + ebx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [ebx], mm1
add ebx, 8
sub edx, 8
jne 0x3002b6c0
jmp 0x3002b760
and edx, 0xfffffff8
je 0x3002b760
sub ecx, ebx
sub eax, ebx
movq mm1, qword [ebx + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ebx + eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [ebx], mm1
add ebx, 8
sub edx, 8
jne 0x3002b711
jmp 0x3002b760
mov eax, dword [ebp + 0x18]
mov ebx, 1
sub ebx, dword [ebp + 0x10]
push eax
mov ecx, edi
mov dword [esp + 0x3c], ebx
call fcn.30001040
mov eax, dword [eax + 4]
mov ecx, ebx
imul ecx, esi
sub eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x18]
add eax, 0xfffffffe
push eax
mov ecx, edi
mov dword [esp + 0x48], eax
call fcn.30001040
imul ebx, dword [esp + 0x30]
mov edx, dword [eax + 4]
mov eax, dword [ebp + 8]
mov cl, 0x80
movd mm0, ecx
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov cl, 1
movd mm1, ecx
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm4, mm2
sub edx, ebx
cmp dword [ebp + 0x10], 1
mov ebx, dword [eax + 0x18]
mov eax, dword [edi + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
movq qword [esp + 0x68], mm0
movq qword [esp + 0x60], mm4
punpcklbw mm2, mm1
jne 0x3002b8e6
mov eax, dword [esp + 0x3c]
add eax, 7
movq mm5, mm2
and eax, 0xfffffff8
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], eax
je 0x3002b985
mov ecx, dword [esp + 0x18]
sub ecx, ebx
mov dword [esp + 0x54], ecx
mov ecx, edx
sub ecx, ebx
mov eax, ebx
mov dword [esp + 0x2c], ecx
lea esp, [esp]
mov ecx, dword [esp + 0x54]
movq mm1, qword [ecx + eax]
mov edi, dword [esp + 0x2c]
add ecx, eax
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x48], 8
jne 0x3002b840
jmp 0x3002b985
mov ecx, dword [esp + 0x3c]
add ecx, 7
and ecx, 0xfffffff8
movq mm1, mm0
pxor mm2, mm1
movq qword [esp + 0x58], mm2
mov eax, ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], ecx
je 0x3002b985
mov edi, dword [esp + 0x18]
movq mm1, qword [esp + 0x68]
sub edi, edx
lea ecx, [edx + esi]
mov dword [esp + 0x54], edi
jmp 0x3002b924
mov edi, dword [esp + 0x54]
movq mm2, qword [ecx + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [ecx]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm2
pcmpgtb mm5, mm6
movq mm6, mm1
pxor mm6, mm1
movq mm1, mm6
psubb mm2, mm3
movq mm3, mm5
pxor mm2, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm2, mm5
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [esp + 0x58]
pcmpgtb mm2, mm3
por mm1, mm2
movq mm2, qword [eax]
movq mm3, mm1
por mm2, mm3
movq qword [eax], mm2
add eax, 8
add ecx, 8
sub dword [esp + 0x48], 8
jne 0x3002b920
add edx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
add ebx, dword [esp + 0x40]
add dword [esp + 0x18], esi
add eax, 0xfffffffe
cmp byte [esp + 0x13], 0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
je 0x3002b9ac
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jle 0x3002bb99
cmp dword [ebp + 0x10], 1
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
mov dword [esp + 0x48], eax
pxor mm5, mm1
jne 0x3002bab2
test eax, eax
je 0x3002bb78
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub edi, ebx
sub ecx, ebx
mov eax, ebx
mov dword [esp + 0x2c], ecx
movq mm1, qword [eax + edi]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + edi]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x48], 8
jne 0x3002ba05
movq mm4, qword [esp + 0x60]
movq mm0, qword [esp + 0x68]
jmp 0x3002bb78
test eax, eax
je 0x3002bb78
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
sub edi, ebx
sub ecx, ebx
mov eax, ebx
mov dword [esp + 0x2c], ecx
lea esp, [esp]
movq mm1, qword [eax + edi]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + edi]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x48], 8
jne 0x3002bad0
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov eax, dword [esp + 0x30]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
add ebx, dword [esp + 0x40]
add dword [esp + 0x18], esi
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002b9b4
cmp byte [esp + 0x13], 0
je 0x3002bdea
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x2c]
cmp eax, esi
mov dword [esp + 0x48], esi
jge 0x3002bbb7
mov dword [esp + 0x48], eax
mov edx, ecx
mov edi, dword [edx + 0x28]
mov dword [esp + 0x24], 2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
push eax
push ecx
push edi
call fcn.30030620
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
add edi, dword [edx + 0x2c]
push eax
push ecx
push edi
call fcn.30030620
mov eax, dword [esp + 0x48]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
add edi, dword [edx + 0x2c]
add dword [esp + 0x30], esi
dec eax
add esp, 0x18
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002bbc4
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov eax, edx
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
mov esi, dword [eax + 0x2c]
mov eax, dword [eax + 0xc]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add ecx, edx
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
add esi, esi
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], eax
pxor mm5, mm1
jne 0x3002bd23
test eax, eax
je 0x3002bdde
mov edi, edx
sub edi, ebx
sub ecx, ebx
mov eax, ebx
mov dword [esp + 0x2c], ecx
jmp 0x3002bc80
movq mm1, qword [eax + edi]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + edi]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x48], 8
jne 0x3002bc80
jmp 0x3002bdde
test eax, eax
je 0x3002bdde
mov edi, edx
sub edi, ebx
sub ecx, ebx
mov eax, ebx
mov dword [esp + 0x2c], ecx
jmp 0x3002bd40
movq mm1, qword [eax + edi]
mov edx, dword [esp + 0x2c]
lea ecx, [eax + edi]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x48], 8
jne 0x3002bd40
add ebx, dword [esp + 0x40]
add dword [esp + 0x18], esi
add dword [esp + 0x1c], esi
cmp dword [ebp + 0x10], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
pxor mm5, mm1
jne 0x3002be83
mov esi, dword [esp + 0x28]
test esi, esi
je 0x3002bf3b
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
sub ecx, edx
sub edx, ebx
lea ecx, [ecx]
lea eax, [ebx + edx]
movq mm1, qword [eax + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [ebx]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [ebx], mm2
add ebx, 8
sub esi, 8
jne 0x3002be30
jmp 0x3002bf3b
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
test eax, eax
je 0x3002bf3b
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
sub edx, ebx
sub edi, ebx
nop
movq mm1, qword [ebx + edx]
lea eax, [ebx + edx]
lea ecx, [ebx + edi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [eax + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [ebx]
por mm2, mm1
movq qword [ebx], mm2
add ebx, 8
sub dword [esp + 0x48], 8
jne 0x3002bea0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x14]
cdq
sub eax, edx
mov edi, eax
mov eax, dword [ebp + 0x18]
inc eax
sar edi, 1
push eax
mov dword [esp + 0x34], edi
call fcn.30001040
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [ebp + 0x18]
dec eax
push eax
call fcn.30001040
mov ecx, eax
mov edx, dword [ecx + 0x2c]
mov ecx, dword [ecx + 8]
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 0x14]
imul ecx, dword [esi]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esi + 8]
mov ecx, eax
and ecx, 0x80000007
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], edx
jns 0x3002bfa1
dec ecx
or ecx, 0xfffffff8
inc ecx
mov esi, dword [esi + 0x20]
mov ebx, dword [ebx + 0x18]
setne byte [esp + 0x13]
cmp byte [esp + 0x13], 0
mov dword [esp + 0x50], ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x20], esi
je 0x3002bfc4
dec esi
mov dword [esp + 0x20], esi
cmp dword [esp + 0x20], 0
jle 0x3002c1ec
mov esi, dword [esp + 0x40]
add esi, 7
and esi, 0xfffffff8
mov dword [esp + 0x28], esi
jmp 0x3002bfe4
mov esi, dword [esp + 0x28]
cmp dword [ebp + 0x10], 1
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
movq mm1, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm0, ecx
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm5, mm2
movq mm0, mm1
mov ecx, ebx
pxor mm5, mm0
jne 0x3002c0ea
mov dword [esp + 0x24], esi
test esi, esi
je 0x3002c1c0
mov esi, dword [esp + 0x2c]
lea eax, [edi + edi]
mov edi, dword [esp + 0x30]
sub esi, edx
mov dword [esp + 0x18], esi
mov esi, 8
add edi, edi
add eax, ebx
sub esi, edi
jmp 0x3002c050
movq mm0, qword [edx]
mov edi, dword [esp + 0x18]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [edi + edx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [eax + esi]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [ecx]
mov edi, 8
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [eax + esi], mm3
movq mm3, qword [eax + edi]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [eax + edi], mm0
add ecx, 0x10
add eax, 0x10
add edx, edi
sub dword [esp + 0x24], edi
jne 0x3002c050
jmp 0x3002c1b4
mov dword [esp + 0x4c], esi
test esi, esi
je 0x3002c1c0
add edi, edi
mov dword [esp + 0x24], edi
lea eax, [ebx + edi]
mov edi, dword [esp + 0x2c]
sub edi, edx
mov esi, 8
sub esi, dword [esp + 0x24]
mov dword [esp + 0x18], edi
mov ebx, 8
jmp 0x3002c124
mov edi, dword [esp + 0x18]
movq mm0, qword [edx]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [edi + edx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [esi + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [esi + eax], mm3
movq mm3, qword [ebx + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [ebx + eax], mm0
add ecx, 0x10
add eax, 0x10
add edx, ebx
sub dword [esp + 0x4c], ebx
jne 0x3002c120
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x30]
lea ecx, [edi*4]
add ebx, ecx
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x20]
dec ecx
add edx, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x20], ecx
test ecx, ecx
jg 0x3002bfe0
cmp byte [esp + 0x13], 0
je 0x3002c401
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x2c]
cmp ecx, eax
mov dword [esp + 0x48], eax
jge 0x3002c20a
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x48]
mov ecx, dword [esi + 0x28]
push eax
push edx
push ecx
call fcn.30030620
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 0x2c]
mov eax, dword [esp + 0x38]
add ecx, dword [esi + 0x28]
push edx
push eax
push ecx
call fcn.30030620
mov eax, dword [esi + 0x2c]
movq mm1, qword [esp + 0x80]
movq mm4, qword [esp + 0x78]
mov ecx, dword [esi + 0x28]
add eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x2c]
movd mm0, eax
mov eax, dword [esp + 0x58]
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
add edi, edi
movq mm5, mm2
add esp, 0x18
add esi, ecx
add eax, 7
cmp dword [ebp + 0x10], 1
movq mm0, mm1
mov dword [esp + 0x54], edi
pxor mm5, mm0
jne 0x3002c349
and eax, 0xfffffff8
mov dword [esp + 0x50], eax
je 0x3002c401
lea eax, [ebx + edi]
mov edi, esi
sub edi, ecx
mov edx, 8
sub edx, dword [esp + 0x54]
mov dword [esp + 0x48], edi
mov esi, 8
jmp 0x3002c2b8
mov edi, dword [esp + 0x48]
movq mm0, qword [ecx]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [edi + ecx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [edx + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [ebx]
movq mm7, mm2
por mm6, mm7
movq qword [ebx], mm6
movq qword [edx + eax], mm3
movq mm3, qword [esi + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [esi + eax], mm0
add ebx, 0x10
add eax, 0x10
add ecx, esi
sub dword [esp + 0x50], esi
jne 0x3002c2b4
jmp 0x3002c401
and eax, 0xfffffff8
mov dword [esp + 0x50], eax
je 0x3002c401
lea eax, [ebx + edi]
mov edi, esi
sub edi, ecx
mov edx, 8
sub edx, dword [esp + 0x54]
mov dword [esp + 0x48], edi
mov esi, 8
jmp 0x3002c375
mov edi, dword [esp + 0x48]
movq mm0, qword [ecx]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [ecx + edi]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [edx + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [ebx]
movq mm7, mm2
por mm6, mm7
movq qword [ebx], mm6
movq qword [edx + eax], mm3
movq mm3, qword [esi + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [esi + eax], mm0
add ebx, 0x10
add eax, 0x10
add ecx, esi
sub dword [esp + 0x50], esi
jne 0x3002c371
mov edx, dword [ebp + 0x18]
mov ebx, dword [esp + 0x14]
push edx
mov ecx, ebx
jmp 0x3002c410
call fcn.30001040
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
mov esi, dword [eax + 8]
imul ecx, edi
mov edx, dword [esp + 0x44]
sub esi, ecx
push edx
mov ecx, ebx
call fcn.30001040
mov ecx, dword [esp + 0x3c]
movq mm0, qword [esp + 0x68]
imul ecx, edi
mov edi, dword [eax + 8]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
movq mm4, qword [esp + 0x60]
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x18]
movd mm1, eax
mov eax, dword [esp + 0x40]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
sub edi, ecx
mov ecx, dword [esp + 0x30]
punpcklbw mm2, mm1
add eax, 7
cmp dword [ebp + 0x10], 1
movq mm1, mm2
mov dword [esp + 0x50], ebx
punpcklbw mm2, mm1
jne 0x3002c5c9
movq mm5, mm2
and eax, 0xfffffff8
lea edx, [ecx + ecx]
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x24], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], eax
je 0x3002c6d3
mov ecx, edx
mov edx, dword [esp + 0x1c]
add edx, esi
mov dword [esp + 0x40], edx
mov edx, edi
sub edx, esi
mov dword [esp + 0x18], edx
mov edx, 8
sub edx, ecx
lea eax, [ebx + ecx]
mov dword [esp + 0x54], edx
mov ecx, esi
jmp 0x3002c4d0
movq mm1, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ecx]
mov ecx, dword [esp + 0x40]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ecx]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
add dword [esp + 0x40], edx
por mm3, mm1
add ecx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edx + eax], mm1
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002c4d0
jmp 0x3002c6d3
movq mm1, mm2
add ecx, ecx
and eax, 0xfffffff8
movq mm2, mm0
pxor mm1, mm2
movq mm6, mm1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], eax
je 0x3002c6d3
mov edx, dword [esp + 0x1c]
movq mm1, qword [esp + 0x68]
add edx, esi
mov dword [esp + 0x48], edx
mov edx, edi
sub edx, esi
mov dword [esp + 0x18], edx
mov edx, 8
sub edx, ecx
lea eax, [ebx + ecx]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x54], edx
movq mm2, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [edx + ecx]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm7, mm2
pcmpgtb mm5, mm7
movq mm7, mm1
pxor mm7, mm1
movq mm1, mm7
psubb mm2, mm3
movq mm3, mm5
pxor mm2, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm2, mm5
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm6
pcmpgtb mm2, mm3
por mm1, mm2
movq mm2, mm1
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
movq mm3, mm2
punpckhbw mm3, mm2
movq mm2, mm3
movq mm3, qword [edx + eax]
movq mm5, mm2
por mm3, mm5
movq mm5, qword [ecx]
movq mm7, mm1
por mm5, mm7
movq qword [ecx], mm5
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
por mm3, mm2
movq mm2, mm3
movq mm3, qword [eax]
add ecx, 0x10
movq mm5, mm1
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm5
movq qword [eax], mm3
movq qword [edx + eax], mm2
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002c615
mov eax, dword [esp + 0x30]
add edi, dword [esp + 0x3c]
add esi, dword [esp + 0x1c]
add eax, eax
add eax, eax
add ebx, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x58]
add eax, 0xfffffffe
cmp byte [esp + 0x13], 0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], eax
je 0x3002c704
dec eax
mov dword [esp + 0x20], eax
test eax, eax
jle 0x3002c9b3
lea esp, [esp]
cmp dword [ebp + 0x10], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], eax
pxor mm5, mm1
jne 0x3002c874
test eax, eax
je 0x3002c992
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub edi, esi
mov dword [esp + 0x18], edi
mov edi, 8
add ecx, esi
sub edi, edx
lea eax, [ebx + edx]
mov dword [esp + 0x58], edi
mov edx, esi
movq mm1, qword [edx]
mov edi, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
mov edx, dword [esp + 0x50]
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + ecx]
mov edi, dword [esp + 0x58]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edi + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [edx]
movq mm7, mm2
por mm6, mm7
movq qword [edx], mm6
movq qword [edi + eax], mm3
mov edi, 8
movq mm3, qword [edi + eax]
por mm3, mm1
add edx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edi + eax], mm1
add edx, edi
add eax, 0x10
add ecx, edi
sub dword [esp + 0x4c], edi
mov dword [esp + 0x48], edx
jne 0x3002c781
jmp 0x3002c98e
test eax, eax
je 0x3002c992
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub edi, esi
mov dword [esp + 0x18], edi
mov edi, 8
add ecx, esi
sub edi, edx
lea eax, [ebx + edx]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x58], edi
mov edi, edi
movq mm1, qword [edx]
mov edi, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
mov edx, dword [esp + 0x50]
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + ecx]
mov edi, dword [esp + 0x58]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edi + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [edx]
movq mm7, mm2
por mm6, mm7
movq qword [edx], mm6
movq qword [edi + eax], mm3
mov edi, 8
movq mm3, qword [edi + eax]
por mm3, mm1
add edx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edi + eax], mm1
add edx, edi
add eax, 0x10
add ecx, edi
sub dword [esp + 0x4c], edi
mov dword [esp + 0x48], edx
jne 0x3002c8a0
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
add edi, dword [esp + 0x3c]
add ebx, dword [esp + 0x30]
add esi, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], eax
test eax, eax
jg 0x3002c710
cmp byte [esp + 0x13], 0
je 0x3002cce0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x2c]
cmp eax, ecx
mov dword [esp + 0x48], ecx
jge 0x3002c9d5
mov dword [esp + 0x48], eax
mov edx, dword [edx + 0x28]
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], 2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
push eax
push esi
push ecx
call fcn.30030620
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
add eax, dword [edx + 0x2c]
push ecx
push edi
push eax
mov dword [esp + 0x58], eax
call fcn.30030620
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x2c]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
add esi, dword [esp + 0x34]
add edi, dword [esp + 0x54]
dec eax
add esp, 0x18
mov dword [esp + 0x20], eax
test eax, eax
jg 0x3002c9e4
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov eax, edx
mov esi, dword [eax + 0x28]
mov edi, dword [eax + 0x2c]
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0xc]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add ecx, ecx
movq mm5, mm2
add edi, esi
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], eax
pxor mm5, mm1
jne 0x3002cbad
test eax, eax
je 0x3002ccd8
mov edx, dword [esp + 0x24]
add ecx, esi
mov dword [esp + 0x40], ecx
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, 8
sub ecx, edx
mov dword [esp + 0x58], ecx
lea eax, [edx + ebx]
mov ecx, esi
movq mm1, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + edx]
mov ecx, dword [esp + 0x40]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ecx]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
add dword [esp + 0x40], edx
por mm3, mm1
add ecx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edx + eax], mm1
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002cab4
jmp 0x3002ccd4
test eax, eax
je 0x3002ccd8
mov edx, dword [esp + 0x24]
add ecx, esi
mov dword [esp + 0x40], ecx
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, 8
sub ecx, edx
mov dword [esp + 0x58], ecx
lea eax, [ebx + edx]
mov ecx, esi
jmp 0x3002cbe0
movq mm1, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ecx]
mov ecx, dword [esp + 0x40]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ecx]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
add dword [esp + 0x40], edx
por mm3, mm1
add ecx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edx + eax], mm1
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002cbe0
mov ecx, dword [esp + 0x1c]
add ebx, dword [esp + 0x30]
add esi, ecx
add edi, ecx
cmp dword [ebp + 0x10], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
jne 0x3002cde5
movq mm1, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm0, eax
mov eax, dword [esp + 0x28]
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm5, mm2
movq mm0, mm1
pxor mm5, mm0
mov dword [esp + 0x50], eax
test eax, eax
je 0x3002cf1a
mov edx, dword [esp + 0x24]
lea eax, [ebx + edx]
mov edx, edi
sub edx, esi
mov ecx, 8
sub ecx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
mov edi, 8
jmp 0x3002cd54
mov edx, dword [esp + 0x18]
movq mm0, qword [esi]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [edx + esi]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [ecx + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [ebx]
movq mm7, mm2
por mm6, mm7
movq qword [ebx], mm6
movq qword [ecx + eax], mm3
movq mm3, qword [edi + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [edi + eax], mm0
add ebx, 0x10
add eax, 0x10
add esi, edi
sub dword [esp + 0x50], edi
jne 0x3002cd50
jmp 0x3002cf1a
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x50], eax
test eax, eax
je 0x3002cf1a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub edi, esi
mov edx, 8
add eax, ebx
add ecx, esi
sub edx, dword [esp + 0x24]
mov dword [esp + 0x18], edi
jmp 0x3002ce40
movq mm1, qword [esi]
mov edi, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [eax + edx]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [ebx]
mov edi, 8
movq mm7, mm2
por mm6, mm7
movq qword [ebx], mm6
movq qword [eax + edx], mm3
movq mm3, qword [eax + edi]
por mm3, mm1
movq mm1, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [eax + edi], mm1
add ebx, 0x10
add eax, 0x10
add esi, edi
add ecx, edi
sub dword [esp + 0x50], edi
jne 0x3002ce40
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x10]
mov ebx, dword [ebp + 0x18]
mov edi, dword [esp + 0x14]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x2c], eax
lea eax, [ebx + 1]
push eax
mov ecx, edi
call fcn.30001040
mov esi, eax
lea eax, [ebx - 1]
push eax
mov ecx, edi
call fcn.30001040
push 2
mov ecx, esi
mov edi, eax
call fcn.30001010
push 2
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.30001010
push 2
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.30001000
mov ebx, eax
push 2
mov ecx, edi
mov dword [esp + 0x4c], ebx
call fcn.30001000
push 2
mov ecx, esi
mov dword [esp + 0x34], eax
call fcn.30001020
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x1c]
and eax, 0x80000007
jns 0x3002cf9d
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0x18]
push 2
mov ecx, esi
setne byte [esp + 0x17]
mov dword [esp + 0x50], edi
call fcn.30001030
cmp byte [esp + 0x13], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x20], eax
je 0x3002cfc9
dec eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x20], 0
jle 0x3002d1e1
mov esi, dword [esp + 0x40]
add esi, 7
and esi, 0xfffffff8
mov dword [esp + 0x28], esi
cmp dword [ebp + 0x10], 1
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0xc]
movq mm1, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm0, eax
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm5, mm2
mov eax, esi
movq mm0, mm1
mov edx, ebx
mov ecx, edi
mov dword [esp + 0x50], eax
pxor mm5, mm0
jne 0x3002d0ea
test eax, eax
je 0x3002d1b2
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
sub esi, ebx
mov ebx, dword [esp + 0x2c]
add eax, eax
mov dword [esp + 0x18], esi
mov esi, 8
add ebx, ebx
add eax, edi
sub esi, ebx
lea esp, [esp]
movq mm0, qword [edx]
mov ebx, dword [esp + 0x18]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [edx + ebx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [esi + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [ecx]
mov ebx, 8
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [esi + eax], mm3
movq mm3, qword [ebx + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [ebx + eax], mm0
add ecx, 0x10
add eax, 0x10
add edx, ebx
sub dword [esp + 0x50], ebx
jne 0x3002d050
jmp 0x3002d1aa
test eax, eax
je 0x3002d1b2
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
sub esi, ebx
add eax, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x24], eax
add eax, edi
mov esi, 8
sub esi, dword [esp + 0x24]
mov edi, 8
movq mm0, qword [edx]
mov ebx, dword [esp + 0x18]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [edx + ebx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [esi + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [esi + eax], mm3
movq mm3, qword [edi + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [edi + eax], mm0
add ecx, 0x10
add eax, 0x10
add edx, edi
sub dword [esp + 0x50], edi
jne 0x3002d116
mov edi, dword [esp + 0x4c]
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
add ebx, dword [esp + 0x1c]
add eax, eax
add eax, eax
add edi, eax
mov eax, dword [esp + 0x3c]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x20], eax
test eax, eax
jg 0x3002cfe2
cmp byte [esp + 0x13], 0
je 0x3002d400
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esi + 0x2c]
cmp eax, ecx
mov dword [esp + 0x48], ecx
jge 0x3002d203
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esi + 0x28]
push ecx
push ebx
push edx
call fcn.30030620
mov eax, dword [esp + 0x54]
mov edx, dword [esi + 0x2c]
mov ecx, dword [esp + 0x3c]
add edx, dword [esi + 0x28]
push eax
push ecx
push edx
call fcn.30030620
mov eax, dword [esi + 0x2c]
movq mm1, qword [esp + 0x80]
movq mm4, qword [esp + 0x78]
mov ecx, dword [esi + 0x28]
mov edx, dword [esp + 0x44]
add eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x2c]
movd mm0, eax
mov eax, dword [esp + 0x58]
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
add edx, edx
movq mm5, mm2
add esp, 0x18
add esi, ecx
add eax, 7
cmp dword [ebp + 0x10], 1
movq mm0, mm1
mov dword [esp + 0x58], edx
pxor mm5, mm0
jne 0x3002d346
and eax, 0xfffffff8
mov dword [esp + 0x50], eax
je 0x3002d400
mov ebx, esi
lea eax, [edi + edx]
sub ebx, ecx
mov edx, 8
sub edx, dword [esp + 0x58]
mov dword [esp + 0x48], ebx
mov esi, 8
jmp 0x3002d2b5
mov ebx, dword [esp + 0x48]
movq mm0, qword [ecx]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [ebx + ecx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [edx + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [edi]
movq mm7, mm2
por mm6, mm7
movq qword [edi], mm6
movq qword [edx + eax], mm3
movq mm3, qword [esi + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [esi + eax], mm0
add edi, 0x10
add eax, 0x10
add ecx, esi
sub dword [esp + 0x50], esi
jne 0x3002d2b1
jmp 0x3002d400
and eax, 0xfffffff8
mov dword [esp + 0x50], eax
je 0x3002d400
mov ebx, esi
lea eax, [edi + edx]
sub ebx, ecx
mov edx, 8
sub edx, dword [esp + 0x58]
mov dword [esp + 0x48], ebx
mov esi, 8
jmp 0x3002d374
mov ebx, dword [esp + 0x48]
movq mm0, qword [ecx]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [ebx + ecx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [edx + eax]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [edi]
movq mm7, mm2
por mm6, mm7
movq qword [edi], mm6
movq qword [edx + eax], mm3
movq mm3, qword [esi + eax]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [esi + eax], mm0
add edi, 0x10
add eax, 0x10
add ecx, esi
sub dword [esp + 0x50], esi
jne 0x3002d370
mov eax, dword [ebp + 0x18]
mov ebx, dword [esp + 0x14]
push 2
push eax
mov ecx, ebx
lea esp, [esp]
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
imul ecx, edi
mov esi, eax
push 2
sub esi, ecx
push edx
mov ecx, ebx
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov edx, dword [esp + 0x14]
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov ecx, dword [ebp + 8]
mov ebx, eax
mov eax, dword [esp + 0x3c]
imul eax, edi
mov edi, dword [ecx + 0x18]
sub ebx, eax
cmp dword [ebp + 0x10], 1
mov eax, dword [edx + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
mov dword [esp + 0x50], edi
punpcklbw mm2, mm1
jne 0x3002d5d9
mov eax, dword [esp + 0x2c]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x40]
add eax, 7
movq mm5, mm2
and eax, 0xfffffff8
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], eax
je 0x3002d6ee
mov edx, dword [esp + 0x1c]
add edx, esi
mov dword [esp + 0x44], edx
mov edx, ebx
sub edx, esi
mov dword [esp + 0x18], edx
mov edx, 8
sub edx, ecx
lea eax, [edi + ecx]
mov dword [esp + 0x58], edx
mov ecx, esi
jmp 0x3002d4e0
movq mm1, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + edx]
mov ecx, dword [esp + 0x44]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + edx]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
add dword [esp + 0x44], edx
por mm3, mm1
add ecx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edx + eax], mm1
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002d4e0
jmp 0x3002d6ee
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2c]
movq mm1, mm2
add ecx, ecx
add eax, 7
and eax, 0xfffffff8
movq mm2, mm0
pxor mm1, mm2
movq mm6, mm1
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], eax
je 0x3002d6ee
mov edx, dword [esp + 0x1c]
movq mm1, qword [esp + 0x68]
add edx, esi
mov dword [esp + 0x48], edx
mov edx, ebx
sub edx, esi
mov dword [esp + 0x18], edx
mov edx, 8
sub edx, ecx
lea eax, [edi + ecx]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], edx
movq mm2, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [ecx + edx]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm7, mm2
pcmpgtb mm5, mm7
movq mm7, mm1
pxor mm7, mm1
movq mm1, mm7
psubb mm2, mm3
movq mm3, mm5
pxor mm2, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm2, mm5
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm6
pcmpgtb mm2, mm3
por mm1, mm2
movq mm2, mm1
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
movq mm3, mm2
punpckhbw mm3, mm2
movq mm2, mm3
movq mm3, qword [edx + eax]
movq mm5, mm2
por mm3, mm5
movq mm5, qword [ecx]
movq mm7, mm1
por mm5, mm7
movq qword [ecx], mm5
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
por mm3, mm2
movq mm2, mm3
movq mm3, qword [eax]
add ecx, 0x10
movq mm5, mm1
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm5
movq qword [eax], mm3
movq qword [edx + eax], mm2
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002d630
mov eax, dword [esp + 0x2c]
add ebx, dword [esp + 0x3c]
add esi, dword [esp + 0x1c]
add eax, eax
add eax, eax
add edi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x54]
add eax, 0xfffffffe
cmp byte [esp + 0x13], 0
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], eax
je 0x3002d71f
dec eax
mov dword [esp + 0x20], eax
test eax, eax
jle 0x3002d9d3
jmp 0x3002d730
cmp dword [ebp + 0x10], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], eax
pxor mm5, mm1
jne 0x3002d894
test eax, eax
je 0x3002d9b2
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub ebx, esi
mov dword [esp + 0x18], ebx
mov ebx, 8
add ecx, esi
sub ebx, edx
lea eax, [edi + edx]
mov dword [esp + 0x58], ebx
mov edx, esi
movq mm1, qword [edx]
mov ebx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ebx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
mov edx, dword [esp + 0x50]
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + ebx]
mov ebx, dword [esp + 0x58]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [ebx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [edx]
movq mm7, mm2
por mm6, mm7
movq qword [edx], mm6
movq qword [ebx + eax], mm3
mov ebx, 8
movq mm3, qword [ebx + eax]
por mm3, mm1
add edx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [ebx + eax], mm1
add edx, ebx
add eax, 0x10
add ecx, ebx
sub dword [esp + 0x4c], ebx
mov dword [esp + 0x48], edx
jne 0x3002d7a1
jmp 0x3002d9ae
test eax, eax
je 0x3002d9b2
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub ebx, esi
mov dword [esp + 0x18], ebx
mov ebx, 8
add ecx, esi
sub ebx, edx
lea eax, [edi + edx]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x58], ebx
mov edi, edi
movq mm1, qword [edx]
mov ebx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ebx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
mov edx, dword [esp + 0x50]
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + ebx]
mov ebx, dword [esp + 0x58]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [ebx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [edx]
movq mm7, mm2
por mm6, mm7
movq qword [edx], mm6
movq qword [ebx + eax], mm3
mov ebx, 8
movq mm3, qword [ebx + eax]
por mm3, mm1
add edx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [ebx + eax], mm1
add edx, ebx
add eax, 0x10
add ecx, ebx
sub dword [esp + 0x4c], ebx
mov dword [esp + 0x48], edx
jne 0x3002d8c0
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
add ebx, dword [esp + 0x3c]
add edi, dword [esp + 0x38]
add esi, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], eax
test eax, eax
jg 0x3002d730
cmp byte [esp + 0x13], 0
je 0x3002dd00
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x2c]
cmp eax, ecx
mov dword [esp + 0x48], ecx
jge 0x3002d9f5
mov dword [esp + 0x48], eax
mov edx, dword [edx + 0x28]
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], 2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
push eax
push esi
push ecx
call fcn.30030620
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x20]
add eax, dword [edx + 0x2c]
push ecx
push ebx
push eax
mov dword [esp + 0x58], eax
call fcn.30030620
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x2c]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
add esi, dword [esp + 0x34]
add ebx, dword [esp + 0x54]
dec eax
add esp, 0x18
mov dword [esp + 0x20], eax
test eax, eax
jg 0x3002da04
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov eax, edx
mov esi, dword [eax + 0x28]
mov ebx, dword [eax + 0x2c]
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0xc]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add ecx, ecx
movq mm5, mm2
add ebx, esi
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], eax
pxor mm5, mm1
jne 0x3002dbcd
test eax, eax
je 0x3002dcf8
mov edx, dword [esp + 0x24]
add ecx, esi
mov dword [esp + 0x44], ecx
mov ecx, ebx
sub ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, 8
sub ecx, edx
mov dword [esp + 0x58], ecx
lea eax, [edx + edi]
mov ecx, esi
movq mm1, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + edx]
mov ecx, dword [esp + 0x44]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + edx]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
add dword [esp + 0x44], edx
por mm3, mm1
add ecx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edx + eax], mm1
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002dad4
jmp 0x3002dcf4
test eax, eax
je 0x3002dcf8
mov edx, dword [esp + 0x24]
add ecx, esi
mov dword [esp + 0x44], ecx
mov ecx, ebx
sub ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, 8
sub ecx, edx
mov dword [esp + 0x58], ecx
lea eax, [edi + edx]
mov ecx, esi
jmp 0x3002dc00
movq mm1, qword [ecx]
mov edx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ecx]
mov ecx, dword [esp + 0x44]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + edx]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [ecx]
movq mm7, mm2
por mm6, mm7
movq qword [ecx], mm6
movq qword [edx + eax], mm3
mov edx, 8
movq mm3, qword [edx + eax]
add dword [esp + 0x44], edx
por mm3, mm1
add ecx, 0x10
movq mm1, mm3
movq mm3, qword [eax]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x48]
por mm3, mm2
movq qword [eax], mm3
movq qword [edx + eax], mm1
add ecx, edx
add eax, 0x10
sub dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
jne 0x3002dc00
mov ecx, dword [esp + 0x1c]
add edi, dword [esp + 0x38]
add esi, ecx
add ebx, ecx
cmp dword [ebp + 0x10], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
jne 0x3002de05
movq mm1, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm0, eax
mov eax, dword [esp + 0x28]
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm5, mm2
movq mm0, mm1
pxor mm5, mm0
mov dword [esp + 0x50], eax
test eax, eax
je 0x3002df3a
mov edx, dword [esp + 0x24]
lea eax, [edi + edx]
mov edx, ebx
sub edx, esi
mov ecx, 8
sub ecx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
mov ebx, 8
jmp 0x3002dd74
mov edx, dword [esp + 0x18]
movq mm0, qword [esi]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [esi + edx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm0
pcmpgtb mm3, mm6
psubb mm0, mm2
movq mm2, mm3
pxor mm0, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm0, mm3
movq mm2, mm1
pxor mm0, mm2
movq mm2, mm5
pcmpgtb mm0, mm2
movq mm2, mm0
movq mm3, mm0
punpcklbw mm2, mm3
punpckhbw mm3, mm0
movq mm0, mm3
movq mm3, qword [eax + ecx]
movq mm6, mm0
por mm3, mm6
movq mm6, qword [edi]
movq mm7, mm2
por mm6, mm7
movq qword [edi], mm6
movq qword [eax + ecx], mm3
movq mm3, qword [eax + ebx]
por mm3, mm0
movq mm0, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [eax + ebx], mm0
add edi, 0x10
add eax, 0x10
add esi, ebx
sub dword [esp + 0x50], ebx
jne 0x3002dd70
jmp 0x3002df3a
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x50], eax
test eax, eax
je 0x3002df3a
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub ebx, esi
mov edx, 8
add eax, edi
add ecx, esi
sub edx, dword [esp + 0x24]
mov dword [esp + 0x18], ebx
jmp 0x3002de60
movq mm1, qword [esi]
mov ebx, dword [esp + 0x18]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + ebx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + ebx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, mm1
movq mm3, mm1
punpcklbw mm2, mm3
punpckhbw mm3, mm1
movq mm1, mm3
movq mm3, qword [edx + eax]
movq mm6, mm1
por mm3, mm6
movq mm6, qword [edi]
mov ebx, 8
movq mm7, mm2
por mm6, mm7
movq qword [edi], mm6
movq qword [edx + eax], mm3
movq mm3, qword [ebx + eax]
por mm3, mm1
movq mm1, mm3
movq mm3, qword [eax]
por mm3, mm2
movq qword [eax], mm3
movq qword [ebx + eax], mm1
add edi, 0x10
add eax, 0x10
add esi, ebx
add ecx, ebx
sub dword [esp + 0x50], ebx
jne 0x3002de60
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push edx
push eax
call fcn.30029220
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [ebp + 8]
mov edi, dword [ebp + 0x18]
mov edx, dword [ecx + 0x10]
lea eax, [edi + 1]
push eax
mov ecx, esi
mov dword [esp + 0x4c], edx
call fcn.30001040
mov ebx, eax
lea eax, [edi - 1]
push eax
mov ecx, esi
call fcn.30001040
push 0
mov ecx, ebx
mov edi, eax
call fcn.30001010
push 0
mov ecx, edi
mov esi, eax
call fcn.30001010
push 0
mov ecx, ebx
mov dword [esp + 0x40], eax
call fcn.30001000
push 0
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.30001000
push 0
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.30001020
mov dword [esp + 0x40], eax
mov eax, esi
and eax, 0x80000007
jns 0x3002dfc7
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, dword [ebp + 8]
mov edi, dword [ecx + 0x18]
push 0
mov ecx, ebx
setne byte [esp + 0x17]
call fcn.30001030
cmp byte [esp + 0x13], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x24], eax
je 0x3002dfef
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jle 0x3002e171
mov ebx, dword [esp + 0x40]
mov dl, 0x80
movd mm0, edx
mov edx, dword [esp + 0x1c]
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov al, 1
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add ebx, 7
movq mm1, mm2
punpcklbw mm2, mm1
and ebx, 0xfffffff8
movq mm4, mm2
movq qword [esp + 0x60], mm4
mov dword [esp + 0x28], ebx
jmp 0x3002e055
movq mm4, qword [esp + 0x60]
cmp dword [ebp + 0x10], 1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
pxor mm5, mm1
jne 0x3002e0ea
mov eax, ebx
mov dword [esp + 0x50], eax
test eax, eax
je 0x3002e150
mov ebx, dword [esp + 0x18]
mov ecx, edx
sub ebx, edi
mov eax, edi
sub ecx, edi
lea ebx, [ebx]
movq mm1, qword [ebx + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub dword [esp + 0x50], 8
jne 0x3002e0a0
jmp 0x3002e13e
test ebx, ebx
je 0x3002e150
mov ecx, dword [esp + 0x18]
sub ecx, edi
mov eax, edi
sub edx, edi
movq mm1, qword [eax + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub ebx, 8
jne 0x3002e0f8
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
jmp 0x3002e150
mov eax, dword [esp + 0x24]
add edx, dword [esp + 0x3c]
add edi, dword [esp + 0x48]
add dword [esp + 0x18], esi
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002e050
cmp byte [esp + 0x13], 0
mov ebx, dword [esp + 0x14]
je 0x3002e2e0
mov eax, dword [ebx + 0x2c]
cmp eax, esi
jge 0x3002e189
mov esi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [ebx + 0x28]
push esi
push edx
push eax
call fcn.30030620
mov edx, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x28]
add edx, dword [ebx + 0x28]
push esi
push ecx
push edx
call fcn.30030620
mov esi, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov al, 0x80
movd mm0, eax
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov al, 1
movd mm1, eax
mov eax, dword [esp + 0x58]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm4, mm2
movd mm1, dword [ebx + 0xc]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add esi, esi
movq mm1, mm2
add esp, 0x18
punpcklbw mm2, mm1
movq mm5, mm2
add ecx, edx
add eax, 7
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x3c], esi
pxor mm5, mm1
jne 0x3002e27d
and eax, 0xfffffff8
mov dword [esp + 0x58], eax
je 0x3002e2e0
sub edx, edi
mov eax, edi
sub ecx, edi
mov edi, dword [esp + 0x58]
movq mm1, qword [eax + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub edi, 8
jne 0x3002e235
jmp 0x3002e2e0
and eax, 0xfffffff8
mov dword [esp + 0x58], eax
je 0x3002e2e0
sub edx, edi
mov eax, edi
sub ecx, edi
mov edi, dword [esp + 0x58]
movq mm1, qword [eax + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax + ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub edi, 8
jne 0x3002e290
jmp 0x3002e2e0
mov ecx, dword [ebp + 0x18]
mov edi, 1
sub edi, dword [ebp + 0x10]
push 0
push ecx
mov ecx, ebx
mov dword [esp + 0x40], edi
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov edx, esi
imul edx, edi
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x18]
add eax, 0xfffffffe
push 0
push eax
mov ecx, ebx
mov dword [esp + 0x4c], eax
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x18]
mov edi, eax
mov eax, dword [esp + 0x3c]
imul eax, dword [esp + 0x38]
mov dl, 0x80
movd mm0, edx
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov dl, 1
movd mm1, edx
mov edx, dword [esp + 0x40]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm4, mm2
sub edi, eax
mov eax, dword [ebx + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add edx, 7
cmp dword [ebp + 0x10], 1
movq mm1, mm2
movq qword [esp + 0x68], mm0
movq qword [esp + 0x60], mm4
punpcklbw mm2, mm1
jne 0x3002e482
movq mm5, mm2
and edx, 0xfffffff8
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x28], edx
mov dword [esp + 0x50], edx
je 0x3002e531
mov edx, dword [esp + 0x18]
sub edx, ecx
mov dword [esp + 0x2c], edx
mov edx, edi
sub edx, ecx
mov eax, ecx
mov dword [esp + 0x20], edx
mov edi, edi
mov edx, dword [esp + 0x2c]
movq mm1, qword [edx + eax]
add edx, eax
mov edx, dword [esp + 0x20]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
mov edx, dword [esp + 0x2c]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
add edx, eax
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + edx]
mov edx, dword [esp + 0x20]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x50], 8
jne 0x3002e3d0
jmp 0x3002e52d
and edx, 0xfffffff8
movq mm1, mm0
pxor mm2, mm1
movq qword [esp + 0x30], mm2
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x4c], edx
je 0x3002e531
mov edx, dword [esp + 0x18]
movq mm1, qword [esp + 0x68]
sub edx, edi
lea eax, [esi + edi]
mov dword [esp + 0x58], edx
jmp 0x3002e4c4
mov edx, dword [esp + 0x58]
movq mm2, qword [eax + edx]
mov edx, dword [esp + 0x50]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [eax]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm2
pcmpgtb mm5, mm6
movq mm6, mm1
pxor mm6, mm1
movq mm1, mm6
psubb mm2, mm3
movq mm3, mm5
pxor mm2, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm2, mm5
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [esp + 0x30]
pcmpgtb mm2, mm3
por mm1, mm2
movq mm2, qword [edx]
movq mm3, mm1
por mm2, mm3
movq qword [edx], mm2
add edx, 8
add eax, 8
sub dword [esp + 0x4c], 8
mov dword [esp + 0x50], edx
jne 0x3002e4c0
mov edx, dword [esp + 0x28]
add ecx, dword [esp + 0x48]
add edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x54]
add dword [esp + 0x18], esi
add eax, 0xfffffffe
cmp byte [esp + 0x13], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], eax
je 0x3002e55b
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0
jle 0x3002e758
cmp dword [ebp + 0x10], 1
mov eax, dword [ebx + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
mov eax, edx
movq mm1, mm0
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002e663
test eax, eax
je 0x3002e733
mov edx, dword [esp + 0x18]
sub edx, ecx
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], edi
jmp 0x3002e5bb
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
movq mm1, qword [edx + eax]
add edx, eax
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002e5b3
movq mm4, qword [esp + 0x60]
movq mm0, qword [esp + 0x68]
jmp 0x3002e72b
test eax, eax
je 0x3002e733
mov edx, dword [esp + 0x18]
sub edx, ecx
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], edi
jmp 0x3002e688
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
movq mm1, qword [edx + eax]
add edx, eax
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002e680
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x3c]
add ecx, dword [esp + 0x48]
add dword [esp + 0x18], esi
dec eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002e566
mov dword [esp + 0x30], ecx
cmp byte [esp + 0x13], 0
je 0x3002e9cc
mov eax, dword [ebx + 0x2c]
cmp eax, esi
mov dword [esp + 0x40], esi
jge 0x3002e772
mov dword [esp + 0x40], eax
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x24], 2
lea ecx, [ecx]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
push ecx
push edx
push edi
call fcn.30030620
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
add edi, dword [ebx + 0x2c]
push eax
push ecx
push edi
call fcn.30030620
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
add edi, dword [ebx + 0x2c]
add dword [esp + 0x30], esi
add dword [esp + 0x34], edx
dec eax
add esp, 0x18
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002e780
mov eax, dword [ebx + 0xc]
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov edi, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add edx, edi
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
add esi, esi
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002e8df
test eax, eax
je 0x3002e9ac
mov ecx, dword [esp + 0x30]
sub edi, ecx
sub edx, ecx
mov eax, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edx
jmp 0x3002e834
mov edi, dword [esp + 0x2c]
movq mm1, qword [eax + edi]
lea edx, [eax + edi]
mov edi, dword [esp + 0x20]
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [edx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002e830
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jmp 0x3002e9b0
test eax, eax
je 0x3002e9ac
mov ecx, dword [esp + 0x30]
sub edi, ecx
sub edx, ecx
mov eax, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edx
jmp 0x3002e904
mov edi, dword [esp + 0x2c]
movq mm1, qword [eax + edi]
lea edx, [eax + edi]
mov edi, dword [esp + 0x20]
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [edx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002e900
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x3002e9b0
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x48]
add edi, esi
add edx, esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
cmp dword [ebp + 0x10], 1
mov eax, dword [ebx + 0xc]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
pxor mm5, mm1
jne 0x3002ea58
mov esi, edx
test esi, esi
je 0x3002eb0e
mov edx, dword [esp + 0x18]
sub edx, edi
sub edi, ecx
lea eax, [ecx + edi]
movq mm1, qword [eax + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [ecx], mm2
add ecx, 8
sub esi, 8
jne 0x3002ea05
jmp 0x3002eb0e
mov dword [esp + 0x54], edx
test edx, edx
je 0x3002eb0e
mov edx, dword [esp + 0x18]
sub edx, ecx
sub edi, ecx
mov dword [esp + 0x20], edi
movq mm1, qword [ecx + edx]
mov edi, dword [esp + 0x20]
lea eax, [ecx + edx]
add edi, ecx
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [ecx]
por mm2, mm1
movq qword [ecx], mm2
add ecx, 8
sub dword [esp + 0x54], 8
jne 0x3002ea70
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
mov esi, dword [ebp + 0x18]
lea eax, [esi + 1]
mov dword [esp + 0x48], ecx
push eax
mov ecx, ebx
call fcn.30001040
mov edi, eax
lea eax, [esi - 1]
push eax
mov ecx, ebx
mov dword [esp + 0x5c], edi
call fcn.30001040
push 1
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.30001010
mov ecx, dword [esp + 0x54]
push 1
mov esi, eax
call fcn.30001010
push 1
mov ecx, edi
mov dword [esp + 0x40], eax
call fcn.30001000
mov ecx, dword [esp + 0x54]
push 1
mov dword [esp + 0x1c], eax
call fcn.30001000
push 1
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.30001020
mov edx, esi
and edx, 0x80000007
mov dword [esp + 0x40], eax
jns 0x3002eb8d
dec edx
or edx, 0xfffffff8
inc edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x58]
mov edi, dword [eax + 0x18]
push 1
setne byte [esp + 0x17]
call fcn.30001030
cmp byte [esp + 0x13], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], eax
je 0x3002ebb9
mov ecx, eax
dec ecx
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x24], 0
jle 0x3002ed07
mov ecx, dword [esp + 0x40]
movq mm0, qword [esp + 0x68]
mov edx, dword [esp + 0x1c]
add ecx, 7
and ecx, 0xfffffff8
mov dword [esp + 0x28], ecx
jmp 0x3002ebe0
cmp dword [ebp + 0x10], 1
mov eax, dword [ebx + 0xc]
movq mm4, qword [esp + 0x60]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
mov eax, ecx
movq mm1, mm0
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002ec7e
test eax, eax
je 0x3002ece6
mov ecx, dword [esp + 0x18]
sub ecx, edi
sub edx, edi
mov eax, edi
mov dword [esp + 0x20], edx
jmp 0x3002ec34
mov edx, dword [esp + 0x20]
movq mm1, qword [ecx + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002ec30
jmp 0x3002ecde
test eax, eax
je 0x3002ece6
mov ecx, dword [esp + 0x18]
sub ecx, edi
sub edx, edi
mov eax, edi
mov dword [esp + 0x20], edx
jmp 0x3002ec96
mov edx, dword [esp + 0x20]
movq mm1, qword [eax + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002ec92
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
add edx, dword [esp + 0x3c]
add edi, dword [esp + 0x48]
add dword [esp + 0x18], esi
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002ebe0
cmp byte [esp + 0x13], 0
je 0x3002ee43
mov eax, dword [ebx + 0x2c]
cmp eax, esi
jge 0x3002ed1b
mov esi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [ebx + 0x28]
push esi
push edx
push eax
call fcn.30030620
mov edx, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x28]
add edx, dword [ebx + 0x28]
push esi
push ecx
push edx
call fcn.30030620
mov eax, dword [ebx + 0xc]
movq mm0, qword [esp + 0x80]
movq mm4, qword [esp + 0x78]
mov esi, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
movd mm1, eax
mov eax, dword [esp + 0x58]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add esi, esi
movq mm1, mm2
add esp, 0x18
punpcklbw mm2, mm1
movq mm5, mm2
add ecx, edx
add eax, 7
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x3c], esi
pxor mm5, mm1
jne 0x3002edea
and eax, 0xfffffff8
mov dword [esp + 0x58], eax
je 0x3002ee43
sub edx, edi
mov eax, edi
sub ecx, edi
mov edi, dword [esp + 0x58]
movq mm1, qword [eax + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub edi, 8
jne 0x3002eda2
jmp 0x3002ee43
and eax, 0xfffffff8
mov dword [esp + 0x58], eax
je 0x3002ee43
sub edx, edi
mov eax, edi
sub ecx, edi
mov edi, dword [esp + 0x58]
movq mm1, qword [eax + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax + ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [eax], mm1
add eax, 8
sub edi, 8
jne 0x3002edfd
mov eax, dword [ebp + 0x18]
push 1
push eax
mov ecx, ebx
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov edx, dword [esp + 0x44]
mov ecx, esi
imul ecx, dword [esp + 0x38]
sub eax, ecx
push 1
push edx
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov edx, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x18]
movq mm0, qword [esp + 0x68]
mov edi, eax
mov eax, dword [esp + 0x3c]
imul eax, dword [esp + 0x38]
sub edi, eax
mov eax, dword [ebx + 0xc]
add edx, 7
cmp dword [ebp + 0x10], 1
jne 0x3002efa9
movq mm4, qword [esp + 0x60]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
and edx, 0xfffffff8
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x28], edx
mov dword [esp + 0x54], edx
je 0x3002f06f
mov edx, dword [esp + 0x18]
sub edx, ecx
mov dword [esp + 0x2c], edx
mov edx, edi
sub edx, ecx
mov eax, ecx
mov dword [esp + 0x20], edx
lea ecx, [ecx]
mov edx, dword [esp + 0x2c]
movq mm1, qword [edx + eax]
add edx, eax
mov edx, dword [esp + 0x20]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
mov edx, dword [esp + 0x2c]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
add edx, eax
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [esp + 0x58], mm1
movq mm1, qword [esi + edx]
mov edx, dword [esp + 0x20]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
movq mm6, qword [esp + 0x58]
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002eef0
jmp 0x3002f06b
movq mm5, qword [esp + 0x60]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
and edx, 0xfffffff8
movq mm2, mm0
pxor mm1, mm2
movq mm6, mm1
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x50], edx
je 0x3002f06f
mov edx, dword [esp + 0x18]
movq mm1, qword [esp + 0x68]
sub edx, edi
lea eax, [esi + edi]
mov dword [esp + 0x58], edx
jmp 0x3002f004
mov edx, dword [esp + 0x58]
movq mm2, qword [eax + edx]
mov edx, dword [esp + 0x54]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [eax]
movq mm4, mm0
pxor mm3, mm4
movq mm4, mm3
movq mm7, mm2
pcmpgtb mm4, mm7
movq mm7, mm1
pxor mm7, mm1
movq mm1, mm7
psubb mm2, mm3
movq mm3, mm4
pxor mm2, mm3
movq mm4, mm5
pand mm3, mm4
paddb mm2, mm3
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm6
pcmpgtb mm2, mm3
por mm1, mm2
movq mm2, qword [edx]
movq mm3, mm1
por mm2, mm3
movq qword [edx], mm2
add edx, 8
add eax, 8
sub dword [esp + 0x50], 8
mov dword [esp + 0x54], edx
jne 0x3002f000
mov edx, dword [esp + 0x28]
add ecx, dword [esp + 0x48]
add edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x4c]
add dword [esp + 0x18], esi
add eax, 0xfffffffe
cmp byte [esp + 0x13], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], eax
je 0x3002f099
dec dword [esp + 0x24]
cmp dword [esp + 0x24], 0
jle 0x3002f295
cmp dword [ebp + 0x10], 1
mov eax, dword [ebx + 0xc]
movq mm4, qword [esp + 0x60]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
mov eax, edx
movq mm1, mm0
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002f1a6
test eax, eax
je 0x3002f270
mov edx, dword [esp + 0x18]
sub edx, ecx
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], edi
jmp 0x3002f108
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
movq mm1, qword [edx + eax]
add edx, eax
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002f100
jmp 0x3002f263
test eax, eax
je 0x3002f270
mov edx, dword [esp + 0x18]
sub edx, ecx
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], edi
jmp 0x3002f1ca
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
movq mm1, qword [edx + eax]
add edx, eax
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002f1c2
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
movq mm0, qword [esp + 0x68]
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x3c]
add ecx, dword [esp + 0x48]
add dword [esp + 0x18], esi
dec eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002f0a4
mov dword [esp + 0x30], ecx
cmp byte [esp + 0x13], 0
je 0x3002f513
mov eax, dword [ebx + 0x2c]
cmp eax, esi
mov dword [esp + 0x40], esi
jge 0x3002f2af
mov dword [esp + 0x40], eax
mov edi, dword [ebx + 0x28]
mov dword [esp + 0x24], 2
lea ebx, [ebx]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
push ecx
push edx
push edi
call fcn.30030620
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
add edi, dword [ebx + 0x2c]
push eax
push ecx
push edi
call fcn.30030620
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
add edi, dword [ebx + 0x2c]
add dword [esp + 0x30], esi
add dword [esp + 0x34], edx
dec eax
add esp, 0x18
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002f2c0
mov eax, dword [ebx + 0xc]
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov edi, dword [ebx + 0x28]
mov edx, dword [ebx + 0x2c]
mov esi, dword [ebx + 0x2c]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add edx, edi
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
add esi, esi
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002f426
test eax, eax
je 0x3002f4f3
mov ecx, dword [esp + 0x30]
sub edi, ecx
sub edx, ecx
mov eax, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edx
jmp 0x3002f374
mov edi, dword [esp + 0x2c]
movq mm1, qword [eax + edi]
lea edx, [eax + edi]
mov edi, dword [esp + 0x20]
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [esp + 0x58], mm1
movq mm1, qword [edx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
movq mm6, qword [esp + 0x58]
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002f370
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jmp 0x3002f4f7
test eax, eax
je 0x3002f4f3
mov ecx, dword [esp + 0x30]
sub edi, ecx
sub edx, ecx
mov eax, ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edx
jmp 0x3002f446
mov edi, dword [esp + 0x2c]
movq mm1, qword [eax + edi]
lea edx, [eax + edi]
mov edi, dword [esp + 0x20]
add edi, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [edx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002f442
movq mm0, qword [esp + 0x68]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x3002f4f7
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x48]
add edi, esi
add edx, esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
cmp dword [ebp + 0x10], 1
mov eax, dword [ebx + 0xc]
movq mm4, qword [esp + 0x60]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
pxor mm5, mm1
jne 0x3002f5a4
mov esi, edx
test esi, esi
je 0x3002f65e
mov edx, dword [esp + 0x18]
sub edx, edi
sub edi, ecx
lea eax, [ecx + edi]
movq mm1, qword [eax + edx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [ecx], mm2
add ecx, 8
sub esi, 8
jne 0x3002f551
jmp 0x3002f65e
mov dword [esp + 0x54], edx
test edx, edx
je 0x3002f65e
mov edx, dword [esp + 0x18]
sub edx, ecx
sub edi, ecx
mov dword [esp + 0x20], edi
lea esp, [esp]
movq mm1, qword [ecx + edx]
mov edi, dword [esp + 0x20]
lea eax, [ecx + edx]
add edi, ecx
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [eax + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [ecx]
por mm2, mm1
movq qword [ecx], mm2
add ecx, 8
sub dword [esp + 0x54], 8
jne 0x3002f5c0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x10]
mov esi, dword [ebp + 0x18]
lea eax, [esi + 1]
mov dword [esp + 0x48], ecx
push eax
mov ecx, ebx
call fcn.30001040
mov edi, eax
lea eax, [esi - 1]
push eax
mov ecx, ebx
call fcn.30001040
push 2
mov ecx, edi
mov dword [esp + 0x58], eax
call fcn.30001010
mov ecx, dword [esp + 0x54]
push 2
mov esi, eax
call fcn.30001010
push 2
mov ecx, edi
mov dword [esp + 0x40], eax
call fcn.30001000
mov ecx, dword [esp + 0x54]
push 2
mov dword [esp + 0x1c], eax
call fcn.30001000
push 2
mov ecx, edi
mov dword [esp + 0x44], eax
call fcn.30001020
mov edx, esi
and edx, 0x80000007
mov dword [esp + 0x20], eax
jns 0x3002f6d9
dec edx
or edx, 0xfffffff8
inc edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x30], ecx
push 2
mov ecx, edi
setne byte [esp + 0x17]
call fcn.30001030
cmp byte [esp + 0x13], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], eax
je 0x3002f705
dec eax
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x30]
test eax, eax
jle 0x3002f868
mov edx, dword [esp + 0x20]
movq mm0, qword [esp + 0x68]
mov ecx, dword [esp + 0x40]
add edx, 7
and edx, 0xfffffff8
mov dword [esp + 0x28], edx
jmp 0x3002f734
mov edx, dword [esp + 0x28]
cmp dword [ebp + 0x10], 1
mov eax, dword [ebx + 0xc]
movq mm4, qword [esp + 0x60]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
mov dword [esp + 0x54], edx
mov eax, edi
pxor mm5, mm1
jne 0x3002f7d8
test edx, edx
je 0x3002f847
mov edx, dword [esp + 0x18]
sub edx, ecx
sub ecx, edi
mov dword [esp + 0x24], ecx
jmp 0x3002f784
mov ecx, dword [esp + 0x24]
add ecx, eax
movq mm1, qword [edx + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [eax]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002f780
jmp 0x3002f843
test edx, edx
je 0x3002f847
mov edx, dword [esp + 0x18]
sub edx, ecx
sub ecx, edi
mov dword [esp + 0x24], ecx
jmp 0x3002f7f4
mov ecx, dword [esp + 0x24]
add ecx, eax
movq mm1, qword [edx + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [eax]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002f7f0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
add ecx, dword [esp + 0x3c]
add edi, dword [esp + 0x48]
add dword [esp + 0x18], esi
dec eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], eax
test eax, eax
jg 0x3002f730
cmp byte [esp + 0x13], 0
je 0x3002f9c2
mov eax, dword [ebx + 0x2c]
cmp eax, esi
jge 0x3002f87c
mov esi, eax
mov edx, dword [esp + 0x18]
mov eax, dword [ebx + 0x28]
push esi
push edx
push eax
call fcn.30030620
mov edx, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x4c]
add edx, dword [ebx + 0x28]
push esi
push ecx
push edx
call fcn.30030620
mov eax, dword [ebx + 0xc]
movq mm0, qword [esp + 0x80]
movq mm4, qword [esp + 0x78]
mov esi, dword [ebx + 0x2c]
mov ecx, dword [ebx + 0x28]
mov ebx, dword [ebx + 0x2c]
mov edx, dword [esp + 0x38]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add esi, esi
movq mm1, mm2
add esp, 0x18
punpcklbw mm2, mm1
movq mm5, mm2
add ebx, ecx
add edx, 7
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x3c], esi
mov eax, edi
pxor mm5, mm1
jne 0x3002f95a
and edx, 0xfffffff8
je 0x3002f9c2
sub ecx, ebx
mov dword [esp + 0x40], ecx
sub ebx, edi
mov edi, dword [esp + 0x40]
lea ecx, [eax + ebx]
movq mm1, qword [edi + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [eax]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub edx, 8
jne 0x3002f903
jmp 0x3002f9c2
and edx, 0xfffffff8
je 0x3002f9c2
sub ecx, ebx
mov dword [esp + 0x40], ecx
sub ebx, edi
jmp 0x3002f970
mov edi, dword [esp + 0x40]
lea ecx, [eax + ebx]
movq mm1, qword [ecx + edi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [eax]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub edx, 8
jne 0x3002f970
mov eax, dword [ebp + 0x18]
mov ebx, dword [esp + 0x14]
push 2
push eax
mov ecx, ebx
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
mov ecx, esi
imul ecx, edi
sub eax, ecx
push 2
push edx
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.30001040
mov ecx, eax
call fcn.30001000
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x14]
movq mm0, qword [esp + 0x68]
mov ebx, eax
mov eax, dword [esp + 0x3c]
imul eax, edi
mov edi, dword [ecx + 0x18]
sub ebx, eax
cmp dword [ebp + 0x10], 1
mov eax, dword [edx + 0xc]
jne 0x3002fb2d
movq mm4, qword [esp + 0x60]
movd mm1, eax
mov eax, dword [esp + 0x20]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add eax, 7
movq mm5, mm2
and eax, 0xfffffff8
movq mm1, mm0
pxor mm5, mm1
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], eax
je 0x3002fbe4
mov ecx, dword [esp + 0x18]
sub ecx, edi
mov edx, ebx
sub edx, edi
mov eax, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], edx
jmp 0x3002fa88
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
movq mm1, qword [ecx + eax]
add ecx, eax
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [esp + 0x58], mm1
movq mm1, qword [esi + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
movq mm6, qword [esp + 0x58]
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002fa80
jmp 0x3002fbe4
movq mm5, qword [esp + 0x60]
movd mm1, eax
mov eax, dword [esp + 0x20]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
add eax, 7
and eax, 0xfffffff8
movq mm2, mm0
pxor mm1, mm2
movq mm6, mm1
mov ecx, edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x54], eax
je 0x3002fbe4
mov edx, dword [esp + 0x18]
movq mm1, qword [esp + 0x68]
sub edx, ebx
lea eax, [esi + ebx]
mov dword [esp + 0x58], edx
jmp 0x3002fb85
mov edx, dword [esp + 0x58]
movq mm2, qword [edx + eax]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [eax]
movq mm4, mm0
pxor mm3, mm4
movq mm4, mm3
movq mm7, mm2
pcmpgtb mm4, mm7
movq mm7, mm1
pxor mm7, mm1
movq mm1, mm7
psubb mm2, mm3
movq mm3, mm4
pxor mm2, mm3
movq mm4, mm5
pand mm3, mm4
paddb mm2, mm3
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm6
pcmpgtb mm2, mm3
por mm1, mm2
movq mm2, qword [ecx]
movq mm3, mm1
por mm2, mm3
movq qword [ecx], mm2
add ecx, 8
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002fb81
add edi, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
add dword [esp + 0x18], esi
add ebx, dword [esp + 0x3c]
add eax, 0xfffffffe
cmp byte [esp + 0x13], 0
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], eax
je 0x3002fc0b
dec eax
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x3002fdf9
cmp dword [ebp + 0x10], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
movq mm4, qword [esp + 0x60]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002fd16
test eax, eax
je 0x3002fdd8
mov ecx, dword [esp + 0x18]
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, ebx
sub ecx, edi
mov eax, edi
mov dword [esp + 0x24], ecx
jmp 0x3002fc70
mov ecx, dword [esp + 0x30]
movq mm1, qword [ecx + eax]
mov edx, dword [esp + 0x24]
add ecx, eax
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002fc70
jmp 0x3002fdd3
test eax, eax
je 0x3002fdd8
mov ecx, dword [esp + 0x18]
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, ebx
sub ecx, edi
mov eax, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x30]
movq mm1, qword [ecx + eax]
mov edx, dword [esp + 0x24]
add ecx, eax
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [esi + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [esi + edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002fd32
movq mm0, qword [esp + 0x68]
mov eax, dword [esp + 0x2c]
add edi, dword [esp + 0x48]
add dword [esp + 0x18], esi
add ebx, dword [esp + 0x3c]
dec eax
mov dword [esp + 0x2c], eax
test eax, eax
jg 0x3002fc13
mov dword [esp + 0x30], edi
cmp byte [esp + 0x13], 0
je 0x30030070
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x2c]
cmp eax, esi
mov dword [esp + 0x44], esi
jge 0x3002fe17
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x14]
mov edi, dword [ecx + 0x28]
mov dword [esp + 0x2c], 2
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x18]
push edx
push eax
push edi
call fcn.30030620
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x20]
add edi, dword [ecx + 0x2c]
push edx
push ebx
push edi
call fcn.30030620
mov eax, dword [esp + 0x2c]
add edi, dword [eax + 0x2c]
mov eax, dword [esp + 0x44]
add dword [esp + 0x30], esi
add ebx, dword [esp + 0x54]
dec eax
add esp, 0x18
mov dword [esp + 0x2c], eax
test eax, eax
jg 0x3002fe26
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0xc]
movq mm0, qword [esp + 0x68]
movq mm4, qword [esp + 0x60]
mov ecx, dword [edi + 0x28]
mov ebx, dword [edi + 0x2c]
mov esi, dword [edi + 0x2c]
movd mm1, eax
mov eax, dword [esp + 0x28]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
add ebx, ecx
punpcklbw mm2, mm1
movq mm5, mm2
add esi, esi
cmp dword [ebp + 0x10], 1
movq mm1, mm0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x54], eax
pxor mm5, mm1
jne 0x3002ff91
test eax, eax
je 0x3003005c
mov edi, dword [esp + 0x30]
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, ebx
sub ecx, edi
mov eax, edi
mov dword [esp + 0x24], ecx
jmp 0x3002fee0
mov ecx, dword [esp + 0x30]
movq mm1, qword [ecx + eax]
mov edx, dword [esp + 0x24]
add ecx, eax
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [esp + 0x68], mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
movq mm6, qword [esp + 0x68]
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002fee0
mov ecx, dword [esp + 0x18]
jmp 0x30030060
test eax, eax
je 0x3003005c
mov edi, dword [esp + 0x30]
sub ecx, edi
mov dword [esp + 0x30], ecx
mov ecx, ebx
sub ecx, edi
mov eax, edi
mov dword [esp + 0x24], ecx
lea ecx, [ecx]
mov ecx, dword [esp + 0x30]
movq mm1, qword [ecx + eax]
mov edx, dword [esp + 0x24]
add ecx, eax
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x3002ffb0
movq mm0, qword [esp + 0x68]
mov ecx, dword [esp + 0x18]
jmp 0x30030060
mov edi, dword [esp + 0x30]
add edi, dword [esp + 0x48]
add ecx, esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x18], ecx
add ebx, esi
cmp dword [ebp + 0x10], 1
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0xc]
movq mm4, qword [esp + 0x60]
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movq mm1, mm0
pxor mm5, mm1
jne 0x30030117
mov esi, dword [esp + 0x28]
mov eax, edi
test esi, esi
je 0x300301cc
mov edx, dword [esp + 0x18]
sub edx, ebx
sub ebx, edi
lea ebx, [ebx]
lea ecx, [ebx + eax]
movq mm1, qword [edx + ecx]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, qword [eax]
movq mm6, mm4
pand mm3, mm6
paddb mm1, mm3
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm5
pcmpgtb mm1, mm3
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub esi, 8
jne 0x300300c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [esp + 0x28]
mov dword [esp + 0x54], eax
test eax, eax
je 0x300301cc
mov edx, dword [esp + 0x18]
sub edx, edi
mov eax, edi
sub ebx, edi
movq mm1, qword [edx + eax]
lea ecx, [edx + eax]
lea edi, [ebx + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm6, mm1
pcmpgtb mm3, mm6
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
movq mm6, mm1
movq mm1, qword [ecx + esi]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edi + esi]
movq mm3, mm0
pxor mm2, mm3
movq mm3, mm2
movq mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm3
pxor mm1, mm2
movq mm2, mm4
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm5
pcmpgtb mm1, mm2
por mm6, mm1
movq mm1, mm6
movq mm2, qword [eax]
por mm2, mm1
movq qword [eax], mm2
add eax, 8
sub dword [esp + 0x54], 8
jne 0x30030131
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14