Function at 0x140359c20
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0xa8
call fcn.1403cb200
sub rsp, rax
mov rax, qword [0x1404f2b48]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rbp, qword [rsp + 0x118]
mov r14, rcx
mov r13, qword [rsp + 0x120]
xor ebx, ebx
mov rcx, rbp
mov dword [rsp + 0x3c], r9d
mov r15d, r9d
mov qword [rsp + 0x40], r8
mov r12, rdx
mov dword [rsp + 0x34], 1
mov edi, ebx
call fcn.140273470
mov dword [rsp + 0x38], eax
test eax, eax
jle 0x140359cd6
mov rsi, qword [rsp + 0x128]
xor edx, edx
movsxd rcx, eax
mov rax, rsi
div rcx
mov qword [rsp + 0x48], rcx
mov ecx, 0xffffffff
cmp rax, rcx
jb 0x140359cfc
call fcn.140273ec0
lea r8, [0x140485d08]
xor edx, edx
lea rcx, [0x1404c05a8]
call fcn.140273fd0
lea edx, [rbx + 0x69]
xor r8d, r8d
lea ecx, [r8 + 0x39]
call fcn.1402740c0
xor eax, eax
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1403cb150
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp dword [rsp + 0x130], ebx
je 0x140359d94
lea rax, [rsi*8]
cmp rax, 0x70
jae 0x140359d38
call fcn.140273ec0
lea r8, [0x140485d08]
xor edx, edx
lea rcx, [0x1404c05a8]
call fcn.140273fd0
mov edx, 0xab
jmp 0x140359cca
cmp r15d, 0x10
jge 0x140359d62
call fcn.140273ec0
lea r8, [0x140485d08]
xor edx, edx
lea rcx, [0x1404c05a8]
call fcn.140273fd0
mov edx, 0x70
jmp 0x140359cca
cmp qword [rsp + 0x110], 0x3e8
jae 0x140359d94
call fcn.140273ec0
lea r8, [0x140485d08]
xor edx, edx
lea rcx, [0x1404c05a8]
call fcn.140273fd0
mov edx, 0x7b
jmp 0x140359cca
call fcn.1403b5600
mov r15, rax
test rax, rax
je 0x140359cd6
mov r9, rbp
mov qword [rsp + 0x20], rbx
mov r8d, r12d
mov rdx, r14
mov rcx, rax
call fcn.1403b5790
test eax, eax
je 0x140359f09
call fcn.1403b5600
mov rdi, rax
test rax, rax
je 0x140359f09
test esi, esi
je 0x140359f04
mov ecx, dword [rsp + 0x34]
cmp esi, dword [rsp + 0x38]
mov eax, ecx
mov byte [rsp + 0x33], cl
mov r12d, esi
cmovg r12d, dword [rsp + 0x38]
mov rdx, r15
shr eax, 0x18
mov byte [rsp + 0x30], al
mov eax, ecx
shr eax, 0x10
mov byte [rsp + 0x31], al
mov eax, ecx
shr eax, 8
mov rcx, rdi
mov byte [rsp + 0x32], al
call fcn.1403b5530
test eax, eax
je 0x140359f09
movsxd r8, dword [rsp + 0x3c]
mov rcx, rdi
mov rdx, qword [rsp + 0x40]
call fcn.1403b59e0
test eax, eax
je 0x140359f09
mov r8d, 4
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.1403b59e0
test eax, eax
je 0x140359f09
xor r8d, r8d
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1403b56e0
test eax, eax
je 0x140359f09
movsxd rbp, r12d
lea rdx, [rsp + 0x50]
mov r8, rbp
mov rcx, r13
call fcn.1403cc5a0
mov r14d, 1
jmp 0x140359ee4
mov rdx, r15
mov rcx, rdi
call fcn.1403b5530
test eax, eax
je 0x140359f09
mov r8, qword [rsp + 0x48]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1403b59e0
test eax, eax
je 0x140359f09
xor r8d, r8d
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1403b56e0
test eax, eax
je 0x140359f09
test r12d, r12d
jle 0x140359ee1
lea rdx, [rsp + 0x50]
mov rcx, r13
sub rdx, r13
mov r8, rbp
mov al, byte [rcx + rdx]
xor byte [rcx], al
inc rcx
sub r8, 1
jne 0x140359ed3
inc r14
cmp r14, qword [rsp + 0x110]
jb 0x140359e87
mov ecx, dword [rsp + 0x34]
add r13, rbp
inc ecx
mov dword [rsp + 0x34], ecx
sub esi, r12d
jne 0x140359de0
mov ebx, 1
mov rcx, rdi
call fcn.1403b55b0
mov rcx, r15
call fcn.1403b55b0
mov eax, ebx
jmp 0x140359cd8