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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbp
push rdi
push r12
push r13
push r15
sub rsp, 0xa0
mov r15, qword [rcx + 0x10]
xor eax, eax
mov r13, rcx
mov rcx, qword [rcx]
mov rdi, r9
mov rbp, r8
mov r12, rdx
mov qword [rsp + 0x30], r15
mov byte [rsp + 0x50], 0
mov qword [rsp + 0x40], rcx
mov qword [r11 - 0x68], rax
mov qword [r11 - 0x60], rax
mov qword [r11 - 0x58], rax
mov qword [r11 - 0x50], rax
mov qword [r11 - 0x48], rax
test r9, r9
je 0x18009db3f
cmp dword [r9], 0x40
cmovge rdi, rax
movzx edx, word [rsp + 0xf8]
mov qword [rsp + 0x70], rdi
test byte [rcx + 0x50], 0x20
je 0x18009db5a
mov eax, 0xfbff
and dx, ax
mov eax, dword [r12]
mov word [rsp + 0xe8], dx
cmp eax, 0x40
jle 0x18009db92
lea rdx, str.at_most__d_tables_in_a_join
mov r8d, 0x40
mov rcx, r13
call fcn.18001a500
xor eax, eax
add rsp, 0xa0
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret
and dx, 0x40
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0x98], rsi
mov word [rsp + 0x3c], dx
mov edx, 1
mov qword [rsp + 0x90], r14
cmovne eax, edx
mov dword [rsp + 0x38], eax
imul eax, eax, 0x58
add eax, 0x347
and eax, 0xfffffff8
movsxd rsi, eax
lea rdx, [rsi + 0x60]
call fcn.180017520
mov r14, rax
test rax, rax
je 0x18009dbec
lea r8, [rsi + 0x60]
xor edx, edx
mov rcx, rax
call fcn.1800b45b0
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0x55], 0
je 0x18009dc04
mov rdx, r14
call fcn.1800171e0
jmp 0x18009e5f5
or rax, 0xffffffffffffffff
mov qword [r14], r13
mov r13, qword [rsp + 0xf0]
mov qword [rsp + 0x58], rax
mov dword [r14 + 0x50], eax
mov dword [r14 + 0x4c], eax
mov eax, dword [rsp + 0x38]
mov rcx, r15
mov qword [r14 + 8], r12
mov qword [r14 + 0x10], rdi
mov qword [r14 + 0x18], r13
mov byte [r14 + 0x3b], al
call fcn.18003ad30
movzx r12d, word [rsp + 0xe8]
lea r9, [r14 + 0x158]
mov dword [r14 + 0x40], eax
mov dword [r14 + 0x44], eax
mov eax, dword [rsp + 0x100]
mov word [r14 + 0x32], ax
mov rax, qword [rsp + 0xd0]
mov word [r14 + 0x34], r12w
mov eax, dword [rax + 0x1dc]
lea rcx, [r14 + rsi]
xor ebx, ebx
mov dword [r14 + 0x48], eax
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], r9
mov word [rcx + 0x2c], bx
mov dword [rcx + 0x28], ebx
lea rax, [rcx + 0x48]
lea r12, [r14 + 0x54]
mov r8b, 0x48
mov qword [rcx + 0x38], rax
mov eax, 3
mov rdx, rbp
mov word [rcx + 0x30], ax
mov dword [r12], ebx
mov eax, 8
mov dword [r9 + 0x18], eax
lea rax, [r9 + 0x28]
mov rcx, r9
mov qword [r9], r14
mov qword [r9 + 8], rbx
mov dword [r9 + 0x14], ebx
mov qword [r9 + 0x20], rax
call fcn.180097dd0
mov rax, qword [rsp + 0x68]
mov esi, ebx
cmp dword [rax + 0x14], ebx
jle 0x18009dd4d
mov r13, qword [rsp + 0xd0]
mov ebp, dword [rsp + 0x38]
nop
test ebp, ebp
je 0x18009dd0a
mov rcx, qword [rax + 0x20]
mov rcx, qword [rcx + rbx]
call fcn.1800530e0
test eax, eax
je 0x18009dd33
mov rax, qword [rsp + 0x68]
mov rdx, qword [rax + 0x20]
mov r8d, dword [r14 + 0x44]
mov r9d, reloc.WS2_32.dll_recv
mov rdx, qword [rdx + rbx]
mov rcx, r13
call fcn.180057850
mov r11, qword [rsp + 0x68]
mov rax, qword [r11 + 0x20]
or word [rax + rbx + 0x1c], 4
mov rax, qword [rsp + 0x68]
inc esi
add rbx, 0x38
cmp esi, dword [rax + 0x14]
jl 0x18009dcf0
mov r13, qword [rsp + 0xf0]
xor ebx, ebx
cmp dword [rsp + 0x38], 0
mov ecx, 0x400
jne 0x18009dd74
test rdi, rdi
je 0x18009dd65
movzx eax, byte [rdi]
mov byte [r14 + 0x36], al
test word [rsp + 0xe8], cx
je 0x18009dd74
mov byte [r14 + 0x3a], 1
mov rbp, qword [rsp + 0xd8]
cmp dword [rbp], 0
jle 0x18009ddd2
mov r15, qword [rsp + 0xd0]
lea rsi, [rbp + 0x50]
nop
movsxd rcx, dword [r12]
mov eax, dword [rsi]
lea r8, [r14 + 0x158]
mov dword [r12 + rcx*4 + 4], eax
inc dword [r12]
movsxd rax, ebx
imul rax, rax, 0x78
lea rdx, [rax + rbp + 8]
mov rcx, r15
call fcn.180098190
inc ebx
add rsi, 0x78
cmp ebx, dword [rbp]
jl 0x18009dd90
mov r13, qword [rsp + 0xf0]
mov r15, qword [rsp + 0x30]
lea rax, [r14 + 0x158]
mov ebx, dword [rax + 0x14]
dec ebx
js 0x18009de02
lea rdx, [r14 + 0x158]
mov r8d, ebx
mov rcx, rbp
call fcn.180097310
dec ebx
jns 0x18009dde0
mov r15, qword [rsp + 0x30]
lea rax, [r14 + 0x158]
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x18009e5d8
movzx esi, word [rsp + 0xe8]
mov rbx, qword [rsp + 0xd0]
mov ecx, 0x400
and si, cx
je 0x18009de5b
mov r9, r13
mov r8, rax
mov rdx, rbp
mov rcx, rbx
call fcn.180098af0
test eax, eax
je 0x18009de48
mov byte [r14 + 0x3a], 1
jmp 0x18009de5b
test rdi, rdi
jne 0x18009de5b
mov eax, 0x200
mov qword [r14 + 0x10], r13
or word [r14 + 0x34], ax
mov edi, dword [rsp + 0x38]
cmp edi, 1
jne 0x18009de7d
mov rdx, qword [rsp + 0x60]
test byte [rdx + 0x34], 0x20
jne 0x18009de7d
lea rcx, [rsp + 0x60]
call fcn.18009d890
test eax, eax
jne 0x18009ded2
lea rcx, [rsp + 0x60]
call fcn.18009c3c0
test eax, eax
jne 0x18009e5d3
xor edx, edx
mov rcx, r14
call fcn.18009cdc0
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x18009e5d8
cmp qword [r14 + 0x10], 0
je 0x18009dede
movzx edx, word [r14 + 0x30]
mov rcx, r14
inc dx
call fcn.18009cdc0
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x18009e5d8
jmp 0x18009ded7
mov r10, qword [rsp + 0x40]
cmp qword [r14 + 0x10], 0
jne 0x18009def0
test dword [r10 + 0x2c], 0x20000
je 0x18009def0
mov qword [r14 + 0x28], 0xffffffffffffffff
cmp dword [rbx + 0x50], 0
jne 0x18009e5d8
cmp byte [r10 + 0x55], 0
jne 0x18009e5d8
cmp byte [r14 + 0x3b], 2
mov r9d, 0x400
jb 0x18009dffd
test r13, r13
je 0x18009dffd
test word [r10 + 0x50], r9w
jne 0x18009dffd
mov rdx, r13
mov rcx, r12
call fcn.180098080
mov rdx, qword [rsp + 0x70]
mov rbx, rax
test rdx, rdx
je 0x18009df4d
mov rcx, r12
call fcn.180098080
or rbx, rax
cmp byte [r14 + 0x3b], 2
jb 0x18009dfea
mov r10, qword [r14 + 8]
nop dword [rax]
movzx r9d, byte [r14 + 0x3b]
mov eax, r9d
imul rax, rax, 0x58
mov rcx, qword [rax + r14 + 0x330]
movzx eax, byte [rcx + 0x10]
imul rax, rax, 0x78
test byte [rax + r10 + 0x44], 8
je 0x18009dfe6
test si, si
jne 0x18009df92
test dword [rcx + 0x28], 0x1000
je 0x18009dfe6
mov r8, qword [rcx + 8]
test rbx, r8
jne 0x18009dfe6
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x20]
movsxd rdx, dword [rax + 0x14]
imul rdx, rdx, 0x38
add rdx, rcx
cmp rcx, rdx
jae 0x18009dfd3
test qword [rcx + 0x30], r8
je 0x18009dfc3
mov rax, qword [rcx]
test byte [rax + 4], 1
je 0x18009dfce
add rcx, 0x38
cmp rcx, rdx
jb 0x18009dfb4
jmp 0x18009dfd3
cmp rcx, rdx
jb 0x18009dfe6
dec r9b
dec edi
mov byte [r14 + 0x3b], r9b
cmp r9b, 2
jae 0x18009df60
mov dword [rsp + 0x38], edi
mov r10, qword [rsp + 0x40]
mov rbx, qword [rsp + 0xd0]
mov r9d, 0x400
mov rcx, qword [r14]
movsx eax, word [r14 + 0x30]
movzx r11d, word [rsp + 0xe8]
add dword [rcx + 0x1dc], eax
test r11b, 4
je 0x18009e078
mov rdx, qword [r14 + 0x388]
mov r8d, 0x2000
mov ecx, dword [rdx + 0x28]
mov eax, ecx
shr eax, 0xc
and eax, 1
jne 0x18009e03f
test r8w, r11w
je 0x18009e078
test r9d, ecx
jne 0x18009e078
test eax, eax
sete al
inc al
mov byte [r14 + 0x38], al
mov rax, qword [rbp + 0x28]
test byte [rax + 0x46], 0x20
jne 0x18009e078
test cl, 0x40
je 0x18009e078
mov eax, dword [rsp + 0x50]
test r8w, r11w
mov r8d, 8
movzx eax, al
cmovne eax, r8d
and ecx, 0xffffffbf
mov dword [rdx + 0x28], ecx
mov dword [rsp + 0x50], eax
test edi, edi
jle 0x18009e4fd
lea r8, [r14 + 0x388]
mov eax, edi
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x88], rax
jmp 0x18009e0a9
movzx r11d, word [rsp + 0xe8]
movzx esi, byte [r8 - 0x1c]
mov eax, 1
xor r9d, r9d
mov r12d, eax
mov r15, 0xfffffffffff0bdc0
imul rsi, rsi, 0x78
mov rdi, qword [rsi + rbp + 0x28]
mov ebp, 0xfff0bdc0
mov rcx, qword [rdi + 0x68]
test rcx, rcx
je 0x18009e105
mov edx, dword [r10 + 0x28]
mov ebp, r9d
mov r15d, r9d
test edx, edx
jle 0x18009e105
mov rax, qword [r10 + 0x20]
add rax, 0x18
nop dword [rax]
cmp qword [rax], rcx
je 0x18009e105
inc ebp
inc r15
add rax, 0x20
rol r12d, 1
cmp ebp, edx
jl 0x18009e0f0
movzx ecx, byte [rdi + 0x46]
mov r13, qword [r8]
test cl, 2
jne 0x18009e1f2
cmp qword [rdi + 0x18], 0
jne 0x18009e1f2
mov eax, dword [r13 + 0x28]
bt eax, 0xa
jae 0x18009e256
mov rbx, qword [rdi + 0x58]
test rbx, rbx
je 0x18009e145
cmp qword [rbx], r10
je 0x18009e145
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x18009e137
mov rax, qword [rsp + 0xd8]
mov r10, qword [rsp + 0x30]
mov r8d, dword [rsi + rax + 0x50]
mov rax, qword [r10 + 0x30]
movsxd rdx, dword [r10 + 0x3c]
cmp dword [rax + 0x64], edx
jg 0x18009e182
mov dword [rsp + 0x20], r9d
mov edx, 0x98
mov rcx, r10
xor r9d, r9d
call fcn.18003a660
mov r10, qword [rsp + 0x30]
mov edx, eax
jmp 0x18009e1af
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r10 + 0x3c], eax
mov rax, qword [r10 + 8]
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r8d
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r9
mov word [rax + rcx*8], 0x98
mov rax, qword [r10]
cmp byte [rax + 0x55], 0
jne 0x18009e375
test edx, edx
jns 0x18009e1c6
mov edx, dword [r10 + 0x3c]
dec edx
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [r10 + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x18009e23f
mov r9d, 0xfffffff6
mov r8, rbx
mov rcx, r10
call fcn.18003b3c0
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x30]
mov eax, 0x200
test dword [r13 + 0x28], eax
je 0x18009e473
test byte [rdi + 0x46], 0x20
mov rbx, qword [r13 + 0x20]
mov edx, getservbyname
je 0x18009e37f
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
movzx eax, word [rsp + 0x3c]
jne 0x18009e384
test ax, ax
je 0x18009e384
mov r8d, dword [r8 - 0x44]
xor edx, edx
jmp 0x18009e408
mov r8, qword [rsp + 0x48]
test rbx, rbx
je 0x18009e1f7
mov qword [rdx + 0x10], rbx
mov byte [rdx + 1], 0xf6
inc dword [rbx + 0x18]
jmp 0x18009e1f7
test cl, 0x10
jne 0x18009e1f2
test al, 0x40
jne 0x18009e357
test r11b, 0x10
jne 0x18009e357
cmp byte [r14 + 0x38], 0
mov rbx, qword [rsp + 0xd8]
mov ecx, getservbyname
je 0x18009e28e
mov eax, dword [rsi + rbx + 0x50]
mov ecx, reloc.WS2_32.dll_getservbyname
mov dword [r14 + 0x4c], eax
mov edx, dword [rsi + rbx + 0x50]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0xd0]
mov r9, rdi
mov r8d, ebp
call fcn.180071400
cmp byte [r14 + 0x38], 0
jne 0x18009e2f2
cmp word [rdi + 0x3e], 0x40
jge 0x18009e2f2
test byte [rdi + 0x46], 0x20
jne 0x18009e2f2
mov rax, qword [rsi + rbx + 0x68]
xor ecx, ecx
test rax, rax
je 0x18009e2d7
nop dword [rax]
inc ecx
shr rax, 1
jne 0x18009e2d0
mov r10, qword [rsp + 0x30]
movsxd r8, ecx
mov rcx, qword [r10]
cmp byte [rcx + 0x55], 0
je 0x18009e322
mov edx, 0xfffffff2
call fcn.18003b100
mov r10, qword [rsp + 0x30]
mov rax, qword [r10]
mov r8, qword [rsp + 0x48]
cmp byte [rax + 0x55], 0
jne 0x18009e1f7
movsxd rax, dword [r10 + 0x3c]
mov edx, dword [rsp + 0x50]
lea rcx, [rax + rax*2]
mov rax, qword [r10 + 8]
mov byte [rax + rcx*8 - 0x15], dl
jmp 0x18009e1f7
mov eax, dword [r10 + 0x3c]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r10 + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x18009e34d
mov r9d, 0xfffffff2
mov rcx, r10
call fcn.18003b3c0
jmp 0x18009e2f2
mov dword [rdx + 0x10], r8d
mov byte [rdx + 1], 0xf2
jmp 0x18009e2f7
mov rax, qword [rdi]
mov r8d, dword [rdi + 0x38]
xor r9d, r9d
mov edx, ebp
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.18005d060
jmp 0x18009e1ed
mov r8, qword [rsp + 0x48]
jmp 0x18009e1f7
movzx eax, word [rsp + 0x3c]
cmp byte [r14 + 0x38], 0
je 0x18009e3cc
mov rax, qword [rsp + 0xd8]
mov r8d, dword [rsp + 0x100]
mov rax, qword [rsi + rax + 0x28]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x18009e3c1
nop dword [rax]
cmp rcx, rbx
je 0x18009e3c1
mov rcx, qword [rcx + 0x28]
inc r8d
test rcx, rcx
jne 0x18009e3b0
mov edx, reloc.WS2_32.dll_getservbyname
mov dword [r14 + 0x50], r8d
jmp 0x18009e408
mov ecx, dword [rsp + 0x100]
test ecx, ecx
je 0x18009e3f5
test ax, ax
je 0x18009e3f5
mov eax, 0x1000
mov r8d, ecx
test word [rsp + 0xe8], ax
je 0x18009e408
mov edx, getservbyname
jmp 0x18009e408
mov rcx, qword [rsp + 0xd0]
mov r8d, dword [rcx + 0x54]
lea eax, [r8 + 1]
mov dword [rcx + 0x54], eax
mov rax, qword [rsp + 0x48]
mov dword [rax - 0x40], r8d
test edx, edx
je 0x18009e473
mov r9d, dword [rbx + 0x58]
mov rcx, r10
mov dword [rsp + 0x20], ebp
call fcn.18003a6c0
mov rdx, rbx
mov rbx, qword [rsp + 0xd0]
mov rcx, rbx
call fcn.18003b540
mov r11d, dword [r13 + 0x28]
test r11b, 0xf
je 0x18009e47b
test r11d, 0x8002
jne 0x18009e47b
test byte [r14 + 0x34], 1
jne 0x18009e47b
mov rdx, qword [rsp + 0x30]
mov rax, qword [rdx]
cmp byte [rax + 0x55], 0
jne 0x18009e47b
movsxd rax, dword [rdx + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 8]
mov byte [rax + rcx*8 - 0x15], 2
jmp 0x18009e47b
mov rbx, qword [rsp + 0xd0]
test ebp, ebp
js 0x18009e4cb
mov rax, qword [rbx + 0x1c8]
mov rcx, rbx
test rax, rax
cmovne rcx, rax
mov eax, dword [rcx + 0x174]
test r12d, eax
jne 0x18009e4cb
or eax, r12d
mov r8, r15
mov dword [rcx + 0x174], eax
mov rax, qword [rcx]
shl r8, 5
mov rdx, qword [rax + 0x20]
mov rax, qword [r8 + rdx + 0x18]
mov edx, dword [rax]
mov dword [rcx + r15*4 + 0x178], edx
cmp ebp, 1
jne 0x18009e4cb
call fcn.180065100
mov r8, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xd8]
mov r10, qword [rsp + 0x40]
add r8, 0x58
dec qword [rsp + 0x88]
mov qword [rsp + 0x48], r8
jne 0x18009e0a0
mov r15, qword [rsp + 0x30]
mov edi, dword [rsp + 0x38]
mov eax, dword [r15 + 0x3c]
mov dword [r14 + 0x3c], eax
cmp byte [r10 + 0x55], 0
jne 0x18009e5d8
test edi, edi
jle 0x18009e5ce
movzx r12d, word [rsp + 0xe8]
lea rbx, [r14 + 0x36c]
xor edi, edi
nop word [rax + rax]
mov rax, qword [rbx + 0x1c]
test dword [rax + 0x28], 0x4000
je 0x18009e577
movzx eax, byte [rbx]
mov r9, qword [rsp + 0x58]
lea rcx, [rbx - 0x2c]
imul rax, rax, 0x78
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0xd0]
lea r8, [rax + rbp + 8]
lea rdx, [r14 + 0x158]
call fcn.180098cf0
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x18009e5d8
movzx eax, byte [rbx]
mov rcx, qword [rsp + 0xd0]
lea r8, [rbx - 0x2c]
mov r9d, edi
mov rdx, rbp
mov word [rsp + 0x28], r12w
mov dword [rsp + 0x20], eax
call fcn.180092bf0
mov r11d, dword [r15 + 0x3c]
mov r8, qword [rsp + 0x58]
mov edx, edi
mov rcx, r14
mov dword [rbx - 0xc], r11d
call fcn.180093b40
inc edi
mov qword [rsp + 0x58], rax
mov eax, dword [rbx - 0x14]
add rbx, 0x58
mov dword [r14 + 0x40], eax
cmp edi, dword [rsp + 0x38]
jl 0x18009e530
mov rax, r14
jmp 0x18009e5f7
mov r10, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xd0]
mov eax, dword [r14 + 0x48]
mov rdx, r14
mov dword [rcx + 0x1dc], eax
mov rcx, r10
call fcn.18009a250
xor eax, eax
mov rsi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xe0]
mov r14, qword [rsp + 0x90]
add rsp, 0xa0
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret