Function at 0x14015a9f0
Capabilities:
Access peb ldr_data
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
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x140290440]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rdx, qword [0x141718530]
xor r14d, r14d
mov r13, rcx
mov ebx, 1
test rdx, rdx
jne 0x14015ab8e
mov rax, qword gs:[0x60]
mov edi, r14d
mov esi, 0xbb21e02e
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r14, qword [rax]
mov r8, r14
movups xmm0, xmmword [r8 + 0x58]
movd eax, xmm0
sub ax, 8
test edi, edi
je 0x14015aa9d
psrldq xmm0, 8
mov edx, 0x811c9dc5
movzx eax, ax
movq rcx, xmm0
shr rax, 1
lea r9, [rcx + rax*2]
jmp 0x14015aa90
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r9
jne 0x14015aa81
cmp edx, edi
jne 0x14015ab6b
mov r9, qword [r8 + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rax, qword [rax + r9 + 0x88]
mov r10d, eax
add r10, r9
shr rax, 0x20
cmp r10, r9
je 0x14015ab6b
mov r11d, dword [r10 + 0x18]
test r11d, r11d
je 0x14015ab6b
mov r12d, dword [r10 + 0x20]
dec r11d
mov ebp, 0x811c9dc5
lea rcx, [r12 + r11*4]
mov edx, dword [rcx + r9]
add rdx, r9
jmp 0x14015aaf1
movsx ecx, cl
xor ecx, ebp
imul ebp, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, rbx
test cl, cl
jne 0x14015aae6
cmp ebp, esi
je 0x14015ab05
test r11d, r11d
jne 0x14015aad1
jmp 0x14015ab6b
mov edx, dword [r10 + 0x24]
add rdx, r9
movzx r8d, word [rdx + r11*2]
mov edx, dword [r10 + 0x1c]
add rdx, r9
mov edx, dword [rdx + r8*4]
add rdx, r9
cmp rdx, r10
jbe 0x14015ac31
lea rcx, [rax + r10]
cmp rdx, rcx
jae 0x14015ac31
mov edi, 0x811c9dc5
mov esi, edi
jmp 0x14015ab4c
movsx eax, al
xor eax, edi
imul edi, eax, 0x1000193
add rdx, rbx
mov al, byte [rdx]
cmp al, 0x2e
jne 0x14015ab3e
jmp 0x14015ab5f
movsx eax, al
xor eax, esi
imul esi, eax, 0x1000193
add rdx, rbx
mov al, byte [rdx]
test al, al
jne 0x14015ab54
mov r8, qword [r14]
mov rax, qword [r8]
mov r8, rax
cmp rax, r14
je 0x14015ab81
cmp qword [rax + 0x30], 0
jne 0x14015aa55
xor r14d, r14d
mov edx, r14d
mov qword [0x141718530], rdx
mov rcx, r13
call rdx
call fcn.140167c78
movsx edi, al
call fcn.140167c74
movsx ecx, al
imul edi, ecx
call fcn.140167c84
movsx r15d, al
xor edx, edx
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r15d
lea eax, [rax + rdi*4]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14015afd5
mov r8, qword [0x141718528]
test r8, r8
jne 0x14015ad57
mov rax, qword gs:[0x60]
mov esi, r14d
mov ebp, 0xff447f32
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov r12, qword [rax]
mov r8, r12
movups xmm0, xmmword [r8 + 0x58]
movd eax, xmm0
sub ax, 8
test esi, esi
je 0x14015ac55
psrldq xmm0, 8
mov edx, 0x811c9dc5
movzx eax, ax
movq rcx, xmm0
shr rax, 1
lea r9, [rcx + rax*2]
jmp 0x14015ac48
xor r14d, r14d
jmp 0x14015ab87
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
add rcx, 2
cmp rcx, r9
jne 0x14015ac39
cmp edx, esi
jne 0x14015ad38
mov r9, qword [r8 + 0x30]
movsxd rax, dword [r9 + 0x3c]
mov rax, qword [rax + r9 + 0x88]
mov r10d, eax
add r10, r9
shr rax, 0x20
cmp r10, r9
je 0x14015ad38
mov r11d, dword [r10 + 0x18]
test r11d, r11d
je 0x14015ad38
mov edx, dword [r10 + 0x20]
dec r11d
mov r14d, 0x811c9dc5
lea rcx, [r9 + r11*4]
mov edx, dword [rcx + rdx]
add rdx, r9
jmp 0x14015acab
movsx ecx, cl
xor ecx, r14d
imul r14d, ecx, 0x1000193
mov cl, byte [rdx]
add rdx, rbx
test cl, cl
jne 0x14015ac9e
cmp r14d, ebp
je 0x14015acc7
mov edx, dword [r10 + 0x20]
xor r14d, r14d
test r11d, r11d
jne 0x14015ac89
jmp 0x14015ad38
mov edx, dword [r10 + 0x24]
add rdx, r9
movzx r8d, word [rdx + r11*2]
mov edx, dword [r10 + 0x1c]
add rdx, r9
mov r8d, dword [rdx + r8*4]
add r8, r9
cmp r8, r10
jbe 0x14015ae02
lea rcx, [r10 + rax]
cmp r8, rcx
jae 0x14015ae02
mov eax, 0x811c9dc5
mov esi, eax
mov ebp, eax
jmp 0x14015ad10
movsx eax, al
xor eax, esi
imul esi, eax, 0x1000193
add r8, rbx
mov al, byte [r8]
cmp al, 0x2e
jne 0x14015ad02
add r8, rbx
xor r14d, r14d
jmp 0x14015ad2d
movsx eax, al
xor eax, ebp
imul ebp, eax, 0x1000193
add r8, rbx
mov al, byte [r8]
test al, al
jne 0x14015ad1f
mov r8, qword [r12]
mov rax, qword [r8]
mov r8, rax
cmp rax, r12
je 0x14015ad4d
cmp qword [rax + 0x30], r14
jne 0x14015ac05
mov r8, r14
mov qword [0x141718528], r8
lea rdx, [rsp + 0x28]
mov rcx, r13
call r8
test eax, eax
mov rcx, r14
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
xorps xmm2, xmm2
setne cl
imul r11d, edi, 7
xor edx, edx
movd xmm1, eax
movsx eax, byte [reloc.WS2_32.dll_closesocket]
cvtsi2sd xmm2, rcx
add r11d, r15d
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r11d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14015ae0a
call fcn.140167c7c
movsx edx, al
movsx eax, byte [0x141716b78]
imul edx, eax
add edx, edx
call fcn.140167c88
movsx ecx, al
sub edx, ecx
call fcn.140167c80
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
je 0x14015ae0a
lea r9d, [rdi + rdi*8]
jmp 0x14015ae6d
xor r14d, r14d
jmp 0x14015ad50
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea r9d, [rdi + rdi*8]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r9d
add eax, r15d
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14015ae69
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [rdi + r15]
lea ecx, [rcx + rdi*2]
xor edx, edx
add eax, ecx
xorps xmm0, xmm0
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si ebx, xmm0
jmp 0x14015ae6d
mov ebx, dword [rsp + 0x28]
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea r10d, [r9 + r15]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, ebx
test eax, eax
je 0x14015afd5
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea edx, [rdi + rdi*4]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r15d
xorps xmm2, xmm2
lea eax, [rax + rdx*2]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
xor edx, edx
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
movsx eax, byte [reloc.WS2_32.dll_closesocket]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r11d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14015af49
call fcn.140167c7c
movsx edx, al
movsx eax, byte [0x141716b78]
imul edx, eax
add edx, edx
call fcn.140167c88
movsx ecx, al
sub edx, ecx
call fcn.140167c80
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
jne 0x14015afc5
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14015afbc
call fcn.140167c78
movsx edx, al
call fcn.140167c74
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140167c84
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
jmp 0x14015afc0
mov eax, dword [rsp + 0x28]
cmp r14d, eax
jge 0x14015afd5
cmp dword [rsp + 0x28], 0x103
sete al
jmp 0x14015b162
call fcn.140167c78
movsx edx, al
call fcn.140167c74
movsx ecx, al
imul edx, ecx
lea edx, [rdx + rdx*2]
call fcn.140167c84
movsx ecx, al
xorps xmm2, xmm2
lea eax, [rcx + rdx*2]
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
add eax, ecx
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
movsx eax, byte [reloc.WS2_32.dll_closesocket]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0x20], xmm1
call fcn.140167c78
movsx edx, al
call fcn.140167c74
movsx ecx, al
imul edx, ecx
imul r9d, edx, 7
call fcn.140167c84
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14015b0c3
call fcn.140167c7c
movsx edx, al
movsx eax, byte [0x141716b78]
imul edx, eax
add edx, edx
call fcn.140167c88
movsx ecx, al
sub edx, ecx
call fcn.140167c80
movsx ecx, al
add edx, ecx
movsx ecx, byte [reloc.WS2_32.dll_closesocket]
add ecx, edx
jne 0x14015b160
call fcn.140167c78
movsx edx, al
call fcn.140167c74
movsx ecx, al
imul edx, ecx
lea r8d, [rdx + rdx*8]
call fcn.140167c84
movsx ecx, al
xor edx, edx
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add ecx, r8d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14015b157
call fcn.140167c78
movsx edx, al
call fcn.140167c74
movsx ecx, al
imul edx, ecx
lea r9d, [rdx + rdx*2]
call fcn.140167c84
movsx ecx, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx eax, al
xorps xmm0, xmm0
add eax, r9d
add eax, ecx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x20]
cvttsd2si eax, xmm0
jmp 0x14015b15b
mov eax, dword [rsp + 0x28]
cmp r14d, eax
jge 0x14015b162
xor al, al
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1401dad40
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret