Function at 0x18004073c
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, 0x30
mov eax, dword [rsp + 0x80]
lea esi, [r9 + 0x283]
mov edi, r9d
lea r14d, [r8 - 0xc07]
mov rbx, rdx
lea r13d, [r8 + 0x32c]
xor edi, 0x7b6a
lea edx, [r8 + 0x1fe]
lea r15d, [rax - 0x1729]
mov dword [rsp + 0x80], edx
lea ebp, [rax - 0x924]
xor r12d, r12d
lea eax, [rsi - 0x171a]
mov r11d, 0x26f483
cmp r15d, eax
je 0x180040a92
cmp r15d, r8d
je 0x180040a92
lea eax, [r14 + 0xa63]
cmp edi, eax
jg 0x180040990
mov rcx, qword [section..data]
cmp dword [rcx + 0x30], 0xed63
je 0x1800407f0
mov eax, dword [0x18011e0a4]
add eax, 0xed4c1499
mov dword [rcx + 0x64], eax
mov rcx, qword [section..data]
xor edi, 0x11
cmp dword [0x18011e07c], 0xd2f4
je 0x180040817
mov eax, dword [rcx + 0xbc]
add eax, dword [rbx + 0x20]
xor eax, 0x169374
sub dword [rcx + 0x64], eax
mov rcx, qword [section..data]
mov eax, dword [rcx + 0xbc]
cmp dword [0x18011e084], eax
ja 0x180040836
mov eax, dword [rcx + 0xb0]
sub eax, dword [rcx + 0xf4]
or dword [rbx + 0x38], eax
jmp 0x18004084c
mov ecx, dword [rcx + 0x20]
mov eax, 0x3b999
xor ecx, dword [0x18011e100]
sub eax, ecx
add dword [0x18011e074], eax
lea rax, [0x18011e110]
mov r10, r12
mov qword [rbx + 0x98], rax
mov r8, qword [section..data]
mov r9d, dword [0x18011e104]
mov edx, dword [0x18011e0cc]
mov ecx, dword [r8 + 0xf4]
mov eax, dword [0x18011e050]
add ecx, edx
xor ecx, 0x17168d
imul eax, ecx
mov dword [0x18011e050], eax
mov rax, qword [rbx + 0x98]
mov edx, dword [rax + r10]
add r10, 4
imul edx, dword [rbx + 0x64]
mov eax, dword [0x18011e06c]
xor eax, r9d
sub eax, 0x59d0
or dword [0x18011e07c], eax
movsxd rcx, dword [r8 + 0x70]
mov rax, qword [r8 + 0xa0]
mov byte [rcx + rax], dl
mov ecx, 0x16bcc8
mov rax, qword [section..data]
inc dword [rax + 0x70]
mov rax, qword [section..data]
sub ecx, dword [rax + 0xbc]
add dword [rbx + 0x94], ecx
mov rdx, qword [section..data]
mov ecx, dword [0x18011e048]
mov eax, dword [rdx + 0x40]
sub eax, 0x1f5fdd
imul ecx, eax
mov dword [0x18011e048], ecx
mov eax, dword [rdx + 0x44]
xor eax, dword [0x18011e030]
xor eax, r11d
mov dword [0x18011e030], eax
mov ecx, dword [rbx + 0x5c]
mov eax, dword [rbx + 0x40]
xor ecx, 0x15
imul eax, ecx
mov dword [rbx + 0x40], eax
mov rax, qword [section..data]
mov ecx, dword [rax + 0xc0]
dec ecx
add ecx, dword [rbx + 0x38]
or dword [rbx + 0xf0], ecx
mov ecx, dword [0x18011e058]
mov r9d, dword [0x18011e104]
mov edx, dword [0x18011e0cc]
mov r8, qword [section..data]
lea eax, [rdx - 0x16bcc8]
xor dword [0x18011e054], eax
mov eax, 0x1bb72f
sub ecx, dword [r8 + 0x38]
sub eax, ecx
mov dword [0x18011e058], ecx
add r9d, eax
mov dword [0x18011e104], r9d
cmp r10, 0x2bda0
jl 0x180040871
jmp 0x180040a99
mov eax, esi
imul eax, ebp
xor eax, r14d
cmp dword [rbx + 0xf0], eax
jne 0x180040a92
mov rax, qword [section..data]
lea r10d, [rbp - 0x3d58]
imul r11d, dword [0x18011e0dc], 0x3f6e
mov r9d, edx
mov edx, dword [0x18011e100]
mov r8d, edi
or r8d, ebp
add edx, 0x3f6e
mov ecx, dword [rax + 0x20]
add edx, r13d
mov eax, 0x3155
or r11, rcx
or r9d, eax
mov ecx, dword [0x18011e030]
or r8d, eax
mov qword [rsp + 0x28], r11
add ecx, ebp
mov dword [rsp + 0x20], r10d
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov edx, dword [rbx + 0xb0]
mov ecx, edi
or ecx, 0x3376
mov eax, ebp
xor ecx, 0x2d71
sub eax, edx
add ecx, r15d
sub eax, r13d
imul ecx, eax
mov eax, dword [rbx + 0x6c]
imul ecx, ebp
imul eax, ecx
mov dword [rbx + 0x6c], eax
mov rax, qword [section..data]
mov ecx, dword [rax + 0x40]
imul ecx, edx
imul ecx, dword [0x18011e07c]
mov dword [rbx + 0xb0], ecx
imul ecx, dword [0x18011e07c], 0x39e8
add ecx, dword [0x18011e084]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x18011e050]
imul ecx, ebp
xor rcx, 0x39e8
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov rcx, qword [section..data]
mov eax, r13d
or eax, dword [rsp + 0x80]
mov r11d, 0x26f483
imul eax, r13d
or dword [rcx + 0xbc], eax
mov r8, qword [section..data]
xor esi, 0xbfc
cmp r14d, esi
je 0x180040e01
mov eax, dword [0x18011e01c]
mov r10, r12
add eax, 0xff1212cb
mov dword [r8 + 0x64], eax
lea rax, [0x180050200]
mov qword [0x18011e0a8], rax
mov rdx, qword [section..data]
mov ecx, dword [0x18011e078]
xor ecx, 0x63
mov eax, dword [rdx + 0xc]
imul eax, ecx
mov dword [rdx + 0xc], eax
mov rax, qword [0x18011e0a8]
mov rcx, qword [section..data]
mov r9d, dword [r10 + rax]
add r10, 4
mov eax, dword [rbx + 0x44]
xor eax, r11d
add dword [rcx + 0x40], eax
mov rcx, qword [section..data]
mov eax, dword [0x18011e104]
sub eax, dword [rcx + 0x3c]
xor eax, 0x9084a
add dword [rcx + 0xb0], eax
mov edx, dword [rbx + 0xc8]
mov r8, qword [section..data]
mov eax, dword [0x18011e078]
add eax, 0xffd71e94
add edx, eax
imul r9d, dword [r8 + 0x64]
mov eax, dword [r8 + 0xbc]
imul eax, edx
mov edx, r9d
shr edx, 0x10
mov dword [r8 + 0xbc], eax
mov rax, qword [section..data]
movsxd rcx, dword [rax + 0x70]
mov rax, qword [rax + 0xa0]
mov byte [rcx + rax], dl
mov edx, r9d
mov rax, qword [section..data]
shr edx, 8
inc dword [rax + 0x70]
mov rax, qword [section..data]
movsxd rcx, dword [rax + 0x70]
mov rax, qword [0x18011e0b0]
mov byte [rcx + rax], dl
mov rax, qword [section..data]
inc dword [rax + 0x70]
mov rax, qword [section..data]
movsxd rdx, dword [0x18011e080]
mov rcx, qword [rax + 0xa0]
mov byte [rdx + rcx], r9b
inc dword [0x18011e080]
mov eax, dword [0x18011e0d8]
mov rcx, qword [section..data]
xor eax, 0x28e10b
add dword [0x18011e04c], eax
mov eax, dword [rcx + 0xc]
xor eax, dword [rbx + 0xf4]
add eax, 0x134a10
add dword [rcx + 0x94], eax
cmp r10, 0x1790
jl 0x180040ac8
mov rax, qword [section..data]
mov ecx, dword [rax + 0x40]
sub ecx, dword [0x18011e01c]
sub ecx, 0x32668b
mov dword [rbx + 0x64], ecx
cmp dword [0x18011e084], 0x38ac
mov r8, qword [section..data]
je 0x180040c33
mov edx, dword [0x18011e104]
add edx, 0xffffa801
add edx, dword [0x18011e074]
mov dword [0x18011e074], edx
jmp 0x180040c4c
mov eax, dword [r8 + 0x74]
xor eax, dword [0x18011e104]
sub eax, dword [rbx + 0x74]
add dword [0x18011e040], eax
mov edx, dword [0x18011e074]
mov eax, dword [rbx + 0x38]
cmp dword [r8 + 0x3c], eax
jbe 0x180040c61
add edx, 0x3e0f74fd
mov dword [0x18011e074], edx
lea rax, [0x180051a10]
mov qword [rbx + 0x98], rax
mov rdx, qword [section..data]
mov ecx, dword [rdx + 0x30]
add ecx, 0xffe88b62
add ecx, dword [rbx + 0x94]
or dword [0x18011e0d0], ecx
mov eax, dword [rbx + 0x6c]
sub eax, 0xd
xor dword [rdx + 0x38], eax
mov edx, dword [rbx + 0x38]
mov r8, qword [section..data]
mov ecx, dword [r8 + 0xc]
mov eax, dword [r8 + 0x5c]
add ecx, 0x1313cd
add edx, ecx
imul eax, edx
mov dword [r8 + 0x5c], eax
mov ecx, dword [0x18011e054]
mov rax, qword [0x18011e0a8]
mov r8d, dword [r12 + rax]
add r12, 4
mov rax, qword [section..data]
imul r8d, dword [rax + 0x64]
mov eax, dword [0x18011e06c]
add eax, 0xffd90b7d
add ecx, eax
mov eax, dword [0x18011e0c0]
mov dword [0x18011e06c], ecx
add eax, 0xffe7ebf4
mov ecx, dword [rbx + 0x48]
mov edx, r8d
sub ecx, dword [rbx + 0xf0]
add ecx, eax
shr edx, 8
mov rax, qword [0x18011e0b0]
mov dword [0x18011e0c0], ecx
movsxd rcx, dword [0x18011e080]
mov byte [rcx + rax], dl
inc dword [0x18011e080]
mov eax, dword [rbx + 0x44]
movsxd rcx, dword [rbx + 0x70]
xor eax, r11d
sub dword [rbx + 0xf0], eax
mov rax, qword [rbx + 0xa0]
mov byte [rcx + rax], r8b
inc dword [rbx + 0x70]
mov rax, qword [section..data]
mov ecx, dword [rax + 0x48]
mov eax, dword [0x18011e050]
sub ecx, 0x1bb72e
imul eax, ecx
mov dword [0x18011e050], eax
mov eax, 0xb60a324
sub eax, dword [rbx + 0x74]
sub eax, dword [0x18011e040]
add dword [0x18011e054], eax
mov eax, dword [0x18011e07c]
xor eax, 0xd
add dword [rbx + 0xc0], eax
mov rdx, qword [section..data]
mov ecx, dword [0x18011e050]
mov eax, dword [rdx + 0x74]
sub eax, 0xb492e85
imul ecx, eax
mov dword [0x18011e050], ecx
mov eax, dword [rdx + 0xc8]
sub eax, dword [0x18011e07c]
sub eax, 0x28e0fe
add dword [rdx + 0x30], eax
mov eax, dword [0x18011e058]
mov ecx, dword [rbx + 0xf4]
add eax, 0xffe448d2
imul ecx, eax
mov dword [rbx + 0xf4], ecx
cmp r12, 0x6900
jl 0x180040c6f
mov rax, qword [section..data]
lea rdx, [0x18011e010]
mov ecx, dword [rax + 0x48]
cmp dword [0x18011e048], ecx
cmove rdx, qword [0x18011e0e8]
mov qword [0x18011e0e8], rdx
mov rbx, qword [rsp + 0x60]
lea eax, [rdi + 0x7a2]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret