Function at 0x140004120
Capabilities:
Access peb ldr_data
Encode data using xor
Get process filename
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x80
mov rdx, rcx
cmp qword [rcx + 0x18], 0xf
jbe 0x14000414d
mov r9, qword [rcx]
mov rdx, r9
add r9, qword [rcx + 0x10]
jmp 0x140004154
mov r9, qword [rcx + 0x10]
add r9, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
xor ebp, ebp
cmp rdx, r9
jne 0x140004181
movdqa xmm0, xmmword [0x140021d30]
movdqu xmmword [rsp + 0x40], xmm0
mov word [rsp + 0x30], bp
jmp 0x14000418f
sub r9, rdx
lea rcx, [rsp + 0x30]
call fcn.140006960
nop
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x140004214
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x140004214
mov r11d, dword [rbx + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r11 + r9*4]
mov r8d, dword [rdx + r10]
add r8, r10
mov edx, 0x24f0afc4
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14000420f
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x1400041f0
cmp edx, 0x9785814a
je 0x140004219
test r9d, r9d
jne 0x1400041d0
mov rax, qword [rax]
jmp 0x1400041a0
mov edx, dword [rbx + 0x1c]
add rdx, r10
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx ecx, word [rcx + r9*2]
mov eax, dword [rdx + rcx*4]
add rax, r10
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rax
mov rsi, rax
lea rdi, [rsp + 0x30]
cmp qword [rsp + 0x48], 7
cmova rdi, qword [rsp + 0x30]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
nop
mov r10, qword [rcx + 0x30]
movsxd rax, dword [r10 + 0x3c]
mov r11d, dword [rax + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x1400042d4
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x1400042d4
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [rbx + r9*4]
mov r8d, dword [rdx + r10]
add r8, r10
mov edx, 0x828a2093
movzx eax, byte [r8]
inc r8
test al, al
je 0x1400042cf
nop
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [r8]
lea r8, [r8 + 1]
test al, al
jne 0x1400042b0
cmp edx, 0x381d182f
je 0x1400042d9
test r9d, r9d
jne 0x140004290
mov rcx, qword [rcx]
jmp 0x140004260
mov r8d, dword [r11 + 0x1c]
add r8, r10
mov ecx, dword [r11 + 0x24]
add rcx, r10
movzx ecx, word [rcx + r9*2]
mov eax, dword [r8 + rcx*4]
add rax, r10
mov r8d, 4
mov rdx, rdi
mov rcx, rsi
call rax
mov rdi, rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x90], ebp
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
nop
mov r10, qword [rcx + 0x30]
movsxd rax, dword [r10 + 0x3c]
mov r11d, dword [rax + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x1400043a4
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x1400043a4
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [rbx + r9*4]
mov r8d, dword [rdx + r10]
add r8, r10
mov edx, 0x33bc5104
movzx eax, byte [r8]
inc r8
test al, al
je 0x14000439f
nop
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [r8]
lea r8, [r8 + 1]
test al, al
jne 0x140004380
cmp edx, 0x1d8bfe88
je 0x1400043a9
test r9d, r9d
jne 0x140004360
mov rcx, qword [rcx]
jmp 0x140004330
mov edx, dword [r11 + 0x1c]
add rdx, r10
mov ecx, dword [r11 + 0x24]
add rcx, r10
movzx ecx, word [rcx + r9*2]
mov eax, dword [rdx + rcx*4]
add rax, r10
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x20], rcx
mov r9d, 0x24
lea r8, [rsp + 0x50]
xor edx, edx
mov rcx, rdi
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x140004474
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x140004474
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [rbx + r9*4]
mov r8d, dword [rdx + r10]
add r8, r10
mov edx, 0x52b15e21
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14000446f
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x140004450
cmp edx, 0x74224f0c
je 0x140004479
test r9d, r9d
jne 0x140004430
mov rax, qword [rax]
jmp 0x140004400
mov edx, dword [r11 + 0x1c]
add rdx, r10
mov ecx, dword [r11 + 0x24]
add rcx, r10
movzx ecx, word [rcx + r9*2]
mov eax, dword [rdx + rcx*4]
add rax, r10
mov rcx, rdi
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x140004526
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x140004526
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [rbx + r9*4]
mov ecx, dword [rdx + r10]
add rcx, r10
mov r8d, 0xdc21f625
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x140004521
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x140004500
cmp r8d, 0x7b6e6c80
je 0x14000452b
test r9d, r9d
jne 0x1400044e0
mov rax, qword [rax]
jmp 0x1400044b0
mov edx, dword [r11 + 0x1c]
add rdx, r10
mov ecx, dword [r11 + 0x24]
add rcx, r10
movzx ecx, word [rcx + r9*2]
mov eax, dword [rdx + rcx*4]
add rax, r10
mov rcx, rsi
call rax
mov ebx, dword [rsp + 0x6c]
mov rdx, qword [rsp + 0x48]
cmp rdx, 7
jbe 0x14000458b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140004586
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400045a6
call fcn.140007984
mov eax, ebx
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
call fcn.14000dcd8
int3