Function at 0x180001000
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov r10d, dword [0x180110b00]
mov ebp, 1
mov ecx, dword [0x180110b80]
sub r10d, ebp
mov r15, qword [0x180110b60]
mov r12, rdx
or r15, qword [0x180110b50]
sub ecx, ebp
mov r11, r8
movsxd r14, ecx
movzx r8d, word [rsp + 0x108]
lea eax, [r10 + 0x10d1]
cdqe
add r10d, ebp
mov dword [0x180110b00], r10d
add r8w, bp
mov rdi, qword [rdx + 0x9090]
sub r10d, ebp
mov qword [rsp + 0xf0], rax
xor edx, edx
movzx eax, byte [0x180110b23]
mov rsi, r9
imul rdi, rax
mov qword [rsp + 0xe8], rax
mov dword [0x180110b00], r10d
movzx r10d, word [0x180110b44]
mov dword [0x180110b80], ecx
movzx eax, r8w
mov dword [rsp + 0xd8], eax
mov al, byte [0x180110b2e]
mov byte [rsp + 0x108], al
add al, bpl
mov byte [0x180110b2e], al
movzx eax, byte [0x180110b22]
div r10d
movzx ebp, r8w
mov ebx, eax
mov qword [rsp + 0xe0], rbp
mov rax, qword [rsp + 0xf8]
xor r14, rbp
movzx edx, byte [rax]
mov ecx, edx
add rcx, rcx
mov rax, qword [r11 + rdx*8 + 0x88]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x100]
mov r13, qword [r12 + rcx*8]
mov ecx, 1
shl rdx, 5
xor r13, 0x1399
mov r11, qword [rdx + rax + 0x108]
lea eax, [r10 + r10]
mov rax, qword [r9 + rax*8]
add r10w, cx
imul r11, qword [0x180110b30]
mov word [0x180110b44], r10w
mov r10, qword [0x180110b38]
mov qword [rsp + 0x70], rax
movzx eax, byte [r15]
add r15, rcx
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x100], r10
movsxd rdx, dword [r10 + rax*4]
cmp rdx, 0x386
jle 0x1800011a6
mov r8, rdi
lea rdx, [rdx*8 + 0xb6]
shl r8, 5
mov eax, dword [0x180110b24]
add eax, ebx
cdqe
or qword [rdx], rax
add rdx, 8
mov eax, dword [0x180110b28]
add eax, 0x18b8
movsxd rcx, eax
add qword [r8 + r9], rcx
cmp rdx, 0x1ce6
jg 0x18000117a
mov r8, qword [0x180110af8]
mov eax, 0x115e
mov r9, qword [rsp + 0xf8]
mov eax, dword [rax]
add eax, eax
movsxd rcx, eax
movsxd rbx, dword [r8 + rcx*4]
cmp rbx, rdi
je 0x1800012ea
lea ebp, [rbx + rbx]
movzx edx, byte [r9]
movsxd rcx, dword [0x180110b28]
shl rdx, 5
mov eax, dword [rdx + r14]
add eax, dword [rdx + rsi]
xor edx, edx
xor dword [rcx*4], eax
mov rax, qword [0x180110b60]
movzx r8d, word [0x180110b44]
mov rcx, qword [rsp + 0xe8]
movzx ecx, byte [rax + rcx*2]
mov eax, dword [0x180110b80]
sub eax, ecx
mov rcx, qword [rsp + 0xf0]
cdqe
div qword [rsi + r8*8]
mov qword [rsi + r8*8], rdx
movzx eax, byte [r15]
mov ecx, dword [rcx + rax*4]
add ecx, ebx
movsxd rax, ebp
add dword [rdi*8 + 0x115e], ecx
movzx edx, byte [r9]
mov rcx, qword [rsp + 0x60]
mov ecx, dword [rcx + rax*4]
and ecx, 0x1864
xor dword [r10 + rdx*8], ecx
movzx edx, bx
mov eax, dword [0x180110b80]
dec eax
mov dword [0x180110b80], eax
sub eax, dword [r13 + 0x3780]
movsxd rcx, eax
call fcn.18000309c
mov r9, qword [rsp + 0xf8]
xor edx, edx
mov r10, qword [rsp + 0x100]
inc ebx
movsxd rcx, eax
add ebp, 2
movzx eax, byte [r9]
mov qword [r12 + rax*8], rcx
movzx eax, byte [r9]
movzx ecx, word [0x180110b2c]
shl rax, 5
mov rax, qword [rax + r12]
add rax, rcx
mov ecx, 0x1527
movzx ecx, word [rcx]
shl rcx, 5
div qword [rcx + r14 + 0x10]
movzx ecx, byte [0x180110b2f]
movzx eax, dl
imul ecx, eax
movsxd rax, ebx
mov byte [0x180110b2f], cl
cmp rax, rdi
jne 0x1800011d1
mov r8, qword [0x180110af8]
mov r11, qword [rsp + 0x68]
mov rbp, qword [rsp + 0xe0]
movzx eax, byte [r9]
mov r10d, 1
mov ecx, dword [r14 + 0x4078]
mov edx, eax
mov r13d, dword [rsp + 0xd8]
add rdx, rdx
xor ecx, r13d
sub r13d, r10d
movzx eax, word [rax*8 + 0x1527]
sub ecx, eax
movzx eax, byte [r15]
or ecx, dword [rbp + rax*4]
or dword [r8 + rdx*8], ecx
xor edx, edx
movsxd rax, dword [0x180110b00]
mov r8d, 0xa74
or dword [r11 + rax*4], 0x1138
add dword [0x180110b00], r10d
movsxd rax, dword [rbp]
movsxd rcx, dword [0x180110b74]
movzx esi, word [0x180110b14]
mov r14, qword [0x180110b50]
mov rax, qword [rax*8 + 0x8e]
xor r14, 0xe09
movsxd rbp, dword [0x180110b48]
div rcx
mov rdx, qword [rsp + 0xd0]
mov dword [0x180110b74], eax
mov eax, 0x115e
movsxd rax, dword [rax]
sub r8d, dword [r12 + rax*8]
movzx eax, word [0x180110b44]
mov r9d, eax
add ax, r10w
mov word [0x180110b44], ax
dec byte [r15]
movzx ecx, byte [r15]
mov rax, qword [0x180110b60]
mov r15, qword [rsp + 0xe0]
mov ecx, dword [r15 + rcx*4]
sub ecx, dword [rdx + rax*8]
mov eax, 0xffff
add dword [0x180110b14], r10d
movzx r10d, byte [rsp + 0x108]
movsxd rdi, ecx
mov ecx, 0x1527
add word [rcx], ax
movzx ecx, word [rcx]
mov rax, qword [0x180110af8]
add rcx, rcx
mov r11d, dword [0x180110b80]
movsxd rbx, dword [rax + rcx*8]
movsxd rax, dword [0x180110b14]
mov rcx, qword [rsp + 0x70]
movzx ecx, byte [rax + rcx]
movzx eax, word [0x47fc]
xor rbx, rcx
cdq
idiv r13d
mov rdx, r14
movsxd rcx, eax
mov qword [rsp + 0x58], rcx
mov ecx, 0x1ae2
mov qword [rsp + 0x50], r10
mov dword [rsp + 0x48], r11d
mov word [rsp + 0x40], r13w
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rdi
mov word [rsp + 0x28], si
mov qword [rsp + 0x20], rbp
call fcn.180001b8c
mov dword [0x180110b5c], eax
mov eax, dword [r15 + 0x79e0]
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret