Function at 0x14012d014
Capabilities:
Access peb ldr_data
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov rax, qword [0x140342f40]
xor r12d, r12d
test rax, rax
jne 0x14012d27a
mov r9d, r12d
mov dword [rsp + 0x2c], r12d
mov r11d, 0xc1d5565c
mov dword [rsp + 0x28], r11d
mov rax, qword gs:[0x60]
mov qword [rsp + 0xc0], rax
mov rax, qword [rax + 0x18]
mov qword [rsp + 0xc0], rax
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0xc0], rcx
mov r8, qword [rcx]
mov qword [rsp + 0x50], r8
mov r14, r8
mov qword [rsp + 0x58], r8
mov rax, r8
mov r13d, 0x811c9dc5
movups xmm0, xmmword [rax + 0x58]
movups xmmword [rsp + 0x60], xmm0
movd eax, xmm0
sub ax, 8
mov word [rsp + 0x60], ax
test r9d, r9d
je 0x14012d0ee
mov rcx, qword [rsp + 0x68]
movzx eax, ax
shr rax, 1
lea r10, [rcx + rax*2]
mov edx, r13d
mov qword [rsp + 0x40], rcx
cmp rcx, r10
je 0x14012d0e5
movsx eax, byte [rcx]
xor eax, edx
imul edx, eax, 0x1000193
mov dword [rsp + 0xc0], edx
add rcx, 2
jmp 0x14012d0c3
cmp edx, r9d
jne 0x14012d24b
mov rbx, qword [r8 + 0x30]
mov qword [rsp + 0x78], rbx
movsxd rax, dword [rbx + 0x3c]
add rax, rbx
mov qword [rsp + 0xc0], rax
mov rax, qword [rax + 0x88]
mov qword [rsp + 0xc8], rax
mov edi, eax
add rdi, rbx
mov qword [rsp + 0x80], rdi
shr rax, 0x20
mov dword [rsp + 0x88], eax
cmp rdi, rbx
je 0x14012d24b
mov esi, dword [rdi + 0x18]
mov dword [rsp + 0xc0], esi
mov dword [rsp + 0x24], esi
mov ecx, esi
dec esi
mov dword [rsp + 0x24], esi
test ecx, ecx
je 0x14012d24b
mov edx, dword [rdi + 0x20]
add rdx, rbx
mov r10d, dword [rdx + rsi*4]
add r10, rbx
mov qword [rsp + 0xc0], r10
mov qword [rsp + 0x48], r10
mov edx, r13d
movsx ecx, byte [r10]
inc r10
mov qword [rsp + 0x48], r10
test cl, cl
jne 0x14012d394
cmp edx, r11d
jne 0x14012d38f
mov edx, dword [rdi + 0x1c]
add rdx, rbx
mov ecx, dword [rdi + 0x24]
add rcx, rbx
movzx ecx, word [rcx + rsi*2]
mov r8d, dword [rdx + rcx*4]
add r8, rbx
mov qword [rsp + 0xc0], r8
cmp r8, rdi
jbe 0x14012d382
lea rcx, [rdi + rax]
cmp r8, rcx
jae 0x14012d382
mov r9d, r13d
mov dword [rsp + 0xc0], r13d
mov r11d, r13d
mov dword [rsp + 0xc4], r13d
mov ecx, r13d
mov qword [rsp + 0x30], r8
cmp byte [r8], 0x2e
je 0x14012d20c
movsx eax, byte [r8]
xor eax, ecx
imul r9d, eax, 0x1000193
mov dword [rsp + 0xc0], r9d
mov dword [rsp + 0xc0], r9d
inc r8
mov ecx, r9d
jmp 0x14012d1dc
inc r8
mov qword [rsp + 0x30], r8
cmp byte [r8], r12b
je 0x14012d239
movsx eax, byte [r8]
xor eax, r11d
imul r11d, eax, 0x1000193
mov dword [rsp + 0xc0], r11d
mov dword [rsp + 0xc4], r11d
jmp 0x14012d20c
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x2c], r9d
mov r8, qword [r14]
mov qword [rsp + 0x50], r8
mov r8, qword [r8]
mov rax, r8
mov qword [rsp + 0x50], r8
cmp r8, r14
je 0x14012d265
cmp qword [r8 + 0x30], r12
jne 0x14012d096
mov r8, r12
mov qword [rsp + 0xc0], r12
mov qword [0x140342f40], r8
mov rax, r8
mov qword [rsp + 0xc0], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x40010005
call rax
mov dword [rsp + 0x38], r12d
call fcn.1401379e8
movsx r9d, al
call fcn.1401379e4
movsx ecx, al
imul r9d, ecx
call fcn.1401379f4
movsx r11d, al
imul r10d, r9d, 7
add r10d, r11d
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
xorps xmm2, xmm2
cvtsi2sd xmm2, rax
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
movsx eax, byte [reloc.WS2_32.dll_closesocket]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
mulsd xmm1, xmm2
movsd qword [rsp + 0xc0], xmm1
lea ecx, [r9 + r11]
movsx eax, byte [reloc.WS2_32.dll_htons]
lea ecx, [rcx + r9*4]
add eax, ecx
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14012d3a1
call fcn.1401379ec
movsx edx, al
movsx eax, byte [0x140341580]
imul edx, eax
lea r8d, [rdx + rdx*4]
add r8d, r8d
call fcn.1401379f8
movsx ecx, al
sub r8d, ecx
call fcn.1401379f0
movsx ecx, al
add r8d, ecx
movsx eax, byte [reloc.WS2_32.dll_closesocket]
mov ecx, eax
add ecx, r8d
je 0x14012d3a1
mov dword [rsp + 0x20], 9
jmp 0x14012d3fd
mov qword [rsp + 0xc0], r8
jmp 0x14012d270
jmp 0x14012d144
xor ecx, edx
imul edx, ecx, 0x1000193
jmp 0x14012d171
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r10d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
je 0x14012d3fd
movsx eax, byte [reloc.WS2_32.dll_htons]
add eax, r11d
add eax, r9d
movsx ecx, byte [reloc.WS2_32.dll_htonl]
xor edx, edx
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
mov ecx, eax
xorps xmm0, xmm0
cvtsi2sd xmm0, rcx
mulsd xmm0, qword [rsp + 0xc0]
cvttsd2si ecx, xmm0
mov dword [rsp + 0x20], ecx
cmp r12d, dword [rsp + 0x20]
jge 0x14012d40b
mov al, 1
jmp 0x14012d5c7
jmp 0x14012d5c7
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret