Function at 0x180036dc0
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 rax, qword [0x180185680]
xor rax, rsp
mov qword [rsp + 0x98], rax
movsxd rax, r8d
mov r14, rcx
movsxd r10, edx
mov qword [rsp + 0x40], r9
imul r9, rax, 0x29
lea rax, [0x180000000]
mov qword [rsp + 0x30], rcx
add r9, r10
lea r8d, [r10 + 8]
imul r8d, r10d
movsx r13, byte [r9 + rax + 0x14e390]
movsx rbp, byte [r9 + rax + 0x14e450]
add r8d, 4
mov dword [rsp + 0x38], r13d
shl r8d, 4
mov eax, r8d
cmp r10d, 2
jl 0x180036e69
mov eax, 0x92492493
imul r10d
mov eax, r8d
add edx, r10d
sar edx, 2
mov ecx, edx
add edx, 2
shr ecx, 0x1f
add ecx, edx
imul edx, ecx, 0x19
sub edx, 0xa
imul edx, ecx
sub eax, edx
add eax, 0x37
cmp r10d, 7
jl 0x180036e69
sub eax, 0x24
cdq
and edx, 7
lea r9d, [rdx + rax]
sar r9d, 3
cmp r10d, 2
jl 0x180036ead
mov eax, 0x92492493
imul r10d
add edx, r10d
sar edx, 2
mov ecx, edx
add edx, 2
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x19
sub ecx, 0xa
imul ecx, edx
sub r8d, ecx
add r8d, 0x37
cmp r10d, 7
jl 0x180036ead
sub r8d, 0x24
mov eax, r8d
mov ecx, ebp
cdq
imul ecx, r13d
and edx, 7
mov ebx, r13d
mov r8, rbp
mov r12, rbp
lea r15d, [rdx + rax]
mov eax, r9d
cdq
sar r15d, 3
idiv r13d
sub r15d, ecx
lea rcx, [rsp + 0x78]
sub ebx, edx
sub eax, ebp
xor edx, edx
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x28], eax
call fcn.180113150
mov byte [rsp + rbp + 0x77], 1
mov dil, 1
test ebp, ebp
jle 0x180036fa2
mov r14d, ebp
xor r11d, r11d
test ebp, ebp
jle 0x180036f7c
lea esi, [r11 + 1]
nop dword [rax + rax]
movzx ebx, byte [rsp + r11 + 0x78]
xor r9b, r9b
mov r10d, 7
nop
movzx ecx, r10b
movzx eax, bl
movzx edx, dil
shr dl, cl
and dl, 1
movzx r8d, dl
imul r8d, eax
movzx eax, r9b
shr al, 7
movzx eax, al
imul ecx, eax, 0x1d
movzx eax, r9b
add al, al
xor r8b, cl
movzx r9d, r8b
xor r9b, al
sub r10d, 1
jns 0x180036f20
mov byte [rsp + r11 + 0x78], r9b
cmp esi, ebp
jge 0x180036f72
movzx eax, byte [rsp + r11 + 0x79]
xor al, r9b
mov byte [rsp + r11 + 0x78], al
inc esi
inc r11
cmp r11, r12
jl 0x180036f10
movzx eax, dil
add dil, dil
shr al, 7
movzx eax, al
imul ecx, eax, 0x1d
xor dil, cl
sub r14, 1
jne 0x180036f00
mov r14, qword [rsp + 0x30]
mov ebx, dword [rsp + 0x20]
movsxd rsi, dword [rsp + 0x28]
xor edi, edi
mov dword [rsp + 0x24], edi
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], r13
test r13, r13
jle 0x180037170
movsxd rax, r15d
movsxd rcx, ebx
xor ebx, ebx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x48], rbx
lea rbp, [rax + r14]
add rax, qword [rsp + 0x40]
mov qword [rsp + 0x70], rax
mov r8, r12
xor edx, edx
mov rcx, rbp
call fcn.180113150
mov r11d, dword [rsp + 0x20]
xor eax, eax
xor r14d, r14d
cmp edi, r11d
setge al
add eax, dword [rsp + 0x28]
movsxd r15, eax
test eax, eax
jle 0x1800370cc
mov r13, r12
lea rax, [rbp + 1]
mov rcx, qword [rsp + 0x30]
lea r8, [r13 - 1]
mov rdx, rax
movzx ebx, byte [r14 + rcx]
mov rcx, rbp
xor bl, byte [rbp]
call fcn.180112cb0
mov byte [r12 + rbp - 1], 0
test r12, r12
jle 0x1800370a4
lea rsi, [rsp + 0x78]
mov r9, rbp
sub rsi, rbp
mov rdi, r12
nop dword [rax + rax]
movzx r11d, byte [rsi + r9]
xor al, al
mov r10d, 7
nop dword [rax]
movzx ecx, r10b
movzx edx, bl
shr dl, cl
and dl, 1
movzx ecx, r11b
movzx r8d, dl
imul r8d, ecx
movzx ecx, al
shr cl, 7
movzx ecx, cl
imul edx, ecx, 0x1d
movzx ecx, al
add cl, cl
xor r8b, dl
movzx eax, r8b
xor al, cl
sub r10d, 1
jns 0x180037060
xor byte [r9], al
inc r9
sub rdi, 1
jne 0x180037050
inc r14
lea rax, [rbp + 1]
cmp r14, r15
jl 0x180037013
mov r13, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x48]
mov edi, dword [rsp + 0x24]
mov rsi, qword [rsp + 0x60]
mov r11d, dword [rsp + 0x20]
mov r9, qword [rsp + 0x30]
xor r8d, r8d
mov eax, edi
mov rcx, rbx
test r15, r15
jle 0x180037124
mov r10, qword [rsp + 0x68]
mov edi, dword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
nop dword [rax]
mov rdx, rcx
sub rdx, r10
cmp r8, rsi
cmovne rdx, rcx
mov ecx, eax
sub ecx, r11d
cmp r8, rsi
cmovne ecx, eax
movzx eax, byte [r8 + r9]
inc r8
mov byte [rdx + r14], al
lea eax, [rcx + rdi]
lea rcx, [rdx + r13]
cmp r8, r15
jl 0x1800370f0
mov edi, dword [rsp + 0x24]
xor ecx, ecx
test r12, r12
jle 0x180037151
mov rdx, qword [rsp + 0x70]
add rdx, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + rbp]
inc rcx
mov byte [rdx], al
add rdx, r13
cmp rcx, r12
jl 0x180037140
add r9, r15
inc edi
inc rbx
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x24], edi
mov qword [rsp + 0x48], rbx
cmp rbx, r13
jl 0x180036fe0
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.18010faf0
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret