Function at 0x14008a110
Capabilities:
Access peb ldr_data
Create thread
Encode data using xor
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 r13
push r14
push r15
lea rbp, [rax - 0x4a8]
sub rsp, 0x580
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
mov rax, qword [0x1400bd040]
xor rax, rsp
mov qword [rbp + 0x420], rax
mov r12, rcx
xor r13d, r13d
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
lea rcx, [rbp + 0x4a8]
movabs rdi, 0xff00ff00ff00ff00
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x70], rcx
mov rax, qword [rcx]
xor rax, rdi
mov qword [rbp - 0x80], rax
mov qword [rcx], r13
lea rcx, str.security_start
call qword [sym.imp.VMProtectSDK64.dll_VMProtectBeginUltra]
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 r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008a224
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a224
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, 0x2eace1a2
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14008a21f
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x14008a200
cmp edx, 0x1610702c
je 0x14008a229
test r9d, r9d
jne 0x14008a1e0
mov rax, qword [rax]
jmp 0x14008a1b0
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
call rax
test eax, eax
jne 0x14008ac3c
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
lea rcx, [rbp + 0x4a8]
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rcx
mov rax, qword [rcx]
xor rax, rdi
mov qword [rsp + 0x50], rax
mov qword [rcx], r13
xor r15b, r15b
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
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 0x14008a304
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a304
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, 0x342412d
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14008a2ff
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x14008a2e0
cmp edx, 0x30e01f28
je 0x14008a309
test r9d, r9d
jne 0x14008a2c0
mov rax, qword [rax]
jmp 0x14008a290
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
call rax
mov esi, eax
xor edx, edx
mov r14d, 0xffffffff
mov r8d, 0x234
lea rcx, [rbp - 0x5c]
call sub.VCRUNTIME140.dll_memset
mov dword [rbp - 0x60], 0x238
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
nop word [rax + rax]
mov r10, qword [rcx + 0x30]
movsxd rax, dword [r10 + 0x3c]
mov r11d, dword [rax + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008a3d4
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a3d4
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, 0xa95e9b45
movzx eax, byte [r8]
inc r8
test al, al
je 0x14008a3cf
nop
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [r8]
lea r8, [r8 + 1]
test al, al
jne 0x14008a3b0
cmp edx, 0x84120435
je 0x14008a3d9
test r9d, r9d
jne 0x14008a390
mov rcx, qword [rcx]
jmp 0x14008a360
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
xor edx, edx
mov ecx, 2
call rax
mov rdi, rax
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
nop
mov r10, qword [rcx + 0x30]
movsxd rdx, dword [r10 + 0x3c]
mov r11d, dword [rdx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008a484
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a484
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, 0xd046aa41
movzx eax, byte [r8]
inc r8
test al, al
je 0x14008a47f
nop
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [r8]
lea r8, [r8 + 1]
test al, al
jne 0x14008a460
cmp edx, 0xb640d14
je 0x14008a489
test r9d, r9d
jne 0x14008a440
mov rcx, qword [rcx]
jmp 0x14008a410
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 rdx, [rbp - 0x60]
mov rcx, rdi
call rax
test eax, eax
je 0x14008a57b
cmp dword [rbp - 0x58], esi
je 0x14008a577
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 r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008a546
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a546
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, 0xdc166d80
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x14008a541
nop
movsx edx, dl
xor edx, r8d
imul r8d, edx, 0x1000193
movzx edx, byte [rcx]
lea rcx, [rcx + 1]
test dl, dl
jne 0x14008a520
cmp r8d, 0x51ec6f8a
je 0x14008a54b
test r9d, r9d
jne 0x14008a500
mov rax, qword [rax]
jmp 0x14008a4d0
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 rdx, [rbp - 0x60]
mov rcx, rdi
call rax
test eax, eax
jne 0x14008a4b3
jmp 0x14008a57b
mov r14d, dword [rbp - 0x40]
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 r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008a604
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a604
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + rbx]
add r8, r10
mov edx, 0x1143b70a
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14008a5ff
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x14008a5e0
cmp edx, 0x955bd5f0
je 0x14008a609
test r9d, r9d
jne 0x14008a5c0
mov rax, qword [rax]
jmp 0x14008a590
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
xor edx, edx
mov r8d, 0x234
lea rcx, [rbp + 0x1e4]
call sub.VCRUNTIME140.dll_memset
mov dword [rbp + 0x1e0], 0x238
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
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 0x14008a6d4
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a6d4
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + rbx]
add r8, r10
mov edx, 0x23e16c4b
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14008a6cf
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x14008a6b0
cmp edx, 0x1a406abb
je 0x14008a6d9
test r9d, r9d
jne 0x14008a690
mov rax, qword [rax]
jmp 0x14008a660
mov r8d, dword [r11 + 0x1c]
add r8, r10
mov edx, dword [r11 + 0x24]
add rdx, r10
movzx edx, word [rdx + r9*2]
mov eax, dword [r8 + rdx*4]
add rax, r10
xor edx, edx
mov ecx, 2
call rax
mov rsi, rax
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov r10, qword [rcx + 0x30]
movsxd rdx, dword [r10 + 0x3c]
mov r11d, dword [rdx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008a784
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008a784
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + rbx]
add r8, r10
mov edx, 0x978bc8ba
movzx eax, byte [r8]
inc r8
test al, al
je 0x14008a77f
nop
movsx eax, al
xor eax, edx
imul edx, eax, 0x1000193
movzx eax, byte [r8]
lea r8, [r8 + 1]
test al, al
jne 0x14008a760
cmp edx, 0x102a0365
je 0x14008a789
test r9d, r9d
jne 0x14008a740
mov rcx, qword [rcx]
jmp 0x14008a710
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 rdx, [rbp + 0x1e0]
mov rcx, rsi
call rax
test eax, eax
je 0x14008aa3b
mov edi, dword [0x1400bd090]
movdqa xmm6, xmmword [0x1400ac200]
movdqa xmm7, xmmword [0x1400ac1e0]
movdqa xmm9, xmmword [str.00000000]
movdqa xmm10, xmmword [0x1400ac210]
movdqa xmm8, xmmword [0x1400ac7a0]
nop word [rax + rax]
cmp dword [rbp + 0x1e8], r14d
jne 0x14008a97c
movups xmm3, xmmword [str.UIB__GSE]
movups xmmword [rsp + 0x30], xmm3
movsd xmm0, qword [0x1400abd58]
movsd qword [rsp + 0x40], xmm0
movzx eax, word [0x1400abd60]
mov word [rsp + 0x48], ax
mov r8d, r13d
cmp edi, 2
jl 0x14008a901
movdqa xmm2, xmm7
punpckldq xmm2, xmm7
pmuldq xmm2, xmm8
movdqa xmm0, xmm7
punpckhdq xmm0, xmm7
pmuldq xmm0, xmm8
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm7
psrad xmm2, 5
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm10
movdqa xmm0, xmm7
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmm9
movq xmm1, xmm3
xorps xmm2, xmm1
movq qword [rsp + 0x30], xmm2
movdqa xmm2, xmm6
punpckldq xmm2, xmm6
pmuldq xmm2, xmm8
movdqa xmm0, xmm6
punpckhdq xmm0, xmm6
pmuldq xmm0, xmm8
shufps xmm2, xmm0, 0xdd
paddd xmm2, xmm6
psrad xmm2, 5
movdqa xmm1, xmm2
psrld xmm1, 0x1f
paddd xmm1, xmm2
pmulld xmm1, xmm10
movdqa xmm0, xmm6
psubd xmm0, xmm1
pshufhw xmm0, xmm0, 0xd8
pshuflw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
paddw xmm2, xmm9
movq xmm0, qword [rsp + 0x38]
xorps xmm2, xmm0
movq qword [rsp + 0x38], xmm2
mov r8d, 8
movsxd rax, r8d
lea r9, [rsp + 0x30]
lea r9, [r9 + rax*2]
nop dword [rax]
mov eax, 0x92492493
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x38
movzx eax, r8w
sub ax, cx
add ax, 0x30
xor word [r9], ax
inc r8d
lea r9, [r9 + 2]
cmp r8d, 0xd
jl 0x14008a910
lea rax, [rbp + 0x20c]
lea r8, [rsp + 0x30]
sub r8, rax
nop word [rax + rax]
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x14008a974
add rax, 2
test ecx, ecx
jne 0x14008a960
test edx, edx
jne 0x14008aa38
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 r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008aa04
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008aa04
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, 0xf4efb6dd
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14008a9ff
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x14008a9e0
cmp edx, 0x6d1358e7
je 0x14008aa09
test r9d, r9d
jne 0x14008a9c0
mov rax, qword [rax]
jmp 0x14008a990
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 rdx, [rbp + 0x1e0]
mov rcx, rsi
call rax
test eax, eax
jne 0x14008a7f0
jmp 0x14008aa3b
mov r15b, 1
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 r11d, dword [rcx + r10 + 0x88]
add r11, r10
cmp r11, r10
je 0x14008aac4
mov r9d, dword [r11 + 0x18]
test r9d, r9d
je 0x14008aac4
mov ebx, dword [r11 + 0x20]
nop word [rax + rax]
dec r9d
lea rdx, [r10 + r9*4]
mov r8d, dword [rdx + rbx]
add r8, r10
mov edx, 0xc4931613
movzx ecx, byte [r8]
inc r8
test cl, cl
je 0x14008aabf
nop
movsx ecx, cl
xor ecx, edx
imul edx, ecx, 0x1000193
movzx ecx, byte [r8]
lea r8, [r8 + 1]
test cl, cl
jne 0x14008aaa0
cmp edx, 0x84d6c3e7
je 0x14008aac9
test r9d, r9d
jne 0x14008aa80
mov rax, qword [rax]
jmp 0x14008aa50
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
nop
mov rax, qword [rsp + 0x50]
movabs rdi, 0xff00ff00ff00ff00
xor rax, rdi
lea rcx, [rbp + 0x4a8]
mov qword [rcx], rax
test r15b, r15b
jne 0x14008ac3c
mov ecx, 0x10
call fcn.14008b6c0
mov qword [rax], r12
lea rcx, [0x1400871d0]
mov qword [rax + 8], rcx
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r13d
mov r9, rax
lea r8, [0x14008b660]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14008ac2b
cmp dword [rsp + 0x58], 0
je 0x14008ac1f
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x14008ac1f
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x50], xmm0
mov ecx, 0x10
call fcn.14008b6c0
mov qword [rax], r12
lea rcx, [0x140088640]
mov qword [rax + 8], rcx
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r13d
mov r9, rax
lea r8, [0x14008b660]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x14008ac0e
cmp dword [rsp + 0x58], 0
je 0x14008ac02
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x14008ac02
call qword [sym.imp.VMProtectSDK64.dll_VMProtectEnd]
mov al, 1
jmp 0x14008ac3e
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rsp + 0x58], r13d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rsp + 0x58], r13d
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
xor al, al
mov rcx, qword [rbp - 0x80]
xor rcx, rdi
lea rdx, [rbp + 0x4a8]
mov qword [rdx], rcx
mov rcx, qword [rbp + 0x420]
xor rcx, rsp
call fcn.14008b6a0
lea r11, [rsp + 0x580]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret