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

Disassembly:
push rbx
push rbp
push rsi
push r12
push r13
push r15
sub rsp, 0xb8
mov rax, qword [0x14017e7c0]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rax, qword [rcx + 0x10]
mov rbx, rcx
mov r12, qword [rcx]
mov rbp, r8
movzx r8d, word [rsp + 0x118]
mov r15, r9
mov r13, qword [rsp + 0x110]
mov qword [rsp + 0x40], rcx
xor ecx, ecx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x88], rcx
test r9, r9
je 0x1400a39ef
cmp dword [r9], 0x40
cmovge r15, rcx
mov esi, dword [rdx]
movzx ecx, r8w
mov r9d, 0xfbff
mov qword [rsp + 0x78], r15
and cx, r9w
test byte [r12 + 0x4c], 0x20
cmove cx, r8w
mov word [rsp + 0x30], cx
cmp esi, 0x40
jle 0x1400a3a35
mov r8d, 0x40
lea rdx, str.at_most__d_tables_in_a_join
mov rcx, rbx
call fcn.14001fcd0
xor eax, eax
jmp 0x1400a437f
test cl, 0x40
mov qword [rsp + 0xb0], rdi
mov eax, 1
mov qword [rsp + 0xa8], r14
cmovne esi, eax
mov rcx, r12
mov dword [rsp + 0x34], esi
lea eax, [rsi + rsi*4]
shl eax, 4
add eax, 0x347
movsxd r14, eax
and r14, 0xfffffffffffffff8
lea rdx, [r14 + 0x60]
call fcn.14001cc30
cmp byte [r12 + 0x50], 0
mov rdi, rax
je 0x1400a3a8b
test rax, rax
je 0x1400a436d
jmp 0x1400a431c
mov rcx, qword [rsp + 0x38]
mov rax, 0xffffffffffffffff
mov qword [rdi + 0x4c], rax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x50]
mov qword [rdi + 8], rax
mov byte [rdi + 0x39], sil
mov qword [rdi], rbx
mov qword [rdi + 0x10], r15
mov qword [rdi + 0x18], r13
call fcn.14003fa60
mov dword [rdi + 0x40], eax
lea rcx, [r14 + rdi]
mov dword [rdi + 0x44], eax
lea rsi, [rdi + 0x54]
movzx eax, word [rsp + 0x30]
xor r14d, r14d
mov word [rdi + 0x32], ax
mov eax, dword [rbx + 0x1d8]
lea rbx, [rdi + 0x158]
mov dword [rdi + 0x48], eax
lea rax, [rcx + 0x40]
mov qword [rcx + 0x30], rax
lea rax, [rbx + 0x28]
mov dword [rcx + 0x2c], 0x40000
mov dword [rcx + 0x28], r14d
mov dword [rsi], r14d
mov qword [rbx + 0x20], rax
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x80], rcx
mov qword [rbx], rdi
mov qword [rbx + 8], r14
mov dword [rbx + 0x14], r14d
mov dword [rbx + 0x18], 8
mov byte [rbx + 0x10], 0x48
test rbp, rbp
je 0x1400a3b63
cmp byte [rbp], 0x48
mov rcx, rbx
je 0x1400a3b48
xor r8d, r8d
mov rdx, rbp
call fcn.140099f80
jmp 0x1400a3b63
mov rdx, qword [rbp + 0x10]
mov r8b, 0x48
call fcn.14009a1d0
mov rdx, qword [rbp + 0x18]
mov r8b, 0x48
mov rcx, rbx
call fcn.14009a1d0
mov ebp, r14d
cmp dword [rbx + 0x14], r14d
jle 0x1400a3bca
mov r12, qword [rsp + 0x40]
mov esi, dword [rsp + 0x34]
test esi, esi
je 0x1400a3b8f
mov rax, qword [rbx + 0x20]
mov edx, 2
mov rcx, qword [r14 + rax]
call fcn.140057a20
test eax, eax
je 0x1400a3bb3
mov rdx, qword [rbx + 0x20]
mov r9d, reloc.WS2_32.dll_recv
mov r8d, dword [rdi + 0x44]
mov rcx, r12
mov rdx, qword [rdx + r14]
call fcn.14005ba50
mov rax, qword [rbx + 0x20]
or byte [rax + r14 + 0x1c], 4
inc ebp
add r14, 0x38
cmp ebp, dword [rbx + 0x14]
jl 0x1400a3b75
mov r12, qword [rsp + 0x48]
lea rsi, [rdi + 0x54]
xor r14d, r14d
cmp dword [rsp + 0x34], 0
mov r9d, 0x400
jne 0x1400a3bef
test r15, r15
je 0x1400a3be3
movzx eax, byte [r15]
mov byte [rdi + 0x34], al
test word [rsp + 0x30], r9w
je 0x1400a3bef
mov byte [rdi + 0x38], 1
mov r10, qword [rsp + 0x50]
mov r8d, r14d
cmp dword [r10], 0
jle 0x1400a3c27
lea rdx, [r10 + 0x50]
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rdx]
lea rdx, [rdx + 0x78]
movsxd rcx, dword [rsi]
inc r8d
mov dword [rsi + rcx*4 + 4], eax
inc dword [rsi]
cmp r8d, dword [r10]
jl 0x1400a3c10
mov ebx, dword [rdi + 0x16c]
sub ebx, 1
js 0x1400a3c54
mov r8d, ebx
lea rdx, [rdi + 0x158]
mov rcx, r10
call fcn.14009b8a0
sub ebx, 1
mov r10, qword [rsp + 0x50]
jns 0x1400a3c32
mov r9d, 0x400
cmp byte [r12 + 0x50], 0
jne 0x1400a42d7
mov rbx, qword [rsp + 0x40]
test word [rsp + 0x30], r9w
je 0x1400a3c9e
lea r8, [rdi + 0x158]
mov r9, r13
mov rdx, r10
mov rcx, rbx
call fcn.14009c420
test eax, eax
je 0x1400a3c8c
mov byte [rdi + 0x38], 1
jmp 0x1400a3c9e
test r15, r15
jne 0x1400a3c9e
mov eax, 0x200
mov qword [rdi + 0x10], r13
or word [rdi + 0x32], ax
mov r15d, dword [rsp + 0x34]
cmp r15d, 1
jne 0x1400a3cb7
lea rcx, [rsp + 0x68]
call fcn.1400a36b0
test eax, eax
jne 0x1400a3d01
lea rcx, [rsp + 0x68]
call fcn.1400a23d0
test eax, eax
jne 0x1400a42d7
xor edx, edx
mov rcx, rdi
call fcn.1400a2da0
cmp byte [r12 + 0x50], 0
jne 0x1400a42d7
cmp qword [rdi + 0x10], 0
je 0x1400a3d08
movzx edx, word [rdi + 0x30]
mov rcx, rdi
inc dx
call fcn.1400a2da0
cmp byte [r12 + 0x50], 0
jne 0x1400a42d7
cmp qword [rdi + 0x10], 0
jne 0x1400a3d1b
test dword [r12 + 0x2c], 0x20000
je 0x1400a3d1b
mov qword [rdi + 0x28], 0xffffffffffffffff
cmp dword [rbx + 0x4c], 0
jne 0x1400a42d7
cmp byte [r12 + 0x50], 0
jne 0x1400a42d7
cmp byte [rdi + 0x39], 2
mov edx, 0x1000
jb 0x1400a3e94
test r13, r13
je 0x1400a3e94
mov eax, 0x400
test word [r12 + 0x4c], ax
jne 0x1400a3e94
cmp dword [r13], 0
mov r12, r14
mov ebp, r14d
jle 0x1400a3d8f
mov rbx, r14
nop word [rax + rax]
mov rdx, qword [r13 + 8]
mov rcx, rsi
mov rdx, qword [rbx + rdx]
call fcn.14009a240
or r12, rax
lea rbx, [rbx + 0x28]
inc ebp
cmp ebp, dword [r13]
jl 0x1400a3d70
mov r15, qword [rsp + 0x78]
test r15, r15
je 0x1400a3dd1
xor ecx, ecx
mov ebp, ecx
cmp dword [r15], ecx
jle 0x1400a3dce
mov ebx, ecx
nop dword [rax]
nop dword [rax + rax]
mov rdx, qword [r15 + 8]
mov rcx, rsi
mov rdx, qword [rbx + rdx]
call fcn.14009a240
or r14, rax
lea rbx, [rbx + 0x28]
inc ebp
cmp ebp, dword [r15]
jl 0x1400a3db0
or r12, r14
movzx eax, byte [rdi + 0x39]
mov r15d, dword [rsp + 0x34]
cmp al, 2
jb 0x1400a3e85
movzx r10d, word [rsp + 0x30]
mov ecx, 0x400
mov r11, qword [rdi + 8]
and r10w, cx
mov r9, qword [rsp + 0x70]
nop word [rax + rax]
movzx eax, al
lea rcx, [rax + rax*4]
add rcx, rcx
mov r8, qword [rdi + rcx*8 + 0x330]
movzx eax, byte [r8 + 0x10]
imul rcx, rax, 0x78
test byte [rcx + r11 + 0x44], 8
je 0x1400a3e80
test r10w, r10w
jne 0x1400a3e34
mov eax, 0x1000
test dword [r8 + 0x28], eax
je 0x1400a3e80
mov r8, qword [r8 + 8]
test r12, r8
jne 0x1400a3e80
mov rax, qword [r9 + 0x20]
movsxd rcx, dword [r9 + 0x14]
imul rdx, rcx, 0x38
add rdx, rax
cmp rax, rdx
jae 0x1400a3e70
test qword [rax + 0x30], r8
je 0x1400a3e60
mov rcx, qword [rax]
test byte [rcx + 4], 1
je 0x1400a3e6b
add rax, 0x38
cmp rax, rdx
jb 0x1400a3e51
jmp 0x1400a3e70
cmp rax, rdx
jb 0x1400a3e80
movzx eax, byte [rdi + 0x39]
dec r15d
dec al
mov byte [rdi + 0x39], al
cmp al, 2
jae 0x1400a3e00
mov dword [rsp + 0x34], r15d
mov rbx, qword [rsp + 0x40]
mov edx, 0x1000
mov r12, qword [rsp + 0x48]
mov rcx, qword [rdi]
movsx eax, word [rdi + 0x30]
movzx r11d, word [rsp + 0x30]
add dword [rcx + 0x1d8], eax
test r11b, 4
je 0x1400a3ed2
mov rcx, qword [rdi + 0x380]
test dword [rcx + 0x28], edx
mov rdx, qword [rsp + 0x50]
je 0x1400a3ed7
mov byte [rdi + 0x36], 1
mov rax, qword [rdx + 0x28]
test byte [rax + 0x48], 0x20
jne 0x1400a3ed7
and dword [rcx + 0x28], 0xffffffbf
jmp 0x1400a3ed7
mov rdx, qword [rsp + 0x50]
test r15d, r15d
jle 0x1400a41fb
mov r10d, dword [rsp + 0x120]
lea r9, [rdi + 0x380]
mov eax, r15d
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x60], rax
nop dword [rax]
movzx eax, byte [r9 - 0x1c]
xor r8d, r8d
imul r15, rax, 0x78
mov ebp, 0xfff0bdc0
mov r13, 0xfffffffffff0bdc0
add r15, rdx
mov r14, qword [r15 + 0x28]
mov rdx, qword [r14 + 0x70]
test rdx, rdx
je 0x1400a3f52
mov ecx, dword [r12 + 0x28]
mov ebp, r8d
mov r13d, r8d
test ecx, ecx
jle 0x1400a3f52
mov rax, qword [r12 + 0x20]
add rax, 0x18
cmp qword [rax], rdx
je 0x1400a3f52
inc ebp
inc r13
add rax, 0x20
cmp ebp, ecx
jl 0x1400a3f40
movzx ecx, byte [r14 + 0x48]
mov rsi, qword [r9]
test cl, 2
jne 0x1400a4089
cmp qword [r14 + 0x18], 0
jne 0x1400a4089
mov eax, dword [rsi + 0x28]
bt eax, 0xa
jae 0x1400a3fbe
mov rbx, qword [r14 + 0x60]
test rbx, rbx
je 0x1400a3f8e
cmp qword [rbx], r12
je 0x1400a3f8e
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x1400a3f80
mov rcx, qword [rsp + 0x38]
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov edx, __WSAFDIsSet
mov r8d, dword [r15 + 0x50]
call fcn.14003f920
mov r8, rbx
mov r9d, 0xfffffff6
mov rbx, qword [rsp + 0x38]
mov edx, eax
jmp 0x1400a4040
test cl, 0x10
jne 0x1400a4089
test al, 0x40
jne 0x1400a405d
test r11b, 0x10
jne 0x1400a405d
cmp byte [rdi + 0x36], 0
mov ecx, gethostname
je 0x1400a3ff0
mov eax, dword [r15 + 0x50]
mov ecx, gethostname
mov dword [rdi + 0x4c], eax
mov edx, dword [r15 + 0x50]
mov r9, r14
mov dword [rsp + 0x20], ecx
mov r8d, ebp
mov rcx, rbx
call fcn.1400771a0
cmp byte [rdi + 0x36], 0
jne 0x1400a4076
cmp word [r14 + 0x42], 0x40
jge 0x1400a4076
test byte [r14 + 0x48], 0x20
jne 0x1400a4076
mov rax, qword [r15 + 0x68]
xor ecx, ecx
test rax, rax
je 0x1400a402d
inc ecx
shr rax, 1
jne 0x1400a4026
mov rbx, qword [rsp + 0x38]
mov r9d, 0xfffffff2
movsxd r8, ecx
mov edx, dword [rbx + 0x3c]
dec edx
mov rcx, rbx
call fcn.14003ff50
mov r9, qword [rsp + 0x48]
mov r10d, dword [rsp + 0x120]
movzx r11d, word [rsp + 0x30]
jmp 0x1400a408e
mov rax, qword [r14]
xor r9d, r9d
mov r8d, dword [r14 + 0x3c]
mov edx, ebp
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140061e30
movzx r11d, word [rsp + 0x30]
mov r10d, dword [rsp + 0x120]
mov r9, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x38]
test dword [rsi + 0x28], 0x200
je 0x1400a4174
test byte [r14 + 0x48], 0x20
mov edx, gethostname
mov rsi, qword [rsi + 0x20]
je 0x1400a40c7
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, 2
jne 0x1400a40c7
test r11b, 0x40
je 0x1400a40c7
mov eax, dword [r9 - 0x3c]
mov dword [r9 - 0x38], eax
jmp 0x1400a4174
cmp byte [rdi + 0x36], 0
je 0x1400a40fc
mov rax, qword [r15 + 0x28]
mov r8d, r10d
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1400a40f1
nop dword [rax]
cmp rcx, rsi
je 0x1400a40f1
mov rcx, qword [rcx + 0x28]
inc r8d
test rcx, rcx
jne 0x1400a40e0
mov edx, gethostname
mov dword [rdi + 0x50], r8d
jmp 0x1400a4133
test r10d, r10d
je 0x1400a4123
test r11b, 0x40
je 0x1400a4123
movzx eax, r11w
mov ecx, 0x1000
and ax, cx
mov r8d, r10d
neg ax
mov eax, r10d
sbb edx, edx
add edx, 0x36
jmp 0x1400a4136
mov rcx, qword [rsp + 0x40]
mov r8d, dword [rcx + 0x50]
lea eax, [r8 + 1]
mov dword [rcx + 0x50], eax
mov eax, r8d
mov dword [r9 - 0x38], eax
mov rcx, rbx
mov r9d, dword [rsi + 0x58]
mov dword [rsp + 0x20], ebp
call fcn.14003f920
mov rax, qword [rsp + 0x40]
mov rdx, rsi
mov rcx, rax
mov rbx, qword [rax + 0x10]
call fcn.14006beb0
mov r8, rax
mov edx, 0xffffffff
mov r9d, 0xfffffffa
mov rcx, rbx
call fcn.14003ff50
mov rbx, qword [rsp + 0x40]
test ebp, ebp
js 0x1400a41c9
mov rax, qword [rbx + 0x1c0]
mov rcx, rbx
test rax, rax
cmovne rcx, rax
mov eax, dword [rcx + 0x16c]
bt eax, ebp
jb 0x1400a41c9
bts eax, ebp
mov r8, r13
mov dword [rcx + 0x16c], 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 + r13*4 + 0x170], edx
cmp ebp, 1
jne 0x1400a41c9
call fcn.14006b1c0
mov r9, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
add r9, 0x50
sub qword [rsp + 0x60], 1
mov r10d, dword [rsp + 0x120]
movzx r11d, word [rsp + 0x30]
mov qword [rsp + 0x48], r9
jne 0x1400a3f00
mov r15d, dword [rsp + 0x34]
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x3c]
mov dword [rdi + 0x3c], eax
cmp byte [r12 + 0x50], 0
jne 0x1400a42d7
test r15d, r15d
jle 0x1400a42cf
movzx r13d, word [rsp + 0x30]
lea rbx, [rdi + 0x364]
xor r14d, r14d
nop dword [rax + rax]
mov rax, qword [rbx + 0x1c]
lea rsi, [rbx - 0x24]
test dword [rax + 0x28], 0x4000
je 0x1400a4277
movzx eax, byte [rbx]
lea rdx, [rdi + 0x158]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
add r8, 8
imul rcx, rax, 0x78
mov qword [rsp + 0x20], rsi
add r8, rcx
mov rcx, qword [rsp + 0x40]
call fcn.14009c750
cmp byte [r12 + 0x50], 0
jne 0x1400a42d7
movzx eax, byte [rbx]
mov r9d, r14d
mov rdx, qword [rsp + 0x50]
mov r8, rsi
mov rcx, qword [rsp + 0x40]
mov word [rsp + 0x28], r13w
mov dword [rsp + 0x20], eax
call fcn.14009dc50
mov rcx, qword [rsp + 0x38]
mov edx, r14d
mov r8, qword [rsp + 0x58]
mov eax, dword [rcx + 0x3c]
mov rcx, rdi
mov dword [rbx - 4], eax
call fcn.14009e040
mov qword [rsp + 0x58], rax
inc r14d
mov eax, dword [rbx - 0xc]
add rbx, 0x50
mov dword [rdi + 0x40], eax
cmp r14d, r15d
jl 0x1400a4230
mov rax, rdi
jmp 0x1400a436f
mov rcx, qword [rsp + 0x40]
mov eax, dword [rdi + 0x48]
mov dword [rcx + 0x1d8], eax
lea rcx, [rdi + 0x158]
call fcn.140099e30
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je 0x1400a431c
nop word [rax + rax]
mov rax, qword [rcx + 0x38]
mov rdx, rcx
mov rcx, r12
mov qword [rdi + 0x20], rax
call fcn.1400a0040
mov rcx, qword [rdi + 0x20]
test rcx, rcx
jne 0x1400a4300
cmp qword [r12 + 0x320], 0
je 0x1400a4334
mov rdx, rdi
mov rcx, r12
call fcn.14001c990
jmp 0x1400a436d
cmp rdi, qword [r12 + 0x168]
jb 0x1400a4365
cmp rdi, qword [r12 + 0x170]
jae 0x1400a4365
mov rax, qword [r12 + 0x160]
mov qword [rdi], rax
dec dword [r12 + 0x14c]
mov qword [r12 + 0x160], rdi
jmp 0x1400a436d
mov rcx, rdi
call fcn.14001c8f0
xor eax, eax
mov rdi, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1401386b0
add rsp, 0xb8
pop r15
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret