Function at 0x180001474
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 r12
push r14
push r15
sub rsp, 0x40
mov eax, dword [rsp + 0x88]
lea r14d, [r8 - 0x2677]
mov r10d, r9d
lea r15d, [r8 + 0x492]
mov edi, r8d
lea ebp, [r8 - 0xdc5]
mov esi, r9d
xor edi, 0x2df
xor esi, 0x2189
xor r10d, 0xa80
add eax, 0xfffff43c
mov rbx, rdx
cmp r10d, eax
jle 0x180001882
lea eax, [rbp + 0x1257]
xor r12d, r12d
cmp r15d, eax
jl 0x180001737
mov eax, r14d
xor eax, 0x2b09
cmp esi, eax
jge 0x1800016b9
cmp dword [rdx], 0xd2f9
je 0x18000151d
mov eax, dword [rdx + 0xf4]
xor eax, dword [rdx + 0x24]
xor eax, 0x37770
mov dword [rdx + 0x24], eax
mov edx, dword [0x180052038]
jmp 0x18000152f
mov edx, dword [0x180052038]
xor edx, 0x2806
mov dword [0x180052038], edx
mov rax, qword [section..data]
mov r11, r12
mov esi, 0x9b3cc
mov ecx, dword [rax + 0x58]
mov eax, 0xfc17cee8
xor ecx, edx
sub eax, ecx
lea rcx, [0x180052160]
add dword [rbx + 0x24], eax
mov eax, dword [0x18005214c]
cmp dword [0x180052104], eax
cmovae rcx, qword [0x180052080]
mov qword [0x180052080], rcx
mov r9d, dword [r11 + rcx]
mov eax, esi
sub eax, dword [0x1800520a0]
add r11, 4
add dword [0x180052040], eax
mov ecx, dword [rbx + 0xec]
mov rdx, qword [section..data]
sub ecx, 0x23f3f
mov eax, dword [rdx + 0xe0]
imul r9d, dword [rdx + 0x24]
imul eax, ecx
mov dword [rdx + 0xe0], eax
mov edx, r9d
mov ecx, dword [rbx + 0x28]
mov eax, dword [0x1800520e0]
mov r8, qword [section..data]
add eax, 0x67570
shr edx, 0x10
sub ecx, dword [r8 + 0xfc]
add ecx, eax
mov rax, qword [0x180052088]
mov dword [0x1800520e0], ecx
movsxd rcx, dword [r8 + 0x40]
mov byte [rcx + rax], dl
mov edx, r9d
mov rax, qword [section..data]
shr edx, 8
inc dword [rax + 0x40]
mov rax, qword [rbx + 0x78]
movsxd rcx, dword [0x180052050]
mov byte [rcx + rax], dl
mov eax, 0x9b3cd
inc dword [0x180052050]
sub eax, dword [rbx + 0x114]
sub eax, dword [rbx + 0x90]
add dword [rbx + 0xfc], eax
mov rax, qword [rbx + 0x78]
movsxd rcx, dword [0x180052050]
mov byte [rcx + rax], r9b
inc dword [0x180052050]
mov rdx, qword [section..data]
mov ecx, dword [rdx + 0x34]
xor ecx, dword [rbx + 0xd0]
mov eax, dword [rdx + 0xf0]
sub ecx, 0x12325d
imul eax, ecx
mov dword [rdx + 0xf0], eax
mov eax, 0x2f387
sub eax, dword [rbx + 0x28]
add dword [0x1800520e0], eax
mov eax, dword [rbx + 0x90]
xor eax, esi
sub dword [rbx + 0x114], eax
cmp r11, 0x3290
jge 0x18000168a
mov rcx, qword [0x180052080]
jmp 0x18000156f
cmp dword [0x1800520fc], 0x1b64
ja 0x1800016a9
mov eax, dword [rbx + 0x124]
add eax, dword [0x18005214c]
xor dword [rbx], eax
jmp 0x180001737
lea rax, [0x180052010]
mov qword [rbx + 0x100], rax
jmp 0x180001737
mov rdx, qword [section..data]
mov eax, dword [rdx + 0x12c]
xor eax, edi
cmp edi, eax
jne 0x18000173e
mov eax, dword [rdx + 0x118]
lea ecx, [r14 + rsi]
xor rcx, rax
call qword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
mov r11, qword [section..data]
lea eax, [rsi - 0x2481]
mov r10d, dword [rbx + 0x94]
mov r9d, ebp
mov edx, dword [rbx + 0x110]
xor r9d, edi
mov r8d, dword [rbx + 0x6c]
mov ecx, dword [r11 + 0x128]
and r8d, 0x2b09
add ecx, dword [0x180052134]
or edx, dword [0x180052040]
imul r10d, r15d
mov dword [rsp + 0x30], r10d
mov qword [rsp + 0x28], r11
mov dword [rsp + 0x20], eax
call fcn.1800029f0
mov r10d, eax
mov rdx, qword [section..data]
lea eax, [rdi + 0x394]
cmp ebp, eax
je 0x180001882
lea eax, [r15 - 0xc64]
cmp r10d, eax
je 0x180001868
mov eax, dword [rdx + 0xd8]
add eax, dword [rbx + 8]
add eax, dword [rbx + 4]
xor eax, 0xb6c84641
mov dword [rdx + 0x144], eax
mov rdx, qword [section..data]
mov eax, dword [rdx + 0x94]
xor eax, 0x76df4
add dword [rdx + 0x13c], eax
mov rax, qword [rbx + 0xa8]
mov rdx, qword [section..data]
mov ecx, dword [r12 + rax]
xor ecx, dword [rdx + 0x54]
mov rax, qword [rdx + 0xa8]
mov dword [r12 + rax], ecx
add r12, 4
mov eax, dword [rbx + 0xb8]
mov ecx, dword [0x180052044]
xor eax, 1
imul ecx, eax
mov rax, qword [section..data]
mov dword [0x180052044], ecx
mov ecx, dword [rax + 0xf0]
sub ecx, 0x5b
xor dword [rbx + 0x110], ecx
mov rax, qword [section..data]
mov ecx, dword [rax + 0x68]
mov eax, dword [0x1800520e0]
add eax, 0x104be5
add ecx, eax
or dword [rbx + 0xd0], ecx
mov ecx, dword [rbx + 0x28]
sub ecx, dword [rbx + 0xb4]
mov eax, dword [rbx + 0x140]
sub ecx, 0x2f386
imul eax, ecx
mov dword [rbx + 0x140], eax
mov eax, dword [rbx + 0x38]
mov rcx, qword [section..data]
xor eax, 0x10445c4
sub dword [rcx + 0x38], eax
mov rdx, qword [section..data]
mov eax, dword [rdx + 0xd4]
add dword [0x180052064], eax
mov ecx, dword [rbx + 0x114]
add ecx, dword [rbx + 0x124]
mov eax, dword [0x180052104]
dec eax
add ecx, eax
mov dword [0x180052104], ecx
cmp r12, 0x612f4
jl 0x18000177a
jmp 0x180001882
mov eax, dword [rbx + 0x68]
xor eax, r10d
cmp dword [0x1800520b0], eax
je 0x180001882
mov eax, dword [rdx + 0x34]
add eax, r14d
imul edi, eax, 0x2481
mov rbx, qword [rsp + 0x60]
lea eax, [rdi - 0x446]
mov rdi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop r12
ret