Function at 0x180042a98
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov ebx, dword [0x180537b6c]
mov edi, 1
add word [0x180537bb0], di
mov r14, rdx
mov eax, dword [rdx + 0x590c]
add eax, dword [rdx + 0x70]
mov r12, qword [0x180537ba8]
mov rbp, qword [rsp + 0x118]
sub r12, rdi
mov sil, byte [0x180537b49]
mov r13, qword [rsp + 0x128]
add sil, dil
cdqe
mov qword [rsp + 0x58], rax
mov eax, dword [0x180537b90]
sub eax, edi
movzx r8d, byte [0x180537b48]
mov dword [0x180537b90], eax
add r8d, edi
movzx r11d, cl
movsxd rcx, dword [0x180537bc8]
lea eax, [rax*2 + 0x15]
mov qword [rsp + 0x60], rcx
movsxd r10, eax
mov rax, qword [0x180537b58]
mov eax, dword [rax + r10*4]
movzx r10d, word [0x180537b94]
sub eax, 0x17de
cdqe
mov qword [rsp + 0x68], rax
mov rax, qword [0x180537b60]
mov qword [rsp + 0x70], rax
mov qword [0x180537ba8], r12
movzx eax, word [rax + 0xa24]
sub r12, rax
lea eax, [rbx + rbx*2]
movsxd rcx, eax
sub ebx, edi
mov qword [rsp + 0x88], r12
movzx eax, word [rdx + rcx*4]
mov word [rsp + 0x30], ax
mov dword [0x180537b6c], ebx
movsxd rax, dword [rdx + r10*8]
xor edx, edx
mov qword [rsp + 0x90], rax
mov byte [0x180537b49], sil
mov r9, qword [rbp]
movzx eax, sil
movzx eax, byte [r13 + rax*4]
mov qword [rsp + 0x40], rax
mov eax, dword [0x180537b8c]
xor eax, 0xfbc
mov dword [rsp + 0x38], eax
mov eax, dword [0x180537bd0]
or eax, dword [0x180537bb4]
mov dword [rsp + 0x34], eax
mov rax, qword [rbp + 0x6cc8]
div r11
add r11b, dil
mov qword [rsp + 0x48], rdx
movzx edx, r11b
mov qword [rsp + 0x50], rdx
mov dil, dl
movzx eax, byte [r13 + rdx*2 + 0x1a]
mov dword [rsp + 0x118], eax
mov rax, qword [rsp + 0x120]
movzx ecx, byte [r9 + rax]
mov rax, qword [0x180537bc0]
sub ecx, dword [rax + r8*4]
mov al, byte [r14 + 0x47c8]
mov byte [rsp + 0xf0], al
mov rax, qword [0x180537b78]
movsxd r15, ecx
mov qword [rsp + 0x80], r15
movzx r11d, word [rax + r10*2]
lea rax, [r9 + 5]
add rax, rax
cmp r11d, dword [r15 + rax*8]
jl 0x180042ef5
mov ecx, dword [rsp + 0x118]
lea r10, [r11*4 + 0x9b5]
mov r8, qword [rsp + 0x40]
lea rax, [rcx + r12]
mov qword [rsp + 0x78], rax
lea r13, [rcx*4 + 0x48]
mov r12, qword [rsp + 0x78]
lea rax, [r11 + r11*2]
lea rbx, [r14 + rax*4]
mov rax, qword [rsp + 0x100]
lea rax, [rax + rcx*8]
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x108]
lea r9, [rax + r11*2]
mov qword [rsp + 0x118], r9
mov rdx, qword [rsp + 0x58]
inc dil
movzx esi, byte [rsp + 0x50]
movzx eax, word [rsi + rsi + 0x185d]
sub ax, word [rcx + rdx*2]
mov word [rcx + rdx*2], ax
dec rdx
mov al, byte [0x180537bb0]
or al, 0x46
mov qword [rsp + 0x58], rdx
mov dl, byte [0x180537b48]
add dl, 0xff
xor al, dl
mov byte [0x180537b48], dl
movzx ecx, dl
mov rdx, qword [rsp + 0x120]
or byte [rcx + rdx], al
xor edx, edx
movzx eax, word [0x180537b68]
or rax, qword [rsp + 0x68]
movzx r8d, byte [r8]
movzx ecx, dil
div qword [rcx*8 + 0xf5d]
mov rdx, qword [rsp + 0x128]
movzx ecx, al
movzx eax, byte [r8 + rdx]
imul eax, ecx
mov byte [r8 + rdx], al
movsxd rdx, dword [0x180537b90]
mov r8, qword [rsp + 0x40]
movzx eax, byte [r8]
lea rcx, [rax + rax*2]
mov eax, dword [r15 + rcx*4]
add dword [r14 + rdx*4], eax
movzx eax, word [rsp + 0x30]
xor ax, word [r14 + r13 - 0x48]
movzx edx, byte [0x180537b48]
mov sil, byte [0x180537b49]
mov word [rsp + 0x30], ax
mov eax, edx
xor eax, r11d
imul eax, eax, 0x2a9
movsxd rcx, eax
mov rax, qword [0x180537bd0]
imul rax, rcx
mov qword [0x180537bd0], rax
movsxd rax, r11d
cmp qword [0x180537b70], rax
jae 0x180042dc4
movzx eax, sil
cmp qword [rax*8 + 0xf5d], 0x1c7c
jb 0x180042dc4
mov eax, dword [r15]
shl eax, 2
movsxd rcx, eax
movzx eax, byte [r9]
mov r9, qword [rsp + 0x48]
cmp ax, word [r9 + rcx*2]
jae 0x180042dd5
jmp 0x180042dc9
mov r9, qword [rsp + 0x48]
movzx eax, dl
cmp qword [0x180537bb8], rax
jae 0x180042e1b
mov rax, qword [0x180537b58]
sub r13, 4
sub qword [rsp + 0x100], 8
inc dil
dec r12
and dword [rax + r13], 0
movzx eax, byte [r8]
mov sil, byte [0x180537b49]
movzx ecx, word [r9 + rax*2]
movzx eax, dil
imul eax, ecx
add eax, dword [r15 + 0x58a4]
cdqe
add qword [0x180537bd0], rax
movsxd r9, dword [0x180537bb4]
inc dil
movzx ecx, dil
cmp r9, qword [rbp + rcx*8]
jb 0x180042ea3
mov r14, qword [rsp + 0x100]
mov r15d, dword [rsp + 0x34]
movsxd rcx, dword [rbx]
xor edx, edx
mov r8, qword [r14]
inc dil
movzx eax, byte [r12]
xor r8, 0xea3
or rax, r8
inc r9d
div rcx
mov dword [rbx], eax
xor dword [r10], r15d
mov rcx, qword [0x180537b50]
mov eax, dword [0x180537b4c]
movzx edx, byte [0x180537b49]
mov dword [rcx + rdx*4], eax
movzx ecx, dil
movsxd rax, r9d
cmp rax, qword [rbp + rcx*8]
jae 0x180042e3d
mov r14, qword [rsp + 0xf8]
mov r15, qword [rsp + 0x80]
mov sil, byte [0x180537b49]
mov r8, qword [rsp + 0x40]
mov r9, qword [rsp + 0x118]
inc r11d
mov rax, qword [rbp]
add r9, 2
add rax, 5
mov qword [rsp + 0x118], r9
add rax, rax
add rbx, 0xc
add r10, 4
cmp r11d, dword [r15 + rax*8]
jl 0x180042edf
mov rcx, qword [0x180537b60]
jmp 0x180042cb0
mov ebx, dword [0x180537b6c]
mov r12, qword [rsp + 0x88]
mov r13, qword [rsp + 0x128]
mov eax, ebx
cdq
idiv dword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
mov ebx, edx
mov rdx, qword [rsp + 0x60]
movzx ecx, byte [rax]
lea rax, [rdx + rcx*2]
movzx r11d, byte [rcx + rax]
mov rax, qword [rbp]
mov rcx, qword [rsp + 0x90]
movzx r8d, byte [rax + rdx]
movzx eax, dil
xor r8, rax
movzx eax, sil
mov r9b, byte [rax + rcx + 0x11]
inc dword [r15]
movsxd r10, dword [r15]
movzx eax, byte [rsp + 0x110]
movzx ecx, byte [r10 + rdx]
xor edx, edx
div ecx
lea ecx, [r10 + 1]
mov dword [r15], ecx
lea rdx, [r11 + 0xe7d]
mov cl, bl
mov dword [rsp + 0x20], eax
call fcn.180043f10
movsxd rcx, eax
xor edx, edx
movsxd rax, dword [r15]
mov r10, qword [rsp + 0x50]
mov qword [rax*8 + 0xf5d], rcx
mov rcx, qword [rsp + 0x60]
mov r8, qword [0x180537ba0]
movzx eax, byte [rcx]
movsxd rcx, dword [r14 + rax*4]
movzx eax, byte [r12 + 0x1bae]
div qword [rsp + 0x68]
movsxd rax, dword [rsp + 0x34]
sub rdx, rcx
movzx ecx, r10b
imul rdx, rax
movzx eax, byte [0x180537b49]
sub eax, ecx
mov qword [0x180537b98], rdx
mov r9, qword [rbp]
cdq
idiv ecx
and dx, word [rsp + 0x38]
and word [r8 + r9*2 + 0x3a], dx
xor edx, edx
mov eax, dword [0x180537b8c]
mov r9, qword [rsp + 0x58]
dec eax
movsxd rcx, eax
mov rax, r9
div rcx
mov eax, 0x9b5
mov dword [0x180537b8c], edx
xor edx, edx
inc dword [rax]
movsxd r8, dword [rax]
movzx ecx, byte [r9 + r13 + 0xc]
mov rax, qword [rsp + 0x120]
movzx eax, byte [rax + 0x879]
div ecx
movzx ecx, byte [r8 + r13]
cdq
idiv ecx
movzx ecx, r10b
mov byte [r8 + r13], dl
movsxd rax, dword [0x180537b6c]
movsxd r8, dword [0x180537bc8]
movzx eax, byte [rax + r12]
xor eax, ecx
movzx ecx, word [rsp + 0x30]
cdq
idiv dword [r14 + r8*4]
movzx eax, byte [rsp + 0xf0]
mov dword [r14 + r8*4], edx
and eax, ecx
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret