Function at 0x1402c5a50
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov ebx, ecx
mov qword [rsp + 0x38], rdx
call fcn.1402c4a40
test eax, eax
mov esi, eax
jne 0x1402c5dfa
mov ecx, 5
call fcn.14029d2f0
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.1402c55a0
test ebx, ebx
jle 0x1402c5a9c
cmp qword [rsp + 0x38], 0
jne 0x1402c5aa9
xor edx, edx
mov dword [0x1402e2da0], edx
jmp 0x1402c5b5c
cmp dword [0x1402e2da0], 0
jne 0x1402c5b2c
xor ecx, ecx
call fcn.1402ca070
movaps xmm0, xmmword [str.expand_32_byte_kcume_dist]
test rax, rax
movaps xmmword [0x1402e2da0], xmm0
jne 0x1402c5ae1
lea rdx, [0x1402e2db0]
mov ecx, 0xb
mov eax, esi
mov rdi, rdx
rep stosd dword [rdi], eax
jmp 0x1402c5b11
mov edx, dword [0x1402e2d30]
lea r8, [0x1402e2db0]
test edx, edx
je 0x1402c5b06
mov ecx, 0xb
mov rdi, r8
mov eax, esi
rep stosd dword [rdi], eax
mov dword [0x1402e2db0], edx
jmp 0x1402c5b11
mov edx, 0x2c
mov rcx, rax
call qword [rax + 0x68]
mov eax, dword [0x1402e2dd0]
mov byte [0x1402e2e20], 0
mov dword [0x1402e2ddc], eax
xor eax, eax
mov dword [0x1402e2dd0], eax
movzx esi, byte [0x1402e2e20]
cmp esi, ebx
mov rcx, rsi
jl 0x1402c5b79
sub esi, ebx
mov rdi, qword [rsp + 0x38]
movsxd rcx, ebx
lea rax, [0x1402e2da0]
add esi, 0x40
movsxd rsi, esi
add rsi, rax
rep movsb byte [rdi], byte [rsi]
sub byte [0x1402e2e20], bl
mov rcx, qword [rsp + 0x40]
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1402c55c0
test sil, sil
je 0x1402c5b9a
mov rdi, qword [rsp + 0x38]
lea rsi, [0x1402e2de0]
rep movsb byte [rdi], byte [rsi]
movzx edx, byte [0x1402e2e20]
add qword [rsp + 0x38], rdx
sub ebx, edx
mov eax, dword [0x1402e2dd0]
lea rdi, [rsp + 0x50]
mov ecx, 0x10
mov dword [rsp + 0x4c], 0xa
lea rsi, [0x1402e2da0]
inc eax
mov dword [0x1402e2dd0], eax
rep movsd dword [rdi], dword [rsi]
mov edx, dword [rsp + 0x8c]
mov edi, dword [rsp + 0x60]
mov r13d, dword [rsp + 0x50]
mov r15d, dword [rsp + 0x70]
mov dword [rsp + 0x30], edx
mov edx, dword [rsp + 0x7c]
mov dword [rsp + 0x2c], edi
mov ebp, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x64]
mov r9d, dword [rsp + 0x84]
mov r14d, dword [rsp + 0x74]
mov dword [rsp + 0x34], edx
mov edi, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x68]
mov ecx, dword [rsp + 0x88]
mov r12d, dword [rsp + 0x78]
mov esi, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x2c]
add ebp, r11d
add edi, r10d
xor r9d, ebp
xor ecx, edi
rol r9d, 0x10
rol ecx, 0x10
add r14d, r9d
add r12d, ecx
add r13d, edx
xor r11d, r14d
xor r10d, r12d
rol r11d, 0xc
xor eax, r13d
rol r10d, 0xc
rol eax, 0x10
add ebp, r11d
add edi, r10d
add r15d, eax
xor r9d, ebp
xor ecx, edi
xor edx, r15d
rol r9d, 8
rol edx, 0xc
add r14d, r9d
add r13d, edx
xor r11d, r14d
xor eax, r13d
rol r11d, 7
rol eax, 8
add r15d, eax
xor edx, r15d
rol edx, 7
rol ecx, 8
add esi, r8d
add r12d, ecx
mov dword [rsp + 0x48], ecx
mov ecx, dword [rsp + 0x30]
add r13d, r11d
mov dword [rsp + 0x2c], edx
mov edx, dword [rsp + 0x34]
xor r10d, r12d
rol r10d, 7
add ebp, r10d
xor ecx, esi
xor eax, ebp
rol ecx, 0x10
rol eax, 0x10
add edx, ecx
xor r8d, edx
rol r8d, 0xc
add esi, r8d
xor ecx, esi
rol ecx, 8
add edx, ecx
xor ecx, r13d
rol ecx, 0x10
xor r8d, edx
add edx, eax
add r12d, ecx
rol r8d, 7
xor r11d, r12d
rol r11d, 0xc
add r13d, r11d
xor ecx, r13d
rol ecx, 8
add r12d, ecx
mov dword [rsp + 0x30], ecx
mov ecx, dword [rsp + 0x48]
xor r11d, r12d
rol r11d, 7
xor r10d, edx
add edi, r8d
rol r10d, 0xc
xor r9d, edi
add ebp, r10d
rol r9d, 0x10
xor eax, ebp
add r15d, r9d
rol eax, 8
xor r8d, r15d
add edx, eax
rol r8d, 0xc
xor r10d, edx
mov dword [rsp + 0x34], edx
mov edx, dword [rsp + 0x2c]
add edi, r8d
xor r9d, edi
rol r10d, 7
rol r9d, 8
add r15d, r9d
add esi, edx
xor r8d, r15d
xor ecx, esi
rol r8d, 7
rol ecx, 0x10
add r14d, ecx
xor edx, r14d
rol edx, 0xc
add esi, edx
xor ecx, esi
rol ecx, 8
add r14d, ecx
xor edx, r14d
rol edx, 7
dec dword [rsp + 0x4c]
mov dword [rsp + 0x2c], edx
jne 0x1402c5c1c
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x34]
mov edx, dword [rsp + 0x30]
mov dword [rsp + 0x50], r13d
mov dword [rsp + 0x78], r12d
mov dword [rsp + 0x64], r11d
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0x8c], edx
mov dword [rsp + 0x54], ebp
mov dword [rsp + 0x68], r10d
mov dword [rsp + 0x60], eax
xor eax, eax
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x84], r9d
mov dword [rsp + 0x70], r15d
mov dword [rsp + 0x6c], r8d
mov dword [rsp + 0x5c], esi
mov dword [rsp + 0x88], ecx
mov dword [rsp + 0x74], r14d
lea rdi, [0x1402e2da0]
mov edx, dword [rdi + rax]
add edx, dword [rsp + rax + 0x50]
add rax, 4
mov dword [rax + rdi + 0x3c], edx
cmp rax, 0x40
jne 0x1402c5dd2
mov byte [0x1402e2e20], 0x40
jmp 0x1402c5b2c
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret