Function at 0x53e570
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov byte [eax + 0x30], 1
mov ecx, dword [eax + 0x28]
cmp ecx, 4
jbe 0x53d6b2
mov ecx, dword [eax + 4]
test ecx, ecx
js 0x53d6d5
mov eax, dword [eax + 8]
test ecx, ecx
jne 0x53d6c0
jmp 0x53d6d3
add eax, 8
test ecx, ecx
je 0x53d6d3
nop dword [eax]
mov dword [eax + 4], 0
mov dword [eax], 0
add eax, 8
dec ecx
jne 0x53d6c0
pop ebp
ret
push 0x6dd068
push 0x33
push 0x6dcfd9
call fcn.004faaf0
nop word cs:[eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
cmp ecx, 5
jb 0x53d707
mov ecx, dword [eax + 4]
mov bh, byte [eax + 0x30]
test ecx, ecx
je 0x53d849
lea ecx, [ebp - 0x24]
push 0xa
push eax
push ecx
call fcn.00550be0
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
test eax, eax
je 0x53d879
cmp eax, 8
mov edx, esi
mov dword [ebp - 0x14], eax
jb 0x53d887
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x20
jb 0x53d7dd
movdqa xmm0, xmmword [0x6dc910]
movdqa xmm1, xmmword [0x6dc920]
movdqa xmm2, xmmword [0x6dc930]
mov ecx, eax
lea edx, [esi + 0x10]
and ecx, 0xffffffe0
mov edi, ecx
nop dword [eax]
movdqu xmm5, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
movdqa xmm4, xmm5
movdqa xmm6, xmm3
pminub xmm4, xmm0
pminub xmm6, xmm0
pcmpeqb xmm4, xmm5
pcmpeqb xmm6, xmm3
movdqa xmm7, xmm4
pand xmm4, xmm2
pandn xmm7, xmm1
por xmm4, xmm7
movdqa xmm7, xmm6
pand xmm6, xmm2
pandn xmm7, xmm1
paddb xmm4, xmm5
por xmm6, xmm7
movdqu xmmword [edx - 0x10], xmm4
paddb xmm6, xmm3
movdqu xmmword [edx], xmm6
add edx, 0x20
add edi, 0xffffffe0
jne 0x53d770
cmp eax, ecx
je 0x53d8b6
mov eax, dword [ebp - 0x14]
test al, 0x18
je 0x53d883
mov edx, eax
movdqa xmm0, xmmword [0x6dc940]
movdqa xmm1, xmmword [0x6dc950]
movdqa xmm2, xmmword [0x6dc960]
mov al, bh
lea edi, [esi + ecx]
mov ebx, edx
and ebx, 0xfffffff8
lea edx, [esi + ebx]
sub ecx, ebx
nop word cs:[eax + eax]
movq xmm3, qword [edi]
movdqa xmm4, xmm3
pmaxub xmm4, xmm0
pcmpeqb xmm4, xmm3
movdqa xmm5, xmm4
pandn xmm4, xmm2
pand xmm5, xmm1
por xmm4, xmm5
paddb xmm4, xmm3
movq qword [edi], xmm4
add edi, 8
add ecx, 8
jne 0x53d810
cmp dword [ebp - 0x14], ebx
mov bh, al
jne 0x53d887
jmp 0x53d8b6
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
push 1
call fcn.004ed010
add esp, 8
test eax, eax
je 0x53da60
mov esi, eax
mov byte [eax], 0x30
mov eax, 1
mov edi, 1
jmp 0x53da28
mov edi, dword [ebp - 0x24]
xor eax, eax
jmp 0x53da28
add ecx, esi
mov edx, ecx
mov eax, dword [ebp - 0x14]
mov edi, 0x30
lea ecx, [esi + eax]
nop word cs:[eax + eax]
nop dword [eax]
mov bl, byte [edx]
mov eax, 0x57
cmp bl, 0xa
cmovb eax, edi
add al, bl
mov byte [edx], al
inc edx
cmp edx, ecx
jne 0x53d8a0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x24]
cmp eax, 2
jb 0x53da28
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x18], edi
shr ecx, 1
cmp eax, 0x10
jb 0x53d9ff
xor edx, edx
cmp eax, 0x20
mov byte [ebp - 0xd], bh
jae 0x53d95d
mov edi, edx
mov edx, ecx
pxor xmm0, xmm0
sub eax, edi
and edx, 0xfffffff8
lea ebx, [eax + esi - 8]
nop word cs:[eax + eax]
nop dword [eax]
movq xmm2, qword [ebx]
movq xmm1, qword [esi + edi]
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm2
packuswb xmm1, xmm1
movq qword [esi + edi], xmm2
add edi, 8
movq qword [ebx], xmm1
add ebx, 0xfffffff8
cmp edx, edi
jne 0x53d900
mov bh, byte [ebp - 0xd]
mov eax, dword [ebp - 0x14]
cmp ecx, edx
jne 0x53d9ff
jmp 0x53da25
mov edx, ecx
lea ebx, [eax + esi - 0x10]
xor edi, edi
pxor xmm0, xmm0
and edx, 0xfffffff0
nop dword [eax]
movdqu xmm2, xmmword [ebx]
movdqu xmm1, xmmword [esi + edi]
movdqa xmm3, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esi + edi], xmm2
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
add edi, 0x10
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [ebx], xmm1
add ebx, 0xfffffff0
cmp edx, edi
jne 0x53d970
cmp ecx, edx
jne 0x53d9f1
mov bh, byte [ebp - 0xd]
jmp 0x53da22
mov eax, dword [ebp - 0x14]
mov bh, byte [ebp - 0xd]
test al, 0x10
jne 0x53d8e1
mov edi, edx
not edi
add edi, eax
nop word cs:[eax + eax]
nop
mov ah, byte [esi + edi]
mov al, byte [esi + edx]
mov byte [esi + edx], ah
inc edx
mov byte [esi + edi], al
dec edi
cmp ecx, edx
jne 0x53da10
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
xor ecx, ecx
test bh, bh
setne cl
push eax
push esi
push 0
push 0x6dfc78
push ecx
push dword [ebp + 0xc]
call fcn.004fe310
add esp, 0x18
mov ebx, eax
test edi, edi
je 0x53da56
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push 1
push 1
call fcn.004ed3a0
mov ebx, eax
test edi, edi
je 0x53da7b
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
push ebx
call fcn.0050ffb0
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov bh, byte [eax + 0x30]
cmp ecx, 5
jb 0x53dbe9
cmp dword [eax + 4], 0
je 0x53dbf1
lea ecx, [ebp - 0x24]
push 1
push eax
push ecx
call fcn.00550960
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
test eax, eax
je 0x53dc21
cmp eax, 8
mov edx, esi
mov dword [ebp - 0x14], eax
jb 0x53dc2f
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x20
jb 0x53db7d
movdqa xmm0, xmmword [0x6dc970]
movdqa xmm1, xmmword [0x6dc980]
movdqa xmm2, xmmword [0x6dc990]
mov ecx, eax
lea edx, [esi + 0x10]
and ecx, 0xffffffe0
mov edi, ecx
movdqu xmm5, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
movdqa xmm4, xmm5
movdqa xmm6, xmm3
pminub xmm4, xmm0
pminub xmm6, xmm0
pcmpeqb xmm4, xmm5
pcmpeqb xmm6, xmm3
movdqa xmm7, xmm4
pand xmm4, xmm2
pandn xmm7, xmm1
por xmm4, xmm7
movdqa xmm7, xmm6
pand xmm6, xmm2
pandn xmm7, xmm1
paddb xmm4, xmm5
por xmm6, xmm7
movdqu xmmword [edx - 0x10], xmm4
paddb xmm6, xmm3
movdqu xmmword [edx], xmm6
add edx, 0x20
add edi, 0xffffffe0
jne 0x53db10
cmp eax, ecx
je 0x53dc56
mov eax, dword [ebp - 0x14]
test al, 0x18
je 0x53dc2b
mov edx, eax
movdqa xmm0, xmmword [0x6dc9a0]
movdqa xmm1, xmmword [0x6dc9b0]
movdqa xmm2, xmmword [0x6dc9c0]
mov al, bh
lea edi, [esi + ecx]
mov ebx, edx
and ebx, 0xfffffff8
lea edx, [esi + ebx]
sub ecx, ebx
nop word cs:[eax + eax]
movq xmm3, qword [edi]
movdqa xmm4, xmm3
pmaxub xmm4, xmm0
pcmpeqb xmm4, xmm3
movdqa xmm5, xmm4
pandn xmm4, xmm2
pand xmm5, xmm1
por xmm4, xmm5
paddb xmm4, xmm3
movq qword [edi], xmm4
add edi, 8
add ecx, 8
jne 0x53dbb0
cmp dword [ebp - 0x14], ebx
mov bh, al
jne 0x53dc2f
jmp 0x53dc56
test ecx, ecx
jne 0x53dab5
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
push 1
call fcn.004ed010
add esp, 8
test eax, eax
je 0x53de00
mov esi, eax
mov byte [eax], 0x30
mov eax, 1
mov edi, 1
jmp 0x53ddc8
mov edi, dword [ebp - 0x24]
xor eax, eax
jmp 0x53ddc8
add ecx, esi
mov edx, ecx
mov eax, dword [ebp - 0x14]
mov edi, 0x30
lea ecx, [esi + eax]
nop word [eax + eax]
mov bl, byte [edx]
mov eax, 0x57
cmp bl, 0xa
cmovb eax, edi
add al, bl
mov byte [edx], al
inc edx
cmp edx, ecx
jne 0x53dc40
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x24]
cmp eax, 2
jb 0x53ddc8
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x18], edi
shr ecx, 1
cmp eax, 0x10
jb 0x53dd9f
xor edx, edx
cmp eax, 0x20
mov byte [ebp - 0xd], bh
jae 0x53dcfd
mov edi, edx
mov edx, ecx
pxor xmm0, xmm0
sub eax, edi
and edx, 0xfffffff8
lea ebx, [eax + esi - 8]
nop word cs:[eax + eax]
nop dword [eax]
movq xmm2, qword [ebx]
movq xmm1, qword [esi + edi]
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm2
packuswb xmm1, xmm1
movq qword [esi + edi], xmm2
add edi, 8
movq qword [ebx], xmm1
add ebx, 0xfffffff8
cmp edx, edi
jne 0x53dca0
mov bh, byte [ebp - 0xd]
mov eax, dword [ebp - 0x14]
cmp ecx, edx
jne 0x53dd9f
jmp 0x53ddc5
mov edx, ecx
lea ebx, [eax + esi - 0x10]
xor edi, edi
pxor xmm0, xmm0
and edx, 0xfffffff0
nop dword [eax]
movdqu xmm2, xmmword [ebx]
movdqu xmm1, xmmword [esi + edi]
movdqa xmm3, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esi + edi], xmm2
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
add edi, 0x10
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [ebx], xmm1
add ebx, 0xfffffff0
cmp edx, edi
jne 0x53dd10
cmp ecx, edx
jne 0x53dd91
mov bh, byte [ebp - 0xd]
jmp 0x53ddc2
mov eax, dword [ebp - 0x14]
mov bh, byte [ebp - 0xd]
test al, 0x10
jne 0x53dc81
mov edi, edx
not edi
add edi, eax
nop word cs:[eax + eax]
nop
mov ah, byte [esi + edi]
mov al, byte [esi + edx]
mov byte [esi + edx], ah
inc edx
mov byte [esi + edi], al
dec edi
cmp ecx, edx
jne 0x53ddb0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
xor ecx, ecx
test bh, bh
setne cl
push eax
push esi
push 2
push 0x6dd3dd
push ecx
push dword [ebp + 0xc]
call fcn.004fe310
add esp, 0x18
mov ebx, eax
test edi, edi
je 0x53ddf6
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push 1
push 1
call fcn.004ed3a0
mov ebx, eax
test edi, edi
je 0x53de1b
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
push ebx
call fcn.0050ffb0
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
cmp ecx, 5
jb 0x53de47
mov ecx, dword [eax + 4]
mov bh, byte [eax + 0x30]
test ecx, ecx
je 0x53df89
lea ecx, [ebp - 0x24]
push 8
push eax
push ecx
call fcn.00550be0
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
test eax, eax
je 0x53dfb9
cmp eax, 8
mov edx, esi
mov dword [ebp - 0x14], eax
jb 0x53dfc7
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x20
jb 0x53df1d
movdqa xmm0, xmmword [0x6dc9d0]
movdqa xmm1, xmmword [0x6dc9e0]
movdqa xmm2, xmmword [0x6dc9f0]
mov ecx, eax
lea edx, [esi + 0x10]
and ecx, 0xffffffe0
mov edi, ecx
nop dword [eax]
movdqu xmm5, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
movdqa xmm4, xmm5
movdqa xmm6, xmm3
pminub xmm4, xmm0
pminub xmm6, xmm0
pcmpeqb xmm4, xmm5
pcmpeqb xmm6, xmm3
movdqa xmm7, xmm4
pand xmm4, xmm2
pandn xmm7, xmm1
por xmm4, xmm7
movdqa xmm7, xmm6
pand xmm6, xmm2
pandn xmm7, xmm1
paddb xmm4, xmm5
por xmm6, xmm7
movdqu xmmword [edx - 0x10], xmm4
paddb xmm6, xmm3
movdqu xmmword [edx], xmm6
add edx, 0x20
add edi, 0xffffffe0
jne 0x53deb0
cmp eax, ecx
je 0x53dff6
mov eax, dword [ebp - 0x14]
test al, 0x18
je 0x53dfc3
mov edx, eax
movdqa xmm0, xmmword [0x6dca00]
movdqa xmm1, xmmword [0x6dca10]
movdqa xmm2, xmmword [0x6dca20]
mov al, bh
lea edi, [esi + ecx]
mov ebx, edx
and ebx, 0xfffffff8
lea edx, [esi + ebx]
sub ecx, ebx
nop word cs:[eax + eax]
movq xmm3, qword [edi]
movdqa xmm4, xmm3
pmaxub xmm4, xmm0
pcmpeqb xmm4, xmm3
movdqa xmm5, xmm4
pandn xmm4, xmm2
pand xmm5, xmm1
por xmm4, xmm5
paddb xmm4, xmm3
movq qword [edi], xmm4
add edi, 8
add ecx, 8
jne 0x53df50
cmp dword [ebp - 0x14], ebx
mov bh, al
jne 0x53dfc7
jmp 0x53dff6
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
push 1
call fcn.004ed010
add esp, 8
test eax, eax
je 0x53e1a0
mov esi, eax
mov byte [eax], 0x30
mov eax, 1
mov edi, 1
jmp 0x53e168
mov edi, dword [ebp - 0x24]
xor eax, eax
jmp 0x53e168
add ecx, esi
mov edx, ecx
mov eax, dword [ebp - 0x14]
mov edi, 0x30
lea ecx, [esi + eax]
nop word cs:[eax + eax]
nop dword [eax]
mov bl, byte [edx]
mov eax, 0x57
cmp bl, 0xa
cmovb eax, edi
add al, bl
mov byte [edx], al
inc edx
cmp edx, ecx
jne 0x53dfe0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x24]
cmp eax, 2
jb 0x53e168
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x18], edi
shr ecx, 1
cmp eax, 0x10
jb 0x53e13f
xor edx, edx
cmp eax, 0x20
mov byte [ebp - 0xd], bh
jae 0x53e09d
mov edi, edx
mov edx, ecx
pxor xmm0, xmm0
sub eax, edi
and edx, 0xfffffff8
lea ebx, [eax + esi - 8]
nop word cs:[eax + eax]
nop dword [eax]
movq xmm2, qword [ebx]
movq xmm1, qword [esi + edi]
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm2
packuswb xmm1, xmm1
movq qword [esi + edi], xmm2
add edi, 8
movq qword [ebx], xmm1
add ebx, 0xfffffff8
cmp edx, edi
jne 0x53e040
mov bh, byte [ebp - 0xd]
mov eax, dword [ebp - 0x14]
cmp ecx, edx
jne 0x53e13f
jmp 0x53e165
mov edx, ecx
lea ebx, [eax + esi - 0x10]
xor edi, edi
pxor xmm0, xmm0
and edx, 0xfffffff0
nop dword [eax]
movdqu xmm2, xmmword [ebx]
movdqu xmm1, xmmword [esi + edi]
movdqa xmm3, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esi + edi], xmm2
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
add edi, 0x10
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [ebx], xmm1
add ebx, 0xfffffff0
cmp edx, edi
jne 0x53e0b0
cmp ecx, edx
jne 0x53e131
mov bh, byte [ebp - 0xd]
jmp 0x53e162
mov eax, dword [ebp - 0x14]
mov bh, byte [ebp - 0xd]
test al, 0x10
jne 0x53e021
mov edi, edx
not edi
add edi, eax
nop word cs:[eax + eax]
nop
mov ah, byte [esi + edi]
mov al, byte [esi + edx]
mov byte [esi + edx], ah
inc edx
mov byte [esi + edi], al
dec edi
cmp ecx, edx
jne 0x53e150
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
xor ecx, ecx
test bh, bh
setne cl
push eax
push esi
push 2
push 0x6dd3df
push ecx
push dword [ebp + 0xc]
call fcn.004fe310
add esp, 0x18
mov ebx, eax
test edi, edi
je 0x53e196
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push 1
push 1
call fcn.004ed3a0
mov ebx, eax
test edi, edi
je 0x53e1bb
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
push ebx
call fcn.0050ffb0
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov bh, byte [eax + 0x30]
cmp ecx, 5
jb 0x53e329
cmp dword [eax + 4], 0
je 0x53e331
lea ecx, [ebp - 0x24]
push 4
push eax
push ecx
call fcn.00550960
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
test eax, eax
je 0x53e361
cmp eax, 8
mov edx, esi
mov dword [ebp - 0x14], eax
jb 0x53e36f
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, 0x20
jb 0x53e2bd
movdqa xmm0, xmmword [0x6dca30]
movdqa xmm1, xmmword [0x6dca40]
movdqa xmm2, xmmword [0x6dca50]
mov ecx, eax
lea edx, [esi + 0x10]
and ecx, 0xffffffe0
mov edi, ecx
movdqu xmm5, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
movdqa xmm4, xmm5
movdqa xmm6, xmm3
pminub xmm4, xmm0
pminub xmm6, xmm0
pcmpeqb xmm4, xmm5
pcmpeqb xmm6, xmm3
movdqa xmm7, xmm4
pand xmm4, xmm2
pandn xmm7, xmm1
por xmm4, xmm7
movdqa xmm7, xmm6
pand xmm6, xmm2
pandn xmm7, xmm1
paddb xmm4, xmm5
por xmm6, xmm7
movdqu xmmword [edx - 0x10], xmm4
paddb xmm6, xmm3
movdqu xmmword [edx], xmm6
add edx, 0x20
add edi, 0xffffffe0
jne 0x53e250
cmp eax, ecx
je 0x53e396
mov eax, dword [ebp - 0x14]
test al, 0x18
je 0x53e36b
mov edx, eax
movdqa xmm0, xmmword [0x6dca60]
movdqa xmm1, xmmword [0x6dca70]
movdqa xmm2, xmmword [0x6dca80]
mov al, bh
lea edi, [esi + ecx]
mov ebx, edx
and ebx, 0xfffffff8
lea edx, [esi + ebx]
sub ecx, ebx
nop word cs:[eax + eax]
movq xmm3, qword [edi]
movdqa xmm4, xmm3
pmaxub xmm4, xmm0
pcmpeqb xmm4, xmm3
movdqa xmm5, xmm4
pandn xmm4, xmm2
pand xmm5, xmm1
por xmm4, xmm5
paddb xmm4, xmm3
movq qword [edi], xmm4
add edi, 8
add ecx, 8
jne 0x53e2f0
cmp dword [ebp - 0x14], ebx
mov bh, al
jne 0x53e36f
jmp 0x53e396
test ecx, ecx
jne 0x53e1f5
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
push 1
call fcn.004ed010
add esp, 8
test eax, eax
je 0x53e540
mov esi, eax
mov byte [eax], 0x30
mov eax, 1
mov edi, 1
jmp 0x53e508
mov edi, dword [ebp - 0x24]
xor eax, eax
jmp 0x53e508
add ecx, esi
mov edx, ecx
mov eax, dword [ebp - 0x14]
mov edi, 0x30
lea ecx, [esi + eax]
nop word [eax + eax]
mov bl, byte [edx]
mov eax, 0x57
cmp bl, 0xa
cmovb eax, edi
add al, bl
mov byte [edx], al
inc edx
cmp edx, ecx
jne 0x53e380
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x24]
cmp eax, 2
jb 0x53e508
mov ecx, eax
xor edx, edx
mov dword [ebp - 0x18], edi
shr ecx, 1
cmp eax, 0x10
jb 0x53e4df
xor edx, edx
cmp eax, 0x20
mov byte [ebp - 0xd], bh
jae 0x53e43d
mov edi, edx
mov edx, ecx
pxor xmm0, xmm0
sub eax, edi
and edx, 0xfffffff8
lea ebx, [eax + esi - 8]
nop word cs:[eax + eax]
nop dword [eax]
movq xmm2, qword [ebx]
movq xmm1, qword [esi + edi]
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm2
packuswb xmm1, xmm1
movq qword [esi + edi], xmm2
add edi, 8
movq qword [ebx], xmm1
add ebx, 0xfffffff8
cmp edx, edi
jne 0x53e3e0
mov bh, byte [ebp - 0xd]
mov eax, dword [ebp - 0x14]
cmp ecx, edx
jne 0x53e4df
jmp 0x53e505
mov edx, ecx
lea ebx, [eax + esi - 0x10]
xor edi, edi
pxor xmm0, xmm0
and edx, 0xfffffff0
nop dword [eax]
movdqu xmm2, xmmword [ebx]
movdqu xmm1, xmmword [esi + edi]
movdqa xmm3, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [esi + edi], xmm2
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
add edi, 0x10
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [ebx], xmm1
add ebx, 0xfffffff0
cmp edx, edi
jne 0x53e450
cmp ecx, edx
jne 0x53e4d1
mov bh, byte [ebp - 0xd]
jmp 0x53e502
mov eax, dword [ebp - 0x14]
mov bh, byte [ebp - 0xd]
test al, 0x10
jne 0x53e3c1
mov edi, edx
not edi
add edi, eax
nop word cs:[eax + eax]
nop
mov ah, byte [esi + edi]
mov al, byte [esi + edx]
mov byte [esi + edx], ah
inc edx
mov byte [esi + edi], al
dec edi
cmp ecx, edx
jne 0x53e4f0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x18]
xor ecx, ecx
test bh, bh
setne cl
push eax
push esi
push 2
push 0x6dd3e1
push ecx
push dword [ebp + 0xc]
call fcn.004fe310
add esp, 0x18
mov ebx, eax
test edi, edi
je 0x53e536
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push 1
push 1
call fcn.004ed3a0
mov ebx, eax
test edi, edi
je 0x53e55b
push 1
push edi
push esi
call fcn.004ed020
add esp, 0xc
push ebx
call fcn.0050ffb0
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x28]
cmp eax, 5
jb 0x53e6d9
cmp dword [ebx + 4], 0
je 0x53e6e1
lea eax, [ebp - 0x24]
push 4
push ebx
push eax
call fcn.00550960
add esp, 0xc
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
test eax, eax
je 0x53e716
lea esi, [edi + eax]
cmp eax, 8
mov edx, edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], esi
jb 0x53e724
mov ecx, dword [ebp - 0x10]
xor eax, eax
cmp ecx, 0x20
jb 0x53e671
movdqa xmm0, xmmword [0x6dca90]
movdqa xmm1, xmmword [0x6dcaa0]
movdqa xmm2, xmmword [0x6dcab0]
mov eax, ecx
lea edx, [edi + 0x10]
and eax, 0xffffffe0
mov esi, eax
nop word cs:[eax + eax]
nop dword [eax]
movdqu xmm5, xmmword [edx - 0x10]
movdqu xmm3, xmmword [edx]
movdqa xmm4, xmm5
movdqa xmm6, xmm3
pminub xmm4, xmm0
pminub xmm6, xmm0
pcmpeqb xmm4, xmm5
pcmpeqb xmm6, xmm3
movdqa xmm7, xmm4
pand xmm4, xmm2
pandn xmm7, xmm1
por xmm4, xmm7
movdqa xmm7, xmm6
pand xmm6, xmm2
pandn xmm7, xmm1
paddb xmm4, xmm5
por xmm6, xmm7
movdqu xmmword [edx - 0x10], xmm4
paddb xmm6, xmm3
movdqu xmmword [edx], xmm6
add edx, 0x20
add esi, 0xffffffe0
jne 0x53e600
mov esi, dword [ebp - 0x14]
cmp ecx, eax
je 0x53e747
mov ecx, dword [ebp - 0x10]
test cl, 0x18
je 0x53e720
movdqa xmm0, xmmword [0x6dcac0]
movdqa xmm1, xmmword [0x6dcad0]
movdqa xmm2, xmmword [0x6dcae0]
mov ebx, ecx
lea esi, [edi + eax]
and ebx, 0xfffffff8
lea edx, [edi + ebx]
sub eax, ebx
nop word cs:[eax + eax]
movq xmm3, qword [esi]
movdqa xmm4, xmm3
pmaxub xmm4, xmm0
pcmpeqb xmm4, xmm3
movdqa xmm5, xmm4
pandn xmm4, xmm2
pand xmm5, xmm1
por xmm4, xmm5
paddb xmm4, xmm3
movq qword [esi], xmm4
add esi, 8
add eax, 8
jne 0x53e6a0
mov esi, dword [ebp - 0x14]
cmp ecx, ebx
jne 0x53e724
jmp 0x53e747
test eax, eax
jne 0x53e592
mov eax, dword [0x6b6a34]
movzx eax, byte [eax]
push 1
push 1
call fcn.004ed010
add esp, 8
test eax, eax
je 0x53ea1a
mov esi, eax
mov edi, eax
mov byte [eax], 0x30
mov ecx, 1
mov dword [ebp - 0x18], 1
inc esi
jmp 0x53e8ab
mov esi, dword [ebp - 0x24]
xor ecx, ecx
jmp 0x53e9e0
add eax, edi
mov edx, eax
mov eax, 0x30
nop dword [eax]
movzx ebx, byte [edx]
mov ecx, 0x57
cmp bl, 0xa
cmovb ecx, eax
add cl, bl
mov byte [edx], cl
inc edx
cmp edx, esi
jne 0x53e730
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x24]
cmp ecx, 2
mov dword [ebp - 0x18], eax
jae 0x53e75d
mov ebx, dword [ebp + 8]
jmp 0x53e8ab
mov eax, ecx
xor edx, edx
shr eax, 1
cmp ecx, 0x10
jb 0x53e88a
xor edx, edx
cmp ecx, 0x20
jae 0x53e7ea
mov esi, edx
mov edx, eax
pxor xmm0, xmm0
sub ecx, esi
and edx, 0xfffffff8
lea ebx, [ecx + edi - 8]
nop word cs:[eax + eax]
nop
movq xmm2, qword [ebx]
movq xmm1, qword [edi + esi]
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm1, xmm1, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm2, xmm2
packuswb xmm1, xmm1
movq qword [edi + esi], xmm2
add esi, 8
movq qword [ebx], xmm1
add ebx, 0xfffffff8
cmp edx, esi
jne 0x53e790
mov ecx, dword [ebp - 0x10]
cmp eax, edx
je 0x53e87c
jmp 0x53e88a
mov edx, eax
lea esi, [ecx + edi - 0x10]
xor ebx, ebx
pxor xmm0, xmm0
and edx, 0xfffffff0
nop dword [eax]
movdqu xmm2, xmmword [esi]
movdqu xmm1, xmmword [edi + ebx]
movdqa xmm3, xmm2
punpckhbw xmm2, xmm0
punpcklbw xmm3, xmm0
pshufd xmm2, xmm2, 0x4e
pshufd xmm3, xmm3, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqu xmmword [edi + ebx], xmm2
movdqa xmm2, xmm1
punpckhbw xmm1, xmm0
add ebx, 0x10
punpcklbw xmm2, xmm0
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm2, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm1, xmm1, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [esi], xmm1
add esi, 0xfffffff0
cmp edx, ebx
jne 0x53e800
cmp eax, edx
jne 0x53e881
mov ebx, dword [ebp + 8]
jmp 0x53e8a8
test cl, 0x10
jne 0x53e773
mov esi, edx
not esi
add esi, ecx
mov ch, byte [edi + esi]
mov cl, byte [edi + edx]
mov byte [edi + edx], ch
inc edx
mov byte [edi + esi], cl
dec esi
cmp eax, edx
jne 0x53e890
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov eax, esi
mov dword [ebp - 0x14], esi
mov esi, edi
mov dword [ebp - 0x10], ecx
sub eax, edi
cmp eax, 8
jb 0x53e9bc
xor edx, edx
cmp eax, 0x20
jb 0x53e951
movdqa xmm0, xmmword [0x6dcaf0]
movdqa xmm1, xmmword [0x6dcb00]
movdqa xmm2, xmmword [0x6dcb10]
mov edx, eax
xor esi, esi
and edx, 0xffffffe0
nop word [eax + eax]
movdqu xmm4, xmmword [edi + esi]
movdqu xmm3, xmmword [edi + esi + 0x10]
movdqa xmm5, xmm4
movdqa xmm6, xmm3
paddb xmm5, xmm0
paddb xmm6, xmm0
movdqa xmm7, xmm5
pminub xmm7, xmm1
pcmpeqb xmm7, xmm5
movdqa xmm5, xmm6
pminub xmm5, xmm1
pand xmm7, xmm2
pcmpeqb xmm5, xmm6
pxor xmm7, xmm4
pand xmm5, xmm2
movdqu xmmword [edi + esi], xmm7
pxor xmm5, xmm3
movdqu xmmword [edi + esi + 0x10], xmm5
add esi, 0x20
cmp edx, esi
jne 0x53e8f0
cmp eax, edx
je 0x53e9dd
test al, 0x18
je 0x53e9b8
movdqa xmm0, xmmword [0x6dcb20]
movdqa xmm1, xmmword [0x6dcb30]
movdqa xmm2, xmmword [0x6dcb40]
mov ecx, ebx
mov ebx, eax
and ebx, 0xfffffff8
lea esi, [edi + ebx]
nop word cs:[eax + eax]
nop dword [eax]
movq xmm3, qword [edi + edx]
movdqa xmm4, xmm3
paddb xmm4, xmm0
movdqa xmm5, xmm4
pmaxub xmm5, xmm1
pcmpeqb xmm5, xmm4
pandn xmm5, xmm2
pxor xmm5, xmm3
movq qword [edi + edx], xmm5
add edx, 8
cmp ebx, edx
jne 0x53e980
cmp eax, ebx
mov ebx, ecx
mov ecx, dword [ebp - 0x10]
jne 0x53e9bc
jmp 0x53e9dd
add edx, edi
mov esi, edx
mov edx, dword [ebp - 0x14]
nop
movzx eax, byte [esi]
mov ecx, eax
add cl, 0x9f
cmp cl, 0x1a
setb cl
shl cl, 5
xor cl, al
mov byte [esi], cl
inc esi
cmp esi, edx
jne 0x53e9c0
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
xor eax, eax
cmp byte [ebx + 0x30], 0
setne al
push ecx
push edi
push 2
push 0x6dd3e1
push eax
push dword [ebp + 0xc]
call fcn.004fe310
add esp, 0x18
mov ebx, eax
test esi, esi
je 0x53ea10
push 1
push esi
push edi
call fcn.004ed020
add esp, 0xc
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push 1
push 1
call fcn.004ed3a0
mov ebx, eax
test esi, esi
je 0x53ea35
push 1
push esi
push edi
call fcn.004ed020
add esp, 0xc
push ebx
call fcn.0050ffb0
nop dword [eax + eax]
push ebp
mov ebp, esp
push edi
push esi
mov esi, dword [ebp + 0xc]
cmp byte [esi + 0x30], 0
je 0x53ea68
mov ecx, dword [esi + 0x28]
lea eax, [esi + 0x28]
cmp ecx, 5
jb 0x53ea8b
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x53eaad
mov ecx, dword [esi + 8]
lea edx, [esi + 4]
jmp 0x53ea94
push 1
push esi
call fcn.0054cb60
add esp, 8
mov eax, dword [esi + 0x28]
cmp eax, 5
jb 0x53ea7e
mov eax, dword [esi + 4]
cmp eax, 1
mov cl, 2
sbb cl, 0
jmp 0x53eb2c
test ecx, ecx
jne 0x53eab2
lea ecx, [esi + 8]
mov edx, eax
mov dword [ecx + 4], 0
mov dword [ecx], 0
inc dword [edx]
mov ecx, dword [eax]
cmp ecx, 5
jb 0x53eab2
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
jmp 0x53eab5
lea edx, [esi + 8]
test ecx, ecx
je 0x53eb7a
add dword [edx], 1
adc dword [edx + 4], 0
jae 0x53eb2a
add edx, 8
lea ecx, [ecx*8 - 8]
test ecx, ecx
je 0x53eae5
add ecx, 0xfffffff8
add dword [edx], 1
adc dword [edx + 4], 0
lea edx, [edx + 8]
jb 0x53ead0
jmp 0x53eb2a
mov edi, dword [eax]
cmp edi, 4
jbe 0x53eafb
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
lea eax, [esi + 4]
cmp ecx, edi
je 0x53eb09
jmp 0x53eb19
mov ecx, edi
lea edx, [esi + 8]
mov edi, 4
cmp ecx, edi
jne 0x53eb19
mov ecx, esi
call fcn.0053d470
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
lea eax, [esi + 4]
mov dword [edx + ecx*8 + 4], 0
mov dword [edx + ecx*8], 1
inc dword [eax]
xor ecx, ecx
mov byte [esi + 0x30], cl
mov eax, dword [ebp + 8]
movsd xmm1, qword [esi + 0x20]
movsd xmm2, qword [esi + 0x18]
movsd xmm0, qword [esi + 0x28]
movsd qword [eax + 0x20], xmm1
movsd xmm1, qword [esi + 0x10]
movsd qword [eax + 0x18], xmm2
movsd xmm2, qword [esi]
movsd qword [eax + 0x28], xmm0
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esi + 8]
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
movsd xmm1, qword [esi + 0x30]
movsd qword [eax + 0x30], xmm1
pop esi
pop edi
pop ebp
ret
push 0x6df300
push 0x23
push str.assertion_failed:_mid___self.len__destination_and_source_slices_have_different_lengths
call fcn.004faaf0
add esp, 0xc
ud2