Function at 0x14010e190
Capabilities:
Access peb ldr_data
Allocate or change rwx memory
Check for software breakpoints
Encode data using xor
Execute shellcode via indirect call
Hash data using fnv
Resolve function by fnv-1a hash
Resolve function by parsing pe exports

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, qword [rsp + 0x38]
cmp byte [rbx], 0xcc
jne 0x14010e838
mov edx, 1
lea r9, [rsp + 0x40]
mov rcx, rbx
lea r8d, [rdx + 0x3f]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x14010e838
mov r8d, dword [rsp + 0x40]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x50], rbp
mov edx, 1
mov qword [rsp + 0x28], rsi
mov rcx, rbx
mov qword [rsp + 0x20], rdi
mov byte [rbx], 0x90
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
xor esi, esi
mov byte [rax], 0
mov r8, qword [0x1402f53d8]
test r8, r8
jne 0x14010e271
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov r10, qword [rcx + 0x10]
mov r9, r10
nop word [rax + rax]
mov rcx, qword [r9 + 0x60]
mov edx, 0x811c9dc5
movzx eax, word [r9 + 0x58]
shr rax, 1
lea r8, [rcx + rax*2]
cmp rcx, r8
je 0x14010e25c
nop word [rax + rax]
movsx eax, byte [rcx]
add rcx, 2
xor eax, edx
imul edx, eax, 0x1000193
cmp rcx, r8
jne 0x14010e240
cmp edx, 0x610c0de3
je 0x14010e2d4
mov rax, qword [r9]
mov r9, rax
cmp rax, r10
jne 0x14010e220
mov r8, rsi
mov qword [0x1402f53d8], r8
movsxd rax, dword [r8 + 0x3c]
mov r9d, esi
mov r11d, dword [rax + r8 + 0x88]
mov ebx, dword [r11 + r8 + 0x20]
nop word [rax + rax]
mov r10d, r9d
mov edx, 0x811c9dc5
lea rax, [rbx + r10*4]
mov ecx, dword [rax + r8]
add rcx, r8
movzx eax, byte [rcx]
inc rcx
test al, al
je 0x14010e2cf
nop dword [rax]
movsx eax, al
lea rcx, [rcx + 1]
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [rcx - 1]
test al, al
jne 0x14010e2b0
cmp edx, 0xe463da3c
je 0x14010e2da
inc r9d
jmp 0x14010e290
mov r8, qword [r9 + 0x30]
jmp 0x14010e26a
mov ecx, dword [r11 + r8 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r11 + r8 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r8
call rax
mov rcx, qword gs:[0x60]
mov rbp, rax
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
nop dword [rax]
mov r10, qword [rcx + 0x30]
movsxd rdx, dword [r10 + 0x3c]
mov ebx, dword [rdx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14010e387
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14010e387
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rax, [rdi + r9*4]
mov edx, dword [rax + r10]
add rdx, r10
movzx eax, byte [rdx]
inc rdx
test al, al
je 0x14010e382
nop
movsx eax, al
lea rdx, [rdx + 1]
xor eax, r8d
imul r8d, eax, 0x1000193
movzx eax, byte [rdx - 1]
test al, al
jne 0x14010e360
cmp r8d, 0x820621f3
je 0x14010e38c
test r9d, r9d
jne 0x14010e340
mov rcx, qword [rcx]
jmp 0x14010e310
mov ecx, dword [rbx + 0x24]
mov r8d, 1
add rcx, r10
movzx edx, word [rcx + r9*2]
lea r9, [rsp + 0x48]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov edx, 0x5000
add rax, r10
mov rcx, rbp
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x14010e447
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x14010e447
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14010e442
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x14010e420
cmp r8d, 0x33b00bc5
je 0x14010e44c
test r9d, r9d
jne 0x14010e400
mov rax, qword [rax]
jmp 0x14010e3d0
mov ecx, dword [rdi + 0x24]
mov edx, 0x5000
add rcx, r10
movzx r8d, word [rcx + r9*2]
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + r8*4]
mov rcx, rbp
add rax, r10
call rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rbp, qword [rsp + 0x50]
mov r8, rax
movsxd rdx, dword [rax + 0x3c]
add rdx, rax
movzx r9d, word [rdx + 0x14]
cmp si, word [rdx + 6]
jae 0x14010e4b5
mov eax, dword [0x1401bc090]
inc si
mov ecx, dword [r9 + rdx + 0x24]
mov word [rcx + r8], ax
movzx eax, byte [0x1401bc092]
mov byte [rcx + r8 + 2], al
cmp si, word [rdx + 6]
jb 0x14010e490
mov rax, qword gs:[0x60]
mov rsi, qword [rsp + 0x28]
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 ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14010e547
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14010e547
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14010e542
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x14010e520
cmp r8d, 0xcded1a85
je 0x14010e54c
test r9d, r9d
jne 0x14010e500
mov rax, qword [rax]
jmp 0x14010e4d0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r10
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 ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14010e5f7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14010e5f7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14010e5f2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x14010e5d0
cmp r8d, 0xf84eee59
je 0x14010e5fc
test r9d, r9d
jne 0x14010e5b0
mov rax, qword [rax]
jmp 0x14010e580
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
xor edx, edx
mov rcx, qword [0x1402f01b8]
add rax, r10
call rax
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14010e6a7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14010e6a7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14010e6a2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x14010e680
cmp r8d, 0xb3002016
je 0x14010e6ac
test r9d, r9d
jne 0x14010e660
mov rax, qword [rax]
jmp 0x14010e630
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r10
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 ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14010e757
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14010e757
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x14010e752
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x1000193
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x14010e730
cmp r8d, 0x2fd4df39
je 0x14010e75c
test r9d, r9d
jne 0x14010e710
mov rax, qword [rax]
jmp 0x14010e6e0
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r10
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 ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x14010e807
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x14010e807
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x811c9dc5
lea rcx, [rdi + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x14010e802
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x14010e7e0
cmp r8d, 0xe80fd3a
je 0x14010e80c
test r9d, r9d
jne 0x14010e7c0
mov rax, qword [rax]
jmp 0x14010e790
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
xor ecx, ecx
add rax, r10
call rax
mov rdi, qword [rsp + 0x20]
mov qword [0], 1
add rsp, 0x30
pop rbx
ret