Function at 0x18004430c
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, 0xc8
mov rax, qword [0x180537b58]
mov r11, rcx
movzx r9d, word [0x180537b94]
movzx ebx, dx
mov ecx, dword [0x180537b4c]
mov edi, 1
mov r12, qword [0x180537b80]
add bx, di
movzx r14d, r8b
mov r10d, dword [rax + r9*4]
mov r13d, r14d
mov r9, qword [0x180537b50]
mov eax, 0x652cc20d
imul r10d
mov dword [rsp + 0x68], ecx
sar edx, 0xa
mov eax, edx
mov byte [rsp + 0x120], r14b
shr eax, 0x1f
add edx, eax
mov dword [rsp + 0x64], r14d
imul eax, edx, 0xa1f
movzx ebp, bx
sub r13d, ebp
mov word [rsp + 0x118], bx
sub r10d, eax
movsxd rax, r10d
movzx r10d, byte [r11 + 0x7e3]
mov qword [rsp + 0x88], rax
mov eax, 0x1743b407
imul ecx
mov qword [rsp + 0x70], r10
mov r15d, edx
sar r15d, 9
mov eax, r15d
shr eax, 0x1f
add r15d, eax
lea eax, [r14*2 + 0x13]
add eax, r14d
add r14b, dil
movzx edx, r14b
movzx r8d, byte [rax + r11]
mov rax, qword [0x180537b78]
movzx ecx, word [rax + 0x22c8]
mov eax, dword [r9 + 0x311c]
imul r8, rcx
movzx ecx, byte [r11 + 0x1d69]
sub eax, ecx
mov qword [rsp + 0xb0], r8
mov r8d, dword [0x180537b90]
cdqe
add r8d, edi
movzx edi, word [0x180537b88]
mov qword [rsp + 0xa0], rax
mov dword [0x180537b90], r8d
movsxd rax, r8d
movzx ecx, byte [rax + r11]
mov eax, 0x1c63
sub eax, ecx
cdqe
mov qword [rsp + 0x90], rax
mov rax, qword [0x180537b98]
add rax, rdx
mov qword [rsp + 0x98], rax
lea eax, [r8 + r8]
movsxd rcx, eax
mov rax, qword [0x180537ba0]
movzx r8d, word [rax + rcx*2]
mov al, byte [r9 + 0xdf0]
mov byte [rsp + 0x128], al
movzx eax, r15w
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x78], r8
movsxd rsi, dword [r10 + rax*4]
lea eax, [r13*2 + 0x23]
add eax, r13d
movsxd rcx, eax
mov eax, 0x1007
mov r9, qword [rcx*8 + 0x18e2]
xor r9, rdx
cdq
mov r8, qword [0x180537ba8]
mov rcx, rsi
idiv r12d
lea eax, [rbp + 4]
movsxd rbx, edx
mov edx, edi
movzx r11d, byte [rax + 0x1ca6]
movzx eax, r12w
lea r10, [rax + rax*2]
sub r11, qword [r10*8 + 0x18e2]
mov qword [rsp + 0x28], r11
mov qword [rsp + 0x20], rbx
call fcn.180041810
mov r8, qword [rsp + 0x110]
lea ecx, [rbp + 2]
movzx ebx, word [rsp + 0x118]
xor edx, edx
mov rsi, qword [rsp + 0x70]
mov byte [rcx + r8], al
mov eax, 0xffff
mov rcx, qword [0x180537b80]
add bx, ax
movzx r11d, word [0x180537bb0]
dec rcx
mov qword [0x180537b80], rcx
movzx eax, byte [r8 + 0xb5a]
div rcx
mov rcx, qword [rsp + 0x80]
mov edx, r11d
mov word [rsp + 0x118], bx
movsxd r10, dword [rsi + rcx*4 + 0x3c]
mov rcx, qword [rsp + 0x98]
or r10, 0x6c0
mov r9, qword [rcx + 0x7190]
mov rcx, qword [0x180537b78]
movzx r8d, word [rcx + 0xa7a]
movzx ecx, byte [0x180537b48]
xor r8, rcx
mov ecx, 0x471
mov qword [rsp + 0x30], r8
mov r8, rax
mov qword [rsp + 0x28], r9
mov r9b, 0xe7
mov qword [rsp + 0x20], r10
call fcn.180040a74
movzx edx, word [0x180537b94]
lea ecx, [rbp - 1]
movzx r9d, word [0x180537bb0]
mov edi, eax
movzx r8d, r14b
mov r14, qword [rsp + 0x110]
sub r8d, 0xa4
mov dword [rsp + 0x60], eax
movzx eax, bx
mov bl, byte [rsp + 0x120]
xor rbp, rax
mov dword [rsp + 0x70], ecx
mov rcx, rbp
movsxd r8, r8d
mov r10b, byte [rax + r14]
and r10b, bl
mov qword [rsp + 0xa8], rax
mov byte [rsp + 0x20], r10b
call fcn.1800425b8
mov r10, qword [rsp + 0x78]
mov ebp, eax
mov r11d, dword [rsp + 0x64]
xor edx, edx
mov dword [rsp + 0x110], eax
mov eax, 0x76b2a6
div qword [0x180537bb8]
mov qword [0x180537bb8], rdx
movsxd rcx, dword [r10]
sub r10, 4
mov qword [rsp + 0x78], r10
movzx r9d, byte [rcx + r14]
cmp r9d, r11d
ja 0x18004469a
mov r8, qword [0x180537b98]
mov edi, 1
movsxd rax, dword [r10 + 0x2d34]
xor r8, rax
mov qword [0x180537b98], r8
mov eax, dword [rsi + 0x7a5c]
imul eax, dword [0x180537bc8]
movsxd rcx, eax
mov eax, 0xa29ecf17
sub rcx, r8
mov r8, rcx
mov qword [0x180537b98], rcx
movzx ecx, r12w
add ecx, r9d
add r9d, edi
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
sub dx, r12w
movzx r12d, dx
cmp r9d, r11d
jle 0x18004463e
mov edi, dword [rsp + 0x60]
movzx eax, bl
cmp dword [0x180537b8c], eax
je 0x1800447d4
mov rcx, qword [rsp + 0x88]
xor edx, edx
movsxd r11, dword [0x180537b4c]
mov r8d, 1
movzx r9d, byte [r14 + 0xe91]
mov rbx, qword [rsp + 0x90]
movzx eax, r12w
add r12w, r8w
movsxd rbp, r13d
or r11, rbp
movsxd rsi, dword [rcx + rax*4]
mov rcx, qword [0x180537ba8]
movsxd rax, edi
xor rsi, rax
movzx eax, word [0x180537b94]
div rcx
lea rcx, [rcx + rcx*2]
mov rbx, qword [rbx + rcx*8]
mov rdi, rax
add dword [r10], r8d
movsxd r8, dword [r10]
movzx ecx, byte [0x180537b49]
mov rax, qword [0x180537b80]
mov qword [rsp + 0x50], rax
mov r10, qword [r8*8 + 0x18e2]
movzx r8d, di
mov rax, qword [rsp + 0x80]
lea rdx, [rcx + rcx*2]
sub r10, qword [rdx*8 + 0x18e2]
mov rcx, rsi
movzx edx, byte [rsp + 0x120]
mov qword [rsp + 0x48], 0xb4c
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], rdx
mov edx, 0xd50
mov qword [rsp + 0x30], r11
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.180044ac0
movzx eax, word [rsp + 0x118]
inc r15w
mov rdx, qword [0x180537b50]
mov r10, qword [rsp + 0x78]
mov bl, byte [rsp + 0x120]
lea r8d, [rax*2 + 0xe]
movzx eax, byte [0x180537b49]
lea eax, [rax*2 + 0x15]
movzx eax, byte [rax + r14]
sub eax, dword [rdx + r8*4]
mov dword [rdx + r8*4], eax
xor edx, edx
movzx eax, r15w
shl rax, 4
mov rax, qword [rax + 0x18e2]
div rbp
mov ebp, dword [rsp + 0x110]
mov r13, rax
mov rax, qword [rsp + 0x88]
lea ecx, [r13*2 + 5]
mov r9, qword [0x180537ba0]
add ecx, r13d
movsxd r10, dword [r10]
movsxd r8, ecx
lea ecx, [r13 + 0x11]
movsxd rdx, ecx
mov rcx, qword [0x180537bc0]
movzx r8d, word [rax + r8*4]
mov eax, dword [rsp + 0x68]
xor r8w, word [rcx + rdx*4]
mov edx, 1
add word [r9 + r10*2], r8w
add al, dl
movzx r9d, word [0x180537b94]
add bl, dl
mov rcx, qword [0x180537ba8]
mov rdx, qword [0x180537b98]
movzx eax, al
movzx r8d, byte [r9 + r14]
sub rcx, rax
movzx eax, word [0x180537bb0]
imul r8, rax
mov byte [rsp + 0x20], bl
call fcn.1800425b8
mov r8, qword [rsp + 0xa0]
lea ecx, [r13*4 + 6]
movsxd rdx, ecx
mov qword [rsp + 0x50], 0xee8
mov qword [rsp + 0x48], 0x1fa7
mov byte [rdx + r14], al
movsxd r10, dword [0x180537b90]
mov rdi, qword [0x180537b98]
mov rbx, r10
movzx eax, r12w
cdq
idiv dword [rsp + 0x70]
movzx eax, word [r8 + 0x3b58]
sub edx, eax
mov rax, qword [0x180537b50]
or r13d, edx
mov edx, 1
sub rdi, rdx
add r13w, r15w
movsxd rsi, dword [rax + 0x61d0]
mov rax, qword [rsp + 0xa8]
movzx eax, byte [rax + r14]
or rsi, rax
mov qword [0x180537b98], rdi
mov eax, dword [0x180537bc8]
lea eax, [rax*2 + 2]
movsxd rcx, eax
mov rax, qword [rsp + 0x90]
mov r9, qword [rax + rcx*8]
mov eax, r10d
movzx ecx, byte [0x180537b49]
dec r10d
movzx r11d, word [r8 + rcx*2]
add ecx, edx
mov r8, qword [rsp + 0xb0]
cdq
idiv dword [r8 + rcx*4]
mov rdx, rdi
mov dword [0x180537b90], r10d
movsxd r8, eax
mov rcx, rsi
mov qword [rsp + 0x40], r8
movzx r8d, r13w
mov qword [rsp + 0x38], r11
movzx eax, r12w
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0xd0c
call fcn.180044ac0
movsxd rcx, eax
mov r8d, 1
mov eax, dword [0x180537bb4]
sub eax, r8d
mov qword [0x180537ba8], rcx
mov dword [0x180537bb4], eax
cdqe
cmp qword [0x180537b98], rax
je 0x1800449d8
movzx eax, byte [rsp + 0x128]
cmp word [0x180537b68], ax
jae 0x1800449d8
movzx eax, r15w
cdq
movzx ecx, bpl
idiv dword [rsp + 0x60]
mov eax, edx
cdq
idiv ecx
mov rdx, qword [rsp + 0x98]
movzx ecx, al
movzx eax, word [0x180537b94]
cmp qword [rdx + rax*8], rcx
jb 0x1800449d8
sub r15w, r8w
movzx eax, r15w
movzx ecx, byte [rax + r14]
cmp rcx, qword [0x180537b80]
jae 0x1800449d8
mov eax, 0x138d
cdq
idiv dword [0x180537b8c]
mov dword [0x180537b8c], edx
mov eax, dword [0x180537b6c]
add eax, r8d
mov dword [0x180537b6c], eax
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret