Function at 0x140123890
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using murmur2
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push rbp
push r14
lea rbp, [rsp - 0x4f]
sub rsp, 0x88
cmp byte [rcx + 0x40], 0
mov r14, rcx
mov qword [rsp + 0x78], r13
mov dword [rbp - 0x19], 0
jne 0x1401238bd
call fcn.1401274f0
mov dword [rbp - 0x19], eax
mov r13, qword [r14 + 0x30]
mov byte [r14 + 0x40], 1
test r13, r13
je 0x140123c26
cmp qword [r14 + 0x18], 0
je 0x140123c26
movzx eax, byte [0x14016ded0]
mov cl, 0x18
xor al, cl
mov qword [rsp + 0xa8], rbx
mov byte [rbp + 0x27], al
movzx eax, byte [0x14016ded1]
xor al, cl
movsx ebx, cl
mov byte [rbp + 0x28], al
movzx eax, byte [0x14016ded2]
xor al, cl
mov byte [rbp - 9], cl
mov byte [rbp + 0x29], al
movzx eax, byte [0x14016ded3]
xor al, cl
mov qword [rsp + 0xb0], rsi
mov byte [rbp + 0x2a], al
movzx eax, byte [0x14016ded4]
xor al, cl
mov qword [rsp + 0xb8], rdi
mov byte [rbp + 0x2b], al
movzx eax, byte [0x14016ded5]
xor al, cl
mov byte [rbp + 0x2c], al
movzx eax, byte [0x14016ded6]
xor al, cl
mov byte [rbp + 0x2d], al
movzx eax, byte [0x14016ded7]
xor al, cl
mov byte [rbp + 0x2e], al
movzx eax, byte [0x14016ded8]
xor al, cl
mov byte [rbp + 0x2f], al
movzx eax, byte [0x14016ded9]
xor al, cl
mov byte [rbp + 0x30], al
movzx eax, byte [0x14016deda]
xor al, cl
mov byte [rbp + 0x31], al
movzx eax, byte [0x14016dedb]
xor al, cl
mov byte [rbp + 0x32], al
movzx eax, byte [0x14016dedc]
xor al, cl
mov byte [rbp + 0x33], al
movzx eax, byte [0x14016dedd]
xor al, cl
mov byte [rbp + 0x34], al
movzx eax, byte [0x14016dede]
xor al, cl
mov ecx, ebx
mov byte [rbp + 0x35], al
xor eax, eax
mov byte [rbp + 0x36], al
call fcn.140013f00
add ebx, eax
cmp ebx, 0xfffffff0
jg 0x1401239cb
mov edx, 0x84
call fcn.140128630
cmp ebx, 0xffffffb7
jg 0x1401239da
mov edx, 0x9d
call fcn.140128630
imul eax, ebx, 0x5bd1e995
lea r8, [rbp - 5]
mov edi, 8
mov r9d, edi
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r10d, ecx, 0x5bd1e995
xor edx, edx
nop dword [rax]
mov eax, r10d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub r9, 1
jne 0x140123a00
mov ebx, 0xf
lea r8, [rbp - 5]
mov r9d, ebx
lea rdx, [rbp + 0x27]
call fcn.14011c9b0
movsx esi, byte [rbp - 9]
mov ecx, esi
mov qword [rbp + 0x1f], rax
call fcn.140013f00
add esi, eax
cmp esi, 0xfffffff0
jg 0x140123a6c
lea edx, [rbx + 0x75]
call fcn.140128630
cmp esi, 0xffffffb7
jg 0x140123a7b
mov edx, 0x9d
call fcn.140128630
imul eax, esi, 0x5bd1e995
lea r8, [rbp - 5]
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul r9d, ecx, 0x5bd1e995
xor edx, edx
nop word [rax + rax]
mov eax, r9d
lea r8, [r8 + 4]
xor eax, edx
add edx, 0x5bd1e995
imul ecx, eax, 0x286a90b9
xor ecx, 0xaa2a7357
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov dword [r8 - 4], eax
sub rdi, 1
jne 0x140123aa0
mov r9d, dword [0x140196874]
lea r8, [rbp - 5]
mov rdx, qword [rbp + 0x1f]
call fcn.14011cb00
mov rsi, rax
test rax, rax
je 0x140123b0f
movzx ecx, byte [rbp - 9]
nop dword [rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rbx, 1
jne 0x140123b00
mov byte [rsi + 0xf], bl
mov rax, qword gs:[0x60]
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x70], r15
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rdi, qword [rax]
cmp qword [rdi + 0x60], 0
je 0x140123bfa
mov eax, 0x5a4d
mov r11, qword [rdi + 0x30]
mov rdi, qword [rdi]
test r11, r11
je 0x140123bef
cmp word [r11], ax
jne 0x140123bfa
movsxd rax, dword [r11 + 0x3c]
cmp dword [rax + r11], 0x4550
jne 0x140123bfa
mov ecx, dword [rax + r11 + 0x88]
test ecx, ecx
je 0x140123bfa
mov r15d, dword [r11 + rcx + 0x1c]
lea rax, [r11 + rcx]
mov r9d, dword [rax + 0x20]
add r15, r11
mov r12d, dword [rax + 0x24]
add r9, r11
mov ebx, dword [rax + 0x18]
add r12, r11
xor r10d, r10d
test ebx, ebx
je 0x140123bea
mov eax, dword [r9]
xor dl, dl
add rax, r11
cmp byte [rax], dl
je 0x140123bde
mov r8, rsi
sub r8, rax
movzx ecx, byte [r8 + rax]
test cl, cl
je 0x140123bda
cmp byte [rax], cl
jne 0x140123bde
inc rax
mov dl, 1
cmp byte [rax], 0
jne 0x140123bb2
movsxd rax, r10d
movzx ecx, word [r12 + rax*2]
mov eax, dword [r15 + rcx*4]
add rax, r11
jmp 0x140123bfc
test dl, dl
jne 0x140123bc9
inc r10d
add r9, 4
cmp r10d, ebx
jb 0x140123ba0
mov eax, 0x5a4d
cmp qword [rdi + 0x60], 0
jne 0x140123b40
xor eax, eax
mov rcx, r13
call rax
mov r15, qword [rsp + 0x70]
mov r12, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xa8]
mov rdx, qword [r14 + 0x18]
mov r13, qword [rsp + 0x78]
mov qword [r14 + 0x30], 0
test rdx, rdx
je 0x140123c41
call fcn.140128850
mov rdx, qword [r14 + 8]
mov qword [r14 + 0x18], 0
test rdx, rdx
je 0x140123c5e
cmp byte [r14 + 0x10], 0
je 0x140123c5e
call fcn.140128850
mov eax, dword [rbp - 0x19]
mov qword [r14 + 8], 0
mov byte [r14 + 0x10], 0
add rsp, 0x88
pop r14
pop rbp
ret