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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r14, qword [rcx + 0x180]
mov r13, r8
mov qword [rsp + 0x30], r14
mov r15, rcx
test r14, r14
je 0x14016c9b0
cmp dword [rcx + 0x30], 0
jne 0x14016c9b0
cmp qword [r8 + 8], 0
jne 0x14016c9b0
mov ebp, dword [r8 + 0x40]
bt ebp, 8
jb 0x14016c9b0
mov rdi, qword [r8 + 0x10]
lea r12, [0x1402ced20]
nop word [rax + rax]
movsxd rsi, dword [r14]
xor ebx, ebx
xor r10d, r10d
test rsi, rsi
jle 0x14016c997
lea r11, [r14 + 0x10]
nop word [rax + rax]
mov r9, qword [r11]
mov rax, rdi
sub r9, rdi
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [r9 + rax]
cmp edx, ecx
jne 0x14016c971
test edx, edx
jne 0x14016c980
movsxd rax, ebx
add r14, 0x10
lea rcx, [rax + rax*2]
shl rcx, 4
add r14, rcx
mov qword [rsp + 0x98], r14
je 0x14016c9b0
mov rdx, qword [r14 + 0x18]
mov r12, 0xffffffffffffffff
mov rbx, qword [r15]
test rdx, rdx
je 0x14016c9ca
mov r8, qword [r14]
mov rcx, r15
call fcn.140182940
mov eax, 2
jmp 0x14016c9b2
movzx r8d, byte [rcx + r12]
movzx edx, byte [rdx + r12]
cmp edx, r8d
jne 0x14016c985
inc rax
jmp 0x14016c920
inc ebx
inc r10
add r11, 0x30
cmp r10, rsi
jl 0x14016c910
cmp dword [r14 + 4], 0
jne 0x14016c9b0
mov r14, qword [r14 + 8]
mov qword [rsp + 0x30], r14
test r14, r14
jne 0x14016c8f0
xor eax, eax
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test bpl, 4
je 0x14016c9e9
mov r8, rdi
lea rdx, str._s_is_not_a_function
mov rcx, r15
call fcn.140182940
mov eax, 2
jmp 0x14016c9b2
test rbx, rbx
je 0x14016c9fd
mov edx, 0x78
mov rcx, rbx
call fcn.14017f9f0
jmp 0x14016ca07
mov ecx, 0x78
call fcn.140196750
mov r15, rax
test rax, rax
je 0x14016c96a
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r15], xmm0
movups xmmword [r15 + 0x10], xmm0
movups xmmword [r15 + 0x20], xmm0
movups xmmword [r15 + 0x30], xmm0
movups xmmword [r15 + 0x40], xmm0
movups xmmword [r15 + 0x50], xmm0
movups xmmword [r15 + 0x60], xmm0
mov qword [r15 + 0x70], rax
mov rsi, qword [r14 + 0x20]
test rsi, rsi
jne 0x14016ca9e
test rbx, rbx
je 0x14016ca59
lea edx, [rax + 0x14]
mov rcx, rbx
call fcn.14017f9f0
jmp 0x14016ca63
mov ecx, reloc.WS2_32.dll_sendto
call fcn.140196750
mov rsi, rax
test rax, rax
je 0x14016cabe
mov rcx, qword [rsp + 0x80]
lea rdx, [0x14017f880]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsi], xmm0
mov dword [rsi + 0x10], eax
mov r8, rsi
mov qword [r14 + 0x20], rsi
call fcn.14019a230
test rax, rax
je 0x14016cac2
movzx eax, byte [r14 + 0x28]
mov byte [rsi + 0x12], al
mov qword [r13 + 0x20], r15
mov dword [r15 + 0x3c], 1
mov rbp, qword [r14]
test rbp, rbp
jne 0x14016cb49
xor r14d, r14d
jmp 0x14016cb8c
mov qword [r14 + 0x20], rsi
test rbx, rbx
je 0x14016cb37
cmp qword [rbx + 0x2e0], 0
je 0x14016cae6
mov rdx, r15
mov rcx, rbx
call fcn.14015eb90
mov eax, 2
jmp 0x14016c9b2
cmp r15, qword [rbx + 0x1d0]
jae 0x14016cb37
cmp r15, qword [rbx + 0x1c0]
jb 0x14016cb13
mov rax, qword [rbx + 0x1b8]
mov qword [r15], rax
mov eax, 2
mov qword [rbx + 0x1b8], r15
jmp 0x14016c9b2
cmp r15, qword [rbx + 0x1c8]
jb 0x14016cb37
mov rax, qword [rbx + 0x1a8]
mov qword [r15], rax
mov eax, 2
mov qword [rbx + 0x1a8], r15
jmp 0x14016c9b2
mov rcx, r15
call fcn.14012f320
mov eax, 2
jmp 0x14016c9b2
mov rdi, r12
nop dword [rax]
inc rdi
cmp byte [rdi + rbp], 0
jne 0x14016cb50
inc rdi
test rbx, rbx
je 0x14016cb6e
mov rdx, rdi
mov rcx, rbx
call fcn.14017f9f0
jmp 0x14016cb76
mov rcx, rdi
call fcn.140196750
mov r14, rax
test rax, rax
je 0x14016cb8c
mov r8, rdi
mov rdx, rbp
mov rcx, rax
call fcn.14026bb50
or dword [r15 + 0x40], 0x4200
mov eax, 0xc8
mov qword [r15], r14
xor r8d, r8d
mov r14, qword [rsp + 0x98]
mov rcx, rbx
mov word [r15 + 0x44], r12w
mov word [r15 + 0x4a], ax
mov rdx, qword [r14 + 0x10]
call fcn.1401a7030
mov qword [r13 + 0x28], rax
cmp byte [rbx + 0x63], 0
jne 0x14016c96a
or dword [rax + 4], 0x4000000
or dword [r13 + 0x40], 0x80
mov qword [r13 + 0x68], rsi
inc dword [rsi]
cmp dword [rsi], 2
jl 0x14016cbef
cmp byte [rsi + 0x12], 1
jne 0x14016cbef
mov byte [rsi + 0x12], 0
mov rsi, qword [r13 + 0x28]
mov rdi, rsi
movzx ecx, byte [rsi]
lea eax, [rcx + 0x7b]
cmp al, 1
jbe 0x14016ccdc
xor ebp, ebp
mov r12, qword [rsp + 0x80]
lea rax, str.circular_reference:__s
mov r13, qword [rsp + 0x30]
mov qword [r14 + 0x18], rax
mov rbx, qword [r12 + 0x180]
mov qword [r12 + 0x180], r13
test dword [rsi + 4], 0x2000
je 0x14016cdc8
mov rax, qword [rsi + 0x68]
mov rdx, rdi
mov rcx, qword [rsp + 0x88]
mov qword [rdi + 0x68], rax
call fcn.1401c0570
mov qword [rdi + 0x68], 0
test eax, eax
jne 0x14016cde3
mov rdi, qword [rsp + 0x88]
mov qword [r12 + 0x180], r13
mov rcx, rsi
mov rax, qword [rsi + 0x50]
test rax, rax
je 0x14016cc8c
nop
mov rcx, rax
mov rax, qword [rax + 0x50]
test rax, rax
jne 0x14016cc80
mov rax, qword [r14 + 8]
mov rdx, qword [rcx + 0x20]
test rax, rax
je 0x14016cdf8
test rdx, rdx
je 0x14016cdf5
mov ecx, dword [rax]
mov r9d, dword [rdx]
cmp r9d, ecx
je 0x14016cdf5
mov r8, qword [r14]
lea rdx, str.table__s_has__d_values_for__d_columns
mov dword [rsp + 0x20], ecx
mov rcx, r12
call fcn.140182940
mov eax, 2
mov qword [r12 + 0x180], rbx
jmp 0x14016c9b2
mov ebp, 1
lea r13, [0x1402ced20]
cmp cl, byte [rsi]
jne 0x14016cc06
mov rbx, qword [rdi + 0x28]
xor r11d, r11d
cmp dword [rbx], r11d
jle 0x14016cd75
lea r9, [rbx + 0x48]
cmp qword [r9 - 0x38], 0
jne 0x14016cd69
mov r8, qword [r9 - 0x30]
test r8, r8
je 0x14016cd69
mov r10, qword [r14]
sub r10, r8
nop word [rax + rax]
movzx ecx, byte [r8]
movzx eax, byte [r10 + r8]
cmp ecx, eax
jne 0x14016cd91
test ecx, ecx
jne 0x14016cd9f
mov qword [r9 - 0x20], r15
inc dword [r15 + 0x3c]
or dword [r9], 0x20
mov eax, dword [rdi + 4]
bt eax, 0xd
jb 0x14016cda7
bts eax, 0xd
mov dword [rdi + 4], eax
test r12d, r12d
jns 0x14016cd65
mov rcx, qword [rsp + 0x80]
mov eax, dword [rcx + 0x34]
mov r12d, eax
inc eax
mov dword [rcx + 0x34], eax
mov dword [r9 + 4], r12d
inc r11d
add r9, 0x70
cmp r11d, dword [rbx]
jl 0x14016cd00
test dword [rdi + 4], 0x2000
je 0x14016cc06
mov rax, qword [rdi + 0x50]
mov rdi, rax
movzx ecx, byte [rax]
jmp 0x14016cce8
movzx edx, byte [rax + r13]
movzx ecx, byte [rcx + r13]
cmp ecx, edx
jne 0x14016cd69
inc r8
jmp 0x14016cd20
mov r8, qword [r14]
lea rdx, str.multiple_references_to_recursive_table:__s
mov rcx, qword [rsp + 0x80]
call fcn.140182940
mov eax, 2
jmp 0x14016c9b2
mov rdi, qword [rsp + 0x88]
mov rdx, rsi
mov rcx, rdi
call fcn.1401c0570
test eax, eax
je 0x14016cc6b
mov qword [r12 + 0x180], rbx
mov eax, 2
jmp 0x14016c9b2
mov rdx, rax
lea r9, [r15 + 8]
mov rcx, r12
lea r8, [r15 + 0x46]
call fcn.14017c7e0
test ebp, ebp
je 0x14016ce34
test dword [rsi + 4], 0x2000
lea rdx, str.recursive_reference_in_a_subquery:__s
lea rcx, str.multiple_recursive_references:__s
cmove rcx, rdx
mov rdx, rsi
mov qword [r14 + 0x18], rcx
mov rcx, rdi
call fcn.1401c0570
mov qword [r14 + 0x18], 0
mov eax, 1
mov qword [r12 + 0x180], rbx
jmp 0x14016c9b2