Function at 0x180098b20
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 0x180098b7f
cmp dword [r9], 0x40
cmovge rdi, rax
movzx edx, word [rsp + 0xf8]
mov qword [rsp + 0x70], rdi
test byte [rcx + 0x50], 0x20
je 0x180098b9a
mov eax, 0xfbff
and dx, ax
mov eax, dword [r12]
mov word [rsp + 0xe8], dx
cmp eax, 0x40
jle 0x180098bd2
lea rdx, str.at_most__d_tables_in_a_join
mov r8d, 0x40
mov rcx, r13
call fcn.180015500
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.180012520
mov r14, rax
test rax, rax
je 0x180098c2c
lea r8, [rsi + 0x60]
xor edx, edx
mov rcx, rax
call fcn.180189610
mov rcx, qword [rsp + 0x40]
cmp byte [rcx + 0x55], 0
je 0x180098c44
mov rdx, r14
call fcn.1800121e0
jmp 0x180099635
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.180035d60
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.180092e10
mov rax, qword [rsp + 0x68]
mov esi, ebx
cmp dword [rax + 0x14], ebx
jle 0x180098d8d
mov r13, qword [rsp + 0xd0]
mov ebp, dword [rsp + 0x38]
nop
test ebp, ebp
je 0x180098d4a
mov rcx, qword [rax + 0x20]
mov rcx, qword [rcx + rbx]
call fcn.18004e120
test eax, eax
je 0x180098d73
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.180052890
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 0x180098d30
mov r13, qword [rsp + 0xf0]
xor ebx, ebx
cmp dword [rsp + 0x38], 0
mov ecx, 0x400
jne 0x180098db4
test rdi, rdi
je 0x180098da5
movzx eax, byte [rdi]
mov byte [r14 + 0x36], al
test word [rsp + 0xe8], cx
je 0x180098db4
mov byte [r14 + 0x3a], 1
mov rbp, qword [rsp + 0xd8]
cmp dword [rbp], 0
jle 0x180098e12
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.1800931d0
inc ebx
add rsi, 0x78
cmp ebx, dword [rbp]
jl 0x180098dd0
mov r13, qword [rsp + 0xf0]
mov r15, qword [rsp + 0x30]
lea rax, [r14 + 0x158]
mov ebx, dword [rax + 0x14]
dec ebx
js 0x180098e42
lea rdx, [r14 + 0x158]
mov r8d, ebx
mov rcx, rbp
call fcn.180092350
dec ebx
jns 0x180098e20
mov r15, qword [rsp + 0x30]
lea rax, [r14 + 0x158]
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x180099618
movzx esi, word [rsp + 0xe8]
mov rbx, qword [rsp + 0xd0]
mov ecx, 0x400
and si, cx
je 0x180098e9b
mov r9, r13
mov r8, rax
mov rdx, rbp
mov rcx, rbx
call fcn.180093b30
test eax, eax
je 0x180098e88
mov byte [r14 + 0x3a], 1
jmp 0x180098e9b
test rdi, rdi
jne 0x180098e9b
mov eax, 0x200
mov qword [r14 + 0x10], r13
or word [r14 + 0x34], ax
mov edi, dword [rsp + 0x38]
cmp edi, 1
jne 0x180098ebd
mov rdx, qword [rsp + 0x60]
test byte [rdx + 0x34], 0x20
jne 0x180098ebd
lea rcx, [rsp + 0x60]
call fcn.1800988d0
test eax, eax
jne 0x180098f12
lea rcx, [rsp + 0x60]
call fcn.180097400
test eax, eax
jne 0x180099613
xor edx, edx
mov rcx, r14
call fcn.180097e00
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x180099618
cmp qword [r14 + 0x10], 0
je 0x180098f1e
movzx edx, word [r14 + 0x30]
mov rcx, r14
inc dx
call fcn.180097e00
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x180099618
jmp 0x180098f17
mov r10, qword [rsp + 0x40]
cmp qword [r14 + 0x10], 0
jne 0x180098f30
test dword [r10 + 0x2c], 0x20000
je 0x180098f30
mov qword [r14 + 0x28], 0xffffffffffffffff
cmp dword [rbx + 0x50], 0
jne 0x180099618
cmp byte [r10 + 0x55], 0
jne 0x180099618
cmp byte [r14 + 0x3b], 2
mov r9d, 0x400
jb 0x18009903d
test r13, r13
je 0x18009903d
test word [r10 + 0x50], r9w
jne 0x18009903d
mov rdx, r13
mov rcx, r12
call fcn.1800930c0
mov rdx, qword [rsp + 0x70]
mov rbx, rax
test rdx, rdx
je 0x180098f8d
mov rcx, r12
call fcn.1800930c0
or rbx, rax
cmp byte [r14 + 0x3b], 2
jb 0x18009902a
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 0x180099026
test si, si
jne 0x180098fd2
test dword [rcx + 0x28], 0x1000
je 0x180099026
mov r8, qword [rcx + 8]
test rbx, r8
jne 0x180099026
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 0x180099013
test qword [rcx + 0x30], r8
je 0x180099003
mov rax, qword [rcx]
test byte [rax + 4], 1
je 0x18009900e
add rcx, 0x38
cmp rcx, rdx
jb 0x180098ff4
jmp 0x180099013
cmp rcx, rdx
jb 0x180099026
dec r9b
dec edi
mov byte [r14 + 0x3b], r9b
cmp r9b, 2
jae 0x180098fa0
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 0x1800990b8
mov rdx, qword [r14 + 0x388]
mov r8d, 0x2000
mov ecx, dword [rdx + 0x28]
mov eax, ecx
shr eax, 0xc
and eax, 1
jne 0x18009907f
test r8w, r11w
je 0x1800990b8
test r9d, ecx
jne 0x1800990b8
test eax, eax
sete al
inc al
mov byte [r14 + 0x38], al
mov rax, qword [rbp + 0x28]
test byte [rax + 0x46], 0x20
jne 0x1800990b8
test cl, 0x40
je 0x1800990b8
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 0x18009953d
lea r8, [r14 + 0x388]
mov eax, edi
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x88], rax
jmp 0x1800990e9
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 0x180099145
mov edx, dword [r10 + 0x28]
mov ebp, r9d
mov r15d, r9d
test edx, edx
jle 0x180099145
mov rax, qword [r10 + 0x20]
add rax, 0x18
nop dword [rax]
cmp qword [rax], rcx
je 0x180099145
inc ebp
inc r15
add rax, 0x20
rol r12d, 1
cmp ebp, edx
jl 0x180099130
movzx ecx, byte [rdi + 0x46]
mov r13, qword [r8]
test cl, 2
jne 0x180099232
cmp qword [rdi + 0x18], 0
jne 0x180099232
mov eax, dword [r13 + 0x28]
bt eax, 0xa
jae 0x180099296
mov rbx, qword [rdi + 0x58]
test rbx, rbx
je 0x180099185
cmp qword [rbx], r10
je 0x180099185
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x180099177
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 0x1800991c2
mov dword [rsp + 0x20], r9d
mov edx, 0x98
mov rcx, r10
xor r9d, r9d
call fcn.180035690
mov r10, qword [rsp + 0x30]
mov edx, eax
jmp 0x1800991ef
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 0x1800993b5
test edx, edx
jns 0x180099206
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 0x18009927f
mov r9d, 0xfffffff6
mov r8, rbx
mov rcx, r10
call fcn.1800363f0
mov r8, qword [rsp + 0x48]
mov r10, qword [rsp + 0x30]
mov eax, 0x200
test dword [r13 + 0x28], eax
je 0x1800994b3
test byte [rdi + 0x46], 0x20
mov rbx, qword [r13 + 0x20]
mov edx, 0x36
je 0x1800993bf
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
movzx eax, word [rsp + 0x3c]
jne 0x1800993c4
test ax, ax
je 0x1800993c4
mov r8d, dword [r8 - 0x44]
xor edx, edx
jmp 0x180099448
mov r8, qword [rsp + 0x48]
test rbx, rbx
je 0x180099237
mov qword [rdx + 0x10], rbx
mov byte [rdx + 1], 0xf6
inc dword [rbx + 0x18]
jmp 0x180099237
test cl, 0x10
jne 0x180099232
test al, 0x40
jne 0x180099397
test r11b, 0x10
jne 0x180099397
cmp byte [r14 + 0x38], 0
mov rbx, qword [rsp + 0xd8]
mov ecx, 0x36
je 0x1800992ce
mov eax, dword [rsi + rbx + 0x50]
mov ecx, 0x37
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.18006c440
cmp byte [r14 + 0x38], 0
jne 0x180099332
cmp word [rdi + 0x3e], 0x40
jge 0x180099332
test byte [rdi + 0x46], 0x20
jne 0x180099332
mov rax, qword [rsi + rbx + 0x68]
xor ecx, ecx
test rax, rax
je 0x180099317
nop dword [rax]
inc ecx
shr rax, 1
jne 0x180099310
mov r10, qword [rsp + 0x30]
movsxd r8, ecx
mov rcx, qword [r10]
cmp byte [rcx + 0x55], 0
je 0x180099362
mov edx, 0xfffffff2
call fcn.180036130
mov r10, qword [rsp + 0x30]
mov rax, qword [r10]
mov r8, qword [rsp + 0x48]
cmp byte [rax + 0x55], 0
jne 0x180099237
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 0x180099237
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 0x18009938d
mov r9d, 0xfffffff2
mov rcx, r10
call fcn.1800363f0
jmp 0x180099332
mov dword [rdx + 0x10], r8d
mov byte [rdx + 1], 0xf2
jmp 0x180099337
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.1800580a0
jmp 0x18009922d
mov r8, qword [rsp + 0x48]
jmp 0x180099237
movzx eax, word [rsp + 0x3c]
cmp byte [r14 + 0x38], 0
je 0x18009940c
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 0x180099401
nop dword [rax]
cmp rcx, rbx
je 0x180099401
mov rcx, qword [rcx + 0x28]
inc r8d
test rcx, rcx
jne 0x1800993f0
mov edx, 0x37
mov dword [r14 + 0x50], r8d
jmp 0x180099448
mov ecx, dword [rsp + 0x100]
test ecx, ecx
je 0x180099435
test ax, ax
je 0x180099435
mov eax, 0x1000
mov r8d, ecx
test word [rsp + 0xe8], ax
je 0x180099448
mov edx, 0x35
jmp 0x180099448
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 0x1800994b3
mov r9d, dword [rbx + 0x58]
mov rcx, r10
mov dword [rsp + 0x20], ebp
call fcn.1800356f0
mov rdx, rbx
mov rbx, qword [rsp + 0xd0]
mov rcx, rbx
call fcn.180036570
mov r11d, dword [r13 + 0x28]
test r11b, 0xf
je 0x1800994bb
test r11d, 0x8002
jne 0x1800994bb
test byte [r14 + 0x34], 1
jne 0x1800994bb
mov rdx, qword [rsp + 0x30]
mov rax, qword [rdx]
cmp byte [rax + 0x55], 0
jne 0x1800994bb
movsxd rax, dword [rdx + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 8]
mov byte [rax + rcx*8 - 0x15], 2
jmp 0x1800994bb
mov rbx, qword [rsp + 0xd0]
test ebp, ebp
js 0x18009950b
mov rax, qword [rbx + 0x1c8]
mov rcx, rbx
test rax, rax
cmovne rcx, rax
mov eax, dword [rcx + 0x174]
test r12d, eax
jne 0x18009950b
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 0x18009950b
call fcn.180060140
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 0x1800990e0
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 0x180099618
test edi, edi
jle 0x18009960e
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 0x1800995b7
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.180093d30
mov r10, qword [rsp + 0x40]
cmp byte [r10 + 0x55], 0
jne 0x180099618
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.18008dc30
mov r11d, dword [r15 + 0x3c]
mov r8, qword [rsp + 0x58]
mov edx, edi
mov rcx, r14
mov dword [rbx - 0xc], r11d
call fcn.18008eb80
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 0x180099570
mov rax, r14
jmp 0x180099637
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.180095290
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