Function at 0x1400151ac
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

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 r13d, [r9 - 0x46e4]
mov esi, dword [rsp + 0x98]
lea eax, [r13 + 0x3dad]
mov rcx, qword [section..data]
lea r12d, [r9 - 0x29d]
add esi, 0xffffc2cd
add r14d, 0xffffbffe
xor r15d, r15d
mov rdi, r8
mov ebp, esi
cmp r12d, eax
jl 0x14001531c
mov r9d, r15d
mov rax, qword [rcx + 0x70]
movzx ecx, byte [rcx + 0x44]
movzx edx, byte [rax + r9]
add r9, 4
mov rax, qword [rdi + 0xa0]
imul edx, ecx
movsxd rcx, dword [rdi + 0x48]
mov byte [rcx + rax], dl
inc dword [rdi + 0x48]
mov eax, dword [rdi + 0xd8]
sub dword [0x1400800f0], eax
mov rcx, qword [section..data]
mov eax, dword [0x140080094]
sub eax, dword [rdi + 0x18]
sub eax, 0x1b33ec
add dword [rcx + 0x84], eax
mov eax, 0x2f
sub eax, dword [rdi + 0x6c]
add dword [rdi + 0x90], eax
mov edx, dword [rdi + 0x60]
mov ecx, dword [rdi + 0x40]
lea eax, [rdx - 0x18ae2fe7]
imul ecx, eax
mov eax, 0x18ae2feb
mov dword [rdi + 0x40], ecx
mov r8d, dword [0x140080050]
mov ecx, r8d
xor ecx, edx
mov edx, dword [0x1400800e4]
sub eax, ecx
mov rcx, qword [section..data]
add dword [0x140080030], eax
mov eax, 0x18ae2fe8
sub eax, dword [rcx + 0xe0]
sub eax, dword [rcx + 0x60]
add edx, eax
mov eax, dword [0x1400800a0]
add eax, 0xffffffcf
mov dword [0x1400800e4], edx
xor dword [0x14008007c], eax
cmp r9, 0x455d0
jl 0x140015214
cmp dword [rdi + 0xd0], edx
je 0x1400152ee
mov dword [rdi + 0x44], 0x80dec
mov r8d, dword [0x140080050]
sub r8d, dword [0x140080094]
add r8d, 0x233572
xor dword [rdi + 0x44], r8d
mov eax, dword [rdi + 0x44]
sub eax, dword [rdi + 0x90]
sub eax, dword [0x1400800e4]
sub eax, 0x332dd03a
mov dword [rdi + 0x44], eax
jmp 0x1400154ac
mov eax, dword [rcx + 0xd8]
sub eax, dword [0x1400800f4]
cmp r14d, eax
jne 0x140015351
mov eax, dword [r8 + 0xf0]
mov ebp, dword [r8 + 0x18]
imul eax, esi
imul eax, eax, 0x38de
xor dword [r8 + 0xbc], eax
mov rcx, qword [section..data]
or ebp, esi
mov eax, dword [r8 + 0xd8]
add eax, 0x796f
cmp r14d, eax
jb 0x1400154b3
lea eax, [rbp + 0x78e0]
cmp dword [r8 + 0xbc], eax
jb 0x1400154b3
mov eax, r12d
sub eax, r13d
cmp dword [0x1400800ec], eax
jae 0x1400154b3
mov r9d, dword [rcx + 0x6c]
lea ebx, [rsi - 0x3bc2]
xor ebx, dword [r8 + 0x88]
mov edx, 0x4b50
mov r11d, dword [0x1400800fc]
mov r10d, esi
or r11d, edx
imul r10d, r14d
mov eax, esi
add r11d, 0x3e83
xor r9, rax
mov qword [rsp + 0x30], r11
or r9, rdx
mov eax, r14d
imul edx, dword [rcx + 0x98], 0x4b50
sub r10d, dword [r8 + 0x94]
mov r8d, dword [r8 + 0x50]
mov ecx, dword [0x1400800a8]
and r8d, 0x38de
sub r8d, r13d
mov dword [rsp + 0x28], ebx
xor rcx, rax
mov dword [rsp + 0x20], r10d
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov r11, qword [section..data]
mov ecx, r13d
mov r10d, dword [rdi + 0xd0]
mov edx, esi
mov r9d, dword [rdi + 0xbc]
add ecx, ebp
add r10d, r14d
mov qword [rsp + 0x28], r11
mov r8d, dword [r11 + 0x94]
xor r9d, ebp
or r8d, r13d
mov dword [rsp + 0x20], r10d
and edx, 0x4926
or ecx, 0x3e89
call section..text
mov rcx, qword [section..data]
mov r14d, eax
mov edx, dword [rdi + 0x84]
mov r11d, edx
mov ebx, dword [rdi + 0xd0]
sub r11d, r13d
mov r10d, dword [rdi + 0xc4]
add r11d, 0x3a21
mov r9d, dword [rcx + 0x40]
sub ebx, 0x81f4
mov ecx, dword [0x1400800f8]
xor r10d, r12d
mov r8d, dword [rdi]
add r9d, ebp
mov qword [rsp + 0x30], r11
xor r8d, 0x467d
imul ecx, ebp
imul edx, r12d
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r10d
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rcx, qword [section..data]
lea eax, [rsi + 0x4141]
cmp ebp, eax
jge 0x14001594d
xor ebp, 0x3e89
cmp r14d, ebp
je 0x1400156fc
mov eax, dword [rdi + 0xc0]
lea rcx, [0x1400829b0]
cmp dword [rdi + 0x78], eax
mov r9, r15
cmova rcx, qword [0x140080080]
mov qword [0x140080080], rcx
mov eax, dword [rdi + 0xd0]
or dword [rdi + 0x1c], eax
mov rax, qword [0x140080080]
mov r8d, dword [r9 + rax]
mov eax, 0x40
sub eax, dword [0x14008008c]
add r9, 4
add dword [rdi + 0x40], eax
mov eax, dword [rdi + 0x94]
mov ecx, dword [rdi + 0x84]
add eax, 0xffe4cbfa
add ecx, eax
xor dword [rdi + 0x90], ecx
movsxd rcx, dword [rdi + 0x48]
imul r8d, dword [rdi + 0x44]
mov rax, qword [rdi + 0xa0]
mov edx, r8d
shr edx, 0x10
mov byte [rcx + rax], dl
mov edx, r8d
inc dword [rdi + 0x48]
mov rax, qword [section..data]
shr edx, 8
mov ecx, dword [rax + 0xd0]
xor ecx, dword [rdi + 0x1c]
sub ecx, 0x7e681
xor dword [0x1400800e0], ecx
mov ecx, 0x1b343a
mov eax, dword [rdi + 0x94]
sub eax, 0xc
xor dword [rdi + 0x20], eax
mov rax, qword [section..data]
sub ecx, dword [rax + 0x84]
sub ecx, dword [0x14008008c]
add dword [rdi + 0x88], ecx
movsxd rcx, dword [rdi + 0x48]
mov rax, qword [rdi + 0xa0]
mov byte [rcx + rax], dl
inc dword [rdi + 0x48]
movsxd rcx, dword [rdi + 0x48]
mov rax, qword [rdi + 0xa0]
mov byte [rcx + rax], r8b
inc dword [rdi + 0x48]
mov eax, dword [rdi + 0xbc]
dec eax
xor dword [rdi + 0x90], eax
mov eax, dword [rdi + 0x60]
mov ecx, dword [0x14008007c]
sub eax, 0x18ae2fe7
mov rdx, qword [section..data]
imul ecx, eax
mov dword [0x14008007c], ecx
mov eax, dword [rdi + 0x7c]
sub eax, dword [rdx + 0x6c]
sub eax, 0x11
or dword [0x140080094], eax
mov eax, dword [0x140080070]
mov ecx, dword [rdi + 0xd4]
add eax, 0xe74c60b9
add ecx, eax
or dword [rdx + 0x88], ecx
cmp r9, 0x21650
jl 0x1400154f2
mov eax, dword [rdi + 0x7c]
cmp dword [rdi + 0xbc], eax
jae 0x140015633
mov eax, dword [rdi + 0x1c]
sub eax, 0x2d54ce46
mov dword [rdi + 0x44], eax
lea rax, [0x140080110]
mov r9, r15
mov qword [rdi + 0x70], rax
mov rcx, qword [section..data]
mov rax, qword [rdi + 0x70]
mov r8d, dword [r9 + rax]
add r9, 4
mov eax, dword [rcx + 0x88]
sub eax, 0x13
xor dword [rcx + 0xd8], eax
mov ecx, dword [0x140080094]
mov eax, dword [0x14008001c]
imul r8d, dword [rdi + 0x44]
xor eax, 0xffd771ce
imul ecx, eax
mov rax, qword [0x1400800b0]
mov edx, r8d
mov dword [0x140080094], ecx
movsxd rcx, dword [rdi + 0x48]
shr edx, 8
mov byte [rcx + rax], dl
inc dword [rdi + 0x48]
mov rax, qword [section..data]
mov ecx, dword [rdi + 0xd8]
sub ecx, dword [rax + 0x90]
xor ecx, dword [rdi + 0x40]
xor ecx, 0xffffffcf
mov dword [rdi + 0x40], ecx
mov rax, qword [section..data]
movsxd rdx, dword [rdi + 0x48]
mov rcx, qword [rax + 0xa0]
mov byte [rdx + rcx], r8b
mov eax, dword [rdi + 0x1c]
inc dword [rdi + 0x48]
lea ecx, [rax - 0x7e681]
xor ecx, eax
mov eax, 0x13
mov dword [rdi + 0x1c], ecx
sub eax, dword [0x140080098]
add dword [rdi + 0x90], eax
cmp r9, 0x2838
jl 0x140015641
jmp 0x140015751
mov eax, esi
mov ebx, r14d
sub eax, dword [rdi + 0x64]
cmp r14d, eax
jae 0x140015758
mov eax, r12d
and eax, dword [rdi + 0xf0]
cmp r14d, eax
jbe 0x140015745
mov ecx, esi
and ecx, 0x3e83
add ecx, dword [rdi + 0xd4]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [section..data]
mov ecx, dword [rax + 0xe4]
or rcx, 0x4b56
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, esi
add ebx, 3
sub eax, dword [rdi + 0x64]
cmp ebx, eax
jb 0x140015709
mov rcx, qword [section..data]
lea eax, [r14 + 0x3f72]
cmp esi, eax
jg 0x14001594d
lea eax, [rsi + 0x3e89]
cmp esi, eax
jg 0x140015903
mov dword [rcx + 0x44], 0x9ba144cb
mov eax, dword [rdi + 0xd4]
cmp dword [rdi + 0x98], eax
je 0x140015797
lea rax, [0x140016270]
mov qword [rdi + 0x70], rax
jmp 0x1400157ad
mov rax, qword [section..data]
mov ecx, dword [rax + 0x84]
add ecx, dword [rax + 0xc]
sub dword [rdi + 0xb0], ecx
mov r9, r15
mov rax, qword [section..data]
mov rcx, qword [rax + 0x70]
mov eax, dword [rdi + 0xd8]
mov r8d, dword [r9 + rcx]
add r9, 4
sub dword [rdi + 0x84], eax
mov eax, dword [rdi + 0x7c]
sub eax, 0x40
xor dword [rdi + 0xc], eax
mov eax, dword [0x140080050]
sub eax, dword [0x140080060]
xor eax, dword [rdi + 0x40]
xor eax, 0xffe297ad
mov dword [rdi + 0x40], eax
mov eax, dword [rdi + 0x98]
mov rcx, qword [section..data]
xor eax, 1
sub dword [rcx + 0x6c], eax
mov rax, qword [section..data]
imul r8d, dword [rax + 0x44]
movsxd rcx, dword [rax + 0x48]
mov rax, qword [rdi + 0xa0]
mov edx, r8d
shr edx, 8
mov byte [rcx + rax], dl
mov rax, qword [section..data]
inc dword [rax + 0x48]
mov eax, dword [rdi + 0x7c]
mov ecx, dword [0x140080028]
xor eax, 0x41
imul ecx, eax
mov rax, qword [0x1400800b0]
mov dword [0x140080028], ecx
movsxd rcx, dword [rdi + 0x48]
mov byte [rcx + rax], r8b
mov eax, 1
inc dword [rdi + 0x48]
sub eax, dword [0x140080100]
sub eax, dword [0x140080030]
add dword [0x1400800f0], eax
mov eax, dword [0x1400800d0]
add eax, 0xfff147b9
add dword [rdi + 0x20], eax
cmp r9, 0x5310
jl 0x1400157b0
mov rcx, qword [section..data]
mov eax, dword [rdi + 0xd8]
add dword [rcx + 0xf0], eax
mov eax, dword [0x14008005c]
mov rcx, qword [rdi + 0xa8]
xor dword [r15 + rcx], eax
add r15, 4
mov ecx, dword [rdi + 0x18]
mov eax, dword [rdi + 0xd4]
sub eax, dword [rdi + 0x78]
sub eax, 0x56f5f
add dword [rdi + 0xd0], eax
mov eax, dword [rdi + 0xd0]
inc eax
imul ecx, eax
mov eax, dword [rdi + 0xb8]
mov dword [rdi + 0x18], ecx
add dword [0x14008005c], eax
mov eax, dword [rdi + 0xc0]
add eax, dword [rdi + 0x1c]
xor eax, dword [0x1400800f0]
xor eax, 0x169ec8
mov dword [0x1400800f0], eax
cmp r15, 0x2a998
jl 0x140015885
jmp 0x14001594d
mov edx, dword [rdi + 0x88]
mov r8d, r14d
sub r8d, r13d
add r8d, 0x467d
jmp 0x140015948
mov eax, r12d
xor eax, 0xfffff9fe
and eax, 0x3e89
cmp r14d, eax
je 0x140015945
mov eax, dword [rdi + 0x3c]
imul eax, dword [rcx + 0x78]
cmp dword [rdi + 0x90], eax
jne 0x140015945
mov eax, dword [rcx + 0xbc]
add eax, dword [rdi + 0x50]
sub r12d, eax
add edx, 4
cmp edx, r8d
jne 0x140015918
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
lea eax, [r13 + 0x4b51]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret