Function at 0x14016bb80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r14, rax
xor r10d, r10d
mov r12d, r10d
movsxd rcx, dword [rax + 0x3c]
mov esi, dword [rcx + rax + 0x88]
add rsi, rax
mov eax, dword [rsi + 0x1c]
mov r9d, dword [rsi + 0x20]
add rax, r14
mov qword [rsp + 0x38], rax
add r9, r14
mov eax, dword [rsi + 0x24]
add rax, r14
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x30], rax
call fcn.140167c74
movsx ebx, al
call fcn.140167c78
movsx ecx, al
imul ebx, ecx
call fcn.140167c84
mov r13d, dword [rsp + 0xa0]
lea r15d, [rbx + rbx*8]
movsx edi, al
lea eax, [rbx + rbx*2]
imul r11d, ebx, 7
lea ecx, [rdi + rax*2]
mov dword [rsp + 0x24], ecx
add r11d, edi
mov dword [rsp + 0xa8], r11d
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
add eax, ecx
xorps xmm2, xmm2
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
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 + 0x28], 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 0x14016bcc7
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 0x14016bcc7
mov r13d, 1
jmp 0x14016bd1f
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, edi
add eax, r15d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14016bd1f
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [rbx + rdi]
lea ecx, [rcx + rbx*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 + 0x28]
cvttsd2si r13d, xmm0
cmp r12d, r13d
jge 0x14016bff7
mov ebp, r10d
cmp dword [rsi + 0x14], r10d
jbe 0x14016bfe3
mov eax, ebp
mov ecx, dword [r9 + rax*4]
add rcx, r14
call fcn.14016c174
mov r11d, dword [rsp + 0xa8]
mov r9d, eax
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r11d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
xor r10d, r10d
cmp eax, ecx
je 0x14016bfd3
movsx eax, byte [reloc.WS2_32.dll_getsockopt]
cmp r9d, dword [rsp + 0x98]
movd xmm1, eax
movsx eax, byte [reloc.WS2_32.dll_closesocket]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
mov eax, r10d
sete al
xor edx, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm0
subsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm1, xmm0
movsd qword [rsp + 0x28], 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 0x14016be1b
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 0x14016be1b
mov dword [rsp + 0xa0], 1
jmp 0x14016be79
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, edi
add eax, r15d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14016be79
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
lea ecx, [rbx + rdi]
lea ecx, [rcx + rbx*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 + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0xa0], eax
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, edi
lea eax, [rax + rbx*2]
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
sub eax, ecx
imul eax, dword [rsp + 0xa0]
test eax, eax
je 0x14016bfd3
mov rcx, qword [rsp + 0x30]
lea r10d, [rdi + rbx*2]
xor edx, edx
mov eax, ebp
add r10d, ebx
xorps xmm2, xmm2
movzx eax, word [rcx + rax*2]
mov rcx, qword [rsp + 0x38]
mov r9d, dword [rcx + rax*4]
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add r9, r14
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
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 + 0x28], 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 0x14016bf70
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 0x14016bfef
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
xor edx, edx
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, edi
add eax, r15d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
cmp eax, ecx
je 0x14016bfc8
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]
xorps xmm0, xmm0
sub eax, ecx
cvtsi2sd xmm0, rax
mulsd xmm0, qword [rsp + 0x28]
cvttsd2si eax, xmm0
mov dword [rsp + 0x20], eax
jmp 0x14016bfcc
mov eax, dword [rsp + 0x20]
xor r10d, r10d
test eax, eax
jg 0x14016bfef
mov r9, qword [rsp + 0x40]
inc ebp
cmp ebp, dword [rsi + 0x14]
jb 0x14016bd35
mov ecx, dword [rsp + 0x24]
inc r12d
jmp 0x14016bc17
mov rax, r9
jmp 0x14016c159
call fcn.140167c84
movsx r10d, al
xor edx, edx
movsx eax, byte [reloc.OLEAUT32.dll_VariantCopy]
add r10d, r15d
movsx ecx, byte [reloc.OLEAUT32.dll_VariantClear]
add eax, r10d
div ecx
movsx ecx, byte [reloc.WS2_32.dll_accept]
xorps xmm2, xmm2
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 + 0xa0], 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 0x14016c0d4
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 0x14016c157
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 0x14016c14a
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 + 0xa0]
cvttsd2si eax, xmm0
jmp 0x14016c151
mov eax, dword [rsp + 0xa0]
xor ecx, ecx
cmp ecx, eax
jge 0x14016c159
xor eax, eax
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret