Function at 0x140055de0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov rax, qword [0x14014dcf0]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rbx, qword [rcx + 0x80]
mov r15, rdx
mov qword [rsp + 0x70], rdx
mov edx, dword [rcx + 0x88]
mov rdi, r8
mov qword [rsp + 0x58], r8
xor r8d, r8d
mov r14, r9
mov qword [rbp - 0x60], r9
mov dword [rsp + 0x3c], edx
mov r12, rcx
mov qword [rbp - 0x70], rcx
lea r13, [rcx + 0x40]
mov esi, r8d
mov qword [rsp + 0x50], r8
test rbx, rbx
je 0x140055e89
cmp rbx, rdi
jae 0x140055e81
mov rdx, r15
mov rcx, r9
sub rdx, r9
cmp rbx, 0x40
jae 0x140055e78
movzx eax, byte [rdx + rcx]
inc rbx
inc rcx
xor al, byte [rbx + r12 - 1]
inc rsi
mov byte [rcx - 1], al
cmp rbx, rdi
jb 0x140055e58
mov edx, dword [rsp + 0x3c]
mov qword [rsp + 0x50], rsi
sub rdi, rsi
mov qword [rsp + 0x58], rdi
mov eax, dword [0x1401ac6ac]
test rdi, rdi
cmovne rbx, r8
mov qword [rsp + 0x48], rbx
test eax, eax
je 0x140055f06
mov rax, rdi
mov rcx, rdi
and eax, 0x3f
sub rcx, rax
mov qword [rsp + 0x48], rcx
je 0x140055ed5
mov dword [rsp + 0x28], edx
lea r8, [rsi + r15]
add r9, rsi
mov rdx, r13
mov qword [rsp + 0x20], r12
call fcn.14008de90
mov r11, qword [rsp + 0x48]
add rsi, r11
sub rdi, r11
test rdi, rdi
je 0x140056313
mov eax, dword [rsp + 0x3c]
lea r9, [r14 + rsi]
lea r8, [rsi + r15]
mov dword [rsp + 0x28], eax
mov rdx, r13
mov rcx, rdi
mov qword [rsp + 0x20], r12
call fcn.14008de90
mov rbx, rdi
jmp 0x140056313
test rdi, rdi
je 0x140056313
lea r10, [rbp - 0x50]
lea r11, [rbp - 0x4c]
lea r8, [rbp - 0x48]
sub r10, r12
sub r11, r12
mov r9, r13
sub r9, r12
lea rax, [r12 + 4]
sub r8, r12
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x78], r11
mov qword [rbp - 0x78], r8
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x80], r9
nop word [rax + rax]
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x40], xmm1
movups xmm0, xmmword [r13 + 0x20]
movups xmm1, xmmword [r13 + 0x30]
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x20], xmm1
test edx, edx
jle 0x1400561dd
mov eax, dword [rbp - 0x34]
mov ecx, dword [rbp - 0x18]
mov r8d, dword [rbp - 0x3c]
mov r13d, dword [rbp - 0x14]
mov r14d, dword [rbp - 0x24]
mov r15d, dword [rbp - 0x28]
mov r9d, dword [rbp - 0x2c]
mov r10d, dword [rbp - 0x30]
mov r11d, dword [rbp - 0x44]
mov r12d, dword [rbp - 0x48]
mov edi, dword [rbp - 0x4c]
mov ebx, dword [rbp - 0x50]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp - 0x38]
mov esi, edx
mov edx, dword [rbp - 0x20]
mov dword [rsp + 0x38], ecx
mov ecx, dword [rbp - 0x1c]
mov dword [rsp + 0x44], r8d
mov r8d, dword [rbp - 0x40]
mov dword [rsp + 0x40], eax
nop dword [rax + rax]
add r12d, dword [rsp + 0x40]
add r11d, dword [rsp + 0x30]
add ebx, r8d
xor edx, ebx
xor r13d, r11d
rol edx, 0x10
add r10d, edx
mov eax, r10d
xor eax, r8d
rol eax, 0xc
add ebx, eax
xor edx, ebx
rol edx, 8
add r10d, edx
mov dword [rsp + 0x60], edx
mov edx, dword [rsp + 0x44]
add edi, edx
mov r8d, r10d
xor r8d, eax
xor ecx, edi
rol r8d, 7
rol ecx, 0x10
add r9d, ecx
mov eax, r9d
xor eax, edx
mov edx, dword [rsp + 0x38]
rol eax, 0xc
xor edx, r12d
add edi, eax
xor ecx, edi
rol ecx, 8
add r9d, ecx
mov dword [rsp + 0x34], ecx
mov ecx, r9d
xor ecx, eax
rol ecx, 7
rol edx, 0x10
add r15d, edx
add ebx, ecx
mov eax, r15d
xor eax, dword [rsp + 0x40]
rol eax, 0xc
add r12d, eax
xor edx, r12d
rol edx, 8
add r15d, edx
mov dword [rsp + 0x38], edx
mov edx, r15d
xor edx, eax
rol edx, 7
rol r13d, 0x10
add r14d, r13d
add edi, edx
mov eax, r14d
xor eax, dword [rsp + 0x30]
rol eax, 0xc
add r11d, eax
xor r13d, r11d
rol r13d, 8
add r14d, r13d
xor r13d, ebx
mov dword [rsp + 0x30], r14d
xor dword [rsp + 0x30], eax
rol dword [rsp + 0x30], 7
rol r13d, 0x10
add r15d, r13d
mov eax, r15d
xor eax, ecx
rol eax, 0xc
add ebx, eax
xor r13d, ebx
rol r13d, 8
add r15d, r13d
mov ecx, r15d
xor ecx, eax
mov eax, edi
xor eax, dword [rsp + 0x60]
rol ecx, 7
rol eax, 0x10
mov dword [rsp + 0x44], ecx
mov dword [rbp - 0x3c], ecx
add r14d, eax
add r11d, r8d
mov ecx, r14d
xor ecx, edx
rol ecx, 0xc
add edi, ecx
mov edx, edi
xor edx, eax
rol edx, 8
add r14d, edx
mov dword [rbp - 0x20], edx
mov eax, r14d
xor eax, ecx
mov ecx, dword [rsp + 0x30]
rol eax, 7
add r12d, ecx
mov dword [rsp + 0x40], eax
mov dword [rbp - 0x38], eax
mov eax, r12d
xor eax, dword [rsp + 0x34]
rol eax, 0x10
add r10d, eax
xor ecx, r10d
rol ecx, 0xc
add r12d, ecx
mov dword [rsp + 0x34], r12d
xor dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x34]
rol eax, 8
add r10d, eax
mov dword [rsp + 0x34], eax
mov dword [rbp - 0x1c], eax
xor ecx, r10d
mov eax, r11d
xor eax, dword [rsp + 0x38]
rol ecx, 7
rol eax, 0x10
mov dword [rsp + 0x30], ecx
mov dword [rbp - 0x34], ecx
add r9d, eax
mov ecx, r9d
xor ecx, r8d
rol ecx, 0xc
add r11d, ecx
mov r8d, r11d
xor r8d, eax
rol r8d, 8
add r9d, r8d
mov dword [rsp + 0x38], r8d
mov dword [rbp - 0x18], r8d
mov r8d, r9d
xor r8d, ecx
mov ecx, dword [rsp + 0x34]
rol r8d, 7
dec rsi
jne 0x140055fd0
mov rsi, qword [rsp + 0x50]
mov rax, qword [rbp - 0x68]
mov dword [rbp - 0x48], r12d
mov r12, qword [rbp - 0x70]
mov dword [rbp - 0x14], r13d
mov dword [rbp - 0x24], r14d
mov r14, qword [rbp - 0x60]
mov dword [rbp - 0x28], r15d
mov r15, qword [rsp + 0x70]
mov dword [rbp - 0x2c], r9d
mov r9, qword [rbp - 0x80]
mov dword [rbp - 0x30], r10d
mov r10, qword [rsp + 0x68]
mov dword [rbp - 0x44], r11d
mov r11, qword [rsp + 0x78]
mov dword [rbp - 0x4c], edi
mov rdi, qword [rsp + 0x58]
mov dword [rbp - 0x50], ebx
mov rbx, qword [rsp + 0x48]
mov dword [rbp - 0x40], r8d
mov r8, qword [rbp - 0x78]
lea r13, [r12 + 0x40]
mov rcx, rax
mov edx, 4
nop word [rax + rax]
mov eax, dword [r9 + rcx - 4]
add rcx, 0x10
add eax, dword [r10 + rcx - 0x14]
mov dword [rcx - 0x14], eax
mov eax, dword [r10 + rcx - 0x10]
add eax, dword [r9 + rcx - 0x10]
mov dword [rcx - 0x10], eax
mov eax, dword [r11 + rcx - 0x10]
add eax, dword [r9 + rcx - 0xc]
mov dword [rcx - 0xc], eax
mov eax, dword [r8 + rcx - 0x10]
add eax, dword [r9 + rcx - 8]
dec rdx
mov dword [rcx - 8], eax
jne 0x1400561f0
inc dword [r13 + 0x30]
jne 0x140056237
inc dword [r13 + 0x34]
cmp rdi, 0x40
jb 0x1400562aa
movdqu xmm1, xmmword [rsi + r15]
movdqu xmm0, xmmword [r12]
movdqu xmm3, xmmword [rsi + r15 + 0x10]
add rsi, 0x40
mov qword [rsp + 0x50], rsi
pxor xmm1, xmm0
movdqu xmm2, xmmword [r12 + 0x10]
movdqu xmmword [r14 + rsi - 0x40], xmm1
pxor xmm3, xmm2
movdqu xmmword [r14 + rsi - 0x30], xmm3
movdqu xmm1, xmmword [rsi + r15 - 0x20]
movdqu xmm4, xmmword [rsi + r15 - 0x10]
movdqu xmm0, xmmword [r12 + 0x20]
movdqu xmm2, xmmword [r12 + 0x30]
pxor xmm1, xmm0
pxor xmm4, xmm2
movdqu xmmword [r14 + rsi - 0x20], xmm1
movdqu xmmword [r14 + rsi - 0x10], xmm4
jmp 0x1400562ec
cmp rbx, rdi
jae 0x1400562ec
mov rax, rdi
mov rdx, r15
lea rcx, [r14 + rsi]
sub rax, rbx
sub rdx, r14
add rsi, rax
mov qword [rsp + 0x50], rsi
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rbx
inc rcx
xor al, byte [rbx + r12 - 1]
mov byte [rcx - 1], al
cmp rbx, rdi
jb 0x1400562d0
mov qword [rsp + 0x48], rbx
mov edx, dword [rsp + 0x3c]
mov rax, rdi
cmp rdi, 0x40
mov ecx, 0x40
cmova rax, rcx
sub rdi, rax
lea rax, [r12 + 4]
mov qword [rsp + 0x58], rdi
jne 0x140055f50
mov qword [r12 + 0x80], rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1400a4e70
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret