Function at 0x1400d227c
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, 0x98
mov rdi, qword [rcx + 0x10]
xor eax, eax
mov r12, r8
mov byte [rsp + 0xe0], al
mov rsi, rdx
mov qword [rsp + 0x58], rax
mov rbx, rcx
mov dword [rsp + 0x60], eax
lea edx, [rax + 0xe]
mov dword [rsp + 0x64], eax
xor r9d, r9d
mov qword [rsp + 0x88], rdi
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, rdi
mov bpl, al
mov r15d, eax
call fcn.140117984
mov r8, qword [rsp + 0x100]
lea r9d, [r15 + 1]
mov r14, qword [rsi + 0x20]
lea r11d, [r15 + 3]
mov rcx, qword [r12 + 0x20]
xor r13d, r13d
mov dword [rsp + 0x70], eax
movabs r10, 0x8000000000000000
mov rdx, qword [r8 + 0x60]
xor r8d, r8d
movsxd rax, dword [rsi + 0x14]
imul rax, rax, 0x38
mov dword [rsp + 0x40], r13d
add rax, r14
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], r8
cmp r14, rax
jae 0x1400d2544
test byte [r14 + 0x12], 2
mov rsi, qword [r14]
jne 0x1400d2451
test byte [r12 + 0x3c], 0x40
jne 0x1400d2451
mov eax, dword [rsi + 4]
and eax, r9d
test byte [r12 + 0x3c], 8
je 0x1400d237f
test eax, eax
je 0x1400d2451
mov eax, dword [r12 + 0x44]
cmp dword [rsi + 0x34], eax
jmp 0x1400d2381
test eax, eax
jne 0x1400d2451
mov r8d, dword [r12 + 0x44]
mov edx, r11d
mov rcx, rsi
call fcn.1400d72fc
test eax, eax
je 0x1400d2451
test rsi, rsi
je 0x1400d23b8
mov rcx, qword [rbx]
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
call fcn.1400d6cfc
mov rsi, rax
mov rbp, qword [rbx]
test r15, r15
jne 0x1400d23ca
mov r15, rsi
mov qword [rsp + 0x58], rsi
jmp 0x1400d2449
test rsi, rsi
je 0x1400d2449
mov eax, dword [r15 + 4]
mov ecx, 0x20000001
and eax, ecx
lea edx, [rcx - 1]
cmp eax, edx
je 0x1400d23ea
mov eax, dword [rsi + 4]
and eax, ecx
cmp eax, edx
jne 0x1400d242e
cmp byte [rbx + 0x124], 2
jae 0x1400d242e
mov rdx, qword [rbx + 0x58]
mov r8, r15
mov rcx, rbx
call fcn.1400fe97c
mov r8, rsi
mov qword [rbx + 0x58], rax
mov rdx, rax
mov rcx, rbx
call fcn.1400fe97c
lea r8, [0x140156444]
mov qword [rbx + 0x58], rax
mov edx, 0x9b
mov rcx, rbp
call fcn.1400fb14c
jmp 0x1400d2441
mov r9, rsi
mov r8, r15
mov edx, 0x2c
mov rcx, rbx
call fcn.14010844c
mov qword [rsp + 0x58], rax
mov r15, rax
mov bpl, byte [rsp + 0xe0]
mov r8, qword [rsp + 0xf8]
mov rdx, r12
mov rcx, r14
call fcn.14012c388
test eax, eax
je 0x1400d2507
movsxd rcx, dword [r14 + 0x20]
mov esi, 1
shl rsi, cl
movabs rax, 0x8000000000000000
cmp ecx, 0x40
cmovge rsi, rax
test bpl, bpl
jne 0x1400d24bb
mov rax, qword [rsp + 0x68]
lea rcx, [rcx + rcx*2]
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.1400bc63c
mov byte [rsp + 0xe0], 1
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
test r8, rsi
jne 0x1400d2511
mov rcx, qword [rbx]
lea ebp, [r13 + 1]
mov r8d, ebp
call fcn.14013607c
test eax, eax
jne 0x1400d2a8b
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
or r8, rsi
movsxd rcx, r13d
mov r13d, ebp
mov dword [rsp + 0x40], ebp
mov qword [rsp + 0x50], r8
mov rax, qword [rdx + 0x48]
mov qword [rax + rcx*8], r14
jmp 0x1400d2511
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov bpl, byte [rsp + 0xe0]
mov r9d, 1
add r14, 0x38
lea r11d, [r9 + 2]
cmp r14, qword [rsp + 0x80]
jb 0x1400d2345
mov rcx, qword [rsp + 0x68]
movabs r10, 0x8000000000000000
mov word [rdx + 0x3c], r13w
not r8
mov word [rdx + 0x18], r13w
or r8, r10
mov dword [rdx + 0x38], 0x4241
mov r15d, 0x3f
and r8, qword [r12 + 0x50]
xor edx, edx
mov qword [rsp + 0x50], r8
cmp r15w, word [rcx + 0x36]
jge 0x1400d2579
mov ebp, r15d
jmp 0x1400d2588
movsx ebp, word [rcx + 0x36]
mov dword [rsp + 0xe0], ebp
test ebp, ebp
jle 0x1400d25b0
mov ecx, r13d
mov eax, edx
inc r13d
bt r8, rax
cmovae r13d, ecx
add edx, r9d
cmp edx, ebp
jl 0x1400d2588
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0xe0], ebp
cmp qword [r12 + 0x50], 0
jge 0x1400d25c8
movsx eax, word [rcx + 0x36]
add r13d, 0xffffffc1
add r13d, eax
mov dword [rsp + 0x40], r13d
mov rcx, qword [rbx]
lea edx, [r9 + r13]
lea r9, [rsp + 0x78]
xor r8d, r8d
call fcn.1400eeef0
mov rsi, rax
test rax, rax
je 0x1400d2a8b
mov rax, qword [rsp + 0x48]
lea r11, [0x14014e34c]
mov r14, qword [rsp + 0xe8]
xor r12d, r12d
mov r10, qword [rsp + 0x68]
and qword [rsp + 0x78], r12
mov qword [rax + 0x20], rsi
lea rax, str.auto_index
mov qword [rsi], rax
mov qword [rsi + 0x18], r10
mov r14, qword [r14 + 0x20]
cmp r14, qword [rsp + 0x80]
jae 0x1400d2712
mov rbp, qword [rsp + 0x78]
xor edi, edi
mov r13, qword [rsp + 0xf0]
xor r15d, r15d
mov r8, qword [rsp + 0xf8]
mov rdx, r13
mov rcx, r14
call fcn.14012c388
test eax, eax
je 0x1400d26da
mov ecx, dword [r14 + 0x20]
mov eax, 1
shl rax, cl
cmp ecx, 0x40
movabs rcx, 0x8000000000000000
cmovge rax, rcx
test rbp, rax
jne 0x1400d26da
mov rdx, qword [r14]
or rbp, rax
mov rcx, qword [rsi + 8]
movzx eax, word [r14 + 0x20]
mov word [r15 + rcx], ax
test dword [rdx + 4], 0x400
je 0x1400d26a3
mov rax, qword [rdx + 0x18]
mov r8, qword [rdx + 0x10]
jmp 0x1400d26ab
mov rax, qword [rdx + 0x10]
mov r8, qword [rdx + 0x18]
mov rdx, rax
mov rcx, rbx
call fcn.1400f15c8
test rax, rax
je 0x1400d26c0
mov rcx, qword [rax]
jmp 0x1400d26c7
lea rcx, [0x14014e34c]
mov rax, qword [rsi + 0x40]
inc r12d
add r15, 2
mov qword [rdi + rax], rcx
add rdi, 8
add r14, 0x38
cmp r14, qword [rsp + 0x80]
jb 0x1400d263f
mov rdi, qword [rsp + 0x88]
lea r11, [0x14014e34c]
mov ebp, dword [rsp + 0xe0]
mov r15d, 0x3f
mov r13d, dword [rsp + 0x40]
mov r10, qword [rsp + 0x68]
xor ecx, ecx
lea r14d, [rcx + 1]
test ebp, ebp
jle 0x1400d275b
mov r9, qword [rsp + 0x50]
movsxd rax, r12d
lea rdx, [rax*8]
lea r8, [rax + rax]
mov eax, ecx
bt r9, rax
jae 0x1400d2754
mov rax, qword [rsi + 8]
add r12d, r14d
mov word [r8 + rax], cx
add r8, 2
mov rax, qword [rsi + 0x40]
mov qword [rdx + rax], r11
add rdx, 8
add ecx, r14d
cmp ecx, ebp
jl 0x1400d2730
mov rax, qword [rsp + 0xf0]
cmp qword [rax + 0x50], 0
jge 0x1400d27a9
cmp r15w, word [r10 + 0x36]
jge 0x1400d27a9
movsxd rax, r12d
lea rcx, [rax*8]
lea rdx, [rax + rax]
mov rax, qword [rsi + 8]
add r12d, r14d
mov word [rdx + rax], r15w
add r15d, r14d
mov rax, qword [rsi + 0x40]
lea rdx, [rdx + 2]
mov qword [rcx + rax], r11
lea rcx, [rcx + 8]
movsx eax, word [r10 + 0x36]
cmp r15d, eax
jl 0x1400d2780
mov rax, qword [rsi + 8]
lea r9d, [r13 + 1]
mov rbp, qword [rsp + 0x100]
mov edx, reloc.WS2_32.dll_WSACleanup
and dword [rsp + 0x20], 0
movsxd rcx, r12d
or word [rax + rcx*2], 0xffff
mov rax, qword [rsi + 0x40]
mov qword [rax + rcx*8], r11
mov rcx, rdi
mov eax, dword [rbx + 0x34]
mov dword [rbp + 8], eax
add dword [rbx + 0x34], r14d
mov r8d, dword [rbp + 8]
call fcn.140117984
mov rdx, rsi
mov rcx, rbx
call fcn.140122370
mov rax, qword [rbx]
test dword [rax + 0x60], 0x80000
jne 0x1400d2824
add dword [rbx + 0x38], r14d
mov edx, 0x4d
mov r9d, dword [rbx + 0x38]
mov r8d, 0x2710
and dword [rsp + 0x20], 0
mov rcx, rdi
mov dword [rbp + 0x34], r9d
call fcn.140117984
movzx eax, byte [rbp + 0x40]
imul r14, rax, 0x68
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax]
mov r15, qword [rax + 8]
test byte [r14 + r15 + 0x48], 0x20
je 0x1400d2885
mov ebp, dword [r14 + r15 + 0x3c]
xor r9d, r9d
and dword [rsp + 0x20], 0
xor r8d, r8d
mov rcx, rdi
lea edx, [r9 + 0x47]
call fcn.140117984
mov ecx, dword [r14 + r15 + 0x38]
xor r9d, r9d
mov dword [rsp + 0x20], ecx
mov r8d, ebp
mov rcx, rdi
mov dword [rsp + 0x64], eax
lea edx, [r9 + 0xa]
call fcn.140117984
mov edx, listen
jmp 0x1400d288d
mov ebp, dword [rbp + 4]
mov edx, 0x23
and dword [rsp + 0x20], 0
xor r9d, r9d
mov r8d, ebp
mov rcx, rdi
call fcn.140117984
mov r13d, eax
mov edx, reloc.WS2_32.dll_recv
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x1400d28d7
dec dword [rbx + 0x44]
mov r9d, edx
mov ecx, dword [rbx + 0x44]
mov rdx, rax
mov dword [rsp + 0x60], ecx
mov r8d, ecx
mov rcx, rbx
call fcn.1400fe060
mov rax, qword [rsp + 0x48]
bts dword [rax + 0x38], 0x11
mov al, byte [rbx + 0x1f]
test al, al
jne 0x1400d28eb
mov eax, 1
add dword [rbx + 0x38], eax
mov ebp, dword [rbx + 0x38]
jmp 0x1400d28fa
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov ebp, dword [rbx + rax*4 + 0xd8]
and dword [rsp + 0x38], 0
mov r9d, ebp
mov r8, qword [rsp + 0x100]
mov rdx, rsi
and qword [rsp + 0x30], 0
mov rcx, rbx
and qword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
mov r8d, dword [r8 + 4]
call fcn.140102d60
mov esi, eax
mov rax, qword [rsp + 0x100]
mov r8d, dword [rax + 0x34]
test r8d, r8d
je 0x1400d2966
mov rax, qword [rsp + 0x48]
xor r9d, r9d
mov edx, 0xb4
movzx ecx, word [rax + 0x18]
mov dword [rsp + 0x28], ecx
mov rcx, rdi
mov dword [rsp + 0x20], esi
call fcn.140117a98
mov rax, qword [rsp + 0x100]
mov r8d, dword [rax + 8]
mov r9d, ebp
and dword [rsp + 0x20], 0
mov edx, 0x8a
mov rcx, rdi
call fcn.140117984
movsxd rax, dword [rdi + 0x90]
test eax, eax
jle 0x1400d299c
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov word [rax + rcx*8 - 0x16], 0x10
cmp qword [rsp + 0x58], 0
je 0x1400d29b0
mov edx, dword [rsp + 0x60]
mov rcx, rdi
call fcn.1401220f8
test byte [r14 + r15 + 0x48], 0x20
mov rcx, rdi
je 0x1400d2a0e
mov edx, dword [rsp + 0x64]
lea r9d, [rsi + r12]
call fcn.14011f950
mov rcx, qword [rsp + 0x100]
mov edx, r13d
mov dword [rax + 8], r9d
mov eax, dword [rcx + 8]
mov r8d, dword [rcx + 4]
mov rcx, rbx
mov r9d, dword [r14 + r15 + 0x40]
mov dword [rsp + 0x20], eax
call fcn.14012c818
and dword [rsp + 0x20], 0
xor r8d, r8d
mov r9d, r13d
mov rcx, rdi
lea edx, [r8 + 8]
call fcn.140117984
and dword [r14 + r15 + 0x48], 0xffffffdf
jmp 0x1400d2a4a
mov rax, qword [rsp + 0x100]
lea r9d, [r13 + 1]
and dword [rsp + 0x20], 0
mov edx, 0x26
mov r8d, dword [rax + 4]
call fcn.140117984
movsxd rax, dword [rdi + 0x90]
test eax, eax
jle 0x1400d2a4a
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov word [rax + rcx*8 - 0x16], 3
mov edx, r13d
mov rcx, rdi
call fcn.14011f950
mov ecx, dword [rdi + 0x90]
mov dword [rax + 8], ecx
test ebp, ebp
je 0x1400d2a76
cmp byte [rbx + 0x1f], 8
jae 0x1400d2a76
movzx eax, byte [rbx + 0x1f]
mov dword [rbx + rax*4 + 0xd8], ebp
inc byte [rbx + 0x1f]
mov edx, dword [rsp + 0x70]
mov rcx, rdi
call fcn.14011f950
mov ecx, dword [rdi + 0x90]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x1400d2aa0
mov rcx, qword [rbx]
mov rdx, rax
call fcn.1400fdde4
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret