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

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc8
mov r14, qword [rcx + 0x10]
xor r12d, r12d
mov qword [rsp + 0x50], r12
mov r13, r8
mov dword [rsp + 0x40], r12d
mov rsi, rdx
mov qword [rsp + 0x80], r14
mov rdi, rcx
xor r15b, r15b
call fcn.140094390
mov r8d, dword [rdi + 0x5c]
xor r9d, r9d
mov rcx, rax
mov dword [rsp + 0x20], r12d
lea edx, [r8 + 1]
mov dword [rdi + 0x5c], edx
lea edx, [r12 + 0x2c]
call fcn.140056030
movsxd rcx, dword [rsi + 0x14]
mov ebp, r12d
mov rbx, qword [rsi + 0x20]
mov r9, qword [r13 + 0x20]
mov dword [rsp + 0x68], eax
imul rax, rcx, 0x38
mov rcx, qword [rsp + 0x130]
add rax, rbx
mov dword [rsp + 0x110], r12d
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x70], rax
mov rdx, qword [rcx + 0x48]
movabs rcx, 0x8000000000000000
mov qword [rsp + 0x48], rdx
cmp rbx, rax
jae 0x1400a6a72
lea rcx, [0x14006d770]
lea r8, [0x14006d7e0]
nop word [rax + rax]
cmp qword [rdx], 0
mov rsi, qword [rbx]
jne 0x1400a695b
test byte [rbx + 0x1c], 2
jne 0x1400a695b
test byte [rsi + 4], 1
jne 0x1400a695b
xor eax, eax
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xb0], rax
lea rcx, [rsp + 0x90]
mov qword [rsp + 0xb8], rax
mov rdx, rsi
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rax
mov eax, dword [r13 + 0x48]
mov dword [rsp + 0xb8], eax
mov byte [rsp + 0xb4], 3
mov qword [rsp + 0x98], r8
call fcn.140068b70
cmp byte [rsp + 0xb4], 0
je 0x1400a6956
mov rcx, qword [rdi]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
call fcn.14006c790
mov rdx, qword [rsp + 0x50]
mov r8, rax
mov rcx, qword [rdi]
call fcn.14006c120
mov qword [rsp + 0x50], rax
mov rdx, qword [rsp + 0x48]
mov eax, dword [r13 + 0x48]
cmp dword [rbx + 0xc], eax
jne 0x1400a6a46
test byte [rbx + 0x1a], 0x82
je 0x1400a6a46
mov rax, qword [rsp + 0x128]
test qword [rbx + 0x28], rax
jne 0x1400a6a46
movsxd rax, dword [rbx + 0x10]
test eax, eax
js 0x1400a6a46
lea rdx, [rax + rax*2]
mov rax, qword [r13 + 0x20]
add rdx, rdx
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0x29]
mov rcx, qword [rbx]
call fcn.14006b840
test eax, eax
je 0x1400a6a41
movsxd rcx, dword [rbx + 0x10]
cmp ecx, 0x40
jl 0x1400a69c9
movabs rsi, 0x8000000000000000
jmp 0x1400a69d1
mov esi, 1
shl rsi, cl
test r15b, r15b
jne 0x1400a6a01
mov rax, qword [rsp + 0x60]
lea rcx, [rcx + rcx*2]
add rcx, rcx
lea rdx, str.automatic_index_on__s__s_
mov r9, qword [rax + 8]
mov r8, qword [rax]
mov r9, qword [r9 + rcx*8]
mov ecx, 0x11c
call fcn.140038190
mov r15b, 1
mov rdx, qword [rsp + 0x48]
test r12, rsi
jne 0x1400a6a46
mov rcx, qword [rdi]
inc ebp
mov r8d, ebp
call fcn.1400a7710
test eax, eax
jne 0x1400a729e
movsxd r9, dword [rsp + 0x110]
or r12, rsi
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x110], ebp
mov rax, qword [rdx + 0x38]
mov qword [rax + r9*8], rbx
jmp 0x1400a6a46
mov rdx, qword [rsp + 0x48]
add rbx, 0x38
lea rcx, [0x14006d770]
lea r8, [0x14006d7e0]
cmp rbx, qword [rsp + 0x70]
jb 0x1400a68b0
mov r9, qword [rsp + 0x60]
movabs rcx, 0x8000000000000000
not r12
mov word [rdx + 0x2c], bp
or r12, rcx
mov word [rdx + 0x18], bp
mov dword [rdx + 0x28], 0x4241
xor ecx, ecx
mov r8, qword [r13 + 0x60]
mov r13d, 0x3f
movzx edx, word [r9 + 0x3e]
and r12, r8
mov qword [rsp + 0x88], r12
cmp r13w, dx
jge 0x1400a6ab3
mov r9d, r13d
mov dword [rsp + 0x58], r13d
jmp 0x1400a6ac1
movsx r9d, dx
mov dword [rsp + 0x58], r9d
test r9d, r9d
jle 0x1400a6ad9
mov eax, ecx
bt r12, rax
jae 0x1400a6acb
inc ebp
inc ecx
cmp ecx, r9d
jl 0x1400a6ac1
mov dword [rsp + 0x110], ebp
test r8, r8
jns 0x1400a6aed
movsx eax, dx
add ebp, 0xffffffc1
add ebp, eax
mov dword [rsp + 0x110], ebp
mov rcx, qword [rdi]
lea ebx, [rbp + 1]
movsx rsi, bx
movsx ebp, bx
lea eax, [rsi + rbp]
lea edx, [rax*2 + 9]
add edx, esi
lea eax, [rsi*8 + 7]
and edx, 0xfffffff8
and eax, 0xfffffff8
add edx, 0x68
add eax, edx
movsxd r12, eax
mov rdx, r12
call fcn.140036150
mov r15, rax
test rax, rax
je 0x1400a729e
mov r8, r12
xor edx, edx
mov rcx, rax
call fcn.140218bd0
mov r11, qword [rsp + 0x60]
lea rcx, [rsi*8 + 7]
mov word [r15 + 0x60], bx
lea rdx, [r15 + 0x68]
dec bx
mov qword [r15 + 0x40], rdx
and rcx, 0xfffffffffffffff8
mov word [r15 + 0x5e], bx
mov rbx, qword [rsp + 0x118]
lea eax, [rbp + 1]
add rdx, rcx
xor r12d, r12d
movsxd rcx, eax
mov qword [r15 + 0x10], rdx
lea rax, [rdx + rcx*2]
mov qword [r15 + 8], rax
lea rax, [rax + rsi*2]
mov qword [r15 + 0x38], rax
lea rsi, str.BINARY
mov rax, qword [rsp + 0x48]
mov qword [rax + 0x20], r15
lea rax, str.auto_index
mov qword [r15], rax
mov qword [r15 + 0x18], r11
mov rbx, qword [rbx + 0x20]
cmp rbx, qword [rsp + 0x70]
jae 0x1400a6ceb
mov rcx, qword [rsp + 0x120]
xor ebp, ebp
xor r14d, r14d
mov r13d, ebp
nop word [rax + rax]
mov eax, dword [rcx + 0x48]
cmp dword [rbx + 0xc], eax
jne 0x1400a6cc9
test byte [rbx + 0x1a], 0x82
je 0x1400a6cc9
mov rax, qword [rsp + 0x128]
test qword [rbx + 0x28], rax
jne 0x1400a6cc9
movsxd rax, dword [rbx + 0x10]
test eax, eax
js 0x1400a6cc9
lea rdx, [rax + rax*2]
mov rax, qword [rcx + 0x20]
add rdx, rdx
mov rcx, qword [rax + 8]
movzx edx, byte [rcx + rdx*8 + 0x29]
mov rcx, qword [rbx]
call fcn.14006b840
test eax, eax
je 0x1400a6cc1
mov ecx, dword [rbx + 0x10]
cmp ecx, 0x40
jl 0x1400a6c3c
movabs rax, 0x8000000000000000
jmp 0x1400a6c44
mov eax, 1
shl rax, cl
test r13, rax
jne 0x1400a6cc1
mov rdx, qword [rbx]
or r13, rax
mov rcx, qword [r15 + 8]
movzx eax, word [rbx + 0x10]
mov word [r14 + rcx], ax
mov rsi, qword [rdx + 0x18]
mov rdx, qword [rdx + 0x10]
test dword [rdx + 4], 0x100
jne 0x1400a6c8b
test rsi, rsi
je 0x1400a6c7b
test dword [rsi + 4], 0x100
jne 0x1400a6c88
mov rcx, rdi
call fcn.14006b590
test rax, rax
jne 0x1400a6ca4
mov rdx, rsi
mov rcx, rdi
call fcn.14006b590
test rax, rax
jne 0x1400a6ca4
lea rsi, str.BINARY
mov rcx, rsi
jmp 0x1400a6cae
mov rcx, qword [rax]
lea rsi, str.BINARY
mov rax, qword [r15 + 0x40]
inc r12d
add r14, 2
mov qword [rax + rbp], rcx
add rbp, 8
mov rcx, qword [rsp + 0x120]
add rbx, 0x38
cmp rbx, qword [rsp + 0x70]
jb 0x1400a6bd0
mov r14, qword [rsp + 0x80]
mov r13d, 0x3f
mov r11, qword [rsp + 0x60]
mov r9d, dword [rsp + 0x58]
xor ecx, ecx
test r9d, r9d
jle 0x1400a6d3b
mov r10, qword [rsp + 0x88]
movsxd rax, r12d
lea rdx, [rax*8]
lea r8, [rax + rax]
nop
mov eax, ecx
bt r10, rax
jae 0x1400a6d34
mov rax, qword [r15 + 8]
inc r12d
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [r15 + 0x40]
mov qword [rdx + rax], rsi
add rdx, 8
inc ecx
cmp ecx, r9d
jl 0x1400a6d10
mov rax, qword [rsp + 0x120]
cmp qword [rax + 0x60], 0
jge 0x1400a6d8b
cmp r13w, word [r11 + 0x3e]
jge 0x1400a6d8b
movsxd rax, r12d
lea rcx, [rax*8]
lea rdx, [rax + rax]
mov rax, qword [r15 + 8]
lea rdx, [rdx + 2]
inc r12d
lea rcx, [rcx + 8]
mov word [rdx + rax - 2], r13w
inc r13d
mov rax, qword [r15 + 0x40]
mov qword [rcx + rax - 8], rsi
movsx eax, word [r11 + 0x3e]
cmp r13d, eax
jl 0x1400a6d60
mov rax, qword [r15 + 8]
or edx, 0xffffffff
mov rbp, qword [rsp + 0x130]
mov r9d, dword [rsp + 0x110]
movsxd rcx, r12d
mov dword [rsp + 0x20], 0
mov word [rax + rcx*2], dx
mov edx, gethostname
mov rax, qword [r15 + 0x40]
mov qword [rax + rcx*8], rsi
mov rcx, r14
mov eax, dword [rdi + 0x50]
mov dword [rbp + 8], eax
inc dword [rdi + 0x50]
mov r8d, dword [rbp + 8]
inc r9d
call fcn.140056030
mov rbx, qword [rdi + 0x10]
mov rdx, r15
mov rcx, rdi
call fcn.14007de40
mov rcx, qword [rbx]
mov rsi, rax
mov rax, qword [rbx + 8]
test rax, rax
je 0x1400a6e3a
cmp byte [rcx + 0x51], 0
jne 0x1400a6e3a
mov edx, dword [rbx + 0x3c]
dec edx
movsxd rdx, edx
lea r8, [rdx + rdx*2]
movsx edx, byte [rax + r8*8 + 1]
lea rbx, [rax + r8*8]
mov r8, qword [rax + r8*8 + 0x10]
call fcn.140056780
xor r8d, r8d
mov qword [rbx + 0x10], r8
test rsi, rsi
jne 0x1400a6e30
mov qword [rbx + 0x10], r8
mov byte [rbx + 1], r8b
jmp 0x1400a6e4a
mov qword [rbx + 0x10], rsi
mov byte [rbx + 1], 0xfa
jmp 0x1400a6e4a
mov r8, rsi
mov edx, 0xfffffffa
call fcn.140056780
xor r8d, r8d
inc dword [rdi + 0x70]
xor r9d, r9d
movzx eax, byte [rbp + 0x2c]
mov rcx, r14
imul r13, rax, 0x78
mov rax, qword [rsp + 0x118]
mov dword [rsp + 0x20], r8d
mov rax, qword [rax]
add r13, qword [rax + 8]
test byte [r13 + 0x48], 0x10
je 0x1400a6f01
mov ebx, dword [r13 + 0x3c]
lea edx, [r9 + 0x17]
xor r8d, r8d
call fcn.140056030
mov rcx, qword [r14 + 0x30]
mov ebp, eax
movsxd rsi, dword [r14 + 0x3c]
mov eax, dword [r13 + 0x38]
mov dword [rsp + 0x120], eax
cmp dword [rcx + 0x60], esi
jg 0x1400a6eb0
mov rcx, r14
call fcn.140055f80
test eax, eax
jne 0x1400a6ee5
inc dword [r14 + 0x3c]
lea rcx, [rsi + rsi*2]
mov rax, qword [r14 + 8]
xor r8d, r8d
mov edx, dword [rsp + 0x120]
mov word [rax + rcx*8], reloc.WS2_32.dll_recvfrom
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebx
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], r8
jmp 0x1400a6ee8
xor r8d, r8d
xor r9d, r9d
mov dword [rsp + 0x20], r8d
mov r8d, ebx
mov rcx, r14
lea edx, [r9 + 0x14]
call fcn.140056030
jmp 0x1400a6f16
mov r8d, dword [rbp + 4]
mov edx, WSASetLastError
call fcn.140056030
mov ebp, dword [rsp + 0x120]
mov r10, qword [rsp + 0x50]
mov ebx, eax
test r10, r10
je 0x1400a6fa7
mov rsi, qword [r14 + 0x30]
mov edx, dword [rsi + 0x78]
mov dword [rsp + 0x40], edx
lea eax, [rdx + 1]
mov dword [rsi + 0x78], eax
lea eax, [rdx - 1]
test edx, eax
jne 0x1400a6f6b
mov rcx, qword [rsi]
lea eax, [rdx*2 + 1]
mov rdx, qword [rsi + 0x80]
movsxd r8, eax
shl r8, 2
call fcn.140036300
mov edx, dword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
mov qword [rsi + 0x80], rax
mov rcx, qword [rsi + 0x80]
test rcx, rcx
je 0x1400a6f81
movsxd rax, edx
mov dword [rcx + rax*4], 0xffffffff
not edx
mov r9d, reloc.WS2_32.dll_recv
mov dword [rsp + 0x40], edx
mov r8d, edx
mov rdx, r10
mov rcx, rdi
call fcn.140071340
mov rax, qword [rsp + 0x48]
or dword [rax + 0x28], 0x20000
movzx eax, byte [rdi + 0x1f]
test al, al
jne 0x1400a6fb7
inc dword [rdi + 0x54]
mov esi, dword [rdi + 0x54]
jmp 0x1400a6fc3
dec al
movzx eax, al
mov byte [rdi + 0x1f], al
mov esi, dword [rdi + rax*4 + 0x24]
mov rcx, qword [rsp + 0x130]
xor eax, eax
mov dword [rsp + 0x38], eax
mov r9d, esi
mov qword [rsp + 0x30], rax
mov rdx, r15
mov qword [rsp + 0x28], rax
mov r8d, dword [rcx + 4]
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.140080500
mov dword [rsp + 0x120], eax
mov r9d, esi
mov rax, qword [rsp + 0x130]
mov edx, reloc.WS2_32.dll_WSAGetLastError
mov rcx, r14
mov dword [rsp + 0x20], 0
mov r8d, dword [rax + 8]
call fcn.140056030
mov rcx, qword [r14]
lea r15, [0x140330198]
mov edx, dword [r14 + 0x3c]
dec edx
cmp byte [rcx + 0x51], 0
je 0x1400a7037
mov rax, r15
jmp 0x1400a7046
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
cmp qword [rsp + 0x50], 0
mov byte [rax + 3], reloc.WS2_32.dll_recv
je 0x1400a707c
mov rdx, qword [r14 + 0x30]
mov r8, qword [rdx + 0x80]
test r8, r8
je 0x1400a7073
mov eax, dword [rsp + 0x40]
not eax
movsxd rcx, eax
mov eax, dword [r14 + 0x3c]
mov dword [r8 + rcx*4], eax
mov eax, dword [r14 + 0x3c]
dec eax
mov dword [rdx + 0x64], eax
test byte [r13 + 0x48], 0x10
je 0x1400a7169
test ebp, ebp
jns 0x1400a7091
mov ebp, dword [r14 + 0x3c]
dec ebp
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
je 0x1400a709f
mov rcx, r15
jmp 0x1400a70ae
movsxd rax, ebp
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rcx, [rax + rcx*8]
mov eax, dword [rsp + 0x120]
add eax, r12d
mov dword [rcx + 8], eax
mov ecx, ebx
mov rax, qword [rsp + 0x130]
mov r10d, dword [r13 + 0x40]
mov r9d, dword [rax + 4]
test ebx, ebx
jns 0x1400a70d7
mov ecx, dword [r14 + 0x3c]
dec ecx
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
je 0x1400a70e5
mov rdx, r15
jmp 0x1400a70f4
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rdx, [rax + rcx*8]
mov eax, dword [r14 + 0x3c]
cmp ebx, eax
jge 0x1400a714b
add rdx, 4
sub eax, ebx
mov r8d, eax
cmp dword [rdx], r9d
jne 0x1400a7141
movzx eax, byte [rdx - 4]
cmp al, 0x2f
jne 0x1400a712d
mov ecx, dword [rdx + 4]
mov eax, dword [rdx + 8]
add ecx, r10d
mov dword [rdx], ecx
mov byte [rdx - 4], 0x1f
mov dword [rdx + 4], eax
mov dword [rdx + 8], 0
jmp 0x1400a7141
cmp al, 0x68
jne 0x1400a7141
mov eax, dword [rdx + 4]
mov dword [rdx], eax
mov dword [rdx + 4], 1
mov byte [rdx - 4], 0x25
add rdx, 0x18
sub r8, 1
jne 0x1400a7105
xor ebp, ebp
mov r9d, ebx
xor r8d, r8d
mov dword [rsp + 0x20], ebp
mov rcx, r14
lea edx, [rbp + 0xe]
call fcn.140056030
and dword [r13 + 0x48], 0xffffffef
jmp 0x1400a718a
mov rax, qword [rsp + 0x130]
lea r9d, [rbx + 1]
xor ebp, ebp
mov rcx, r14
mov dword [rsp + 0x20], ebp
mov r8d, dword [rax + 4]
lea edx, [rbp + 8]
call fcn.140056030
mov rax, qword [r14]
mov ecx, dword [r14 + 0x3c]
dec ecx
cmp byte [rax + 0x51], 0
je 0x1400a719e
mov rax, r15
jmp 0x1400a71ad
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov byte [rax + 3], 3
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov edx, dword [r14 + 0x3c]
test ebx, ebx
jns 0x1400a71c9
lea ebx, [rdx - 1]
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
je 0x1400a71d7
mov rax, r15
jmp 0x1400a71e6
movsxd rax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
test esi, esi
je 0x1400a7220
movzx edx, byte [rdi + 0x1f]
cmp dl, 8
jae 0x1400a7220
mov ecx, ebp
lea rax, [rdi + 0x88]
nop
cmp dword [rax + 0xc], esi
je 0x1400a721c
inc ecx
add rax, 0x14
cmp ecx, 0xa
jl 0x1400a7200
movzx eax, dl
mov dword [rdi + rax*4 + 0x24], esi
inc byte [rdi + 0x1f]
jmp 0x1400a7220
mov byte [rax + 6], 1
dec dword [rdi + 0x70]
lea rcx, [rdi + 0x94]
mov r8d, 0xa
mov edx, dword [rcx]
test edx, edx
je 0x1400a725c
mov eax, dword [rdi + 0x70]
cmp dword [rcx - 4], eax
jle 0x1400a725c
cmp byte [rcx - 6], 0
je 0x1400a725a
movzx eax, byte [rdi + 0x1f]
cmp al, 8
jae 0x1400a7256
movzx eax, al
mov dword [rdi + rax*4 + 0x24], edx
inc byte [rdi + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], ebp
add rcx, 0x14
sub r8, 1
jne 0x1400a7230
mov ecx, dword [r14 + 0x3c]
mov rax, qword [r14 + 0x30]
dec ecx
mov dword [rax + 0x64], ecx
mov ecx, dword [rsp + 0x68]
mov edx, dword [r14 + 0x3c]
test ecx, ecx
jns 0x1400a7282
lea ecx, [rdx - 1]
mov rax, qword [r14]
cmp byte [rax + 0x51], 0
jne 0x1400a729a
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 8]
lea r15, [rax + rcx*8]
mov dword [r15 + 8], edx
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rdi]
add rsp, 0xc8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.14006c560