Function at 0x42d550
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x50
mov ebx, ecx
mov ecx, dword [edx + 8]
mov dword [esp + 0x30], edx
mov esi, dword [ebx + 0x30]
movzx eax, byte [ebx + 0x80]
test eax, eax
not esi
je 0x42d65f
mov edx, ebx
mov ebx, 0x40
mov edi, ecx
mov dword [esp + 0x20], eax
sub ebx, eax
sub edi, ebx
mov dword [esp + 0xc], ebx
jbe 0x42d5a8
mov eax, edi
shr edi, 6
and eax, 0x3f
cmp eax, 1
mov al, 1
sbb edi, 0xffffffff
cmp edi, esi
ja 0x42d78b
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x18], edx
lea esi, [edx + eax + 0x40]
mov eax, ecx
sub eax, ebx
jae 0x42d696
test ecx, ecx
je 0x42d77b
mov edx, dword [esp + 0x30]
xor edi, edi
cmp ecx, 8
mov eax, dword [edx]
mov edx, dword [edx + 4]
jb 0x42d76c
mov ebx, edx
sub ebx, eax
cmp ebx, 0x10
jb 0x42d76c
xor edi, edi
cmp ecx, 0x10
jb 0x42d62b
mov edi, ecx
xor ebx, ebx
and edi, 0xfffffff0
nop dword [eax]
movdqu xmm0, xmmword [eax + ebx]
movdqu xmm1, xmmword [esi + ebx]
pxor xmm1, xmm0
movdqu xmmword [edx + ebx], xmm1
add ebx, 0x10
cmp edi, ebx
jne 0x42d600
cmp ecx, edi
je 0x42d77b
test cl, 8
je 0x42d76c
mov ebx, edi
mov edi, ecx
and edi, 0xfffffff8
nop word cs:[eax + eax]
nop dword [eax]
movq xmm0, qword [eax + ebx]
movq xmm1, qword [esi + ebx]
pxor xmm1, xmm0
movq qword [edx + ebx], xmm1
add ebx, 8
cmp edi, ebx
jne 0x42d640
jmp 0x42d777
mov edi, ecx
xor eax, eax
and edi, 0x3f
mov dword [esp + 0xc], edi
mov edi, ecx
setne al
shr edi, 6
add eax, edi
cmp eax, esi
mov al, 1
ja 0x42d78b
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 4]
mov edx, ecx
mov ecx, dword [esp + 0xc]
jmp 0x42d7a9
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
mov ecx, dword [edx]
mov edi, dword [edx + 4]
add ebx, ecx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xc]
add ebx, edi
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x10]
mov dword [edx], ebx
mov ebx, dword [esp + 0x14]
mov dword [edx + 4], ebx
xor ebx, ebx
cmp byte [esp + 0x20], 0x38
mov dword [edx + 8], eax
ja 0x42d763
mov eax, dword [esp + 0xc]
mov edx, edi
sub edx, ecx
cmp edx, 0x10
jb 0x42dc0d
xor ebx, ebx
cmp byte [esp + 0x20], 0x30
ja 0x42d72a
mov ebx, eax
xor edx, edx
and ebx, 0xfffffff0
nop word cs:[eax + eax]
nop
movdqu xmm0, xmmword [ecx + edx]
movdqu xmm1, xmmword [esi + edx]
pxor xmm1, xmm0
movdqu xmmword [edi + edx], xmm1
add edx, 0x10
cmp ebx, edx
jne 0x42d700
mov eax, dword [esp + 0xc]
cmp eax, ebx
je 0x42d793
test al, 8
je 0x42dc0d
mov edx, ebx
mov ebx, eax
and ebx, 0xfffffff8
nop word cs:[eax + eax]
nop dword [eax + eax]
movq xmm0, qword [ecx + edx]
movq xmm1, qword [esi + edx]
pxor xmm1, xmm0
movq qword [edi + edx], xmm1
add edx, 8
cmp ebx, edx
jne 0x42d740
mov eax, dword [esp + 0xc]
jmp 0x42dc05
mov eax, dword [esp + 0xc]
jmp 0x42dc0d
movzx ebx, byte [esi + edi]
xor bl, byte [eax + edi]
mov byte [edx + edi], bl
inc edi
cmp ecx, edi
jne 0x42d76c
add cl, byte [esp + 0x20]
mov ebx, dword [esp + 0x18]
xor eax, eax
mov byte [ebx + 0x80], cl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edi, edx
mov ecx, edx
shr edi, 6
and ecx, 0x3f
mov dword [esp + 0x14], eax
mov eax, dword [0x6074ac]
movzx eax, byte [eax]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], edx
cmp al, 1
jne 0x42d7f3
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
lea edx, [esp + 0x40]
mov ecx, ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edi
call fcn.0042fd10
mov ecx, dword [esp + 0xc]
mov edx, esi
test ecx, ecx
jne 0x42d9f0
jmp 0x42dc00
cmp edx, 0x40
movdqu xmm0, xmmword [ebx + 0x30]
mov edx, dword [esp + 0x10]
jb 0x42d9e3
movdqu xmm7, xmmword [ebx]
movdqu xmm1, xmmword [ebx + 0x20]
movdqu xmm5, xmmword [ebx + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, 1
mov dword [esp + 0x18], ebx
movdqa xmmword [esp + 0x30], xmm7
nop word cs:[eax + eax]
mov ebx, 0xa
movdqa xmm3, xmm5
movdqa xmm6, xmm0
movdqa xmm2, xmm1
nop word cs:[eax + eax]
nop dword [eax + eax]
paddd xmm7, xmm5
dec ebx
pxor xmm6, xmm7
movdqa xmm4, xmm6
pslld xmm6, 0x10
psrld xmm4, 0x10
por xmm6, xmm4
paddd xmm1, xmm6
pxor xmm5, xmm1
movdqa xmm4, xmm5
pslld xmm5, 0xc
psrld xmm4, 0x14
por xmm5, xmm4
paddd xmm7, xmm5
pxor xmm6, xmm7
pshufd xmm7, xmm7, 0x93
movdqa xmm4, xmm6
pslld xmm6, 8
psrld xmm4, 0x18
por xmm6, xmm4
paddd xmm1, xmm6
pshufd xmm6, xmm6, 0x4e
pxor xmm5, xmm1
pshufd xmm1, xmm1, 0x39
movdqa xmm4, xmm5
pslld xmm5, 7
psrld xmm4, 0x19
por xmm5, xmm4
paddd xmm7, xmm5
pxor xmm6, xmm7
movdqa xmm4, xmm6
pslld xmm6, 0x10
psrld xmm4, 0x10
por xmm6, xmm4
paddd xmm1, xmm6
pxor xmm5, xmm1
movdqa xmm4, xmm5
pslld xmm5, 0xc
psrld xmm4, 0x14
por xmm5, xmm4
paddd xmm7, xmm5
pxor xmm6, xmm7
pshufd xmm7, xmm7, 0x39
movdqa xmm4, xmm6
pslld xmm6, 8
psrld xmm4, 0x18
por xmm6, xmm4
paddd xmm1, xmm6
pshufd xmm6, xmm6, 0x4e
pxor xmm5, xmm1
pshufd xmm1, xmm1, 0x93
movdqa xmm4, xmm5
pslld xmm5, 7
psrld xmm4, 0x19
por xmm5, xmm4
jne 0x42d850
movdqu xmm4, xmmword [edx + 0x30]
paddd xmm6, xmm0
paddd xmm1, xmm2
movdqa xmmword [esp + 0x20], xmm0
movdqa xmm0, xmm3
paddd xmm5, xmm3
movdqa xmm3, xmmword [esp + 0x30]
xor ebx, ebx
cmp edi, eax
setne bl
add ebx, eax
pxor xmm6, xmm4
movdqu xmm4, xmmword [edx + 0x20]
paddd xmm7, xmm3
pxor xmm1, xmm4
movdqu xmm4, xmmword [edx + 0x10]
pxor xmm5, xmm4
movdqu xmm4, xmmword [edx]
mov edx, dword [esp + 0x10]
pxor xmm7, xmm4
movdqu xmmword [ecx], xmm7
movdqu xmmword [ecx + 0x10], xmm5
movdqa xmm5, xmm0
movdqa xmm0, xmmword [esp + 0x20]
movdqu xmmword [ecx + 0x20], xmm1
movdqu xmmword [ecx + 0x30], xmm6
mov ecx, eax
movdqa xmm7, xmm3
movdqa xmm1, xmm2
shl ecx, 6
add edx, ecx
add ecx, dword [esp + 0x14]
cmp edi, eax
mov eax, ebx
paddd xmm0, xmmword [0x5a3fa0]
jne 0x42d830
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movd dword [ebx + 0x30], xmm0
test ecx, ecx
je 0x42dc00
mov eax, dword [0x6074ac]
and dword [esp + 0x1c], 0xffffffc0
lea edi, [ebx + 0x40]
movzx eax, byte [eax]
cmp al, 1
jne 0x42da1a
mov ecx, ebx
mov edx, edi
call fcn.004303c0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
jmp 0x42db73
movdqu xmm4, xmmword [ebx]
movdqu xmm2, xmmword [ebx + 0x10]
movdqu xmm0, xmmword [ebx + 0x30]
movdqu xmm7, xmmword [ebx + 0x20]
mov eax, 0xa
movdqa xmm6, xmm4
movdqa xmm3, xmm2
movdqa xmm5, xmm0
movdqa xmmword [esp + 0x20], xmm7
nop word cs:[eax + eax]
nop
paddd xmm6, xmm3
dec eax
pxor xmm5, xmm6
movdqa xmm1, xmm5
pslld xmm5, 0x10
psrld xmm1, 0x10
por xmm5, xmm1
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm1, xmm3
pslld xmm3, 0xc
psrld xmm1, 0x14
por xmm3, xmm1
paddd xmm6, xmm3
pxor xmm5, xmm6
pshufd xmm6, xmm6, 0x93
movdqa xmm1, xmm5
pslld xmm5, 8
psrld xmm1, 0x18
por xmm5, xmm1
paddd xmm7, xmm5
pshufd xmm5, xmm5, 0x4e
pxor xmm3, xmm7
pshufd xmm7, xmm7, 0x39
movdqa xmm1, xmm3
pslld xmm3, 7
psrld xmm1, 0x19
por xmm3, xmm1
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm1, xmm5
pslld xmm5, 0x10
psrld xmm1, 0x10
por xmm5, xmm1
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm1, xmm3
pslld xmm3, 0xc
psrld xmm1, 0x14
por xmm3, xmm1
paddd xmm6, xmm3
pxor xmm5, xmm6
pshufd xmm6, xmm6, 0x39
movdqa xmm1, xmm5
pslld xmm5, 8
psrld xmm1, 0x18
por xmm5, xmm1
paddd xmm7, xmm5
pshufd xmm5, xmm5, 0x4e
pxor xmm3, xmm7
pshufd xmm7, xmm7, 0x93
movdqa xmm1, xmm3
pslld xmm3, 7
psrld xmm1, 0x19
por xmm3, xmm1
jne 0x42da50
paddd xmm7, xmmword [esp + 0x20]
movd eax, xmm0
paddd xmm6, xmm4
paddd xmm3, xmm2
paddd xmm5, xmm0
inc eax
movdqu xmmword [ebx + 0x40], xmm6
movdqu xmmword [ebx + 0x50], xmm3
movdqu xmmword [ebx + 0x60], xmm7
movdqu xmmword [ebx + 0x70], xmm5
mov dword [ebx + 0x30], eax
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add eax, esi
add edx, esi
mov esi, eax
xor eax, eax
cmp ecx, 8
jb 0x42dc1e
mov ecx, esi
sub ecx, edx
cmp ecx, 0x10
mov ecx, dword [esp + 0xc]
jb 0x42dc1e
xor eax, eax
cmp ecx, 0x10
jb 0x42dbd7
mov eax, ecx
xor ecx, ecx
and eax, 0xfffffff0
nop dword [eax + eax]
movdqu xmm0, xmmword [edx + ecx]
movdqu xmm1, xmmword [edi + ecx]
pxor xmm1, xmm0
movdqu xmmword [esi + ecx], xmm1
add ecx, 0x10
cmp eax, ecx
jne 0x42dbb0
mov ecx, dword [esp + 0xc]
cmp ecx, eax
je 0x42dc00
test cl, 8
je 0x42dc1e
mov ecx, eax
mov eax, dword [esp + 0xc]
and eax, 0xfffffff8
movq xmm0, qword [edx + ecx]
movq xmm1, qword [edi + ecx]
pxor xmm1, xmm0
movq qword [esi + ecx], xmm1
add ecx, 8
cmp eax, ecx
jne 0x42dbe0
mov ecx, dword [esp + 0xc]
jmp 0x42dc1a
jmp 0x42d783
cmp eax, ebx
je 0x42d793
movzx edx, byte [esi + ebx]
xor dl, byte [ecx + ebx]
mov byte [edi + ebx], dl
inc ebx
jmp 0x42dc05
cmp ecx, eax
je 0x42dc00
movzx ecx, byte [edi + eax]
xor cl, byte [edx + eax]
mov byte [esi + eax], cl
mov ecx, dword [esp + 0xc]
inc eax
jmp 0x42dc1a