Function at 0x1400035d4
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov eax, dword [0x1400327d0]
lea ebx, [rdx - 2]
movzx r10d, byte [0x1400327ca]
mov r15, r9
mov rsi, qword [rsp + 0x120]
mov r13, r8
mov r8, qword [0x140032820]
movzx r11d, word [0x1400327cc]
movzx ebp, word [0x140032808]
movsxd r12, dword [0x14003281c]
mov dword [rsp + 0x108], eax
dec eax
mov dword [0x1400327d0], eax
movsxd r9, dword [rsi + r10*4]
add r10b, 0xff
movzx eax, word [0x140032810]
and r9, r11
imul ebp, eax
mov eax, ebx
cdq
movzx r14d, byte [rsp + 0x128]
mov byte [0x1400327ca], r10b
movsxd r10, dword [rsi + 0x2998]
movsxd rdi, ecx
movzx ecx, word [0x1400327c8]
mov word [rsp + 0xf0], r8w
dec r8
mov dword [rsp + 0xf8], ebp
mov qword [rsp + 0x90], r10
idiv dword [rsi + rcx*4]
mov rcx, qword [0x140032830]
mov qword [0x140032820], r8
movsxd rax, edx
mov edx, 0xffff
mov qword [rsp + 0x70], rax
mov rax, qword [r15 + r11*8 + 0x20]
mov qword [rsp + 0x80], rax
movzx eax, word [0x140032804]
add ax, dx
mov qword [rsp + 0x98], rcx
mov word [0x140032804], ax
movzx eax, ax
cdq
movsxd r11, ebx
idiv dword [rsi + 0x23b4]
mov ebx, 1
mov qword [rsp + 0x88], r11
sub dword [rsp + 0x118], ebx
movsxd rax, edx
mov qword [rsp + 0x78], rax
mov eax, dword [0x1400327d4]
mov dword [rsp + 0x100], eax
movsxd rax, dword [r10]
add dword [r13 + rax*4], ecx
lea eax, [rdi + 7]
movsxd rcx, eax
movsxd rax, dword [rsi + rcx*4]
mov rsi, qword [rsp + 0x70]
movzx ecx, word [0x1400327c8]
add ecx, 0x18
movsxd rdx, dword [rsi + rdi*4]
add edi, ebx
or rax, rdx
xor edx, edx
div qword [0x140032820]
mov rax, qword [rsp + 0x110]
lea r8d, [rdi + rdi]
mov qword [0x140032820], rdx
mov dword [rsp + 0x60], r8d
mov eax, dword [rax + rcx*4]
add eax, dword [0x140032818]
movsxd rdx, eax
lea eax, [r8 + 0x1d]
movsxd rcx, eax
movzx r8d, bp
mov qword [rsp + 0x68], r8
mov qword [r15 + rcx*8], rdx
add word [0x1400327c8], bx
sub dword [0x140032818], ebx
mov eax, dword [r10]
shl eax, 2
movzx ecx, word [0x545a]
mov r10d, 0x16f6
movsxd rdx, eax
movzx eax, word [0x140032804]
or ecx, eax
imul ecx, dword [r9 + r8*8]
or dword [r14 + rdx*4], ecx
mov rax, qword [0x1400327f8]
cmp r10w, word [r12 + rax*2]
jb 0x140003868
mov rbx, qword [rsp + 0x78]
lea r9, [r13 + 0x16f68]
mov r8d, 0x5bd8
mov esi, 0x1acc
mov r11d, 1
mov eax, 0x620
add r10d, r11d
movzx ecx, ax
mov rax, qword [0x1400327b0]
movzx edx, word [r8 + rax]
movzx eax, word [rsi]
imul edx, ecx
xor dx, di
mov word [r12 + rax*2], dx
movzx eax, word [rsi]
movzx edx, word [r12 + rax*2 + 4]
mov eax, dword [0x1400327e0]
add eax, 0xa
movsxd rcx, eax
imul edx, dword [r15 + rcx*8]
or edx, dword [0x1400327dc]
and edx, 0xf99
or dword [r9], edx
lea r9, [r9 + 0x10]
movzx eax, word [rbx + 0x35c2]
mov dword [r8 + r13], eax
mov rax, qword [0x1400327b0]
mov dword [r8 + rax], 0x1c47
lea r8, [r8 + 4]
mov rax, qword [0x1400327f8]
movzx ecx, word [r12 + rax*2]
cmp r10d, ecx
jge 0x1400037d1
mov r11, qword [rsp + 0x88]
mov ebx, 1
mov rsi, qword [rsp + 0x70]
movzx edx, word [rsp + 0xf8]
lea eax, [rdi + 2]
movzx r8d, byte [rsp + 0x128]
movsxd r14, dword [0x14003281c]
movzx ebp, word [0x140032804]
movzx r10d, word [rsp + 0xf0]
movsxd r9, dword [rsp + 0x108]
movsxd rcx, eax
movsxd rsi, dword [rsi + rcx*4]
movzx ecx, word [0x1400327cc]
mov eax, ecx
add cx, bx
shl rax, 5
xor rsi, qword [rax + r15 + 0x98]
mov rax, qword [rsp + 0x120]
mov word [0x1400327cc], cx
mov ecx, edx
shl ecx, 2
movsxd rdi, dword [rax + rcx*4]
mov rax, qword [rsp + 0x80]
movzx eax, byte [rax]
mov rbx, qword [r11 + rax*8]
mov rax, qword [rsp + 0x78]
movzx eax, word [rax]
mov ecx, dword [r8 + rax*4 + 0x8c]
mov eax, 0x1acc
add ecx, edx
mov rdx, qword [rsp + 0x98]
movsxd r11, ecx
movzx eax, word [rax]
mov ecx, eax
shl rcx, 5
lea rax, [rax + rax*2]
mov r8, qword [rcx + rdx - 0x56a]
mov rcx, r14
xor r8, qword [rdx + rax*8 - 0x5da]
mov edx, ebp
movsxd rax, dword [rsp + 0x100]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], rbx
movzx ebx, byte [rsp + 0x128]
mov qword [rsp + 0x30], rdi
mov r8d, ebx
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], rsi
call fcn.140002f58
mov ecx, dword [rsp + 0x60]
mov r14, qword [rsp + 0x90]
add ecx, 0xf
movsxd rdx, ecx
movsxd r8, eax
mov rax, qword [rsp + 0x68]
sub rax, qword [0x140032830]
mov dword [0x1400327d4], r8d
mov ecx, dword [r13 + rdx*4]
movsxd rsi, dword [rbx + 0x1fb8]
sub ecx, 0xa8f
movsxd r9, ecx
mov ecx, dword [0x140032838]
shl ecx, 2
movsxd rdx, ecx
mov ecx, 0x1acc
mov qword [rsp + 0x68], rax
mov rdi, qword [rdx*8 + 0x81b]
mov edx, dword [rsp + 0xf8]
movzx ecx, word [rcx]
inc dx
movzx ebp, dx
add rcx, rcx
lea eax, [rbp + 0x17]
movsxd rbx, dword [r14 + rax*4]
movzx eax, dx
mov rdx, qword [rsp + 0x110]
movzx r11d, word [r12 + rax*2]
movsxd rax, dword [0x14003282c]
mov edx, dword [rdx + rcx*8 + 0x1c]
or r11, rax
movzx eax, byte [rsp + 0x128]
add edx, eax
movsxd rcx, dword [rsp + 0x118]
mov qword [rsp + 0x50], r8
mov r8, rcx
movsxd r10, edx
cdq
idiv dword [rsp + 0x118]
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], rbx
movsxd rdx, eax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rsi
call fcn.140002f58
movzx r8d, byte [rsp + 0x128]
mov r9d, 0x1acc
mov dword [0x1400327d0], eax
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rax + 0x8aa]
mov eax, dword [r14]
shl eax, 2
cdqe
mov dword [r13 + rax*4], ecx
mov eax, dword [0x14003281c]
add eax, 0x23
movsxd rcx, eax
mov eax, 0x1adf
movzx edx, word [r14 + rcx*4]
add dx, word [rsp + 0x118]
add dx, ax
mov rax, qword [0x1400327f8]
mov word [r12 + rax*2], dx
lea eax, [rbp + 8]
movsxd rdx, dword [r8 + rax*4]
movzx eax, word [r9]
movzx ecx, word [rax + rax + 0x4c2]
cmp edx, ecx
je 0x140003afe
mov rcx, qword [rsp + 0x88]
mov r14d, 1
lea r8, [rcx + rdx*8]
mov rax, qword [0x1400327b8]
add edx, r14d
xor rax, 0xfffffffffffffeff
and eax, 0xb00
mov qword [r8], rax
lea r8, [r8 + 8]
movzx eax, word [r9]
movzx ecx, word [rax + rax + 0x4c2]
cmp edx, ecx
jne 0x140003aca
mov r14, qword [rsp + 0x90]
movzx eax, word [0x1400327c8]
mov ecx, dword [r14 + 0x848]
mov rax, qword [r15 + rax*8]
or rax, rcx
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret