Function at 0x14004d860
Capabilities:
Check for software breakpoints

Disassembly:
push rbx
push rbp
push r13
push r15
sub rsp, 0x68
mov r13, qword [rcx + 8]
xor r8d, r8d
mov rbx, rcx
mov ebp, r8d
test r13, r13
jne 0x14004d887
mov rax, qword [rcx]
mov r13, qword [rax + 0x90]
movzx eax, byte [rcx + 0x316]
mov r15d, 4
cmp al, 3
jne 0x14004d8a2
cmp byte [rcx + 0x317], al
jb 0x14004d8b8
jmp 0x14004d8af
cmp al, 0xfe
jne 0x14004d8b8
cmp byte [rcx + 0x317], 0xfd
ja 0x14004d8b8
movzx r15d, word [r13 + 2]
add r15d, 6
mov r9, qword [rcx + 0x1938]
test r9, r9
jne 0x14004d8d0
mov rax, qword [rcx]
mov r9, qword [rax + 0x40]
test r9, r9
je 0x14004d93b
mov r8, qword [r9 + 8]
test r8, r8
je 0x14004d92f
mov r8d, dword [r8 + 0x59c]
cmp r8d, 0x80
jae 0x14004d8f0
mov eax, 1
jmp 0x14004d927
mov edx, 4
mov ecx, 0x18
nop word [rax + rax]
mov eax, r8d
shr eax, cl
test eax, eax
jne 0x14004d911
add ecx, 0xfffffff8
add edx, 0xffffffff
jne 0x14004d900
mov eax, 1
test dl, dl
je 0x14004d927
nop word [rax + rax]
inc eax
add dl, 0xff
jne 0x14004d920
add eax, r8d
add ebp, 3
add ebp, eax
mov r9, qword [r9 + 0x20]
test r9, r9
jne 0x14004d8d0
xor r8d, r8d
add r15d, ebp
mov eax, 0x300
test word [rbx + 0x4e8], ax
jne 0x14004de9c
test byte [rbx + 0x4e6], 0x80
lea edx, [r15 + 9]
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x60], r14
mov dword [rsp + 0x50], edx
jne 0x14004d9a1
cmp byte [rbx + 0x4d8], 0
je 0x14004d98f
cmp byte [rbx + 0x141], 0
je 0x14004d98f
add edx, 0x66
mov dword [rsp + 0x50], edx
mov esi, 0xa
mov edi, reloc.WS2_32.dll_inet_addr
mov r14d, 9
jmp 0x14004d9b8
add edx, 0x10
mov esi, 0x1a
mov dword [rsp + 0x50], edx
mov edi, 0x1b
mov r14d, 0x19
cmp byte [rbx + 0x4d8], 0
je 0x14004da10
cmp byte [rbx + 0x141], 0
je 0x14004da10
cmp byte [rbx + 0x323], 2
jne 0x14004d9e9
movzx eax, word [rbx + 0x320]
cmp byte [rbx + 0x322], 9
lea ecx, [rax + 8]
cmove ecx, eax
jmp 0x14004da02
movzx eax, word [rbx + 0x31e]
movzx ecx, byte [rbx + 0x327]
add ecx, eax
movzx eax, word [rbx + 0x31c]
add ecx, eax
test ecx, ecx
mov eax, r8d
cmovne eax, ecx
add edx, eax
mov dword [rsp + 0x50], edx
mov eax, 0x8000
mov rcx, rbx
or word [rbx + 0x4ea], ax
call fcn.1400412f0
test eax, eax
jne 0x14004dc8d
mov eax, dword [rbx + 0x1a0]
mov r9, rbx
mov qword [rsp + 0xa8], r12
mov r8b, 0xd
mov r12d, dword [rbx + 0x1a4]
mov edx, r15d
add r12, rax
add r12, qword [rbx + 0x198]
mov rcx, r12
call fcn.140040480
mov byte [r14 + r12], 1
movzx eax, byte [rbx + 0x4ef]
cmp al, 0xc0
je 0x14004da70
cmp al, 0xcc
jne 0x14004da7b
cmp byte [rbx + 0x326], 3
mov al, 0x40
je 0x14004da7d
mov al, 1
mov byte [rsi + r12], al
movzx eax, byte [rbx + 0x316]
cmp al, 3
jne 0x14004da96
cmp byte [rbx + 0x317], al
jb 0x14004dada
jmp 0x14004daa3
cmp al, 0xfe
jne 0x14004dada
cmp byte [rbx + 0x317], 0xfd
ja 0x14004dada
movzx ecx, word [r13 + 2]
mov edx, edi
movzx eax, cx
shr ax, 8
add edi, 2
mov byte [rdx + r12 + 1], cl
mov byte [rdx + r12], al
lea rdx, [r13 + 0x130]
movzx r8d, word [r13 + 2]
mov ecx, edi
add rcx, r12
call sub.VCRUNTIME140.dll_memcpy
movzx eax, word [r13 + 2]
add edi, eax
mov ecx, edi
movzx eax, bp
shr ax, 8
add edi, 2
mov byte [rcx + r12], al
mov byte [rcx + r12 + 1], bpl
mov rbp, qword [rbx + 0x1938]
test rbp, rbp
jne 0x14004db0b
mov rax, qword [rbx]
mov rbp, qword [rax + 0x40]
test rbp, rbp
je 0x14004dc4a
xor r15d, r15d
nop
mov rsi, qword [rbp + 8]
test rsi, rsi
je 0x14004dc3b
mov r8d, dword [rsi + 0x59c]
cmp r8d, 0x80
jae 0x14004db35
mov r8d, 1
jmp 0x14004db68
mov edx, 4
mov ecx, 0x18
nop
mov eax, r8d
shr eax, cl
test eax, eax
jne 0x14004db51
add ecx, 0xfffffff8
add edx, 0xffffffff
jne 0x14004db40
mov r8d, 1
test dl, dl
je 0x14004db68
nop dword [rax + rax]
inc r8d
add dl, 0xff
jne 0x14004db60
inc r8w
add r8w, word [rsi + 0x59c]
mov byte [rdi + r12 + 1], r8b
movzx eax, r8w
shr ax, 8
mov byte [rdi + r12], al
add edi, 2
mov r11d, dword [rsi + 0x59c]
mov r10d, edi
add r10, r12
je 0x14004dba0
mov byte [r10], 0x30
inc r10
jmp 0x14004dba3
mov r10, r15
cmp r11d, 0x80
jae 0x14004dbbc
test r10, r10
je 0x14004dbb4
mov byte [r10], r11b
mov r9d, 1
jmp 0x14004dc17
mov ecx, 0x18
mov r8d, 4
mov eax, r11d
shr eax, cl
test eax, eax
jne 0x14004dbd9
add ecx, 0xfffffff8
add r8d, 0xffffffff
jne 0x14004dbc7
test r10, r10
je 0x14004dbe7
movzx eax, r8b
or al, 0x80
mov byte [r10], al
mov r9d, 1
test r8b, r8b
je 0x14004dc17
test r10, r10
je 0x14004dc0e
movzx ecx, r8b
mov edx, r11d
mov eax, r9d
lea ecx, [rcx*8 - 8]
shr edx, cl
mov byte [rax + r10], dl
inc r9d
add r8b, 0xff
jne 0x14004dbf2
movsxd r8, dword [rsi + 0x59c]
lea rdx, [rsi + 0x450]
inc r9d
add edi, r9d
mov ecx, edi
add rcx, r12
call sub.VCRUNTIME140.dll_memcpy
add edi, dword [rsi + 0x59c]
mov rbp, qword [rbp + 0x20]
test rbp, rbp
jne 0x14004db10
jmp 0x14004dc4d
xor r15d, r15d
cmp byte [rbx + 0x4d8], 0
je 0x14004dd87
cmp byte [rbx + 0x141], 0
je 0x14004dd87
movzx ebp, word [rbx + 0x4e6]
and ebp, 0x80
or ebp, 0x50
shr ebp, 4
sub edi, ebp
test edi, edi
jg 0x14004dcad
mov eax, 0xffffff7c
mov r12, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x98]
mov r14, qword [rsp + 0x60]
add rsp, 0x68
pop r15
pop r13
pop rbp
pop rbx
ret
mov rax, qword [0x1400c0348]
movsxd r14, edi
mov rcx, r14
test rax, rax
je 0x14004dcc3
call rax
jmp 0x14004dcc9
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
jne 0x14004dcd8
mov eax, 0xffffff83
jmp 0x14004dc85
mov edx, ebp
mov r8, r14
add rdx, r12
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
test byte [rbx + 0x4e6], 0x80
je 0x14004dd30
mov r9d, recvfrom
mov r8d, edi
mov rdx, rsi
mov rcx, rbx
call fcn.14003fcc0
mov ebp, eax
test eax, eax
je 0x14004dd30
mov rax, qword [0x1400c0338]
mov rcx, rsi
test rax, rax
je 0x14004dd23
call rax
mov eax, ebp
jmp 0x14004dc85
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, ebp
jmp 0x14004dc85
mov r8d, dword [rsp + 0x50]
mov r9, rsi
mov dword [rsp + 0x48], r15d
mov rdx, r12
mov dword [rsp + 0x38], r15d
mov rcx, rbx
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 0x16
mov dword [rsp + 0x20], edi
call fcn.14004c220
mov edi, eax
mov rcx, rsi
mov rax, qword [0x1400c0338]
test rax, rax
je 0x14004dd76
call rax
jmp 0x14004dd7c
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test edi, edi
jns 0x14004dde8
mov eax, edi
jmp 0x14004dc85
test byte [rbx + 0x4e6], 0x80
je 0x14004ddcf
mov r9d, recvfrom
mov r8d, edi
mov rdx, r12
mov rcx, rbx
call fcn.14003fcc0
test eax, eax
jne 0x14004dc85
test byte [rbx + 0x4e6], 0x80
je 0x14004ddcf
mov ecx, dword [rbx + 0x4c0]
lea eax, [rcx + 1]
mov dword [rbx + 0x4c0], eax
cmp ecx, eax
jbe 0x14004ddcf
inc word [rbx + 0x4be]
xor r9d, r9d
mov r8d, edi
mov rdx, r12
mov rcx, rbx
call fcn.1400402c0
test eax, eax
jne 0x14004dc85
cmp byte [rbx + 0xa99], 0
je 0x14004de69
mov rsi, qword [rbx + 0xa88]
test rsi, rsi
je 0x14004de69
test edi, edi
jle 0x14004de69
cmp byte [rbx + 0x4d8], 1
je 0x14004de69
movzx eax, byte [rbx + 0x316]
mov r9, r12
movzx r10d, byte [rbx + 0x317]
mov edx, eax
and edx, 0xf0
movsxd r11, edi
shl edx, 4
and eax, 0xf
add edx, eax
mov ecx, 1
mov eax, r10d
shl edx, 4
and eax, 0xf0
and r10d, 0xf
add edx, eax
mov r8d, 0x16
mov rax, qword [rbx + 0xa90]
mov qword [rsp + 0x30], rax
shl edx, 4
add edx, r10d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r11
call rsi
add dword [rbx + 0x1a0], edi
mov eax, 0x2000
test word [rbx + 0x4e8], ax
jne 0x14004de88
mov rcx, rbx
call fcn.140040e20
mov r15d, eax
mov eax, 0x7fff
and word [rbx + 0x4ea], ax
mov eax, r15d
jmp 0x14004dc85
xor eax, eax
add rsp, 0x68
pop r15
pop r13
pop rbp
pop rbx
ret