Function at 0x18004477c
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
movaps xmmword [rbp], xmm6
mov qword [rbp - 0x70], r8
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], rcx
xorps xmm0, xmm0
movaps xmmword [rbp - 0x20], xmm0
mov dword [rbp - 0x10], 0
mov eax, dword [0x1800e4cbc]
cmp dword [0x1800e4cb8], 0xa
setl cl
lea edx, [rax - 1]
imul edx, eax
test dl, 1
sete al
mov edx, ecx
and dl, al
mov byte [rbp - 2], dl
xor cl, al
mov byte [rbp - 1], cl
mov al, byte [rbp - 1]
xor eax, eax
lea rcx, [0x18005ac54]
movsxd rdx, dword [rax + rcx]
xor dword [rbp + rdx*4 - 0x20], 0x1e27
add rax, 4
cmp rax, 0x10
jne 0x1800447e9
add qword [rbp - 0x58], 4
mov rax, qword [rbp - 0x50]
add rax, 0x20
mov qword [rbp - 0x68], rax
mov eax, 0x2e15
mov cl, 1
mov dword [rbp - 0xc], ecx
xorps xmm6, xmm6
xor ecx, ecx
mov qword [rbp - 0x60], rcx
mov edx, dword [rbp - 0x14]
mov r13d, dword [rbp - 0x10]
mov ecx, 0x601c
xor r13d, ecx
cmp eax, 0x7793
jg 0x180044850
cmp eax, 0x28d2
je 0x180044e71
cmp eax, 0x2e15
jne 0x180044832
jmp 0x180044e28
cmp eax, 0x7794
je 0x180044863
cmp eax, 0x7e1d
jne 0x180044832
jmp 0x180044b2d
mov eax, 0x20
call fcn.1800506c0
sub rsp, rax
mov r12, rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x28], rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rbx, rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x38], rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x40], rsp
mov eax, 0x210
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x48], rsp
sub rsp, 0x20
mov dword [rbp - 8], edx
call fcn.180022fd5
mov rcx, rax
mov edx, 0x76975741
call fcn.18001ea27
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
call fcn.1800213a4
add rsp, 0x20
mov r15, rax
sub rsp, 0x20
mov rcx, rax
mov edx, 0x41a77db9
call fcn.18001ea27
add rsp, 0x20
mov qword [rbp - 0x78], rax
sub rsp, 0x20
mov rcx, r15
mov edx, 0xa63dba33
call fcn.18001ea27
add rsp, 0x20
mov r14, rax
movaps xmm0, xmmword [0x18005ac30]
movaps xmmword [r12], xmm0
mov rax, qword [0x18005ac3e]
mov qword [r12 + 0xe], rax
sub rsp, 0x20
mov r15, qword [rbp - 0x30]
mov rcx, r15
mov rdx, r12
call fcn.1800153ce
add rsp, 0x20
mov r12, qword [rbp - 0x28]
mov word [r12], 0xbb49
mov dword [rbx], 0xc3e3ff41
add rsi, 5
mov qword [rdi], rsi
sub rsp, 0x20
mov edx, 0x13
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 4
call r14
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 5
mov rcx, rax
lea rdx, [0x18005b5a0]
call fcn.18001acc9
add rsp, 0x20
lea rcx, [rsi + 5]
sub rsp, 0x20
mov r8d, 2
mov rdx, r12
call fcn.18001acc9
add rsp, 0x20
lea rcx, [rsi + 7]
sub rsp, 0x20
mov r8d, 8
mov rdx, rdi
call fcn.18001acc9
add rsp, 0x20
lea rcx, [rsi + 0xf]
sub rsp, 0x20
mov r8d, 4
mov rdx, rbx
call fcn.18001acc9
add rsp, 0x20
mov r9, qword [rbp - 0x38]
mov dword [r9], 0
sub rsp, 0x20
mov edx, 0x1e
mov rcx, rsi
mov r8d, 0x20
call qword [rbp - 0x78]
add rsp, 0x20
xor r12d, r12d
mov r9, qword [rbp - 0x40]
mov qword [r9], r12
sub rsp, 0x20
xor ecx, ecx
xor edx, edx
mov r8, r15
mov rdi, r9
call rsi
add rsp, 0x20
mov rcx, qword [rdi]
sub rsp, 0x20
mov edx, 0xbe7384ef
call fcn.18001ea27
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 0x208
mov rbx, qword [rbp - 0x48]
mov rcx, rbx
xor edx, edx
call fcn.180003c5d
add rsp, 0x20
mov rdi, qword [rbp - 0x70]
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
lea rdx, [0x18005b5a6]
call fcn.180012127
mov r8d, 0x104
mov rcx, rbx
mov rdx, qword [rbp - 0x58]
call rsi
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
mov rdx, rbx
call fcn.180013753
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov edx, 0x104
call fcn.18001133a
mov edx, dword [rbp - 8]
add rsp, 0x20
lea ecx, [rax + rax]
mov word [rdi], cx
add eax, eax
add eax, 2
mov word [rdi + 2], ax
mov rax, qword [rbp - 0x50]
mov dword [rax], 0x30
mov qword [rax + 8], r12
mov dword [rax + 0x18], 0x40
mov qword [rax + 0x10], rdi
mov rax, qword [rbp - 0x68]
movups xmmword [rax], xmm6
mov eax, r13d
jmp 0x180044832
mov eax, 0x20
call fcn.1800506c0
sub rsp, rax
mov rsi, rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov r14, rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov r12, rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov rdi, rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x38], rsp
mov eax, 0x10
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x40], rsp
mov eax, 0x210
call fcn.1800506c0
sub rsp, rax
mov qword [rbp - 0x48], rsp
sub rsp, 0x20
mov dword [rbp - 8], edx
call fcn.180022fd5
mov rcx, rax
mov edx, 0x76975741
call fcn.18001ea27
add rsp, 0x20
mov r15, rax
sub rsp, 0x20
call fcn.1800213a4
add rsp, 0x20
mov r13, rax
sub rsp, 0x20
mov rcx, rax
mov edx, 0x41a77db9
call fcn.18001ea27
add rsp, 0x20
mov qword [rbp - 0x28], rax
sub rsp, 0x20
mov rcx, r13
mov edx, 0xa63dba33
call fcn.18001ea27
add rsp, 0x20
mov rbx, rax
movaps xmm0, xmmword [0x18005ac30]
movaps xmmword [rsi], xmm0
mov rax, qword [0x18005ac3e]
mov qword [rsi + 0xe], rax
sub rsp, 0x20
mov r13, qword [rbp - 0x30]
mov rcx, r13
mov rdx, rsi
call fcn.1800153ce
add rsp, 0x20
mov word [r14], 0xbb49
mov dword [rdi], 0xc3e3ff41
add r15, 5
mov qword [r12], r15
sub rsp, 0x20
mov edx, 0x13
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 4
call rbx
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 5
mov rcx, rax
lea rdx, [0x18005b5a0]
call fcn.18001acc9
add rsp, 0x20
lea rcx, [rsi + 5]
sub rsp, 0x20
mov r8d, 2
mov rdx, r14
call fcn.18001acc9
add rsp, 0x20
lea rcx, [rsi + 7]
sub rsp, 0x20
mov r8d, 8
mov rdx, r12
call fcn.18001acc9
add rsp, 0x20
lea rcx, [rsi + 0xf]
sub rsp, 0x20
mov r8d, 4
mov rdx, rdi
call fcn.18001acc9
add rsp, 0x20
mov r9, qword [rbp - 0x38]
mov dword [r9], 0
sub rsp, 0x20
mov edx, 0x1e
mov rcx, rsi
mov r8d, 0x20
call qword [rbp - 0x28]
add rsp, 0x20
xor r15d, r15d
mov r9, qword [rbp - 0x40]
mov qword [r9], r15
sub rsp, 0x20
xor ecx, ecx
xor edx, edx
mov r8, r13
mov rdi, r9
call rsi
add rsp, 0x20
mov rcx, qword [rdi]
sub rsp, 0x20
mov edx, 0xbe7384ef
call fcn.18001ea27
add rsp, 0x20
mov rsi, rax
sub rsp, 0x20
mov r8d, 0x208
mov rbx, qword [rbp - 0x48]
mov rcx, rbx
xor edx, edx
call fcn.180003c5d
add rsp, 0x20
mov rdi, qword [rbp - 0x70]
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
lea rdx, [0x18005b5a6]
call fcn.180012127
mov r8d, 0x104
mov rcx, rbx
mov rdx, qword [rbp - 0x58]
call rsi
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov r8d, 0x104
mov rdx, rbx
call fcn.180013753
add rsp, 0x20
mov rcx, qword [rdi + 8]
sub rsp, 0x20
mov edx, 0x104
call fcn.18001133a
mov edx, dword [rbp - 8]
add rsp, 0x20
lea ecx, [rax + rax]
mov word [rdi], cx
add eax, eax
add eax, 2
mov word [rdi + 2], ax
mov rax, qword [rbp - 0x50]
mov dword [rax], 0x30
mov qword [rax + 8], r15
mov dword [rax + 0x18], 0x40
mov qword [rax + 0x10], rdi
mov rax, qword [rbp - 0x68]
movups xmmword [rax], xmm6
mov eax, dword [0x1800e4d04]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, edx
xor eax, 0x52f6
cmp byte [rbp - 0x60], 0
cmove edx, eax
test cl, 1
mov eax, 0x6995
mov ecx, 0x36d3
cmove eax, ecx
cmp dword [0x1800e4d00], 0xa
cmovl eax, ecx
xor eax, dword [rbp - 0x18]
mov cl, 1
mov qword [rbp - 0x60], rcx
jmp 0x180044826
mov dword [rbp - 0x14], edx
mov al, byte [rbp - 2]
or al, byte [rbp - 1]
test byte [rbp - 0xc], 1
lea rbx, [0x18005ac48]
je 0x180044e53
xor ecx, ecx
movsxd rdx, dword [rcx + rbx]
xor byte [rbp + rdx*4 - 0x20], 0x26
add rcx, 4
cmp rcx, 0xc
jne 0x180044e40
test al, 1
mov eax, 0x69b3
mov ecx, 0x603a
cmovne eax, ecx
xor eax, dword [rbp - 0x20]
mov dword [rbp - 0xc], 0
jmp 0x180044823
mov dword [rbp - 0x14], edx
movaps xmm6, xmmword [rbp]
lea rsp, [rbp + 0x18]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret