Function at 0x1800494d4
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, 0x68
movsxd r15, dword [rdx + 0xefc]
mov r14, rdx
mov ebp, dword [rdx + 0x5814]
mov rdi, rcx
mov rcx, qword [rcx]
mov r8, qword [0x1801c18c0]
movzx eax, word [0x1801c1890]
movsxd r13, dword [r14 + 0x6c08]
mov r10d, dword [0x1801c18f0]
mov r11, qword [0x1801c18e0]
mov qword [rsp + 0x30], rax
mov rax, qword [0x1801c18b0]
shl rcx, 5
mov qword [rsp + 0xc8], r15
mov qword [rsp + 0x40], r11
movzx eax, byte [r8 + rax]
inc r8
mov word [rsp + 0xb8], ax
mov eax, dword [rdx + 0x7938]
sub eax, 0xa00
mov qword [rsp + 0x48], r13
movsxd r12, eax
mov rax, qword [0x1801c18d0]
mov qword [rsp + 0x58], r12
movsxd r9, dword [rax + 0x2bb8]
mov rax, qword [0x1801c18a0]
sub r9, qword [0x1801c1880]
mov rax, qword [rcx + rax + 0x38]
mov qword [rsp + 0x38], rax
mov eax, 0x939fd7a3
imul ebp
add edx, ebp
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x1bbf
sub ebp, eax
lea eax, [r10 + 0x1b]
movsxd rcx, eax
lea eax, [r10 + 3]
lea eax, [rax + rax*2]
mov dword [rsp + 0xc0], ebp
cdqe
movsxd rbx, dword [r14 + rcx*4]
xor rbx, qword [rdi + rax*8]
mov eax, dword [0x1801c1894]
lea eax, [rax + rax*2]
cdqe
movsxd rsi, dword [r14 + rax*4]
mov qword [0x1801c18c0], r8
movzx eax, word [rbx]
mov qword [rsp + 0x50], rsi
movzx ecx, word [r13 + rax*2 + 6]
cmp word [r13 + r8*2], cx
jne 0x180049606
movsxd rax, dword [0x1801c188c]
cmp rax, 0xf91
jae 0x1800497e7
mov rax, qword [rsp + 0x30]
movzx edx, byte [rax + 0x3e44]
lea rax, [r8 + r8*2]
movzx ecx, word [r13 + rax*2]
inc r8
mov qword [0x1801c18c0], r8
cmp dx, cx
jb 0x1800497e7
mov eax, r10d
shl eax, 2
movsxd rdx, eax
movzx eax, word [rbx]
movzx ecx, word [r15 + rax*2]
cmp word [rbx + rdx*2], cx
je 0x1800497e7
mov rax, qword [0x1801c18e8]
mov r15d, 0xf93
mov edx, dword [rdi + 0x4ae8]
mov qword [rsp + 0x28], r12
movzx ecx, byte [rax + 0xf91]
mov eax, dword [r9 + 0xf910]
sub edx, ecx
imul eax, edx
mov ecx, 0x611
mov dword [r9 + 0xf910], eax
mov edx, dword [0x1801c1894]
mov rax, qword [rdi + 0x7c90]
or edx, 0x867
movzx r8d, word [0x1801c18bc]
movzx r9d, byte [0x2707]
mov qword [rsp + 0x20], rax
call fcn.180042640
mov dword [0x1801c18b8], eax
xor edx, edx
mov rcx, qword [rdi]
movsxd rax, dword [rsi + r12*4 + 0x6c]
div qword [rdi + rcx*8]
mov qword [rdi + rcx*8], rax
mov rax, qword [0x1801c18c0]
movsxd rcx, dword [r14 + rax*4]
cmp rcx, qword [0x1801c1900]
mov rsi, rcx
jbe 0x1800498e0
mov rax, qword [rsp + 0x50]
lea r12, [rcx*2]
mov r8, qword [rsp + 0x58]
add r12, r13
lea r13, [rdi + rcx*8]
mov ebp, ecx
lea rdi, [rax + rcx*4]
mov eax, 0x1400
cdq
idiv dword [0x1801c18b8]
mov rax, qword [0x1801c18e8]
mov dword [0x1801c18b8], edx
movzx ecx, byte [rax + r8]
mov rax, qword [r13]
imul ecx, ebp
movsxd rdx, ecx
mov rcx, qword [rsp + 0x38]
xor rdx, rsi
imul rax, rdx
mov qword [r13], rax
mov rax, qword [0x1801c18c0]
movzx r8d, word [0x1801c1890]
inc rax
mov qword [0x1801c18c0], rax
or r8, rsi
mov r10d, dword [rdi]
movsxd r9, dword [r14 + 0x3ed4]
movzx eax, word [rcx + rax*2]
and r9, rsi
movzx edx, word [r12 + 0x14]
sub r10d, eax
movsxd rcx, r10d
add rdx, r15
call fcn.1800411b0
movzx eax, word [rbx]
xor rsi, 0x420
mov rcx, rsi
movsxd rdx, dword [r14 + rax*4 + 0x5c]
add rdx, qword [r13]
call fcn.1800489c4
movzx ecx, word [r12]
lea rdi, [rdi + 4]
movsxd r8, eax
lea r13, [r13 + 8]
mov eax, 0x1619
mov edx, 1
imul ecx, eax
add ebp, edx
movsxd rsi, ebp
mov word [r12], cx
lea r12, [r12 + 2]
cmp rsi, qword [0x1801c1900]
ja 0x180049701
mov rdi, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0xc0]
mov r13, qword [rsp + 0x48]
jmp 0x1800498e5
movzx eax, byte [0x18fb]
xor edx, edx
div qword [rdi + 0x7c88]
movzx eax, word [r11 + 0x5d66]
mov r15d, 0xf90
mov r9, qword [rdi]
mov r8, rdx
movzx r10d, word [rsp + 0xb8]
sub r8, rax
xor edx, edx
shl r9, 5
mov rax, r8
div r10
add qword [r9 + rdi], rdx
movzx eax, word [rbx]
mov rcx, qword [rdi]
mov r9, qword [rsp + 0xc8]
movzx edx, word [r9 + rax*2]
mov rax, qword [0x1801c18d8]
movzx ecx, word [rax + rcx*2]
mov eax, 1
or rdx, rcx
mov rcx, qword [rsp + 0x30]
mov qword [rdi + 0x7c90], rdx
xor edx, edx
add word [rbx], ax
dec qword [rdi]
movzx ecx, byte [rcx + 0x1b6a]
mov rax, qword [rdi]
lea r8, [rax + rax*2]
movzx eax, word [rbx]
mov rax, qword [rdi + rax*8]
xor rax, rcx
movzx ecx, word [0x1801c1890]
imul rax, rcx
movsxd rcx, dword [rsi + r8*4]
div rcx
mov dword [rsi + r8*4], edx
movsxd rax, dword [0x1801c1894]
mov r8, qword [rdi]
mov rdx, qword [0x1801c18e8]
mov cl, byte [r13 + rax*2]
xor byte [r8 + rdx], cl
mov edx, 1
mov eax, dword [0x1801c1894]
sub dword [0x1801c18f0], edx
add qword [0x1801c1900], rdx
lea eax, [rax*4 + 0xa]
movsxd rcx, eax
mov eax, r10d
xor eax, 0xba3
and eax, dword [0x1801c18c0]
or dword [r14 + rcx*4], eax
jmp 0x1800498f2
mov edx, 1
mov r9, qword [rsp + 0xc8]
mov r11, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
mov eax, 0xffff
add word [rbx], ax
movzx eax, word [rbx]
movzx esi, word [rcx + rax*2 + 4]
movzx eax, bp
cmp rsi, rax
jae 0x1800499e7
movzx r10d, bp
lea r9, [r15 + r15*2]
mov rbp, qword [rsp + 0xc8]
lea r12, [r11 + rsi*2]
mov qword [rsp + 0xb8], r10
sub rbx, r11
mov r13d, eax
mov rax, qword [rsp + 0x30]
movzx ecx, word [0x1801c18bc]
movzx r8d, word [rbx + r12]
xor rcx, 0x9f3
movzx r9d, word [rdi + r9*8]
movzx edx, byte [rax + rsi + 8]
movzx eax, word [0x1801c18c8]
xor edx, eax
mov qword [rsp + 0x28], 0x1b90
movzx eax, word [r12]
or r8, rax
mov qword [rsp + 0x20], r10
call fcn.180042640
mov ecx, dword [0x1801c1894]
lea r12, [r12 + 2]
mov r10, qword [rsp + 0xb8]
lea r9, [r15 + r15*2]
add ecx, 4
movsxd rdx, ecx
mov word [rbp + rdx*2], ax
xor edx, edx
imul eax, dword [0x1801c1898], 0x1de2
mov r8, qword [0x1801c18c0]
movsxd rcx, dword [r14 + r8*4]
cdqe
div r15
xor edx, edx
div rcx
mov edx, 1
add rsi, rdx
mov dword [r14 + r8*4], eax
cmp rsi, r13
jl 0x180049935
mov ebp, dword [rsp + 0xc0]
mov r13, qword [rsp + 0x48]
mov r9, qword [rsp + 0xc8]
mov rcx, qword [rdi]
sub r15, rdx
mov r10, qword [rsp + 0x30]
movzx eax, byte [r15 + r10]
add r15, rdx
xor word [r9 + rcx*8 + 0x3c], ax
xor edx, edx
movsxd rax, dword [0x1801c1894]
mov rcx, qword [0x1801c1880]
mov r9, qword [rsp + 0x38]
movzx r8d, word [r14 + rax*4]
mov eax, dword [0x1801c189c]
add dword [r14 + rcx*4 + 0x1c], eax
movzx ecx, word [0x1801c18cc]
movzx eax, bp
add rax, r15
div rcx
movzx ecx, word [r9 + r15*2]
xor edx, edx
div qword [rdi + r15*8 + 0x78]
mov rax, rdx
xor edx, edx
div rcx
mov eax, 1
mov word [r9 + r15*2], dx
sub r15, rax
mov rcx, qword [0x1801c1900]
sub rcx, rax
mov rax, r15
mov qword [0x1801c1900], rcx
add rax, rax
mov edx, dword [r14 + rcx*4]
xor edx, r8d
mov dword [r14 + rax*8], edx
xor edx, edx
mov rax, qword [rdi]
mov r9, qword [0x1801c18a0]
movzx ecx, byte [r10 + rax*2]
mov eax, 0x1173
div ecx
mov r8d, eax
mov eax, 0x84a5adf1
or r8d, dword [0x1801c1888]
imul r8d
add edx, r8d
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x1ee1
xor edx, edx
sub r8d, ecx
movsxd rax, r8d
div qword [r9 + r15*8]
mov qword [r9 + r15*8], rdx
movsxd rax, dword [0x1801c1894]
movzx eax, word [r13 + rax*2]
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret