Function at 0x180004920
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x30
mov edi, dword [rsp + 0x70]
mov r14d, edx
mov eax, dword [rsp + 0x60]
mov r11d, edi
mov esi, edi
xor r11d, 0x2b7
xor esi, 0x17c6
xor r14d, 0xe20
lea ebp, [rdi - 0x9a6]
add eax, 0xd32
xor edi, 0x194e
cmp eax, r11d
jle 0x180004c46
mov eax, ebp
add ecx, 0xfffff1e0
xor eax, 0x266
cmp ecx, eax
je 0x180004b7f
mov r10, qword [rsp + 0x68]
lea rax, [0x18015e180]
xor r11d, r11d
mov qword [r10 + 0xc8], rax
lea ebx, [r11 + 1]
mov rcx, qword [section..data]
mov eax, dword [rcx + 0xf4]
sub eax, dword [0x18015e160]
xor eax, 0x1c55d0
add dword [rcx + 0x38], eax
movsxd rcx, dword [r10 + 0x88]
mov rax, qword [r10 + 0xc8]
mov r9d, dword [r11 + rax]
add r11, 4
mov rax, qword [0x18015e0e0]
imul r9d, dword [r10 + 0x84]
mov edx, r9d
mov r8d, r9d
shr edx, 0x18
mov byte [rcx + rax], dl
add dword [r10 + 0x88], ebx
mov rdx, qword [section..data]
mov ecx, dword [r10 + 0x38]
sub ecx, 0x6def3
shr r8d, 8
mov eax, dword [rdx + 0xf8]
imul eax, ecx
mov dword [rdx + 0xf8], eax
mov edx, r9d
mov eax, dword [0x18015e0ec]
mov ecx, dword [0x18015e014]
dec eax
add ecx, eax
shr edx, 0x10
xor dword [r10 + 0x114], ecx
mov rax, qword [section..data]
movsxd rcx, dword [rax + 0x88]
mov rax, qword [r10 + 0xd0]
mov byte [rcx + rax], dl
mov rax, qword [section..data]
add dword [rax + 0x88], ebx
mov rax, qword [section..data]
movsxd rdx, dword [0x18015e098]
mov rcx, qword [rax + 0xd0]
mov byte [rdx + rcx], r8b
add dword [0x18015e098], ebx
mov rax, qword [section..data]
mov ecx, dword [rax + 0x8c]
xor ecx, dword [r10 + 0x114]
sub ecx, 0x77bdb
xor dword [r10 + 4], ecx
mov eax, dword [r10 + 0x28]
xor eax, dword [0x18015e160]
xor eax, ebx
mov dword [r10 + 0x28], eax
mov eax, ebx
mov rcx, qword [section..data]
sub eax, dword [rcx + 0x1c]
add dword [rcx + 0x64], eax
mov rax, qword [section..data]
movsxd rdx, dword [r10 + 0x88]
mov ecx, dword [rax + 0x38]
mov eax, dword [0x18015e038]
add eax, 0xfff920fb
add ecx, eax
xor dword [r10 + 0x50], ecx
mov rax, qword [section..data]
mov rcx, qword [rax + 0xd0]
mov byte [rdx + rcx], r9b
add dword [r10 + 0x88], ebx
cmp r11, 0x152b8
jl 0x1800049a6
mov ecx, dword [0x18015e154]
cmp dword [0x18015e09c], ecx
jae 0x180004b30
mov ecx, dword [0x18015e130]
mov rax, qword [section..data]
add ecx, 0xcb422
mov dword [rax + 0x84], ecx
mov ecx, dword [0x18015e154]
mov rax, qword [section..data]
cmp dword [rax + 0x16c], 0x15cee
ja 0x180004b60
mov eax, dword [rax + 0x28]
add eax, dword [r10 + 0x114]
add eax, dword [0x18015e0c4]
or ecx, eax
mov dword [0x18015e154], ecx
jmp 0x180004c46
mov ecx, dword [r10 + 0x120]
mov eax, dword [0x18015e160]
add eax, 0x28677e36
add ecx, eax
xor dword [0x18015e094], ecx
jmp 0x180004c46
mov rdx, qword [section..data]
mov r10d, esi
mov rbx, qword [rsp + 0x68]
xor r10d, r11d
mov eax, dword [0x18015e104]
imul eax, r11d
imul r10d, dword [rdx + 0x150]
mov ecx, dword [rbx + 0x58]
mov r8d, dword [rdx + 0x4c]
mov r9d, ecx
sub r11d, dword [rdx + 0x1c]
xor r9d, edi
add r8d, dword [rbx + 0x150]
xor rcx, 0xf3b
mov qword [rsp + 0x28], r10
mov edx, r11d
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov r10d, dword [0x18015e110]
mov r9d, esi
imul ecx, dword [0x18015e118], 0x623
xor r10d, edi
mov rax, qword [section..data]
xor r9d, 0x1584
mov r8d, dword [rbx + 0x8c]
sub ebp, esi
sub r10d, dword [0x18015e024]
xor r8d, esi
mov qword [rsp + 0x20], r10
or r9d, dword [rax + 0x6c]
xor rcx, 0xe20
lea edx, [rbp + 0x623]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, dword [rbx + 0x4c]
add ecx, dword [0x18015e064]
mov eax, dword [0x18015e104]
xor ecx, 0xe88
imul eax, ecx
mov dword [0x18015e104], eax
mov rbx, qword [rsp + 0x40]
lea eax, [r14 + 0x17c6]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x30
pop r14
ret