Function at 0x300296d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
push ebx
push esi
mov esi, ecx
mov ecx, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
push ecx
mov ecx, esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x38], eax
call fcn.30001040
mov edx, dword [ebp + 0x10]
add edx, 0xfffffffe
push edx
mov ecx, esi
mov ebx, eax
call fcn.30001040
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 4]
mov eax, dword [ebx + 0x10]
imul eax, dword [ebx]
mov esi, dword [ebx + 0x28]
mov dword [esp + 0x2c], eax
mov eax, esi
and eax, 0x80000007
mov dword [esp + 0x30], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 0x20], edx
jns 0x30029733
dec eax
or eax, 0xfffffff8
inc eax
mov ebx, dword [ebx + 0x1c]
mov edi, dword [edi + 0x18]
setne byte [esp + 0x13]
cmp byte [esp + 0x13], 0
mov dword [esp + 0x38], ebx
mov dword [esp + 0x24], ebx
je 0x30029752
dec ebx
mov dword [esp + 0x24], ebx
cmp dword [esp + 0x24], 0
jle 0x30029ba1
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 mm2, mm1
mov al, 1
movd mm0, eax
mov eax, dword [esp + 0x2c]
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm3, mm1
movq mm5, qword [esp + 0x68]
movq mm6, qword [esp + 0x68]
movq mm1, qword [esp + 0x50]
add eax, 7
and eax, 0xfffffff8
movq qword [esp + 0x40], mm2
movq qword [esp + 0x48], mm3
mov dword [esp + 0x1c], eax
jmp 0x300297ca
movq mm2, qword [esp + 0x40]
movq mm3, qword [esp + 0x48]
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0xc]
cmp byte [ebx + 0x1a], 0
mov ebx, ecx
jne 0x30029979
sub ebx, edi
mov dword [esp + 0x18], ebx
mov ebx, edx
sub ebx, edi
cmp dword [ebp + 0xc], 1
mov dword [esp + 0x14], ebx
jne 0x300298bb
movq mm0, qword [esp + 0x58]
movq mm4, mm0
pxor mm4, mm0
movq qword [esp + 0x58], mm4
movq mm0, mm2
movq qword [esp + 0x60], mm3
movd mm2, eax
mov eax, dword [esp + 0x1c]
movq mm3, mm2
punpcklbw mm3, mm2
movq mm2, mm3
punpcklbw mm3, mm2
movq mm2, mm3
punpcklbw mm3, mm2
movq mm2, mm0
pxor mm3, mm2
mov dword [esp + 0x20], eax
movq qword [esp + 0x68], mm3
mov eax, edi
jmp 0x30029840
mov ebx, dword [esp + 0x18]
movq mm2, qword [ebx + eax]
mov ebx, dword [esp + 0x14]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [ebx + eax]
movq mm4, mm0
pxor mm3, mm4
movq mm4, mm3
movq mm7, mm2
pcmpgtb mm4, mm7
psubb mm2, mm3
movq mm3, mm4
pxor mm2, mm3
movq mm4, qword [esp + 0x60]
pand mm3, mm4
paddb mm2, mm3
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [esp + 0x68]
pcmpgtb mm2, mm3
movq mm4, mm2
movq mm3, qword [0x30037168]
movq mm7, mm3
pand mm3, mm2
psrld mm3, 1
movq mm2, qword [esp + 0x58]
pcmpgtd mm3, mm2
pand mm7, mm3
por mm4, mm7
movq qword [eax], mm4
add eax, 8
sub dword [esp + 0x20], 8
jne 0x30029840
jmp 0x30029b82
movq mm0, mm1
pxor mm0, mm1
movq mm1, mm0
movq mm0, mm2
movq qword [esp + 0x68], mm3
movd mm2, eax
mov eax, dword [esp + 0x1c]
movq mm3, mm2
punpcklbw mm3, mm2
movq mm2, mm3
punpcklbw mm3, mm2
movq mm2, mm3
punpcklbw mm3, mm2
movq mm2, mm0
pxor mm3, mm2
mov dword [esp + 0x20], eax
movq qword [esp + 0x50], mm1
movq qword [esp + 0x60], mm3
mov eax, edi
jmp 0x30029900
mov ebx, dword [esp + 0x18]
movq mm2, qword [eax + ebx]
mov ebx, dword [esp + 0x14]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [eax + ebx]
movq mm4, mm0
pxor mm3, mm4
movq mm4, mm3
movq mm7, mm2
pcmpgtb mm4, mm7
psubb mm2, mm3
movq mm3, mm4
pxor mm2, mm3
movq mm4, qword [esp + 0x68]
pand mm3, mm4
paddb mm2, mm3
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [esp + 0x60]
pcmpgtb mm2, mm3
movq mm4, mm2
movq mm3, qword [0x30037168]
movq mm7, mm3
pand mm3, mm2
psrld mm3, 1
movq mm2, mm1
pcmpgtd mm3, mm2
pand mm7, mm3
por mm4, mm7
movq qword [eax], mm4
add eax, 8
sub dword [esp + 0x20], 8
jne 0x30029900
jmp 0x30029b82
sub ebx, edi
mov dword [esp + 0x18], ebx
mov ebx, edx
sub ebx, edi
cmp dword [ebp + 0xc], 1
mov dword [esp + 0x14], ebx
jne 0x30029a8b
movq mm0, mm6
movq mm1, mm6
pxor mm0, mm1
movq mm6, mm0
movq mm1, mm2
movq qword [esp + 0x68], mm3
movd mm0, eax
mov eax, dword [esp + 0x1c]
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm1
pxor mm2, mm0
mov dword [esp + 0x20], eax
movq qword [esp + 0x60], mm2
mov eax, edi
mov ebx, dword [esp + 0x18]
movq mm0, qword [eax + ebx]
mov ebx, dword [esp + 0x14]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [eax + ebx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm4, mm0
pcmpgtb mm3, mm4
psubb mm0, mm2
movq mm2, mm0
movq mm0, mm3
pxor mm2, mm0
movq mm0, qword [esp + 0x68]
pand mm3, mm0
movq mm0, mm3
paddb mm2, mm3
movq mm3, mm1
pxor mm2, mm3
movq mm3, qword [esp + 0x60]
pcmpgtb mm2, mm3
movq mm3, mm2
movq mm4, qword [0x30037168]
pand mm4, mm2
movq mm2, mm4
psrld mm2, 1
movq mm4, mm6
pcmpgtd mm2, mm4
por mm3, mm2
movq mm2, mm3
movq mm4, mm2
movq mm3, qword [0x30037178]
movq mm7, mm3
pand mm7, mm2
psrld mm7, 1
movq mm2, mm6
pcmpgtd mm7, mm2
movq mm2, mm0
psubusb mm7, mm2
por mm4, mm7
movq mm2, mm4
pand mm0, mm2
psrld mm0, 1
movq mm2, mm6
pcmpgtd mm0, mm2
psubusb mm0, mm3
por mm4, mm0
movq qword [eax], mm4
add eax, 8
sub dword [esp + 0x20], 8
jne 0x300299cf
jmp 0x30029b7d
movq mm0, mm5
pxor mm0, mm5
movq mm5, mm0
movq mm1, mm2
movq qword [esp + 0x68], mm3
movd mm0, eax
mov eax, dword [esp + 0x1c]
movq mm2, mm0
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm2
punpcklbw mm2, mm0
movq mm0, mm1
pxor mm2, mm0
mov dword [esp + 0x20], eax
movq qword [esp + 0x60], mm2
mov eax, edi
mov ebx, dword [esp + 0x18]
movq mm0, qword [eax + ebx]
mov ebx, dword [esp + 0x14]
movq mm2, mm1
pxor mm0, mm2
movq mm2, qword [eax + ebx]
movq mm3, mm1
pxor mm2, mm3
movq mm3, mm2
movq mm4, mm0
pcmpgtb mm3, mm4
psubb mm0, mm2
movq mm2, mm0
movq mm0, mm3
pxor mm2, mm0
movq mm0, qword [esp + 0x68]
pand mm3, mm0
movq mm0, mm3
paddb mm2, mm3
movq mm3, mm1
pxor mm2, mm3
movq mm3, qword [esp + 0x60]
pcmpgtb mm2, mm3
movq mm3, mm2
movq mm4, qword [0x30037168]
pand mm4, mm2
movq mm2, mm4
psrld mm2, 1
movq mm4, mm5
pcmpgtd mm2, mm4
por mm3, mm2
movq mm2, mm3
movq mm4, mm2
movq mm3, qword [0x30037178]
movq mm7, mm3
pand mm7, mm2
psrld mm7, 1
movq mm2, mm5
pcmpgtd mm7, mm2
movq mm2, mm0
psubusb mm7, mm2
por mm4, mm7
movq mm2, mm4
pand mm0, mm2
psrld mm0, 1
movq mm2, mm5
pcmpgtd mm0, mm2
psubusb mm0, mm3
por mm4, mm0
movq qword [eax], mm4
add eax, 8
sub dword [esp + 0x20], 8
jne 0x30029ac6
movq mm1, qword [esp + 0x50]
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x34]
add edx, dword [esp + 0x30]
dec eax
add ecx, esi
mov dword [esp + 0x24], eax
test eax, eax
jg 0x300297c0
mov dword [esp + 0x20], edx
cmp byte [esp + 0x13], 0
je 0x30029f1b
mov ebx, dword [esp + 0x28]
mov eax, dword [ebx + 0x2c]
cmp eax, esi
jge 0x30029bb9
mov esi, eax
push esi
push ecx
mov ecx, dword [ebx + 0x28]
push ecx
call fcn.30030620
mov eax, dword [ebx + 0x2c]
mov edx, dword [esp + 0x2c]
add eax, dword [ebx + 0x28]
push esi
push edx
push eax
call fcn.30030620
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0x28]
mov ecx, dword [ebx + 0xc]
mov bl, byte [ebx + 0x1a]
movq mm0, qword [esp + 0x80]
lea esi, [edx + edx]
add esp, 0x18
add edx, eax
movq mm1, mm0
test bl, bl
mov dword [esp + 0x30], esi
pxor mm1, mm0
mov bl, 0x80
jne 0x30029d4b
movq mm4, mm1
movd mm0, ebx
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov bl, 1
movd mm1, ebx
mov ebx, dword [esp + 0x2c]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
movd mm1, ecx
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add ebx, 7
movq mm1, mm2
sub eax, edi
and ebx, 0xfffffff8
sub edx, edi
cmp dword [ebp + 0xc], 1
movq mm2, mm0
pxor mm1, mm2
mov ecx, edi
movq mm6, mm1
jne 0x30029ce0
movq mm1, qword [ecx + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx + ecx]
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, mm5
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm6
pcmpgtb mm1, mm2
movq mm3, mm1
movq mm2, qword [0x30037168]
movq mm7, mm2
pand mm2, mm1
psrld mm2, 1
movq mm1, mm4
pcmpgtd mm2, mm1
pand mm7, mm2
por mm3, mm7
movq qword [ecx], mm3
add ecx, 8
sub ebx, 8
jne 0x30029c72
jmp 0x30029f1b
movq mm1, qword [ecx + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [ecx + 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, mm5
pand mm3, mm2
paddb mm1, mm3
movq mm2, mm0
pxor mm1, mm2
movq mm2, mm6
pcmpgtb mm1, mm2
movq mm3, mm1
movq mm2, qword [0x30037168]
movq mm7, mm2
pand mm2, mm1
psrld mm2, 1
movq mm1, mm4
pcmpgtd mm2, mm1
pand mm7, mm2
por mm3, mm7
movq qword [ecx], mm3
add ecx, 8
sub ebx, 8
jne 0x30029ce0
jmp 0x30029f1b
movq mm2, mm1
movd mm0, ebx
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
mov bl, 1
movd mm1, ebx
mov ebx, dword [esp + 0x2c]
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
movq mm5, mm3
movd mm1, ecx
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
movq mm1, mm3
add ebx, 7
punpcklbw mm3, mm1
sub eax, edi
and ebx, 0xfffffff8
sub edx, edi
cmp dword [ebp + 0xc], 1
movq mm1, mm0
pxor mm3, mm1
mov ecx, edi
movq qword [esp + 0x68], mm3
jne 0x30029e6d
movq mm1, qword [ecx + eax]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [ecx + edx]
movq mm4, mm0
pxor mm3, mm4
movq mm4, mm3
movq mm6, mm1
pcmpgtb mm4, mm6
psubb mm1, mm3
movq mm3, mm1
movq mm1, mm4
pxor mm3, mm1
movq mm4, mm5
pand mm1, mm4
movq mm4, mm1
paddb mm3, mm4
movq mm4, mm0
pxor mm3, mm4
movq mm4, qword [esp + 0x68]
pcmpgtb mm3, mm4
movq mm4, mm3
movq mm6, qword [0x30037168]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
por mm4, mm3
movq mm3, mm4
movq mm6, mm3
movq mm4, qword [0x30037178]
movq mm7, mm4
pand mm7, mm3
psrld mm7, 1
movq mm3, mm2
pcmpgtd mm7, mm3
movq mm3, mm1
psubusb mm7, mm3
por mm6, mm7
movq mm3, mm6
pand mm1, mm3
psrld mm1, 1
movq mm3, mm2
pcmpgtd mm1, mm3
movq mm3, mm4
psubusb mm1, mm3
por mm6, mm1
movq qword [ecx], mm6
add ecx, 8
sub ebx, 8
jne 0x30029dba
jmp 0x30029f1b
movq mm1, qword [ecx + eax]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [ecx + edx]
movq mm4, mm0
pxor mm3, mm4
movq mm4, mm3
movq mm6, mm1
pcmpgtb mm4, mm6
psubb mm1, mm3
movq mm3, mm1
movq mm1, mm4
pxor mm3, mm1
movq mm4, mm5
pand mm1, mm4
movq mm4, mm1
paddb mm3, mm4
movq mm4, mm0
pxor mm3, mm4
movq mm4, qword [esp + 0x68]
pcmpgtb mm3, mm4
movq mm4, mm3
movq mm6, qword [0x30037168]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
por mm4, mm3
movq mm3, mm4
movq mm6, mm3
movq mm4, qword [0x30037178]
movq mm7, mm4
pand mm7, mm3
psrld mm7, 1
movq mm3, mm2
pcmpgtd mm7, mm3
movq mm3, mm1
psubusb mm7, mm3
por mm6, mm7
movq mm3, mm6
pand mm1, mm3
psrld mm1, 1
movq mm3, mm2
pcmpgtd mm1, mm3
movq mm3, mm4
psubusb mm1, mm3
por mm6, mm1
movq qword [ecx], mm6
add ecx, 8
sub ebx, 8
jne 0x30029e6d
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x28]
inc ecx
push ecx
mov edi, 1
sub edi, dword [ebp + 0xc]
mov ecx, ebx
call fcn.30001040
mov eax, dword [eax + 4]
mov edx, edi
imul edx, esi
sub eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
dec eax
push eax
mov ecx, ebx
call fcn.30001040
imul edi, dword [esp + 0x30]
mov ebx, dword [eax + 4]
mov ecx, dword [ebp + 8]
sub ebx, edi
mov edi, dword [ecx + 0x18]
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x1a], 0
mov eax, dword [ecx + 0xc]
jne 0x3002a205
cmp dword [ebp + 0xc], 1
mov dl, 0x80
mov cl, 1
jne 0x3002a0dc
movq mm0, qword [esp + 0x58]
movq mm1, mm0
pxor mm1, mm0
movq qword [esp + 0x58], mm1
movd mm0, edx
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
movd mm1, ecx
mov ecx, dword [esp + 0x20]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm4, mm2
movd mm1, eax
mov eax, dword [esp + 0x2c]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
add eax, 7
and eax, 0xfffffff8
movq mm1, mm2
punpcklbw mm2, mm1
sub ecx, edi
mov edx, ebx
movq mm5, mm2
sub edx, edi
movq mm1, mm0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
movq qword [esp + 0x40], mm0
movq qword [esp + 0x48], mm4
pxor mm5, mm1
mov eax, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
jmp 0x3002a018
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
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 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 [0x30037168]
movq mm3, mm2
pand mm2, mm6
psrld mm2, 1
movq mm6, qword [esp + 0x58]
pcmpgtd mm2, mm6
pand mm3, mm2
movq mm2, mm3
movq mm3, qword [eax]
por mm1, mm2
por mm3, mm1
movq qword [eax], mm3
add eax, 8
sub dword [esp + 0x2c], 8
jne 0x3002a010
mov ecx, dword [esp + 0x20]
jmp 0x3002a535
movq mm0, qword [esp + 0x68]
movq mm1, mm0
pxor mm1, mm0
movq mm6, mm1
movd mm0, edx
mov edx, dword [esp + 0x20]
movq mm1, mm0
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
punpcklbw mm1, mm0
movq mm0, mm1
movd mm1, ecx
mov ecx, dword [esp + 0x2c]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm4, mm2
movq qword [esp + 0x68], mm4
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
add ecx, 7
punpcklbw mm2, mm1
and ecx, 0xfffffff8
movq mm1, mm0
pxor mm2, mm1
sub edx, ebx
movq qword [esp + 0x60], mm2
movq mm1, qword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ecx
movq qword [esp + 0x40], mm0
movq qword [esp + 0x48], mm4
mov eax, edi
lea ecx, [ebx + esi]
mov dword [esp + 0x2c], edx
jmp 0x3002a175
mov edx, dword [esp + 0x2c]
movq mm2, qword [edx + ecx]
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [ecx]
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, qword [esp + 0x68]
pand mm5, mm3
paddb mm2, mm5
movq mm3, mm0
pxor mm2, mm3
movq mm3, qword [esp + 0x60]
pcmpgtb mm2, mm3
por mm1, mm2
movq mm3, mm1
movq mm2, qword [0x30037168]
movq mm5, mm2
pand mm2, mm1
psrld mm2, 1
movq mm1, mm6
pcmpgtd mm2, mm1
pand mm5, mm2
por mm3, mm5
movq mm1, mm3
movq mm2, qword [eax]
por mm2, mm3
movq qword [eax], mm2
add eax, 8
add ecx, 8
sub dword [esp + 0x24], 8
jne 0x3002a171
mov ecx, dword [esp + 0x20]
jmp 0x3002a535
cmp dword [ebp + 0xc], 1
movq mm0, qword [esp + 0x68]
movq mm1, mm0
pxor mm1, mm0
jne 0x3002a3cd
movq mm2, mm1
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 cl, 1
movd mm1, ecx
mov ecx, dword [esp + 0x20]
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
movq mm4, mm3
movd mm1, eax
mov eax, dword [esp + 0x2c]
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
mov edx, ecx
sub edx, edi
punpcklbw mm3, mm1
add eax, 7
movq mm1, mm3
and eax, 0xfffffff8
mov dword [esp + 0x18], edx
punpcklbw mm3, mm1
mov edx, ebx
movq mm1, mm0
sub edx, edi
pxor mm3, mm1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
movq qword [esp + 0x40], mm0
movq qword [esp + 0x48], mm4
movq qword [esp + 0x58], mm3
mov eax, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
movq mm1, qword [edx + eax]
add edx, eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x14]
add edx, eax
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [edx]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm1
pcmpgtb mm5, mm6
psubb mm1, mm3
movq mm3, mm5
pxor mm1, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm1, mm5
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [esp + 0x58]
pcmpgtb mm1, mm3
movq qword [esp + 0x68], mm1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
movq mm1, qword [edx + esi]
mov edx, dword [esp + 0x20]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [edx + esi]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm1
pcmpgtb mm5, mm6
psubb mm1, mm3
movq mm3, mm1
movq mm1, mm5
pxor mm3, mm1
movq mm1, mm4
pand mm5, mm1
movq mm1, mm5
movq mm5, qword [esp + 0x68]
movq mm6, mm1
paddb mm3, mm6
movq mm6, mm0
pxor mm3, mm6
movq mm6, qword [esp + 0x58]
pcmpgtb mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm6, qword [0x30037168]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm6, qword [0x30037178]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
movq mm6, mm1
psubusb mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm5, qword [eax]
movq mm6, mm3
pand mm1, mm3
psrld mm1, 1
movq mm3, mm2
pcmpgtd mm1, mm3
movq mm3, qword [0x30037178]
psubusb mm1, mm3
por mm6, mm1
movq mm1, mm6
por mm5, mm1
movq qword [eax], mm5
add eax, 8
sub dword [esp + 0x2c], 8
jne 0x3002a2a3
jmp 0x3002a535
movq mm3, mm1
mov cl, 0x80
movd mm0, ecx
mov ecx, dword [esp + 0x20]
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
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm4, mm2
movq qword [esp + 0x68], mm4
movd mm1, eax
mov eax, dword [esp + 0x2c]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
add eax, 7
punpcklbw mm2, mm1
and eax, 0xfffffff8
mov edx, ecx
movq mm1, mm0
pxor mm2, mm1
sub edx, ebx
movq qword [esp + 0x60], mm2
movq mm2, qword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
movq qword [esp + 0x40], mm0
movq qword [esp + 0x48], mm4
mov dword [esp + 0x24], edi
lea eax, [ebx + esi]
mov dword [esp + 0x2c], edx
jmp 0x3002a464
mov edx, dword [esp + 0x2c]
movq mm1, qword [edx + eax]
movq mm5, mm0
pxor mm1, mm5
movq mm5, qword [eax]
movq mm6, mm0
pxor mm5, mm6
movq mm6, mm5
movq mm7, mm1
pcmpgtb mm6, mm7
psubb mm1, mm5
movq mm5, mm1
movq mm1, mm6
pxor mm5, mm1
movq mm6, qword [esp + 0x68]
pand mm1, mm6
movq mm6, mm2
pxor mm6, mm2
movq mm2, mm6
movq mm6, mm1
paddb mm5, mm6
mov edx, dword [esp + 0x24]
movq mm6, mm0
pxor mm5, mm6
movq mm6, qword [esp + 0x60]
pcmpgtb mm5, mm6
por mm2, mm5
movq mm5, mm2
movq mm6, qword [0x30037168]
pand mm6, mm2
movq mm2, mm6
psrld mm2, 1
movq mm6, mm3
pcmpgtd mm2, mm6
por mm5, mm2
movq mm2, mm5
movq mm6, mm2
movq mm5, qword [0x30037178]
movq mm7, mm5
pand mm7, mm2
psrld mm7, 1
movq mm2, mm3
pcmpgtd mm7, mm2
movq mm2, mm1
psubusb mm7, mm2
por mm6, mm7
movq mm2, mm6
pand mm1, mm2
psrld mm1, 1
movq mm2, mm3
pcmpgtd mm1, mm2
psubusb mm1, mm5
por mm6, mm1
movq mm2, mm6
movq mm1, qword [edx]
movq mm5, mm2
por mm1, mm5
movq qword [edx], mm1
add edx, 8
add eax, 8
sub dword [esp + 0x18], 8
mov dword [esp + 0x24], edx
jne 0x3002a460
mov eax, dword [esp + 0x38]
add edi, dword [esp + 0x34]
add ebx, dword [esp + 0x30]
add ecx, esi
add eax, 0xfffffffe
cmp byte [esp + 0x13], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
je 0x3002a55a
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jle 0x3002aaa7
movq mm6, qword [esp + 0x68]
jmp 0x3002a570
mov edx, dword [esp + 0x28]
cmp byte [edx + 0x1a], 0
mov eax, dword [edx + 0xc]
jne 0x3002a7cf
cmp dword [ebp + 0xc], 1
jne 0x3002a6b8
movq mm1, qword [esp + 0x58]
movq mm2, mm1
pxor mm2, mm1
movq qword [esp + 0x58], mm2
movd mm1, eax
mov eax, dword [esp + 0x1c]
movq mm2, mm1
punpcklbw mm2, mm1
mov edx, ecx
sub edx, edi
movq mm1, mm2
punpcklbw mm2, mm1
mov dword [esp + 0x18], edx
movq mm1, mm2
punpcklbw mm2, mm1
mov edx, ebx
movq mm5, mm2
sub edx, edi
movq mm1, mm0
mov dword [esp + 0x2c], eax
pxor mm5, mm1
mov eax, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
movq mm1, qword [edx + eax]
add edx, eax
mov edx, dword [esp + 0x14]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
mov edx, dword [esp + 0x18]
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
add edx, eax
movq mm2, mm5
pcmpgtb mm1, mm2
movq qword [esp + 0x68], mm1
movq mm1, qword [edx + esi]
mov edx, dword [esp + 0x14]
add edx, eax
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
movq mm7, 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 mm7, mm1
movq mm1, mm7
movq mm2, qword [0x30037168]
movq mm3, mm2
pand mm2, mm7
psrld mm2, 1
movq mm7, qword [esp + 0x58]
pcmpgtd mm2, mm7
pand mm3, mm2
movq mm2, mm3
movq mm3, qword [eax]
por mm1, mm2
por mm3, mm1
movq qword [eax], mm3
add eax, 8
sub dword [esp + 0x2c], 8
jne 0x3002a5d3
movq mm4, qword [esp + 0x48]
movq mm0, qword [esp + 0x40]
jmp 0x3002aa88
movq mm1, qword [esp + 0x50]
movq mm2, mm1
pxor mm2, mm1
movq qword [esp + 0x50], mm2
movd mm1, eax
mov eax, dword [esp + 0x1c]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
sub ecx, edi
mov edx, ebx
movq mm5, mm2
sub edx, edi
movq mm1, mm0
mov dword [esp + 0x2c], eax
pxor mm5, mm1
mov eax, edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], edx
jmp 0x3002a708
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
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 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
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 mm7, mm1
pcmpgtb mm3, mm7
movq mm7, 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 mm7, mm1
movq mm1, mm7
movq mm2, qword [0x30037168]
movq mm3, mm2
pand mm2, mm7
psrld mm2, 1
movq mm7, qword [esp + 0x50]
pcmpgtd mm2, mm7
pand mm3, mm2
movq mm2, mm3
movq mm3, qword [eax]
por mm1, mm2
por mm3, mm1
movq qword [eax], mm3
add eax, 8
sub dword [esp + 0x2c], 8
jne 0x3002a700
jmp 0x3002aa7a
sub ecx, edi
cmp dword [ebp + 0xc], 1
mov dword [esp + 0x18], ecx
jne 0x3002a934
movq mm1, qword [esp + 0x38]
mov edx, dword [esp + 0x1c]
movq mm2, mm1
pxor mm2, mm1
movq qword [esp + 0x38], mm2
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
mov dword [esp + 0x2c], edx
movq mm1, mm2
punpcklbw mm2, mm1
mov edx, ebx
movq mm5, mm2
sub edx, edi
movq mm1, mm0
pxor mm5, mm1
mov eax, edi
mov dword [esp + 0x14], edx
jmp 0x3002a829
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
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 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
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 mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm1
movq mm1, mm3
pxor mm2, mm1
movq mm1, mm4
pand mm3, mm1
movq mm1, mm3
movq mm3, qword [esp + 0x68]
movq mm7, mm1
paddb mm2, mm7
movq mm7, mm0
pxor mm2, mm7
movq mm7, mm5
pcmpgtb mm2, mm7
por mm3, mm2
movq mm2, mm3
movq mm7, qword [0x30037168]
pand mm7, mm2
psrld mm7, 1
movq mm2, qword [esp + 0x38]
pcmpgtd mm7, mm2
por mm3, mm7
movq mm2, mm3
movq mm7, qword [0x30037178]
pand mm7, mm2
psrld mm7, 1
movq mm2, qword [esp + 0x38]
pcmpgtd mm7, mm2
movq mm2, mm1
psubusb mm7, mm2
por mm3, mm7
movq mm2, mm3
movq mm3, qword [eax]
movq mm7, mm2
pand mm1, mm2
psrld mm1, 1
movq mm2, qword [esp + 0x38]
pcmpgtd mm1, mm2
movq mm2, qword [0x30037178]
psubusb mm1, mm2
por mm7, mm1
por mm3, mm7
movq qword [eax], mm3
add eax, 8
sub dword [esp + 0x2c], 8
jne 0x3002a821
jmp 0x3002aa7a
movq mm1, mm6
movq mm2, mm6
pxor mm1, mm2
movq mm6, mm1
movd mm1, eax
mov eax, dword [esp + 0x1c]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
mov edx, ebx
movq mm5, mm2
sub edx, edi
movq mm1, mm0
mov dword [esp + 0x2c], eax
pxor mm5, mm1
mov eax, edi
mov dword [esp + 0x14], edx
jmp 0x3002a97a
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
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 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
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 mm7, mm1
pcmpgtb mm3, mm7
psubb mm1, mm2
movq mm2, mm1
movq mm1, mm3
pxor mm2, mm1
movq mm1, mm4
pand mm3, mm1
movq mm1, mm3
movq mm3, qword [esp + 0x68]
movq mm7, mm1
paddb mm2, mm7
movq mm7, mm0
pxor mm2, mm7
movq mm7, mm5
pcmpgtb mm2, mm7
por mm3, mm2
movq mm2, mm3
movq mm7, qword [0x30037168]
pand mm7, mm2
psrld mm7, 1
movq mm2, mm6
pcmpgtd mm7, mm2
por mm3, mm7
movq mm2, mm3
movq mm7, qword [0x30037178]
pand mm7, mm2
psrld mm7, 1
movq mm2, mm6
pcmpgtd mm7, mm2
movq mm2, mm1
psubusb mm7, mm2
por mm3, mm7
movq mm2, mm3
movq mm3, qword [eax]
movq mm7, mm2
pand mm1, mm2
psrld mm1, 1
movq mm2, mm6
pcmpgtd mm1, mm2
movq mm2, qword [0x30037178]
psubusb mm1, mm2
por mm7, mm1
por mm3, mm7
movq qword [eax], mm3
add eax, 8
sub dword [esp + 0x2c], 8
jne 0x3002a972
movq mm0, qword [esp + 0x40]
movq mm4, qword [esp + 0x48]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x34]
add ebx, dword [esp + 0x30]
dec eax
add ecx, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002a570
cmp byte [esp + 0x13], 0
je 0x3002b015
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x2c]
cmp eax, esi
mov dword [esp + 0x18], esi
jge 0x3002aac5
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], 2
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
call fcn.30030620
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add eax, dword [edx + 0x2c]
push ecx
push ebx
push eax
mov dword [esp + 0x44], eax
call fcn.30030620
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 0x2c]
add dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
add dword [esp + 0x38], esi
add ebx, dword [esp + 0x48]
dec eax
add esp, 0x18
mov dword [esp + 0x24], eax
test eax, eax
jg 0x3002aad4
mov ebx, dword [edx + 0x2c]
mov ecx, dword [edx + 0x28]
mov eax, dword [edx + 0xc]
lea esi, [ebx + ebx]
add ecx, esi
add ebx, ecx
cmp byte [edx + 0x1a], 0
mov dword [esp + 0x20], ecx
jne 0x3002ad64
cmp dword [ebp + 0xc], 1
movq mm0, qword [esp + 0x58]
movq mm1, mm0
pxor mm1, mm0
movq qword [esp + 0x58], mm1
movq mm0, qword [esp + 0x40]
movq mm4, qword [esp + 0x48]
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 0x3002ac74
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov edx, ecx
sub edx, edi
mov dword [esp + 0x18], edx
mov edx, ebx
sub edx, edi
mov eax, edi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
movq mm1, qword [edx + eax]
add edx, eax
mov edx, dword [esp + 0x14]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
mov edx, dword [esp + 0x18]
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 [edx + esi]
mov edx, dword [esp + 0x14]
add edx, eax
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 [0x30037168]
movq mm3, mm2
pand mm2, mm6
psrld mm2, 1
movq mm6, qword [esp + 0x58]
pcmpgtd mm2, mm6
pand mm3, mm2
movq mm2, mm3
movq mm3, qword [eax]
por mm1, mm2
por mm3, mm1
movq qword [eax], mm3
add eax, 8
sub dword [esp + 0x30], 8
jne 0x3002aba0
jmp 0x3002b009
mov eax, dword [esp + 0x1c]
mov edx, ecx
sub edx, edi
mov dword [esp + 0x18], edx
mov edx, ebx
sub edx, edi
mov dword [esp + 0x30], eax
mov eax, edi
mov dword [esp + 0x14], edx
mov edi, edi
mov edx, dword [esp + 0x18]
movq mm1, qword [edx + eax]
add edx, eax
mov edx, dword [esp + 0x14]
add edx, eax
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [edx]
mov edx, dword [esp + 0x18]
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 [edx + esi]
mov edx, dword [esp + 0x14]
add edx, eax
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 [0x30037168]
movq mm3, mm2
pand mm2, mm6
psrld mm2, 1
movq mm6, qword [esp + 0x58]
pcmpgtd mm2, mm6
pand mm3, mm2
movq mm2, mm3
movq mm3, qword [eax]
por mm1, mm2
por mm3, mm1
movq qword [eax], mm3
add eax, 8
sub dword [esp + 0x30], 8
jne 0x3002ac90
jmp 0x3002b009
movq mm0, qword [esp + 0x68]
movq mm1, mm0
pxor mm1, mm0
movq mm2, mm1
movq mm0, qword [esp + 0x40]
movq mm4, qword [esp + 0x48]
movd mm1, eax
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
sub ecx, edi
cmp dword [ebp + 0xc], 1
movq mm1, mm0
pxor mm3, mm1
mov dword [esp + 0x18], ecx
movq qword [esp + 0x58], mm3
jne 0x3002aeda
mov eax, dword [esp + 0x1c]
mov edx, ebx
sub edx, edi
mov dword [esp + 0x30], eax
mov eax, edi
mov dword [esp + 0x14], edx
jmp 0x3002adc8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
movq mm1, qword [ecx + eax]
add ecx, eax
add edx, eax
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [edx]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm1
pcmpgtb mm5, mm6
psubb mm1, mm3
movq mm3, mm5
pxor mm1, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm1, mm5
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [esp + 0x58]
pcmpgtb mm1, mm3
movq qword [esp + 0x68], mm1
movq mm1, qword [ecx + esi]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [edx + esi]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm1
pcmpgtb mm5, mm6
psubb mm1, mm3
movq mm3, mm1
movq mm1, mm5
pxor mm3, mm1
movq mm1, mm4
pand mm5, mm1
movq mm1, mm5
movq mm5, qword [esp + 0x68]
movq mm6, mm1
paddb mm3, mm6
movq mm6, mm0
pxor mm3, mm6
movq mm6, qword [esp + 0x58]
pcmpgtb mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm6, qword [0x30037168]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm6, qword [0x30037178]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
movq mm6, mm1
psubusb mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm5, qword [eax]
movq mm6, mm3
pand mm1, mm3
psrld mm1, 1
movq mm3, mm2
pcmpgtd mm1, mm3
movq mm3, qword [0x30037178]
psubusb mm1, mm3
por mm6, mm1
movq mm1, mm6
por mm5, mm1
movq qword [eax], mm5
add eax, 8
sub dword [esp + 0x30], 8
jne 0x3002adc0
jmp 0x3002b005
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], edx
mov edx, ebx
sub edx, edi
mov eax, edi
mov dword [esp + 0x14], edx
jmp 0x3002aef8
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
movq mm1, qword [ecx + eax]
add ecx, eax
add edx, eax
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [edx]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm1
pcmpgtb mm5, mm6
psubb mm1, mm3
movq mm3, mm5
pxor mm1, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm1, mm5
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [esp + 0x58]
pcmpgtb mm1, mm3
movq qword [esp + 0x68], mm1
movq mm1, qword [ecx + esi]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [edx + esi]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm1
pcmpgtb mm5, mm6
psubb mm1, mm3
movq mm3, mm1
movq mm1, mm5
pxor mm3, mm1
movq mm1, mm4
pand mm5, mm1
movq mm1, mm5
movq mm5, qword [esp + 0x68]
movq mm6, mm1
paddb mm3, mm6
movq mm6, mm0
pxor mm3, mm6
movq mm6, qword [esp + 0x58]
pcmpgtb mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm6, qword [0x30037168]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm6, qword [0x30037178]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
movq mm6, mm1
psubusb mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm5, qword [eax]
movq mm6, mm3
pand mm1, mm3
psrld mm1, 1
movq mm3, mm2
pcmpgtd mm1, mm3
movq mm3, qword [0x30037178]
psubusb mm1, mm3
por mm6, mm1
movq mm1, mm6
por mm5, mm1
movq qword [eax], mm5
add eax, 8
sub dword [esp + 0x30], 8
jne 0x3002aef0
mov ecx, dword [esp + 0x20]
add edi, dword [esp + 0x34]
add ecx, esi
mov dword [esp + 0x20], ecx
add ebx, esi
mov edx, dword [esp + 0x28]
cmp byte [edx + 0x1a], 0
mov eax, dword [edx + 0xc]
jne 0x3002b1ec
cmp dword [ebp + 0xc], 1
jne 0x3002b0ea
movq mm1, qword [esp + 0x68]
mov edx, dword [esp + 0x1c]
movq mm2, mm1
pxor mm2, mm1
movq mm5, mm2
movd mm1, eax
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
movq mm2, mm0
pxor mm1, mm2
sub ecx, ebx
movq mm6, mm1
sub ebx, edi
jmp 0x3002b070
lea eax, [ebx + edi]
movq mm1, qword [ecx + eax]
movq mm2, mm0
pxor mm1, mm2
movq mm2, qword [eax]
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, mm6
pcmpgtb mm1, mm2
movq mm2, qword [0x30037168]
movq mm3, mm2
movq mm7, mm1
pand mm2, mm7
psrld mm2, 1
movq mm7, mm5
pcmpgtd mm2, mm7
pand mm3, mm2
movq mm2, mm3
movq mm3, qword [edi]
por mm1, mm2
por mm3, mm1
movq qword [edi], mm3
add edi, 8
sub edx, 8
jne 0x3002b070
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
movq mm1, qword [esp + 0x58]
movq mm2, mm1
pxor mm2, mm1
movq qword [esp + 0x58], mm2
movd mm1, eax
mov eax, dword [esp + 0x1c]
movq mm2, mm1
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm1, mm2
punpcklbw mm2, mm1
movq mm5, mm2
mov edx, ecx
movq mm1, mm0
sub edx, edi
pxor mm5, mm1
mov dword [esp + 0x34], eax
sub ebx, edi
movq mm1, qword [edx + edi]
lea eax, [edx + edi]
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 [0x30037168]
movq mm3, mm2
pand mm2, mm6
psrld mm2, 1
movq mm6, qword [esp + 0x58]
pcmpgtd mm2, mm6
pand mm3, mm2
movq mm2, mm3
movq mm3, qword [edi]
por mm1, mm2
por mm3, mm1
movq qword [edi], mm3
add edi, 8
sub dword [esp + 0x34], 8
jne 0x3002b126
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebp + 0xc], 1
movq mm1, qword [esp + 0x68]
mov edx, dword [esp + 0x1c]
movq mm2, mm1
pxor mm2, mm1
movd mm1, eax
movq mm3, mm1
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
movq mm1, mm3
punpcklbw mm3, mm1
jne 0x3002b2e8
movq mm1, mm0
pxor mm3, mm1
sub ecx, ebx
movq qword [esp + 0x68], mm3
sub ebx, edi
lea eax, [ebx + edi]
movq mm1, qword [ecx + eax]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [eax]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm6, mm1
pcmpgtb mm5, mm6
psubb mm1, mm3
movq mm3, mm1
movq mm1, mm5
pxor mm3, mm1
movq mm1, mm4
pand mm5, mm1
movq mm1, mm5
paddb mm3, mm5
movq mm5, mm0
pxor mm3, mm5
movq mm5, qword [esp + 0x68]
pcmpgtb mm3, mm5
movq mm5, mm3
movq mm6, qword [0x30037168]
pand mm6, mm3
movq mm3, mm6
psrld mm3, 1
movq mm6, mm2
pcmpgtd mm3, mm6
por mm5, mm3
movq mm3, mm5
movq mm6, mm3
movq mm5, qword [0x30037178]
movq mm7, mm5
pand mm7, mm3
psrld mm7, 1
movq mm3, mm2
pcmpgtd mm7, mm3
movq mm3, mm1
psubusb mm7, mm3
por mm6, mm7
movq mm3, mm6
movq mm6, qword [edi]
movq mm7, mm3
pand mm1, mm3
psrld mm1, 1
movq mm3, mm2
pcmpgtd mm1, mm3
psubusb mm1, mm5
por mm7, mm1
por mm6, mm7
movq qword [edi], mm6
add edi, 8
sub edx, 8
jne 0x3002b229
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov dword [esp + 0x34], edx
movq mm1, mm3
mov edx, ecx
movq mm3, mm0
pxor mm1, mm3
sub edx, edi
movq mm6, mm1
sub ebx, edi
mov edi, edi
movq mm1, qword [edx + edi]
lea eax, [edx + edi]
lea ecx, [ebx + edi]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [ecx]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm7, mm1
pcmpgtb mm5, mm7
psubb mm1, mm3
movq mm3, mm5
pxor mm1, mm3
movq mm3, mm4
pand mm5, mm3
paddb mm1, mm5
movq mm3, mm0
pxor mm1, mm3
movq mm3, mm6
pcmpgtb mm1, mm3
movq qword [esp + 0x68], mm1
movq mm1, qword [eax + esi]
movq mm3, mm0
pxor mm1, mm3
movq mm3, qword [ecx + esi]
movq mm5, mm0
pxor mm3, mm5
movq mm5, mm3
movq mm7, mm1
pcmpgtb mm5, mm7
psubb mm1, mm3
movq mm3, mm1
movq mm1, mm5
pxor mm3, mm1
movq mm1, mm4
pand mm5, mm1
movq mm1, mm5
movq mm5, qword [esp + 0x68]
movq mm7, mm1
paddb mm3, mm7
movq mm7, mm0
pxor mm3, mm7
movq mm7, mm6
pcmpgtb mm3, mm7
por mm5, mm3
movq mm3, mm5
movq mm7, qword [0x30037168]
pand mm7, mm3
psrld mm7, 1
movq mm3, mm2
pcmpgtd mm7, mm3
por mm5, mm7
movq mm3, mm5
movq mm7, qword [0x30037178]
pand mm7, mm3
psrld mm7, 1
movq mm3, mm2
pcmpgtd mm7, mm3
movq mm3, mm1
psubusb mm7, mm3
por mm5, mm7
movq mm3, mm5
movq mm5, qword [edi]
movq mm7, mm3
pand mm1, mm3
psrld mm1, 1
movq mm3, mm2
pcmpgtd mm1, mm3
movq mm3, qword [0x30037178]
psubusb mm1, mm3
por mm7, mm1
por mm5, mm7
movq qword [edi], mm5
add edi, 8
sub dword [esp + 0x34], 8
jne 0x3002b300
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc