Function at 0x1403517f0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x68
mov rsi, rcx
mov eax, r9d
mov r9, rdx
mov dword [rsp + 0xc8], eax
mov r15, r8
mov r12, r9
mov r13, rsi
mov edi, dword [rsi + 0x18]
mov r14d, edi
and r14d, 0x20
je 0x14035182d
mov r9, qword [r9]
mov r13, r12
jmp 0x140351840
test edi, 0x40
je 0x140351840
test edi, 2
jne 0x140351840
mov r9, qword [r9]
mov rax, qword [r13 + 0x20]
mov r8d, edi
add rax, qword [r13 + 0x10]
lea rbx, [rax + rax*2]
and r8d, 1
je 0x14035186e
test edi, 0x600
jne 0x14035186e
cmp qword [rsi + rbx*8 + 0x70], 0
je 0x14035186e
mov qword [rsi + rbx*8 + 0x70], 0
mov rax, qword [r13 + 0x20]
mov ebp, 1
test rax, rax
jle 0x140351a58
mov r10, rax
mov ecx, 1
xor r11d, r11d
shr r10, 3
je 0x140351998
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], r8d
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x48], edi
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x58], r15
movsxd r11, r11d
lea rbx, [r11 + r11*2]
inc r11d
shl rbx, 6
mov eax, dword [r13 + rbx + 0xd8]
cdq
xor eax, edx
sub eax, edx
movsxd r15, eax
mov eax, dword [r13 + rbx + 0xc0]
cdq
xor eax, edx
sub eax, edx
movsxd r14, eax
mov eax, dword [r13 + rbx + 0xa8]
cdq
xor eax, edx
sub eax, edx
movsxd r12, eax
mov eax, dword [r13 + rbx + 0x90]
cdq
xor eax, edx
sub eax, edx
movsxd r8, eax
mov eax, dword [r13 + rbx + 0x78]
cdq
xor eax, edx
sub eax, edx
movsxd rdi, eax
mov eax, dword [r13 + rbx + 0x60]
cdq
xor eax, edx
sub eax, edx
movsxd rsi, eax
mov eax, dword [r13 + rbx + 0x48]
cdq
xor eax, edx
sub eax, edx
movsxd rcx, eax
mov eax, dword [r13 + rbx + 0x30]
cdq
xor eax, edx
sub eax, edx
movsxd rax, eax
imul rbp, rax
imul rbp, rcx
imul rbp, rsi
imul rbp, rdi
imul rbp, r8
imul rbp, r12
imul rbp, r14
imul rbp, r15
cmp r11, r10
jb 0x1403518bc
shl r11d, 3
movsxd rcx, r11d
mov rax, qword [rsp + 0x20]
inc rcx
mov r8d, dword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov r14d, dword [rsp + 0x40]
mov edi, dword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x30]
mov r15, qword [rsp + 0x58]
cmp rcx, rax
ja 0x140351a58
sub rax, rcx
lea r10, [0x140000000]
inc rax
dec eax
mov edx, eax
movzx eax, byte [r10 + rdx + 0x5947f8]
lea rax, [r10 + rax + 0x3519c5]
jmp rax
test r15, r15
je 0x140351a80
mov eax, edi
and eax, 0x40
je 0x140351a69
test r14d, r14d
je 0x140351a6e
mov r15, r13
jmp 0x140351a71
mov r15, r12
test r8d, r8d
je 0x140351a8b
test edi, 2
jne 0x140351ac1
jmp 0x140351a8b
test edi, 0x200
je 0x140351abc
mov r15, r13
mov rcx, rbp
mov rdx, r15
imul rcx, qword [r13 + 8]
mov r8d, dword [rsp + 0xc8]
call fcn.14035a550
test eax, eax
je 0x140351cf8
add rsp, 0x68
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov eax, edi
and eax, 0x40
mov rcx, rsi
mov rdx, r12
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], r9
call fcn.14034bf40
mov rdi, qword [rsi + rbx*8 + 0x68]
mov r9, qword [rsp + 0x28]
mov eax, dword [rsp + 0x20]
test rdi, rdi
je 0x140351bc1
mov r11, qword [rdi]
mov r8, r9
cmp rbp, 1
jne 0x140351b51
xor r10d, r10d
xor r8d, r8d
test r11, r11
jle 0x140351bc1
mov r12d, dword [r8 + rdi + 8]
mov rdx, qword [r8 + rdi + 0x10]
mov r15, qword [r8 + rdi + 0x18]
cmp r12d, 1
je 0x140351d05
cmp r12d, 2
je 0x140351b3e
cmp r12d, 3
jne 0x140351b32
mov dword [rdx + r9], r15d
jmp 0x140351b43
cmp r12d, 4
jne 0x140351b43
mov qword [rdx + r9], r15
jmp 0x140351b43
mov word [rdx + r9], r15w
inc r10d
add r8, 0x18
cmp r10, r11
jb 0x140351b07
jmp 0x140351bc1
mov r10d, 0
jb 0x140351bc1
mov qword [rsp + 0x30], rsi
xor ecx, ecx
xor edx, edx
test r11, r11
jle 0x140351ba9
mov esi, dword [rdx + rdi + 8]
mov r15, qword [rdx + rdi + 0x10]
mov r12, qword [rdx + rdi + 0x18]
cmp esi, 1
je 0x140351d38
cmp esi, 2
je 0x140351b99
cmp esi, 3
jne 0x140351b8e
mov dword [r15 + r8], r12d
jmp 0x140351b9e
cmp esi, 4
jne 0x140351b9e
mov qword [r15 + r8], r12
jmp 0x140351b9e
mov word [r15 + r8], r12w
inc ecx
add rdx, 0x18
cmp rcx, r11
jb 0x140351b67
cmp qword [r13 + 0x20], 0
jle 0x140351bb4
add r8, qword [r13 + 8]
inc r10
cmp r10, rbp
jb 0x140351b5e
mov rsi, qword [rsp + 0x30]
test eax, eax
je 0x140351bca
test r14d, r14d
je 0x140351bcf
or qword [r13 + 0x18], 1
mov rdx, qword [rsi + rbx*8 + 0x70]
test rdx, rdx
je 0x140351ce5
movsxd rcx, dword [rdx]
add rdx, 8
je 0x140351ce5
mov eax, 1
cmp rbp, 1
jb 0x140351ce5
mov rbx, rdx
mov rdx, rbp
mov rbp, rbx
mov rbx, rcx
mov rcx, r13
mov r13, rbx
mov rbx, r9
xor edi, edi
xor esi, esi
test r13, r13
jle 0x140351cce
mov qword [rsp + 0x30], rax
mov r15d, 2
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rcx
mov r8d, dword [rsi + rbp]
cmp r8d, 3
cmove r8d, r15d
test r8d, r8d
je 0x140351c80
lea eax, [r8 - 1]
cmp eax, 1
ja 0x140351c59
mov r12, rbx
mov r14, qword [rsi + rbp + 0x10]
add r12, qword [rsi + rbp + 8]
jmp 0x140351c8b
cmp r8d, 4
jne 0x140351c8b
mov rax, qword [rsi + rbp + 0x10]
mov r12, rbx
add r12, qword [rsi + rbp + 8]
test byte [rax], 0x20
je 0x140351c7a
mov r14, r12
mov r12, qword [r12]
jmp 0x140351c8b
mov r14, qword [rax + 0x30]
jmp 0x140351c8b
mov r14, rbx
add r14, qword [rsi + rbp + 8]
mov r12, qword [r14]
test dword [r14 + 0x18], 0x200
jne 0x140351d0e
mov rcx, r14
mov rdx, r12
xor r8d, r8d
mov r9d, dword [rsp + 0xc8]
call fcn.140351300
test eax, eax
jne 0x140351ce7
inc rdi
add rsi, 0x18
cmp rdi, r13
jl 0x140351c30
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
cmp qword [rcx + 0x20], 0
jle 0x140351cd9
add rbx, qword [rcx + 8]
inc rax
cmp rax, rdx
jbe 0x140351c0e
xor eax, eax
add rsp, 0x68
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov eax, edi
mov r9, qword [r15]
and eax, 0x40
jmp 0x140351ac1
mov byte [rdx + r9], r15b
jmp 0x140351b43
mov rax, qword [r14 + 0x20]
mov rcx, r12
add rax, qword [r14 + 0x10]
mov rdx, r14
lea r10, [rax + rax*2]
lea r11, [r10*8 + 0x80]
movsxd r8, r11d
call fcn.14042ae90
mov r14, r12
jmp 0x140351c95
mov byte [r15 + r8], r12b
jmp 0x140351b9e