Function at 0x1400cc030
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 [0x1402de400]
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.1400c7930
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 0x1400cc0fc
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cc10b
cmp ecx, edx
jbe 0x1400cc109
mov eax, ecx
sub eax, edx
cmp eax, 0x80000000
jb 0x1400cc10b
mov ecx, edx
mov edx, dword [r13 + 0x53c]
mov r15d, 1
cmp ecx, edx
jae 0x1400cc129
mov eax, edx
sub eax, ecx
cmp eax, 0x80000000
ja 0x1400cc135
cmp ecx, edx
jbe 0x1400cc141
sub ecx, edx
cmp ecx, 0x80000000
jae 0x1400cc141
mov dword [rsp + 0x98], r15d
xor ecx, ecx
jmp 0x1400cc14a
xor ecx, ecx
mov dword [rsp + 0x98], ecx
mov qword [r13 + 0x3e8], rdi
mov esi, dword [rbx + 0x18]
cmp esi, 0xd8
jge 0x1400cc348
cmp qword [rbx], 0
jne 0x1400cc348
mov rbx, rcx
mov qword [rsp + 0x88], rcx
mov rbp, rcx
mov r13d, esi
mov r12d, ecx
test esi, esi
jle 0x1400cc2f3
nop word [rax + rax]
mov rcx, qword [0x1402e6b48]
call fcn.1401e3610
cmp esi, 0xb0
mov rdi, rax
jle 0x1400cc243
xor ecx, ecx
test rax, rax
je 0x1400cc1ed
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 [0x1402e6b50]
call fcn.1401e3610
mov rcx, qword [0x1402e6b58]
mov rbx, rax
call fcn.1401e3610
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 0x1400cc2be
test r12b, 2
je 0x1400cc292
test rax, rax
je 0x1400cc28b
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 0x1400cc2b9
test rax, rax
je 0x1400cc2b4
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 0x1400cc3ab
cmp eax, r13d
jl 0x1400cc330
sub esi, eax
test rbp, rbp
je 0x1400cc2d9
mov qword [rbp], rdi
jmp 0x1400cc2e4
mov rbx, rdi
mov qword [rsp + 0x88], rbx
and r12d, 0xfffffffd
mov rbp, rdi
test esi, esi
jg 0x1400cc190
test r12b, 4
je 0x1400cc300
or dword [rbp + 0x1c], 4
nop dword [rax]
test rbx, rbx
je 0x1400cc338
mov rdx, qword [r14]
mov rcx, qword [rbx + 0x10]
movsxd r8, dword [rdx + 0x18]
mov rdx, qword [rdx + 0x10]
call fcn.1401e3ed0
mov r11, qword [r14]
mov eax, dword [r11 + 0x18]
mov dword [rbx + 0x18], eax
mov rcx, qword [r14]
call fcn.140077120
mov qword [r14], rbx
jmp 0x1400cc343
mov rcx, rdi
call fcn.140077120
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 0x1400cc37d
test rbx, rbx
je 0x1400cc37d
test ecx, ecx
jle 0x1400cc3b8
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x1400cc3b8
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x1400cc368
mov eax, r15d
mov rcx, qword [rsp + 0x5c0]
xor rcx, rsp
call fcn.1401e42a0
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 0x1400cc338
mov rcx, rbx
jmp 0x1400cc333
test rsi, rsi
je 0x1400cc37d
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, ebp
jl 0x1400cc3d1
movsxd r14, ecx
add r14, qword [rsi + 0x10]
jne 0x1400cc420
jmp 0x1400cc37d
test ebp, ebp
jle 0x1400cc406
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.1401e3ed0
mov rsi, qword [rsi]
sub ebp, edi
add r12, rbx
xor ecx, ecx
test rsi, rsi
jne 0x1400cc3d1
jmp 0x1400cc40b
test rsi, rsi
jne 0x1400cc413
test ebp, ebp
jg 0x1400cc37d
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 0x1400cca4d
movzx ecx, byte [rsi + 0x6ca]
cmp cl, 1
jne 0x1400cc486
cmp byte [r14], 0
je 0x1400cc8a1
test cl, cl
jne 0x1400cc494
cmp byte [r14], 0x40
je 0x1400cc929
movzx edx, byte [r14]
test dl, dl
je 0x1400cc71f
cmp dl, 0x40
je 0x1400cc718
movzx eax, dl
dec eax
cmp eax, 0xc0
ja case.0x1400cc4d2.17
lea r8, [0x140000000]
cdqe
movzx eax, byte [r8 + rax + 0xccb54]
mov ecx, dword [r8 + rax*4 + 0xccb4c]
add rcx, r8
jmp rcx
cmp r15w, 4
jb 0x1400cc9e1
test dl, 0x40
je 0x1400cc700
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 [0x1402e6b48]
call fcn.1401e3610
cmp esi, 0xb0
mov rdi, rax
jle 0x1400cc5ae
xor ecx, ecx
test rax, rax
je 0x1400cc55c
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 [0x1402e6b50]
call fcn.1401e3610
mov rcx, qword [0x1402e6b58]
mov rbx, rax
call fcn.1401e3610
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 0x1400cc627
test r12b, 2
je 0x1400cc5fc
test rax, rax
je 0x1400cc5f5
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 0x1400cc622
test rax, rax
je 0x1400cc61d
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 0x1400cc6e1
cmp eax, 4
jl 0x1400cc6dc
sub esi, eax
test rbp, rbp
je 0x1400cc646
mov qword [rbp], rdi
jmp 0x1400cc649
mov r13, rdi
and r12d, 0xfffffffd
mov rbp, rdi
test esi, esi
jg 0x1400cc500
test r12b, 4
je 0x1400cc662
or dword [rdi + 0x1c], 4
test r13, r13
je 0x1400cc6ee
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.140077430
mov qword [r13], rax
test rax, rax
je 0x1400cc6d2
mov rdx, r13
mov r13, qword [rsp + 0x70]
mov rcx, r13
call fcn.1400aeab0
jmp 0x1400cc6fc
mov rcx, r13
call fcn.140077120
jmp 0x1400cc6f7
mov rcx, rdi
jmp 0x1400cc6e9
test r13, r13
je 0x1400cc6ee
mov rcx, r13
call fcn.140077120
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 0x1400cc7b2
mov edx, 1
mov dword [rsp + 0x78], edx
jmp 0x1400cc7b6
mov eax, reloc.WS2_32.dll_sendto
jmp 0x1400cc724
mov eax, reloc.WS2_32.dll_recv
cmp r15w, ax
jb 0x1400ccacf
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.1400ca560
test eax, eax
je 0x1400cc793
inc dword [rsp + 0x84]
cmp dword [rsp + 0x9c], r14d
jne 0x1400cc91f
cmp dword [rsp + 0x7c], r14d
jne 0x1400cca57
mov edx, dword [rsp + 0x78]
jmp 0x1400cc7b9
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 0x1400cca4d
test edx, edx
jne 0x1400cca4d
mov rsi, qword [rsp + 0x88]
lea ebp, [rdx + 4]
lea r12, [rsp + 0x80]
test ecx, ecx
js 0x1400cca47
nop
test ecx, ecx
jle 0x1400cc80a
mov eax, dword [rsi + 0x18]
cmp ecx, eax
jl 0x1400cc80a
mov rsi, qword [rsi]
sub ecx, eax
test rsi, rsi
jne 0x1400cc7f0
jmp 0x1400cca47
test rsi, rsi
je 0x1400cca47
mov eax, dword [rsi + 0x18]
sub eax, ecx
cmp eax, ebp
jl 0x1400cc840
movsxd r14, ecx
add r14, qword [rsi + 0x10]
je 0x1400cca47
mov r12, qword [rsp + 0xa0]
lea rsi, [r13 + 0x58]
jmp 0x1400cc444
test ebp, ebp
jle 0x1400cc876
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.1401e3ed0
mov rsi, qword [rsi]
sub ebp, edi
add r12, rbx
mov ecx, r14d
test rsi, rsi
jne 0x1400cc840
jmp 0x1400cc87b
test rsi, rsi
jne 0x1400cc883
test ebp, ebp
jg 0x1400cca42
mov rdi, qword [rsp + 0x68]
mov r12, qword [rsp + 0xa0]
lea r14, [rsp + 0x80]
lea rsi, [r13 + 0x58]
jmp 0x1400cc444
lea rax, str.DATA_chunk_received_when_I_DATA_was_negotiated
lea r9, [0x1402a7120]
lea rcx, [rsp + 0x3c0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov qword [rsp + 0x20], rax
call fcn.1401e5d20
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.1400956e0
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.140094490
mov eax, 2
jmp 0x1400cc380
lea rax, str.I_DATA_chunk_received_when_DATA_was_negotiated
lea r9, [0x1402a7120]
lea rcx, [rsp + 0xc0]
or r8, 0xffffffffffffffff
mov edx, 0x100
mov qword [rsp + 0x20], rax
call fcn.1401e5d20
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.1400956e0
mov rcx, qword [r13 + 8]
mov dword [rcx + 0x3cc], 0x30000016
jmp 0x1400cc905
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.1401e5d20
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.1400956e0
jmp 0x1400cc905
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.1401e5d20
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.1400956e0
mov rcx, qword [r13 + 8]
mov dword [rcx + 0x3cc], 0x30000018
jmp 0x1400cc905
mov rdi, qword [rsp + 0x68]
mov ebp, dword [rsp + 0x60]
mov dword [rdi], ebp
xor r14d, r14d
cmp dword [rsp + 0x7c], r14d
je 0x1400cca7f
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.1400b42a0
mov eax, dword [rsp + 0x84]
test eax, eax
je 0x1400ccaa7
mov ebx, 1
lock xadd dword [0x1402e678c], ebx
lea rcx, [r13 + 0x78]
mov dword [r13 + 0x5d8], r14d
call fcn.140076af0
mov eax, dword [r13 + 0x58]
and al, 0x7f
cmp al, 0x10
jne 0x1400ccab9
mov byte [r13 + 0x702], 1
mov edx, dword [rsp + 0x98]
mov rcx, r13
call fcn.1400cbd30
xor eax, eax
jmp 0x1400cc380
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.1401e5d20
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.1400956e0
mov rcx, qword [r13 + 8]
mov dword [rcx + 0x3cc], 0x30000017
jmp 0x1400cc905