Function at 0x140015a8c
Capabilities:
Access peb ldr_data
Encode data using xor
Enumerate process modules
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r14
lea rbp, [rax - 0x3d8]
sub rsp, 0x4c0
mov rax, qword [0x140039010]
xor rax, rsp
mov qword [rbp + 0x3b8], rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x3a0], xmm0
mov qword [rbp + 0x3b0], rax
lea rcx, [rbp + 0x3a0]
call fcn.140014564
nop
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov esi, eax
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
xor r14d, r14d
or r12d, 0xffffffff
mov r9, qword [rcx + 0x30]
movsxd rdx, dword [r9 + 0x3c]
mov r10d, dword [rdx + r9 + 0x88]
add r10, r9
cmp r10, r9
je 0x140015b65
mov r8d, dword [r10 + 0x18]
test r8d, r8d
je 0x140015b65
mov edi, dword [r10 + 0x20]
add r8d, r12d
lea rax, [rdi + r8*4]
mov edx, dword [rax + r9]
add rdx, r9
mov r11d, 0x363d6a6d
mov al, byte [rdx]
inc rdx
test al, al
je 0x140015b60
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
mov al, byte [rdx]
inc rdx
test al, al
jne 0x140015b41
cmp r11d, 0x5f65d7dd
je 0x140015b6a
test r8d, r8d
jne 0x140015b24
mov rcx, qword [rcx]
jmp 0x140015aff
mov ecx, dword [r10 + 0x1c]
add rcx, r9
mov eax, dword [r10 + 0x24]
add rax, r9
movzx eax, word [rax + r8*2]
mov r8d, dword [rcx + rax*4]
add r8, r9
mov edx, esi
mov ecx, 0x18
call r8
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140015fbe
mov dword [rsp + 0x40], 0x438
lea rdx, [rsp + 0x40]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_Module32FirstW]
jmp 0x140015fac
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp qword [rsp + 0x68], rax
je 0x140015f9e
lea rdx, [rsp + 0x70]
lea rcx, [rbp + 0x380]
call fcn.14000435c
nop
mov rax, qword [rbp + 0x3a0]
mov r11, qword [rbp + 0x3a8]
cmp rax, r11
je 0x140015c74
cmp qword [rbp + 0x398], 8
setae bl
lea rcx, [rbp + 0x380]
test bl, bl
cmovne rcx, qword [rbp + 0x380]
mov rdx, qword [rax + 0x10]
mov r8, rax
cmp qword [rax + 0x18], 8
jb 0x140015c1f
mov r8, qword [rax]
cmp rdx, qword [rbp + 0x390]
jne 0x140015c60
test rdx, rdx
je 0x140015c6b
movzx r9d, word [r8]
movzx r10d, word [rcx]
cmp r9w, r10w
jb 0x140015c60
sub r8, rcx
cmp r9w, r10w
ja 0x140015c60
cmp rdx, 1
je 0x140015c6b
dec rdx
add rcx, 2
movzx r9d, word [rcx + r8]
movzx r10d, word [rcx]
cmp r9w, r10w
jae 0x140015c42
add rax, 0x20
cmp rax, r11
je 0x140015c74
jmp 0x140015bfd
cmp rax, r11
jne 0x140015f92
movups xmm0, xmmword [0x140030150]
movups xmmword [rsp + 0x20], xmm0
movsd xmm1, qword [0x140030160]
movsd qword [rsp + 0x30], xmm1
mov eax, dword [0x140030168]
mov dword [rsp + 0x38], eax
cmp word [0x14003016a], r14w
je 0x140015cd7
mov r8d, r14d
lea r9, [rsp + 0x20]
mov eax, 0x4ec4ec4f
mul r8d
shr edx, 4
movzx eax, dx
imul edx, eax, 0x34
movzx eax, r8w
sub ax, dx
add ax, 0x33
xor word [r9], ax
inc r8d
lea r9, [r9 + 2]
cmp r8d, 0xe
jl 0x140015caa
lea rdx, [rsp + 0x20]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
call fcn.140025718
lea rdx, [rbp + 0x380]
cmp qword [rbp + 0x398], 8
cmovae rdx, qword [rbp + 0x380]
mov r8, qword [rbp + 0x390]
mov rcx, rax
call fcn.140027250
lea rdx, [0x14002589c]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
lea rcx, [rbp + 0x380]
call fcn.1400129f4
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x140015da1
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140015da1
mov edi, dword [r10 + 0x20]
add r9d, r12d
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov r11d, 0x883511aa
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x140015d9c
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x140015d7d
cmp r11d, 0x860332ed
je 0x140015da6
test r9d, r9d
jne 0x140015d60
mov rax, qword [rax]
jmp 0x140015d3b
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [r10 + 0x24]
add rax, r8
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r8
mov ecx, 0xa
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r8, qword [rax + 0x30]
movsxd rcx, dword [r8 + 0x3c]
mov r10d, dword [rcx + r8 + 0x88]
add r10, r8
cmp r10, r8
je 0x140015e3d
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140015e3d
mov edi, dword [r10 + 0x20]
add r9d, r12d
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r8]
add rdx, r8
mov r11d, 0x88c582dc
mov cl, byte [rdx]
inc rdx
test cl, cl
je 0x140015e38
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [rdx]
inc rdx
test cl, cl
jne 0x140015e19
cmp r11d, 0x6c46ba0c
je 0x140015e42
test r9d, r9d
jne 0x140015dfc
mov rax, qword [rax]
jmp 0x140015dd7
mov ecx, dword [r10 + 0x1c]
add rcx, r8
mov eax, dword [r10 + 0x24]
add rax, r8
movzx eax, word [rax + r9*2]
mov edx, dword [rcx + rax*4]
add rdx, r8
xor ecx, ecx
call rdx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0x30]
movsxd rcx, dword [rdx + 0x3c]
mov r10d, dword [rcx + rdx + 0x88]
add r10, rdx
cmp r10, rdx
je 0x140015ed8
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140015ed8
mov edi, dword [r10 + 0x20]
add r9d, r12d
lea rcx, [rdi + r9*4]
mov r8d, dword [rcx + rdx]
add r8, rdx
mov r11d, 0xabf055ca
mov cl, byte [r8]
inc r8
test cl, cl
je 0x140015ed3
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [r8]
inc r8
test cl, cl
jne 0x140015eb3
cmp r11d, 0x1285fcdc
je 0x140015edd
test r9d, r9d
jne 0x140015e95
mov rax, qword [rax]
jmp 0x140015e70
mov ecx, dword [r10 + 0x1c]
add rcx, rdx
mov eax, dword [r10 + 0x24]
add rax, rdx
movzx eax, word [rax + r9*2]
mov ecx, dword [rcx + rax*4]
add rcx, rdx
call rcx
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0x30]
movsxd rcx, dword [rdx + 0x3c]
mov r10d, dword [rcx + rdx + 0x88]
add r10, rdx
cmp r10, rdx
je 0x140015f71
mov r9d, dword [r10 + 0x18]
test r9d, r9d
je 0x140015f71
mov edi, dword [r10 + 0x20]
add r9d, r12d
lea rcx, [rdi + r9*4]
mov r8d, dword [rcx + rdx]
add r8, rdx
mov r11d, 0x3058f458
mov cl, byte [r8]
inc r8
test cl, cl
je 0x140015f6c
movsx ecx, cl
xor ecx, r11d
imul r11d, ecx, 0x1000193
mov cl, byte [r8]
inc r8
test cl, cl
jne 0x140015f4c
cmp r11d, 0x273ec148
je 0x140015f76
test r9d, r9d
jne 0x140015f2e
mov rax, qword [rax]
jmp 0x140015f09
mov ecx, dword [r10 + 0x1c]
add rcx, rdx
mov eax, dword [r10 + 0x24]
add rax, rdx
movzx eax, word [rax + r9*2]
mov ecx, dword [rcx + rax*4]
add rcx, rdx
call rcx
nop
lea rcx, [rbp + 0x380]
call fcn.1400042f8
lea rdx, [rsp + 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_Module32NextW]
test eax, eax
jne 0x140015bb6
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rcx, [rbp + 0x3a0]
call fcn.14002483c
mov rcx, qword [rbp + 0x3b8]
xor rcx, rsp
call fcn.140029500
lea r11, [rsp + 0x4c0]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop r12
pop rbp
ret