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

Disassembly:
mov dword [rsp + 0x18], r8d
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rdi, qword [rcx + 0x10]
mov r13, rdx
xor edx, edx
mov qword [rsp + 0xe8], rdi
mov r15d, r8d
mov dword [rsp + 0xd0], edx
mov rsi, rcx
mov r12d, edx
mov eax, dword [r13 + 4]
mov r8d, 1
test al, 0x40
jne 0x1400e5934
cmp dword [rcx + 0x44], edx
jne 0x1400e5934
mov ebx, edx
bt eax, 0xc
jae 0x1400e56f9
mov rax, qword [r13 + 0x20]
test byte [rax + 4], 2
jne 0x1400e56f9
mov rcx, qword [rcx]
mov edx, 0x20
call fcn.1400ea610
mov rbx, rax
test rax, rax
je 0x1400e56f3
mov rax, qword [r13 + 0x20]
mov rdx, r13
mov ecx, dword [rax + 0x10]
mov dword [rbx], ecx
mov rcx, rsi
call fcn.1400b11e0
mov qword [rbx + 8], rax
mov r8d, 1
mov r14d, dword [r13 + 4]
bt r14d, 0x19
jb 0x1400e585e
test rbx, rbx
je 0x1400e57b0
mov ebp, dword [rbx]
mov edx, r8d
mov ecx, ebp
and ecx, 7
shl edx, cl
test byte [rsi + 0x28], dl
je 0x1400e57a8
mov rdx, qword [rsi + 0x10]
mov rax, qword [rdx]
cmp byte [rax + 0x67], r12b
jne 0x1400e57a8
mov eax, dword [rdx + 0x90]
mov r9, qword [rdx + 0x88]
dec eax
cdqe
add r9, 0x18
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea r11, [rax + rcx*8]
cmp r9, r11
jae 0x1400e57a8
add r9, 0x10
cmp byte [r9 - 0xf], 0xef
jne 0x1400e579b
mov r10, qword [r9]
cmp ebp, dword [r10]
jne 0x1400e579b
mov rax, qword [rbx + 8]
mov r8, qword [r10 + 8]
sub r8, rax
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1400e5793
inc rax
test ecx, ecx
jne 0x1400e5780
test edx, edx
je 0x1400e5835
add r9, 0x18
lea rax, [r9 - 0x10]
cmp rax, r11
jb 0x1400e5760
mov r15d, dword [rsp + 0xe0]
or dword [r13 + 4], 0x2000000
lea r14, [rsi + 0x28]
mov r9d, dword [rsi + 0x3c]
xor r8d, r8d
inc r9d
mov edx, 0x4a
mov dword [rsi + 0x3c], r9d
mov rcx, rdi
mov dword [r13 + 0x44], r9d
call fcn.14011a580
inc eax
mov dword [r13 + 0x40], eax
test rbx, rbx
je 0x1400e5915
mov ecx, dword [rbx]
mov edx, 1
mov dword [rbx + 0x14], eax
and ecx, 7
mov eax, dword [r13 + 0x44]
mov dword [rbx + 0x18], eax
mov dword [rbx + 0x10], r15d
shl dl, cl
mov byte [r14], dl
mov rbp, qword [rdi]
cmp byte [rbp + 0x67], r12b
je 0x1400e58d9
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x1400e5825
mov rcx, rbp
call fcn.1400ea480
mov rdx, rbx
mov rcx, rbp
call fcn.1400ea480
jmp 0x1400e5915
mov eax, dword [r10 + 0x14]
bts r14d, 0x19
mov r15d, dword [rsp + 0xe0]
mov dword [r13 + 0x40], eax
mov eax, dword [r10 + 0x18]
mov dword [r13 + 0x44], eax
mov eax, dword [r10 + 0x10]
mov dword [r13 + 0x2c], eax
mov dword [r13 + 4], r14d
mov edx, reloc.WS2_32.dll_ntohs
mov rcx, rdi
call fcn.14011a4a0
test dword [r13 + 4], 0x1000
movsxd rbp, eax
je 0x1400e5891
mov r9, qword [r13 + 0x20]
lea r8, str.REUSE_LIST_SUBQUERY__d
xor edx, edx
mov rcx, rsi
mov r9d, dword [r9 + 0x10]
call fcn.140124690
mov r9d, dword [r13 + 0x40]
mov edx, 0xa
mov r8d, dword [r13 + 0x44]
mov rcx, rdi
call fcn.14011a580
mov r9d, dword [r13 + 0x2c]
mov r8d, r15d
mov edx, WSAStartup
mov rcx, rdi
call fcn.14011a580
mov rax, qword [rdi]
mov edx, dword [rdi + 0x90]
cmp byte [rax + 0x67], r12b
je 0x1400e5951
lea rax, [0x14019e058]
jmp 0x1400e5967
movsxd rax, dword [rdi + 0x90]
lea rdx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
lea rdx, [rdx - 3]
cmp byte [rax + rdx*8 + 1], r12b
lea rdx, [rax + rdx*8]
je 0x1400e590d
mov r9d, 0xffffffef
mov r8, rbx
mov rcx, rdi
call fcn.14013a520
jmp 0x1400e5915
mov qword [rdx + 0x10], rbx
mov byte [rdx + 1], 0xef
mov edx, reloc.WS2_32.dll_ntohs
mov rcx, rdi
call fcn.14011a4a0
mov r12d, eax
mov dword [rsp + 0xd0], eax
xor edx, edx
mov r8d, 1
mov r14, qword [r13 + 0x10]
movzx eax, byte [r14]
cmp al, 0xb0
jne 0x1400e5945
movzx eax, byte [r14 + 2]
cmp al, 0xb1
jne 0x1400e5994
mov rax, qword [r14 + 0x20]
mov ebp, dword [rax]
jmp 0x1400e59a7
mov rax, qword [rdi + 0x88]
lea rcx, [rbp*2]
add rcx, rbp
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
test rbx, rbx
je 0x1400e6149
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x1400e5984
mov rcx, qword [rsi]
call fcn.1400ea480
mov rcx, qword [rsi]
mov rdx, rbx
call fcn.1400ea480
jmp 0x1400e6149
cmp al, 0x8b
jne 0x1400e59a4
mov rax, qword [r14 + 0x20]
mov rcx, qword [rax + 0x20]
mov ebp, dword [rcx]
jmp 0x1400e59a7
mov ebp, r8d
mov dword [r13 + 0x2c], r15d
movsxd rbx, dword [rdi + 0x90]
mov dword [rsp + 0x30], ebx
cmp dword [rdi + 0x94], ebx
jg 0x1400e59db
mov dword [rsp + 0x20], edx
mov r9d, ebp
mov edx, 0x75
mov r8d, r15d
mov rcx, rdi
call fcn.1400bb2e0
mov dword [rsp + 0x30], eax
jmp 0x1400e5a08
lea rcx, [rbx + rbx*2]
lea eax, [rbx + 1]
mov dword [rdi + 0x90], eax
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x75
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov rcx, qword [rsi]
mov r8d, 1
mov edx, ebp
call fcn.1400ff3f0
test dword [r13 + 4], 0x1000
mov r15, rax
mov qword [rsp + 0x38], rax
je 0x1400e5cb6
mov r15, qword [r13 + 0x20]
lea rax, [0x14017ef61]
test r12d, r12d
lea r9, str.CORRELATED
mov r12d, 1
lea r8, str._sLIST_SUBQUERY__d
cmovne r9, rax
mov edx, r12d
mov rbx, qword [r15 + 0x20]
mov rcx, rsi
mov eax, dword [r15 + 0x10]
mov qword [rsp + 0xd8], rbx
mov dword [rsp + 0x20], eax
call fcn.140124690
cmp dword [rbx], ebp
jne 0x1400e5fcd
mov eax, dword [rsp + 0xe0]
xor ebx, ebx
mov rdx, r13
mov qword [rsp + 0x50], rbx
mov rcx, rsi
mov dword [rsp + 0x58], ebx
mov r12d, ebx
mov byte [rsp + 0x48], listen
mov dword [rsp + 0x4c], eax
call fcn.1400b11e0
mov qword [rsp + 0x60], rax
mov dword [r15 + 8], ebx
cmp dword [rsp + 0xd0], ebx
je 0x1400e5ae5
mov rax, qword [rsi]
test dword [rax + 0x60], 0x80000
jne 0x1400e5ae5
inc dword [rsi + 0x3c]
mov edx, 0x4d
mov ebx, dword [rsi + 0x3c]
mov r8d, 0x2710
mov r9d, ebx
mov rcx, rdi
call fcn.14011a580
mov r12d, eax
mov dword [rsp + 0x50], ebx
mov rcx, qword [rsi]
xor r8d, r8d
mov rdx, r15
call fcn.1401124d0
mov rcx, qword [rsi]
mov rbx, rax
cmp byte [rcx + 0x67], 0
je 0x1400e5b09
mov eax, 1
mov r15d, eax
jmp 0x1400e5b21
lea r8, [rsp + 0x48]
mov rdx, rbx
mov rcx, rsi
call fcn.14010edd0
mov r15d, eax
mov eax, 1
test rbx, rbx
je 0x1400e5b34
mov rcx, qword [rsi]
mov r8d, eax
mov rdx, rbx
call fcn.1400a5730
mov rdx, qword [rsp + 0x60]
test rdx, rdx
je 0x1400e5b46
mov rcx, qword [rsi]
call fcn.1400ea480
test r12d, r12d
je 0x1400e5bbf
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
je 0x1400e5b65
mov r8d, dword [rsp + 0xd0]
lea rcx, [0x14019e058]
jmp 0x1400e5b7c
movsxd r8, dword [rsp + 0xd0]
mov rax, qword [rdi + 0x88]
lea rcx, [r8 + r8*2]
lea rcx, [rax + rcx*8]
mov eax, dword [rsp + 0x50]
mov dword [rcx + 0xc], eax
mov edx, dword [rsp + 0x50]
test edx, edx
jne 0x1400e5b98
mov edx, r12d
mov rcx, rdi
call fcn.14011ac40
jmp 0x1400e5bbf
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
je 0x1400e5baa
lea rax, [0x14019e058]
jmp 0x1400e5bbc
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 0xc], edx
test r15d, r15d
je 0x1400e5bec
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400e6149
add dword [rcx], 0xffffffff
jne 0x1400e6149
mov rdx, rcx
mov rcx, qword [rcx + 0x10]
call fcn.1400ea6d0
jmp 0x1400e6149
movsxd r12, ebp
test ebp, ebp
jle 0x1400e5fc7
mov r15, qword [rsp + 0x38]
xor ebp, ebp
mov rdi, qword [rsp + 0xd8]
add r15, 0x20
nop word [rax + rax]
movzx edx, byte [r14]
movzx eax, dl
cmp dl, 0xb0
jne 0x1400e5c21
movzx eax, byte [r14 + 2]
cmp al, 0xb1
jne 0x1400e5c2e
mov rax, qword [r14 + 0x20]
mov rcx, rax
jmp 0x1400e5c3a
cmp al, 0x8b
jne 0x1400e5c5d
mov rax, qword [r14 + 0x20]
mov rcx, qword [rax + 0x20]
cmp dword [rcx], 1
jle 0x1400e5c5d
cmp dl, 0x8b
je 0x1400e5c52
cmp byte [r14 + 2], 0x8b
je 0x1400e5c52
mov rdx, qword [rax + rbp + 8]
jmp 0x1400e5c60
mov rax, qword [rax + 0x20]
mov rdx, qword [rax + rbp + 8]
jmp 0x1400e5c60
mov rdx, r14
test dword [rdx + 4], 0x200
mov rbx, qword [rdi + rbp + 8]
jne 0x1400e5c8c
test rbx, rbx
je 0x1400e5c7c
test dword [rbx + 4], 0x200
jne 0x1400e5c89
mov rcx, rsi
call fcn.1400f15a0
test rax, rax
jne 0x1400e5c94
mov rdx, rbx
mov rcx, rsi
call fcn.1400f15a0
mov qword [r15], rax
add rbp, 0x20
add r15, 8
sub r12, 1
jne 0x1400e5c10
mov rdi, qword [rsp + 0xe8]
jmp 0x1400e5fc7
mov rbx, qword [r13 + 0x20]
test rbx, rbx
je 0x1400e5fc7
mov rcx, r14
call fcn.1400ed8b0
mov byte [rsp + 0xd8], al
cmp al, 0x40
jg 0x1400e5ce0
mov byte [rsp + 0xd8], 0x41
jmp 0x1400e5cec
cmp al, 0x45
jne 0x1400e5cec
mov byte [rsp + 0xd8], 0x43
test r15, r15
je 0x1400e5d01
mov rdx, qword [r13 + 0x10]
mov rcx, rsi
call fcn.1400f15a0
mov qword [r15 + 0x20], rax
movzx eax, byte [rsi + 0x1f]
lea rcx, [rsi + 0x3c]
test al, al
jne 0x1400e5d1d
mov r14d, dword [rcx]
inc r14d
mov dword [rcx], r14d
inc dword [rcx]
mov r15d, dword [rcx]
jmp 0x1400e5d46
sub al, 1
movzx edx, al
mov byte [rsi + 0x1f], dl
mov r14d, dword [rsi + rdx*4 + 0xe8]
jne 0x1400e5d36
inc dword [rcx]
mov r15d, dword [rcx]
jmp 0x1400e5d46
dec dl
movzx eax, dl
mov byte [rsi + 0x1f], al
mov r15d, dword [rsi + rax*4 + 0xe8]
mov eax, dword [rbx]
mov dword [rsp + 0xe8], eax
lea rax, [rbx + 8]
mov ebx, dword [rsp + 0xe8]
mov qword [rsp + 0x40], rax
test ebx, ebx
jle 0x1400e5f97
movsxd r12, r12d
lea rcx, [fcn.1400b1fb0]
lea rdx, [0x140112e40]
nop dword [rax + rax]
mov rbp, qword [rax]
test r12, r12
je 0x1400e5e49
mov qword [rsp + 0x48], rsi
mov eax, 1
mov word [rsp + 0x6c], ax
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], rdx
test rbp, rbp
je 0x1400e5e49
mov rdx, rbp
lea rcx, [rsp + 0x48]
call fcn.14012ac00
cmp word [rsp + 0x6c], 0
jne 0x1400e5e49
mov rcx, qword [rdi]
cmp byte [rcx + 0x67], 0
jne 0x1400e5dfc
mov rax, qword [rdi + 0x88]
lea rdx, [r12 + r12*2]
mov r8, qword [rax + rdx*8 - 8]
lea rbx, [rax + rdx*8]
movsx edx, byte [rax + rdx*8 - 0x17]
call fcn.1400b7fb0
xor eax, eax
mov word [rbx - 0x18], 0xbb
mov qword [rbx - 8], rax
jmp 0x1400e5dfe
xor eax, eax
mov rcx, qword [rdi]
cmp byte [rcx + 0x67], 0
jne 0x1400e5e30
mov rax, qword [rdi + 0x88]
lea rdx, [r12 + r12*2]
mov r8, qword [rax + rdx*8 + 0x10]
lea rbx, [rax + rdx*8]
movsx edx, byte [rax + rdx*8 + 1]
call fcn.1400b7fb0
xor eax, eax
mov word [rbx], 0xbb
mov qword [rbx + 0x10], rax
and dword [r13 + 4], 0xfdffffff
mov r12, rax
mov ebx, dword [rsp + 0xe8]
mov dword [rsp + 0xd0], eax
mov r8d, r14d
mov rdx, rbp
mov rcx, rsi
call fcn.1400ee240
movsxd rdx, dword [rdi + 0x90]
cmp dword [rdi + 0x94], edx
jg 0x1400e5e8b
mov r9d, 1
mov dword [rsp + 0x20], r15d
mov r8d, r14d
mov edx, 0x61
mov rcx, rdi
call fcn.1400bb2e0
mov edx, eax
mov r8d, 1
jmp 0x1400e5ec2
lea rcx, [rdx + rdx*2]
xor ebp, ebp
lea eax, [rdx + 1]
mov r8d, 1
mov dword [rdi + 0x90], eax
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x61
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], r8d
mov dword [rax + rcx*8 + 0xc], r15d
mov qword [rax + rcx*8 + 0x10], rbp
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
jne 0x1400e5efc
test edx, edx
jns 0x1400e5ed7
mov edx, dword [rdi + 0x90]
dec edx
movsxd rax, edx
mov r9d, r8d
lea r8, [rsp + 0xd8]
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
lea rdx, [rax + rcx*8]
mov rcx, rdi
call fcn.14013a520
movsxd rcx, dword [rdi + 0x90]
cmp dword [rdi + 0x94], ecx
jg 0x1400e5f32
mov r8d, dword [rsp + 0xe0]
mov r9d, r15d
mov dword [rsp + 0x28], 1
mov edx, 0x8a
mov rcx, rdi
mov dword [rsp + 0x20], r14d
call fcn.14009bbb0
jmp 0x1400e5f6a
mov edx, dword [rsp + 0xe0]
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0xfd8a
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], r14d
mov dword [rax + rcx*8 + 0x10], 1
mov rax, qword [rsp + 0x40]
lea rcx, [fcn.1400b1fb0]
add rax, 0x20
lea rdx, [0x140112e40]
dec ebx
mov qword [rsp + 0x40], rax
mov dword [rsp + 0xe8], ebx
test ebx, ebx
jg 0x1400e5d80
test r14d, r14d
je 0x1400e5faf
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x1400e5faf
mov dword [rsi + rax*4 + 0xe8], r14d
inc byte [rsi + 0x1f]
test r15d, r15d
je 0x1400e5fc7
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x1400e5fc7
mov dword [rsi + rax*4 + 0xe8], r15d
inc byte [rsi + 0x1f]
mov r12d, 1
mov r14, qword [rsp + 0x38]
test r14, r14
je 0x1400e6041
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
je 0x1400e5ffe
cmp qword [rax + 0x308], 0
jne 0x1400e6041
add dword [r14], 0xffffffff
jne 0x1400e6041
mov rcx, qword [r14 + 0x10]
mov rdx, r14
call fcn.1400ea6d0
jmp 0x1400e6041
mov eax, dword [rsp + 0x30]
test eax, eax
jns 0x1400e600e
mov eax, dword [rdi + 0x90]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x1400e6039
mov r9d, 0xfffffff8
mov r8, r14
mov rcx, rdi
call fcn.14013a520
jmp 0x1400e6041
mov qword [rdx + 0x10], r14
mov byte [rdx + 1], 0xf8
mov r8d, dword [rsp + 0xd0]
test r8d, r8d
je 0x1400e6149
movsxd rcx, dword [rdi + 0x90]
xor ebx, ebx
cmp dword [rdi + 0x94], ecx
jg 0x1400e6089
mov r8d, dword [rsp + 0xe0]
xor r9d, r9d
mov edx, 0x88
mov dword [rsp + 0x20], ebx
mov rcx, rdi
call fcn.1400bb2e0
mov r8d, dword [rsp + 0xd0]
jmp 0x1400e60b9
mov edx, dword [rsp + 0xe0]
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x88
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rbx
mov qword [rax + rcx*8 + 0x10], rbx
mov rax, qword [rdi]
mov edx, dword [rdi + 0x90]
cmp byte [rax + 0x67], 0
je 0x1400e60d1
lea rax, [0x14019e058]
jmp 0x1400e60e3
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
movsxd rcx, dword [rdi + 0x90]
mov edx, dword [r13 + 0x40]
mov r8d, dword [r13 + 0x44]
cmp dword [rdi + 0x94], ecx
jg 0x1400e6114
mov r9d, edx
mov dword [rsp + 0x20], r12d
mov edx, 0x43
mov rcx, rdi
call fcn.1400bb2e0
jmp 0x1400e6142
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x43
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], rbx
mov byte [rsi + 0x1f], 0
mov dword [rsi + 0x2c], ebx
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret