Function at 0x180040d60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r14d, dword [rsp + 0x90]
lea esi, [r8 + 0x953]
mov eax, esi
lea r10d, [r9 - 0x6d6]
mov ebx, r8d
mov edi, ecx
mov r15d, r8d
xor eax, 0x7be2
xor r15d, 0x50a
xor edi, 0x3fd3
xor ebx, 0x5d0
add r14d, 0x89f
mov rbp, rdx
cmp edi, eax
je 0x18004100f
lea eax, [rdi + 0x3245]
cmp r10d, eax
jl 0x18004100f
lea eax, [r10 + 0xd8e]
cmp esi, eax
jg 0x180040df5
lea rax, [0x1801f8e20]
xor r14d, 0x72a6
mov qword [rdx + 0x88], rax
lea eax, [r10 + 0x4df]
cmp edi, eax
jg 0x180040f4c
xor r11d, r11d
mov ecx, dword [rbp + 0x134]
mov rax, qword [rbp + 0x88]
mov r9d, dword [r11 + rax]
add r11, 4
imul r9d, dword [rbp + 0x64]
mov eax, dword [rbp + 4]
dec eax
add ecx, eax
or dword [rbp + 0x4c], ecx
mov eax, dword [rbp + 0x5c]
mov r8d, r9d
dec eax
shr r8d, 0x10
xor dword [rbp + 0x10], eax
mov eax, 0xba1b54e4
mov rcx, qword [section..data]
sub eax, dword [rcx + 0xf8]
sub eax, dword [rbp + 0x14c]
add dword [rcx + 0x30], eax
mov rax, qword [section..data]
movsxd rdx, dword [0x18018d078]
mov rcx, qword [rax + 0xa8]
mov byte [rdx + rcx], r8b
mov edx, r9d
inc dword [0x18018d078]
movsxd rcx, dword [rbp + 0x68]
mov rax, qword [0x18018d0b8]
shr edx, 8
mov byte [rcx + rax], dl
mov eax, 0x3a3879e9
inc dword [rbp + 0x68]
sub eax, dword [rbp + 0x48]
add dword [rbp + 0xa4], eax
movsxd rcx, dword [rbp + 0x68]
mov rax, qword [rbp + 0xa8]
mov byte [rcx + rax], r9b
inc dword [rbp + 0x68]
mov rax, qword [section..data]
mov ecx, dword [rax + 0x114]
xor ecx, dword [rbp + 0x148]
xor ecx, dword [0x18018d16c]
xor ecx, 1
mov dword [rbp + 0x148], ecx
mov eax, dword [rbp + 0x110]
mov ecx, dword [rbp + 0x30]
inc ecx
imul eax, ecx
mov dword [rbp + 0x110], eax
mov ecx, dword [rbp + 0x148]
mov eax, dword [0x18018d158]
add eax, 0x184e01
add ecx, eax
mov dword [0x18018d158], ecx
mov eax, dword [rbp + 0x5c]
mov rcx, qword [section..data]
xor eax, 1
sub dword [rcx + 0x6c], eax
mov eax, 0xaf42b
sub eax, dword [rbp + 0x24]
add dword [0x18018d034], eax
mov rax, qword [section..data]
mov ecx, dword [rax + 0x14c]
add ecx, dword [rbp + 0x78]
xor ecx, dword [0x18018d06c]
xor ecx, 0xba1b54e5
mov dword [0x18018d06c], ecx
cmp r11, 0x5d920
jl 0x180040e07
jmp 0x18004100f
lea eax, [r14 + 0x3680]
cmp esi, eax
jge 0x18004100f
mov eax, esi
or eax, 0x322b
cmp esi, eax
jge 0x18004100f
sub eax, esi
lea r12d, [r15 - 0x3ce9]
xor r12d, r15d
lea r13d, [rax - 1]
shr r13d, 2
inc r13d
mov rax, qword [section..data]
mov ecx, edi
xor r10d, r15d
mov dword [rsp + 0x30], esi
sub ecx, r14d
mov dword [rsp + 0x28], r12d
add ecx, dword [rbp + 0x54]
add r10d, 0x3113
mov r8d, dword [rax + 0xdc]
mov rdx, rbp
imul r9d, dword [rax + 0xf8], 0x3fd3
sub r8d, 0x3680
mov dword [rsp + 0x20], r10d
call fcn.180049c54
mov r9d, dword [rbp + 0xc8]
mov r8d, eax
mov ecx, dword [rbp + 0x138]
xor r9d, eax
mov eax, dword [rbp + 0x4c]
mov edx, esi
and ecx, dword [0x18018d0b4]
sub edx, r8d
imul eax, edi
and ecx, 0x363f
xor eax, r8d
mov r8, rbp
mov dword [rsp + 0x20], eax
call fcn.1800427e4
mov r10d, eax
sub r13, 1
jne 0x180040f81
lea ecx, [r15 + 0xda2]
cmp r10d, ecx
jge 0x180041071
mov edx, ebx
lea eax, [rdi + 0x363f]
xor edx, 0x5d0
lea ecx, [rdi + 0x4431]
mov dword [rsp + 0x28], edx
mov r9d, ebx
xor r14d, 0xb07
mov dword [rsp + 0x20], eax
lea rdx, [0x18018d010]
xor r9d, 0xbdd
mov r8d, r14d
call fcn.180047bb4
mov ecx, dword [rbp + 0x24]
mov eax, 0xae9b1
xor ecx, dword [0x18018d164]
mov rdx, qword [section..data]
sub eax, ecx
add dword [rdx + 0x64], eax
lea r11, [rsp + 0x40]
xor ebx, 0x295
mov rbp, qword [r11 + 0x38]
mov eax, ebx
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret