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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x5d0
mov rax, qword [0x1402e0068]
xor rax, rsp
mov qword [rsp + 0x5c0], rax
mov r13, qword [rsp + 0x638]
mov rax, qword [rsp + 0x630]
mov rdi, qword [rsp + 0x640]
mov r14, rcx
mov qword [rsp + 0xb0], rcx
xor ecx, ecx
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x648]
mov dword [rsp + 0x84], ecx
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x9c], ecx
lea rdx, [r13 + 0x58]
mov rcx, r13
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x60], r9d
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x70], r13
mov qword [rsp + 0xa8], rdi
call fcn.1400c9dd0
mov dword [r13 + 0x588], eax
mov ecx, dword [r13 + 0x550]
mov edx, dword [r13 + 0x544]
mov rbx, qword [r14]
mov qword [rsp + 0x88], rbx
cmp ecx, edx
jae 0x1400ce59c
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400ce5ab
cmp ecx, edx
jbe 0x1400ce5a9
mov eax, ecx
sub eax, edx
cmp eax, 0x80000000
jb 0x1400ce5ab
mov ecx, edx
mov edx, dword [r13 + 0x53c]
mov r15d, 1
cmp ecx, edx
jae 0x1400ce5c9
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400ce5d5
cmp ecx, edx
jbe 0x1400ce5e1
sub ecx, edx
cmp ecx, 0x80000000
jae 0x1400ce5e1
mov dword [rsp + 0x98], r15d
xor ecx, ecx
jmp 0x1400ce5ea
xor ecx, ecx
mov dword [rsp + 0x98], ecx
mov qword [r13 + 0x3e8], rdi
mov esi, dword [rbx + 0x18]
cmp esi, 0xd8
jge 0x1400ce7e8
cmp qword [rbx], 0
jne 0x1400ce7e8
mov rbx, rcx
mov qword [rsp + 0x88], rcx
mov rbp, rcx
mov r13d, esi
mov r12d, ecx
test esi, esi
jle 0x1400ce793
nop word [rax + rax]
mov rcx, qword [0x1402e8788]
call fcn.1401e6440
cmp esi, 0xb0
mov rdi, rax
jle 0x1400ce6e3
xor ecx, ecx
test rax, rax
je 0x1400ce68d
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov dword [rax + 0x18], ecx
mov dword [rax + 0x1c], 2
mov word [rax + 0x20], r15w
add rax, 0x50
mov qword [rdi + 0x28], rcx
mov dword [rdi + 0x38], ecx
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x10], rax
mov dword [rdi + 0x3c], ecx
mov dword [rdi + 0x40], ecx
mov word [rdi + 0x44], cx
mov word [rdi + 0x46], cx
mov qword [rdi + 0x48], rcx
mov qword [rdi + 0x50], rcx
mov rcx, qword [0x1402e8790]
call fcn.1401e6440
mov rcx, qword [0x1402e8798]
mov rbx, rax
call fcn.1401e6440
mov dword [rax], r15d
or dword [rdi + 0x1c], r15d
xor ecx, ecx
mov qword [rdi + 0x50], rbx
mov qword [rdi + 0x10], rbx
mov rbx, qword [rsp + 0x88]
mov qword [rdi + 0x70], rax
mov qword [rdi + 0x58], rcx
mov qword [rdi + 0x60], rcx
mov dword [rdi + 0x68], 0x800
mov dword [rdi + 0x78], r15d
mov eax, 0x800
jmp 0x1400ce75e
test r12b, 2
je 0x1400ce732
test rax, rax
je 0x1400ce72b
xor ecx, ecx
mov dword [rax + 0x1c], 2
mov word [rax + 0x20], r15w
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov dword [rax + 0x18], ecx
add rax, 0x50
mov qword [rdi + 0x28], rcx
mov dword [rdi + 0x38], ecx
mov qword [rdi + 0x30], rcx
mov dword [rdi + 0x3c], ecx
mov dword [rdi + 0x40], ecx
mov qword [rdi + 0x10], rax
mov word [rdi + 0x44], cx
mov word [rdi + 0x46], cx
mov qword [rdi + 0x48], rcx
mov eax, 0xb0
jmp 0x1400ce759
test rax, rax
je 0x1400ce754
xor ecx, ecx
mov word [rax + 0x20], r15w
add rax, 0x28
mov qword [rax - 0x28], rcx
mov qword [rax - 0x20], rcx
mov dword [rax - 0x10], ecx
mov dword [rax - 0xc], ecx
mov qword [rdi + 0x10], rax
mov eax, 0xd8
cmp esi, eax
cmovl eax, esi
test rdi, rdi
je 0x1400ce84b
cmp eax, r13d
jl 0x1400ce7d0
sub esi, eax
test rbp, rbp
je 0x1400ce779
mov qword [rbp], rdi
jmp 0x1400ce784
mov rbx, rdi
mov qword [rsp + 0x88], rbx
and r12d, 0xfffffffd
mov rbp, rdi
test esi, esi
jg 0x1400ce630
test r12b, 4
je 0x1400ce7a0
or dword [rbp + 0x1c], 4
nop dword [rax]
test rbx, rbx
je 0x1400ce7d8
mov rdx, qword [r14]
mov rcx, qword [rbx + 0x10]
movsxd r8, dword [rdx + 0x18]
mov rdx, qword [rdx + 0x10]
call fcn.1401e75a0
mov r11, qword [r14]
mov eax, dword [r11 + 0x18]
mov dword [rbx + 0x18], eax
mov rcx, qword [r14]
call fcn.1400795b0
mov qword [r14], rbx
jmp 0x1400ce7e3
mov rcx, rdi
call fcn.1400795b0
mov rbx, qword [r14]
mov qword [rsp + 0x88], rbx
mov r13, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
mov ebp, 4
mov rsi, rbx
mov ecx, dword [rdi]
lea r12, [rsp + 0x80]
test ecx, ecx
js 0x1400ce81d
test rbx, rbx
je 0x1400ce81d
test ecx, ecx
jle 0x1400ce858
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x1400ce858
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x1400ce808
mov eax, r15d
mov rcx, qword [rsp + 0x5c0]
xor rcx, rsp
call fcn.1401e6720
mov rbx, qword [rsp + 0x618]
add rsp, 0x5d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
test rbx, rbx
je 0x1400ce7d8
mov rcx, rbx
jmp 0x1400ce7d3
test rsi, rsi
je 0x1400ce81d
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, ebp
jl 0x1400ce871
movsxd r14, ecx
add r14, qword [rsi + 0x10]
jne 0x1400ce8c0
jmp 0x1400ce81d
test ebp, ebp
jle 0x1400ce8a6
mov eax, dword [rsi + 0x18]
movsxd rdx, ecx
mov edi, ebp
sub eax, ecx
mov rcx, r12
cmp eax, ebp
cmovl edi, eax
add rdx, qword [rsi + 0x10]
mov r8d, edi
mov ebx, edi
call fcn.1401e75a0
mov rsi, qword [rsi]
sub ebp, edi
add r12, rbx
xor ecx, ecx
test rsi, rsi
jne 0x1400ce871
jmp 0x1400ce8ab
test rsi, rsi
jne 0x1400ce8b3
test ebp, ebp
jg 0x1400ce81d
mov rdi, qword [rsp + 0x68]
lea r14, [rsp + 0x80]
mov r12, qword [rsp + 0xa0]
lea rsi, [r13 + 0x58]
mov dword [rsp + 0x7c], 0
mov eax, dword [rsi + 0x4e4]
mov dword [r12], eax
inc dword [rsi + 0x5b0]
movzx ecx, word [r14 + 2]
call qword [sym.imp.WS2_32.dll_ntohs]
mov ebp, dword [rsp + 0x60]
mov r9d, dword [rdi]
movzx r15d, ax
mov r8d, ebp
sub r8d, r9d
mov ebx, r15d
cmp r8d, r15d
mov dword [rsp + 0x64], ebx
jl 0x1400ceeed
movzx ecx, byte [rsi + 0x6ca]
cmp cl, 1
jne 0x1400ce926
cmp byte [r14], 0
je 0x1400ced41
test cl, cl
jne 0x1400ce934
cmp byte [r14], 0x40
je 0x1400cedc9
movzx edx, byte [r14]
test dl, dl
je 0x1400cebbf
cmp dl, 0x40
je 0x1400cebb8
movzx eax, dl
dec eax
cmp eax, 0xc0
ja case.0x1400ce972.17
lea r8, [0x140000000]
cdqe
movzx eax, byte [r8 + rax + 0xceff4]
mov ecx, dword [r8 + rax*4 + 0xcefec]
add rcx, r8
jmp rcx
cmp r15w, 4
jb 0x1400cee81
test dl, 0x40
je 0x1400ceba0
xor eax, eax
mov esi, 4
lea ebx, [rsi - 3]
mov r13, rax
mov rbp, rax
mov r12d, eax
nop dword [rax + rax]
mov rcx, qword [0x1402e8788]
call fcn.1401e6440
cmp esi, 0xb0
mov rdi, rax
jle 0x1400cea4e
xor ecx, ecx
test rax, rax
je 0x1400ce9fc
mov qword [rax], rcx
mov qword [rax + 8], rcx
mov dword [rax + 0x18], ecx
mov dword [rax + 0x1c], 2
mov word [rax + 0x20], bx
add rax, 0x50
mov qword [rdi + 0x28], rcx
mov dword [rdi + 0x38], ecx
mov qword [rdi + 0x30], rcx
mov qword [rdi + 0x10], rax
mov dword [rdi + 0x3c], ecx
mov dword [rdi + 0x40], ecx
mov word [rdi + 0x44], cx
mov word [rdi + 0x46], cx
mov qword [rdi + 0x48], rcx
mov qword [rdi + 0x50], rcx
mov rcx, qword [0x1402e8790]
call fcn.1401e6440
mov rcx, qword [0x1402e8798]
mov rbx, rax
call fcn.1401e6440
mov ecx, 1
mov dword [rax], ecx
or dword [rdi + 0x1c], ecx
xor edx, edx
mov qword [rdi + 0x50], rbx
mov qword [rdi + 0x10], rbx
mov qword [rdi + 0x70], rax
mov qword [rdi + 0x58], rdx
mov qword [rdi + 0x60], rdx
mov dword [rdi + 0x68], 0x800
mov dword [rdi + 0x78], ecx
mov eax, 0x800
mov ebx, ecx
jmp 0x1400ceac7
test r12b, 2
je 0x1400cea9c
test rax, rax
je 0x1400cea95
xor edx, edx
mov dword [rax + 0x1c], 2
mov word [rax + 0x20], bx
mov qword [rax], rdx
mov qword [rax + 8], rdx
mov dword [rax + 0x18], edx
add rax, 0x50
mov qword [rdi + 0x28], rdx
mov dword [rdi + 0x38], edx
mov qword [rdi + 0x30], rdx
mov dword [rdi + 0x3c], edx
mov dword [rdi + 0x40], edx
mov qword [rdi + 0x10], rax
mov word [rdi + 0x44], dx
mov word [rdi + 0x46], dx
mov qword [rdi + 0x48], rdx
mov eax, 0xb0
jmp 0x1400ceac2
test rax, rax
je 0x1400ceabd
xor edx, edx
mov word [rax + 0x20], bx
add rax, 0x28
mov qword [rax - 0x28], rdx
mov qword [rax - 0x20], rdx
mov dword [rax - 0x10], edx
mov dword [rax - 0xc], edx
mov qword [rdi + 0x10], rax
mov eax, 0xd8
cmp esi, eax
cmovl eax, esi
test rdi, rdi
je 0x1400ceb81
cmp eax, 4
jl 0x1400ceb7c
sub esi, eax
test rbp, rbp
je 0x1400ceae6
mov qword [rbp], rdi
jmp 0x1400ceae9
mov r13, rdi
and r12d, 0xfffffffd
mov rbp, rdi
test esi, esi
jg 0x1400ce9a0
test r12b, 4
je 0x1400ceb02
or dword [rdi + 0x1c], 4
test r13, r13
je 0x1400ceb8e
mov rbx, qword [r13 + 0x10]
mov ecx, 6
call sub.WS2_32.dll_htons
add r15w, 4
movzx ecx, r15w
mov word [rbx], ax
call sub.WS2_32.dll_htons
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x88]
mov word [rbx + 2], ax
mov ebx, dword [rsp + 0x64]
mov dword [r13 + 0x18], 4
mov edx, dword [rdi]
mov r9d, 1
mov r8d, ebx
call fcn.1400798c0
mov qword [r13], rax
test rax, rax
je 0x1400ceb72
mov rdx, r13
mov r13, qword [rsp + 0x70]
mov rcx, r13
call fcn.1400b0f40
jmp 0x1400ceb9c
mov rcx, r13
call fcn.1400795b0
jmp 0x1400ceb97
mov rcx, rdi
jmp 0x1400ceb89
test r13, r13
je 0x1400ceb8e
mov rcx, r13
call fcn.1400795b0
mov rdi, qword [rsp + 0x68]
mov ebx, dword [rsp + 0x64]
mov r13, qword [rsp + 0x70]
mov ebp, dword [rsp + 0x60]
test byte [r14], 0x80
jne 0x1400cec52
mov edx, 1
mov dword [rsp + 0x78], edx
jmp 0x1400cec56
mov eax, reloc.WS2_32.dll_sendto
jmp 0x1400cebc4
mov eax, reloc.WS2_32.dll_recv
cmp r15w, ax
jb 0x1400cef6f
mov byte [rsp + 0x50], dl
lea eax, [rbx + 3]
xor r14d, r14d
and eax, 0xfffffffc
mov ecx, r14d
mov rdx, rsi
cmp eax, r8d
mov r8, qword [rsp + 0xb0]
lea rax, [rsp + 0x7c]
sete cl
mov dword [rsp + 0x48], ecx
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x9c]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rax
mov rcx, r13
mov dword [rsp + 0x20], ebx
call fcn.1400cca00
test eax, eax
je 0x1400cec33
inc dword [rsp + 0x84]
cmp dword [rsp + 0x9c], r14d
jne 0x1400cedbf
cmp dword [rsp + 0x7c], r14d
jne 0x1400ceef7
mov edx, dword [rsp + 0x78]
jmp 0x1400cec59
mov edx, dword [rsp + 0x78]
xor r14d, r14d
lea eax, [rbx + 3]
and eax, 0xfffffffc
add dword [rdi], eax
mov ecx, dword [rdi]
cmp ecx, ebp
jge 0x1400ceeed
test edx, edx
jne 0x1400ceeed
mov rsi, qword [rsp + 0x88]
lea ebp, [rdx + 4]
lea r12, [rsp + 0x80]
test ecx, ecx
js 0x1400ceee7
nop
test ecx, ecx
jle 0x1400cecaa
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x1400cecaa
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x1400cec90
jmp 0x1400ceee7
test rsi, rsi
je 0x1400ceee7
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, ebp
jl 0x1400cece0
movsxd r14, ecx
add r14, qword [rsi + 0x10]
je 0x1400ceee7
mov r12, qword [rsp + 0xa0]
lea rsi, [r13 + 0x58]
jmp 0x1400ce8e4
test ebp, ebp
jle 0x1400ced16
mov eax, dword [rsi + 0x18]
movsxd rdx, ecx
mov edi, ebp
sub eax, ecx
mov rcx, r12
cmp eax, ebp
cmovl edi, eax
add rdx, qword [rsi + 0x10]
mov r8d, edi
mov ebx, edi
call fcn.1401e75a0
mov rsi, qword [rsi]
sub ebp, edi
add r12, rbx
mov ecx, r14d
test rsi, rsi
jne 0x1400cece0
jmp 0x1400ced1b
test rsi, rsi
jne 0x1400ced23
test ebp, ebp
jg 0x1400ceee2
mov rdi, qword [rsp + 0x68]
mov r12, qword [rsp + 0xa0]
lea r14, [rsp + 0x80]
lea rsi, [r13 + 0x58]
jmp 0x1400ce8e4
lea rax, str.DATA_chunk_received_when_I_DATA_was_negotiated
lea r9, [0x1402a9de0]
lea rcx, [rsp + 0x3c0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov qword [rsp + 0x20], rax
call fcn.1401e8b60
movzx r8d, byte [rsp + 0x3c0]
mov ebx, 0
test eax, eax
lea ecx, [rbx + 0xd]
lea rdx, [rsp + 0x3c0]
cmovs r8d, ebx
mov byte [rsp + 0x3c0], r8b
call fcn.140097b70
mov r8, qword [r13 + 8]
mov dword [r8 + 0x3cc], 0x30000015
mov rcx, qword [rsp + 0x90]
xor r9d, r9d
mov r8, rax
mov rdx, r13
mov dword [rsp + 0x20], ebx
call fcn.140096920
mov eax, 2
jmp 0x1400ce820
lea rax, str.I_DATA_chunk_received_when_DATA_was_negotiated
lea r9, [0x1402a9de0]
lea rcx, [rsp + 0xc0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov qword [rsp + 0x20], rax
call fcn.1401e8b60
movzx ecx, byte [rsp + 0xc0]
mov ebx, 0
test eax, eax
lea rdx, [rsp + 0xc0]
cmovs ecx, ebx
mov byte [rsp + 0xc0], cl
lea ecx, [rbx + 0xd]
call fcn.140097b70
mov rcx, qword [r13 + 8]
mov dword [rcx + 0x3cc], 0x30000016
jmp 0x1400ceda5
movzx eax, byte [r14]
lea r9, str.DATA_chunk_followed_by_chunk_of_type__2.2x
lea rcx, [rsp + 0x1c0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov dword [rsp + 0x20], eax
call fcn.1401e8b60
movzx ecx, byte [rsp + 0x1c0]
mov ebx, 0
test eax, eax
lea rdx, [rsp + 0x1c0]
cmovs ecx, ebx
mov byte [rsp + 0x1c0], cl
lea ecx, [rbx + 0xd]
call fcn.140097b70
jmp 0x1400ceda5
movzx eax, r15w
lea r9, str.Chunk_of_length__u
lea rcx, [rsp + 0x2c0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov dword [rsp + 0x20], eax
call fcn.1401e8b60
movzx ecx, byte [rsp + 0x2c0]
mov ebx, 0
test eax, eax
lea rdx, [rsp + 0x2c0]
cmovs ecx, ebx
mov byte [rsp + 0x2c0], cl
lea ecx, [rbx + 0xd]
call fcn.140097b70
mov rcx, qword [r13 + 8]
mov dword [rcx + 0x3cc], 0x30000018
jmp 0x1400ceda5
mov rdi, qword [rsp + 0x68]
mov ebp, dword [rsp + 0x60]
mov dword [rdi], ebp
xor r14d, r14d
cmp dword [rsp + 0x7c], r14d
je 0x1400cef1f
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rsp + 0xa8]
mov r9d, ebp
mov r8, qword [rax]
mov rcx, r13
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
call fcn.1400b6730
mov eax, dword [rsp + 0x84]
test eax, eax
je 0x1400cef47
mov ebx, 1
lock xadd dword [0x1402e83cc], ebx
lea rcx, [r13 + 0x78]
mov dword [r13 + 0x5d8], r14d
call fcn.140078f80
mov eax, dword [r13 + 0x58]
and al, 0x7f
cmp al, 0x10
jne 0x1400cef59
mov byte [r13 + 0x702], 1
mov edx, dword [rsp + 0x98]
mov rcx, r13
call fcn.1400ce1d0
xor eax, eax
jmp 0x1400ce820
cmp byte [r14], 0
lea rdx, str.I_DATA
movzx eax, r15w
mov dword [rsp + 0x28], eax
lea rcx, str.DATA
lea r9, str._s_chunk_of_length__u
cmovne rcx, rdx
or r8, 0xffffffffffffffff
mov edx, 0x100
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x4c0]
call fcn.1401e8b60
movzx ecx, byte [rsp + 0x4c0]
mov ebx, 0
test eax, eax
lea rdx, [rsp + 0x4c0]
cmovs ecx, ebx
mov byte [rsp + 0x4c0], cl
lea ecx, [rbx + 0xd]
call fcn.140097b70
mov rcx, qword [r13 + 8]
mov dword [rcx + 0x3cc], 0x30000017
jmp 0x1400ceda5