Function at 0x14034ffe0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x158
mov rbx, rdx
mov rax, qword [rsp + 0x1c0]
mov rsi, r9
mov rbp, qword [rcx + 0x10]
mov rdi, r8
mov ecx, dword [rax + 0x18]
mov edx, ecx
mov r12d, dword [rbp]
and r12d, 0x10
and edx, 0x20
je 0x140350023
mov r15d, dword [rdi + 0x18]
mov rax, rdi
jmp 0x14035002e
test cl, 0x40
je 0x14035002b
test cl, 2
mov r15d, ecx
mov r8, qword [rax + 0x20]
mov r14d, ecx
add r8, qword [rax + 0x10]
lea rax, [r8 + r8*2]
mov qword [rsp + 0xd0], rax
and r14d, 1
je 0x14035007c
test ecx, 0x600
jne 0x14035007c
mov rax, qword [rsp + 0x1c0]
mov r8, qword [rsp + 0xd0]
cmp qword [rax + r8*8 + 0x70], 0
je 0x14035007c
mov rax, qword [rsp + 0x1c0]
mov qword [rax + r8*8 + 0x70], 0
mov r11d, dword [rsi + 0x18]
mov r10d, r11d
mov r13, rsi
and r10d, 0x20
je 0x140350095
mov r8d, dword [rbx + 0x18]
mov r13, rbx
jmp 0x1403500a8
test r11d, 0x40
je 0x1403500a5
test r11d, 2
mov r8d, r11d
mov rax, qword [r13 + 0x20]
add rax, qword [r13 + 0x10]
lea rax, [rax + rax*2]
mov qword [rsp + 0x150], rax
mov eax, r11d
and eax, 1
je 0x1403500e6
test r11d, 0x600
jne 0x1403500e6
mov r9, qword [rsp + 0x150]
cmp qword [rsi + r9*8 + 0x70], 0
je 0x1403500e6
mov qword [rsi + r9*8 + 0x70], 0
test r12d, r12d
jne 0x140350110
mov r11d, dword [rbp]
test r11d, 0x100
jne 0x140350192
cmp qword [rsp + 0x1d0], 0
jne 0x140350192
jmp 0x1403503f0
test r11d, 0x40
je 0x140350141
test r10d, r10d
je 0x140350126
mov eax, r8d
and eax, 1
jmp 0x140350141
test r11d, 2
jne 0x140350149
test rbx, rbx
je 0x14035013f
xor eax, eax
cmp qword [rbx], 0
setne al
jmp 0x140350141
xor eax, eax
test eax, eax
je 0x1403506cc
test cl, 0x40
je 0x140350175
test edx, edx
je 0x14035015b
mov r14d, r15d
and r14d, 1
jmp 0x140350175
test cl, 2
jne 0x14035017a
test rdi, rdi
je 0x140350172
xor r14d, r14d
cmp qword [rdi], 0
setne r14b
jmp 0x140350175
xor r14d, r14d
test r14d, r14d
je 0x140350192
mov r11d, dword [rbp]
test r11d, 0x100
jne 0x140350192
cmp qword [rsp + 0x1d0], 0
je 0x14035020b
mov r15, rsp
mov rcx, rsi
mov rax, qword [rsp + 0x1d8]
mov rdx, rbx
mov r11, qword [rsp + 0x1e0]
mov r9, rdi
mov r10, qword [rsp + 0x1d0]
mov r14d, dword [rsp + 0x1e8]
mov r8, qword [rsp + 0x1c0]
mov dword [r15 + 0x20], 1
mov qword [r15 + 0x28], rax
mov qword [r15 + 0x30], r10
mov qword [r15 + 0x38], 1
mov qword [r15 + 0x40], r11
mov dword [r15 + 0x48], r14d
call fcn.14034d5d0
mov r11d, dword [rbp]
mov eax, r11d
and eax, 0x20
cmovne rbx, rsi
cmovne rdi, qword [rsp + 0x1c0]
test r12d, r12d
je 0x1403503f0
test r11d, 8
je 0x14035021f
mov r12d, 1
jmp 0x1403503f4
mov r15, qword [r13 + 0x20]
mov r12d, 1
test r15, r15
jle 0x1403503f4
mov r8, r15
mov r14d, 1
xor r10d, r10d
shr r8, 3
je 0x14035032f
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
movsxd r10, r10d
lea r15, [r10 + r10*2]
inc r10d
shl r15, 6
mov eax, dword [r13 + r15 + 0xd8]
cdq
xor eax, edx
sub eax, edx
movsxd r14, eax
mov eax, dword [r13 + r15 + 0xc0]
cdq
xor eax, edx
sub eax, edx
movsxd r9, eax
mov eax, dword [r13 + r15 + 0xa8]
cdq
xor eax, edx
sub eax, edx
movsxd rdi, eax
mov eax, dword [r13 + r15 + 0x90]
cdq
xor eax, edx
sub eax, edx
movsxd rsi, eax
mov eax, dword [r13 + r15 + 0x78]
cdq
xor eax, edx
sub eax, edx
movsxd rbp, eax
mov eax, dword [r13 + r15 + 0x60]
cdq
xor eax, edx
sub eax, edx
movsxd rbx, eax
mov eax, dword [r13 + r15 + 0x48]
cdq
xor eax, edx
sub eax, edx
movsxd rcx, eax
mov eax, dword [r13 + r15 + 0x30]
cdq
xor eax, edx
sub eax, edx
movsxd rax, eax
imul r12, rax
imul r12, rcx
imul r12, rbx
imul r12, rbp
imul r12, rsi
imul r12, rdi
imul r12, r9
imul r12, r14
cmp r10, r8
jb 0x140350261
shl r10d, 3
movsxd r14, r10d
mov r15, qword [rsp + 0x50]
inc r14
mov rdi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
cmp r14, r15
ja 0x1403503f4
sub r15, r14
lea r8, [0x140000000]
inc r15
dec r15d
movzx eax, byte [r8 + r15 + 0x5947e8]
lea rax, [r8 + rax + 0x35035b]
jmp rax
mov r12, qword [rbp + 0x10]
xor r15d, r15d
test r11d, 0x20
jne 0x14035047f
test r11d, 0x10
je 0x140350418
test r11d, 0x40
jne 0x140350415
mov rdi, qword [rdi]
mov rbx, qword [rbx]
test r11d, 2
je 0x140350454
mov rax, qword [rbp + 0x20]
mov qword [rax], rdi
mov r8, qword [rbp + 0x20]
and qword [r8 + 0x18], 0xffffffffffffffbf
mov r11d, dword [rbp]
mov eax, r11d
and eax, 0x20
mov r14, qword [rbp + 0x20]
test r11d, 4
je 0x14035044e
test eax, eax
jne 0x14035047a
jmp 0x140350460
test eax, eax
jne 0x140350499
jmp 0x14035047a
mov r14, rdi
test r11d, 4
je 0x14035047a
mov rax, qword [rbp + 0x28]
mov qword [rax], rbx
mov r8, qword [rbp + 0x28]
and qword [r8 + 0x18], 0xffffffffffffffbf
mov r13, qword [rbp + 0x28]
mov r11d, dword [rbp]
jmp 0x14035049c
mov r13, rbx
jmp 0x14035049c
test r11d, 2
je 0x14035048d
mov r14, rdi
jmp 0x140350490
mov r14, qword [rdi]
test r11d, 4
jne 0x14035047a
mov r13, qword [rbx]
test r11d, 1
je 0x1403506ad
test r11d, 8
jne 0x1403506ad
test r11d, 0x20
je 0x140350667
test r11d, 2
je 0x1403505a3
mov rax, qword [rdi]
mov qword [rsp + 0x50], rax
mov r8, qword [rdi + 8]
mov qword [rsp + 0x58], r8
mov r10, qword [rdi + 0x10]
mov qword [rsp + 0x60], r10
mov r11, qword [rdi + 0x18]
mov qword [rsp + 0x68], r11
mov r14, qword [rdi + 0x20]
mov qword [rsp + 0x70], r14
mov r9, qword [rdi + 0x28]
mov r14, qword [rsp + 0x1c0]
mov rdi, qword [rsp + 0xd0]
mov qword [rsp + 0x78], r9
mov r8, qword [r14 + rdi*8 + 0x30]
mov qword [rsp + 0x80], r8
mov r8, qword [r14 + rdi*8 + 0x38]
mov qword [rsp + 0x88], r8
mov r8, qword [r14 + rdi*8 + 0x40]
mov qword [rsp + 0x90], r8
mov r8, qword [r14 + rdi*8 + 0x48]
mov qword [rsp + 0x98], r8
mov r8, qword [r14 + rdi*8 + 0x50]
mov qword [rsp + 0xa0], r8
mov r8, qword [r14 + rdi*8 + 0x58]
mov qword [rsp + 0xa8], r8
mov r8, qword [r14 + rdi*8 + 0x60]
mov qword [rsp + 0xb0], r8
mov r8, qword [r14 + rdi*8 + 0x68]
mov qword [rsp + 0xb8], r8
mov r8, qword [r14 + rdi*8 + 0x70]
mov rdi, qword [r14 + rdi*8 + 0x78]
lea r14, [rsp + 0x50]
mov qword [r14 + 0x70], r8
mov qword [r14 + 0x78], rdi
mov rdi, rax
mov qword [r14 + 0x20], 0
mov r11d, dword [rbp]
test r11d, 4
je 0x140350667
mov rax, qword [rbx]
mov qword [rsp + 0xd0], rax
mov r8, qword [rbx + 8]
mov qword [rsp + 0xd8], r8
mov r10, qword [rbx + 0x10]
mov qword [rsp + 0xe0], r10
mov r11, qword [rbx + 0x18]
mov qword [rsp + 0xe8], r11
mov r13, qword [rbx + 0x20]
mov qword [rsp + 0xf0], r13
lea r13, [rsp + 0xd0]
mov rbx, qword [rbx + 0x28]
mov qword [r13 + 0x28], rbx
mov rbx, qword [r13 + 0x80]
mov r8, qword [rsi + rbx*8 + 0x30]
mov qword [r13 + 0x30], r8
mov r8, qword [rsi + rbx*8 + 0x38]
mov qword [r13 + 0x38], r8
mov r8, qword [rsi + rbx*8 + 0x40]
mov qword [r13 + 0x40], r8
mov r8, qword [rsi + rbx*8 + 0x48]
mov qword [r13 + 0x48], r8
mov r8, qword [rsi + rbx*8 + 0x50]
mov qword [r13 + 0x50], r8
mov r8, qword [rsi + rbx*8 + 0x58]
mov qword [r13 + 0x58], r8
mov r8, qword [rsi + rbx*8 + 0x60]
mov qword [r13 + 0x60], r8
mov r8, qword [rsi + rbx*8 + 0x68]
mov qword [r13 + 0x68], r8
mov r8, qword [rsi + rbx*8 + 0x70]
mov rsi, qword [rsi + rbx*8 + 0x78]
mov rbx, rax
mov qword [r13 + 0x70], r8
mov qword [r13 + 0x78], rsi
mov qword [r13 + 0x20], 0
test r12, r12
jbe 0x1403506b6
mov rcx, r14
mov rdx, r13
call qword [rbp + 0x18]
mov eax, dword [rbp]
test al, 2
je 0x14035068c
add rdi, qword [rbp + 8]
mov qword [r14], rdi
mov eax, dword [rbp]
mov rsi, qword [rbp + 8]
jmp 0x140350693
mov rsi, qword [rbp + 8]
add r14, rsi
test al, 4
je 0x1403506a0
add rbx, rsi
mov qword [r13], rbx
jmp 0x1403506a3
add r13, rsi
inc r15
cmp r15, r12
jb 0x14035066c
jmp 0x1403506b6
mov rcx, r14
mov rdx, r13
call qword [rbp + 0x18]
xor eax, eax
add rsp, 0x158
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test cl, 0x40
je 0x1403506f8
test edx, edx
je 0x1403506de
mov r14d, r15d
and r14d, 1
jmp 0x1403506f8
test cl, 2
jne 0x1403506fd
test rdi, rdi
je 0x1403506f5
xor r14d, r14d
cmp qword [rdi], 0
setne r14b
jmp 0x1403506f8
xor r14d, r14d
test r14d, r14d
je 0x140350708
cmp qword [rsp + 0x1d0], 0
je 0x14035071e
xor eax, eax
add rsp, 0x158
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov rbx, rsp
xor r8d, r8d
mov eax, dword [rsp + 0x1e8]
mov rdx, rdi
xor r9d, r9d
mov rcx, qword [rsp + 0x1c0]
mov qword [rbx + 0x20], 1
mov dword [rbx + 0x28], eax
call fcn.1403522e0
add rsp, 0x158
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret