Function at 0x140310140
Capabilities:
Check for software breakpoints
Inspect section memory permissions

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0xb0]
xor eax, eax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x90], rax
mov dword [rbp + 0x10], ecx
mov dword [rbp + 0x18], edx
lea rcx, [0x1404fec98]
cmp qword [rcx - 8], 0
jne 0x140310b34
mov rsi, qword [0x140cfd7d8]
xor ecx, ecx
mov dword [rbp - 0x58], ecx
mov rcx, qword [rsi + 0x20]
mov qword [rbp - 0x80], rcx
mov rcx, qword [rbp - 0x80]
call fcn.1401df550
mov dword [rbp - 0x58], 1
cmp qword [rsi + 0x18], 0
jne 0x1403101cf
mov rcx, qword [0x140cfd3c8]
mov rcx, qword [rcx + 8]
cmp byte [rcx], cl
lea rcx, [0x1404eb428]
mov rax, qword [0x1404eb428]
call qword [rax + 0x90]
mov qword [rbp - 0x70], rax
jmp 0x1403101ea
lea rdi, [0x1404fec98]
cmp qword [rdi - 8], 0
jne 0x140310682
mov r14d, dword [rdi + 8]
jmp 0x1403104f4
call fcn.14021c4d0
nop
lea rdi, [0x1404fec98]
cmp qword [rdi - 8], 0
jne 0x14031068c
mov ecx, dword [rdi]
or ecx, 0x189282
mov dword [rdi], ecx
lea rcx, [0x140524570]
call fcn.14000bb80
mov rsi, rax
mov dword [rsi + 0x20], 0x7fffffff
lea rcx, [0x1405ec358]
mov edx, reloc.WS2_32.dll_recv
call fcn.14000bca0
lea rcx, [rsi + 8]
mov rdx, rax
call fcn.14000bd90
mov edx, reloc.WS2_32.dll_recv
mov rcx, rsi
call fcn.1401f2730
mov rcx, rax
mov edx, 2
call fcn.1401f2730
mov rcx, rax
mov edx, reloc.WS2_32.dll_setsockopt
call fcn.1401f2730
mov rcx, rax
mov edx, 0x17
call fcn.1401f2730
mov edx, 0x18
mov rcx, rsi
call fcn.1401f2730
mov rcx, rax
mov edx, 0x17
call fcn.1401f2730
mov rcx, rax
mov edx, 0x18
call fcn.1401f2730
mov rcx, rax
mov edx, 3
call fcn.1401f2730
mov edx, 0x1a
mov rcx, rsi
call fcn.1401f2730
mov rcx, rax
mov edx, 0x1b
call fcn.1401f2730
mov rcx, rsi
call fcn.1401f1da0
mov r8, rax
mov rcx, qword [rbp - 0x70]
cmp byte [rcx], cl
mov rcx, qword [0x140cfd3c0]
mov rcx, qword [rcx + 8]
mov rdx, qword [rbp - 0x70]
cmp dword [rcx], ecx
call fcn.14025d560
mov r14, rax
lea rcx, [0x1405440f0]
call fcn.14000bb80
mov rbx, rax
lea rcx, [rbx + 8]
mov rdx, r14
call fcn.14000bd90
lea rcx, [0x1405ec288]
mov edx, 4
call fcn.14000bca0
lea rcx, [rbx + 0x10]
mov rdx, rax
call fcn.14000bd90
lea rcx, [0x1404fec98]
cmp qword [rcx - 8], 0
jne 0x140310696
mov rsi, qword [0x140cfd7d8]
lea rcx, [rsi + 0x18]
mov rdx, rbx
call fcn.14000bd90
mov rcx, qword [rsi + 0x18]
cmp dword [rcx], ecx
call fcn.140310e10
xor eax, 0xffffc7c8
movsx rdx, ax
test edx, edx
jne 0x14031037a
mov rcx, qword [rsi + 0x18]
cmp dword [rcx], ecx
call fcn.140310e10
xor eax, 0xffffd989
movsx rcx, ax
mov word [rdi + 0xc], cx
jmp 0x140310391
mov rcx, qword [rsi + 0x18]
cmp dword [rcx], ecx
call fcn.1400b9120
lea rcx, [rsi + 0x10]
mov rdx, rax
call fcn.14000bd90
mov rcx, qword [rbp - 0x70]
call fcn.140310c30
mov rbx, rax
mov rdx, qword [rbx + 0x18]
test rdx, rdx
jne 0x1403103c1
mov rcx, qword [rbx + 0x10]
call fcn.14021e440
mov r14, rax
lea rcx, [rbx + 0x18]
mov rdx, r14
call fcn.14000bd90
mov rdx, r14
test rdx, rdx
je 0x1403103ce
cmp dword [rdx + 8], 0
jne 0x1403103ce
xor edx, edx
lea rcx, [rsi + 8]
call fcn.14000bd90
mov r14d, dword [rdi + 0x10]
xor r14d, 0x79320c06
xor eax, eax
mov dword [rdi + 0x10], eax
mov eax, r14d
xor eax, 0xdc119b09
imul ebx, eax, 0x14ad
mov edx, 0x9ad1ed9
mov eax, edx
imul ebx
mov ecx, edx
shr ecx, 0x1f
sar edx, 0x14
add ecx, edx
imul ecx, ecx, 0x1a74ded
sub ebx, ecx
mov r15d, 0x75
lea rcx, [0x1405441b0]
call fcn.14000bb80
mov r13, rax
mov dword [r13 + 0x10], 0xfffffffe
call fcn.14018e7d0
mov dword [r13 + 0x18], eax
mov dword [r13 + 0x20], ebx
mov rcx, r13
call fcn.1403116c0
mov qword [rbp - 0x68], rax
mov rcx, qword [rbp - 0x68]
mov r13, qword [rcx]
lea rcx, [0x140544128]
cmp r13, rcx
je 0x14031046d
mov rcx, qword [rbp - 0x68]
lea r10, [0x140507240]
call qword [r10]
test eax, eax
jne 0x140310478
jmp 0x1403104b0
mov rcx, qword [rbp - 0x68]
call fcn.1400b97e0
jmp 0x140310467
lea rcx, [0x1405441b0]
cmp r13, rcx
je 0x140310499
lea rcx, [0x140544238]
cmp r13, rcx
je 0x140310499
mov rcx, qword [rbp - 0x68]
mov ecx, dword [rcx + 0xc]
jmp 0x1403104a0
mov rcx, qword [rbp - 0x68]
mov ecx, dword [rcx + 0x14]
sub ecx, r15d
xor ebx, ecx
lea ecx, [rbx + 3]
sar ecx, 8
sub r15d, ecx
jmp 0x140310446
lea rcx, [0x140544128]
cmp r13, rcx
je 0x1403104ca
mov rcx, qword [rbp - 0x68]
lea r10, [0x140507270]
call qword [r10]
xor r14d, 0x5f3a6c77
add r14d, ebx
mov dword [rdi + 8], r14d
mov ecx, dword [rdi]
and ecx, 0xfffff72
xor ecx, 0x1a84
mov dword [rdi], ecx
test byte [rdi + 4], 0x10
jne 0x1403104f4
mov dword [rdi], 0xabba
cmp dword [rdi], 0xabba
jne 0x140310536
lea rcx, [0x1405ec358]
mov edx, 3
call fcn.14000bca0
mov dword [rax + 0x10], 0x300058
mov word [rax + 0x14], 0x58
mov rcx, rax
call fcn.140192250
mov qword [rbp - 0x40], rax
mov rcx, qword [rbp - 0x40]
mov qword [rbp - 0x90], rcx
jmp 0x140310a75
mov r13d, dword [rbp + 0x10]
xor r13d, 0x25eb661d
xor r13d, r14d
xor r13d, 0x38a4fffe
mov rcx, qword [rsi + 0x18]
mov rcx, qword [rcx + 8]
movsxd rdx, r13d
mov rax, qword [rcx]
call qword [rax + 0x58]
cmp qword [rsi + 0x10], 0
je 0x140310569
mov r15, qword [rsi + 0x10]
jmp 0x1403105d8
cmp word [rdi + 0xc], 0xffff
jne 0x140310589
mov rcx, qword [rsi + 0x18]
cmp dword [rcx], ecx
call fcn.140310e10
xor eax, 0x505e
xor eax, r13d
movsx rdx, ax
jmp 0x14031058e
movsx rdx, word [rdi + 0xc]
test edx, edx
jne 0x140310597
xor r15d, r15d
jmp 0x1403105d8
mov rcx, qword [rsi + 0x18]
cmp dword [rcx], ecx
call fcn.1400b9120
mov r15, rax
xor eax, eax
mov edx, dword [r15 + 8]
test edx, edx
je 0x1403105d8
cmp eax, edx
jae 0x1403106a0
lea r8, [r15 + rax + 0x10]
mov r10d, dword [rdi + 8]
mov ecx, eax
and ecx, 3
shl ecx, 3
sar r10d, cl
movzx ecx, r10b
xor byte [r8], cl
inc eax
cmp edx, eax
jne 0x1403105af
mov rcx, qword [rsi + 0x18]
cmp dword [rcx], ecx
call fcn.140310e60
xor r13d, eax
xor r13d, 0xc8fabc6c
xor r13d, r14d
cmp r13d, 0xfffffffe
jne 0x140310651
mov rcx, qword [rsi + 0x18]
mov edx, 4
cmp dword [rcx], ecx
call fcn.1400b9120
mov ecx, r14d
xor ecx, 0xc8fabc6c
mov dword [rbp + 0x10], ecx
mov ecx, dword [rax + 8]
cmp ecx, 2
jbe 0x1403106a0
movzx edx, byte [rax + 0x12]
cmp ecx, 3
jbe 0x1403106a0
movzx ecx, byte [rax + 0x13]
shl ecx, 0x10
or ecx, edx
movzx edx, byte [rax + 0x10]
shl edx, 8
or ecx, edx
movzx edx, byte [rax + 0x11]
shl edx, 0x18
or ecx, edx
mov edx, dword [rbp + 0x10]
neg edx
xor ecx, edx
mov dword [rbp + 0x10], ecx
jmp 0x140310ade
mov edi, dword [rdi]
mov dword [rbp - 0x44], edi
lea r14d, [rdi - 0xc]
mov ecx, r13d
and ecx, 0xfffffff
mov r12d, ecx
mov rcx, qword [rsi + 0x18]
mov edx, r12d
cmp dword [rcx], ecx
call fcn.1400b9120
mov qword [rbp - 0x60], rax
mov rdx, qword [rsi + 8]
mov qword [rbp - 0x78], rdx
jmp 0x1403106a6
call fcn.1400016e9
jmp 0x1403101e1
call fcn.1400016e9
jmp 0x140310202
call fcn.140002e9a
jmp 0x140310335
call fcn.1401c10f0
int3
mov rcx, qword [rbp - 0x80]
call fcn.1401df6e0
test r13d, 0x40000000
setne al
movzx eax, al
mov dword [rbp - 0x48], eax
test r13d, 0x80000000
setne dl
movzx edx, dl
mov dword [rbp - 0x54], edx
test r13d, 0x20000000
setne r13b
movzx r13d, r13b
mov dword [rbp - 0x4c], r13d
mov rcx, qword [rbp - 0x60]
mov r8d, dword [r15 + 8]
cmp r8d, 1
jbe 0x140310b52
movzx r10d, byte [r15 + 0x11]
mov r9d, dword [rcx + 8]
mov r11d, r9d
lea ebx, [r11 + 0xb]
lea r13d, [r10 + 7]
xor ebx, r13d
movzx ebx, bl
movzx r13d, byte [r15 + 0x10]
cmp r8d, 2
jbe 0x140310b52
movzx r8d, byte [r15 + 0x12]
shl r8d, 8
or r8d, r13d
lea r8d, [r8 + rbx*8]
xor r15d, r15d
xor r13d, r13d
test r11d, r11d
jle 0x140310784
test r15b, 1
jne 0x140310757
imul r8d, r8d, 0x343fd
add r8d, 0x269ec3
mov r13d, r8d
shr r13d, 0x10
movzx r13d, r13w
movzx eax, r13b
sar r13d, 8
movzx r13d, r13w
movzx edx, byte [rcx + r15 + 0x10]
mov edi, r10d
xor edi, edx
add ebx, 3
xor ebx, edi
xor eax, ebx
mov byte [rcx + r15 + 0x10], al
inc r15d
mov ebx, edx
cmp r15d, r11d
jl 0x140310738
cmp dword [rbp - 0x44], 0x188886
setne dl
movzx edx, dl
mov rbx, qword [rbp - 0x78]
test rbx, rbx
setne al
movzx eax, al
cmp edx, eax
je 0x1403107f5
xor edx, edx
test r12d, r12d
jle 0x1403107f5
cmp r9d, r12d
jl 0x140310806
mov eax, dword [rbx + 8]
mov r8d, edx
and r8d, 7
cmp r8d, eax
jae 0x140310b52
movzx r8d, byte [rbx + r8 + 0x10]
mov r10d, edx
movzx r10d, byte [rcx + r10 + 0x10]
lea r11d, [r8*8]
sar r8d, 5
or r8d, r11d
xor r8d, r10d
movzx r8d, r8b
mov r10d, edx
mov byte [rcx + r10 + 0x10], r8b
inc edx
cmp edx, r12d
jl 0x1403107b1
cmp dword [rbp - 0x54], 0
jne 0x14031085a
mov edi, r12d
mov r15, rcx
jmp 0x1403108b5
mov r8d, edx
and r8d, 7
mov eax, dword [rbx + 8]
cmp r8d, eax
jae 0x140310b52
mov eax, edx
and eax, 7
movzx r8d, byte [rbx + rax + 0x10]
cmp edx, r9d
jae 0x140310b52
mov eax, edx
movzx eax, byte [rcx + rax + 0x10]
lea r10d, [r8*8]
sar r8d, 5
or r8d, r10d
xor eax, r8d
movzx r8d, al
mov eax, edx
mov byte [rcx + rax + 0x10], r8b
inc edx
cmp edx, r12d
jl 0x140310806
jmp 0x1403107f5
cmp r9d, 2
jbe 0x140310b52
movzx edi, byte [rcx + 0x12]
movzx edx, byte [rcx + 0x10]
shl edx, 0x10
or edi, edx
cmp r9d, 3
jbe 0x140310b52
movzx edx, byte [rcx + 0x13]
shl edx, 8
or edi, edx
mov qword [rbp - 0x60], rcx
movzx edx, byte [rcx + 0x11]
shl edx, 0x18
or edi, edx
movsxd rdx, edi
lea rcx, [0x1405ec288]
call fcn.14000bca0
mov r15, rax
mov rcx, qword [rbp - 0x60]
mov r8, r15
mov edx, 4
call fcn.140310cc0
cmp dword [rbp - 0x48], 0
je 0x140310a10
cmp r14d, 0x18887a
jne 0x140310a10
movsxd rdx, edi
lea rcx, [0x1405ec358]
call fcn.14000bca0
xor ebx, ebx
test edi, edi
jle 0x140310913
test r15, r15
je 0x140310a47
cmp dword [r15 + 8], edi
jl 0x140310a47
cmp dword [rax + 8], edi
jl 0x140310a47
mov ecx, ebx
movzx r13d, byte [r15 + rcx + 0x10]
mov ecx, ebx
mov word [rax + rcx*2 + 0x10], r13w
inc ebx
cmp ebx, edi
jl 0x1403108fd
mov rcx, rax
call fcn.140192250
mov qword [rbp - 0x40], rax
mov ecx, r14d
and ecx, 3
add ecx, 0x7f
shl ecx, 5
add r14d, ecx
cmp r14d, 0x18989a
je 0x1403109b0
mov r15d, r12d
add r15d, dword [rbp + 0x10]
xor r15d, 0xe4a78
mov ebx, r14d
and ebx, 0x50d
xor ebx, r15d
lea rcx, [0x140524570]
call fcn.14000bb80
mov r13, rax
mov dword [r13 + 0x20], 0x7fffffff
lea rcx, [0x1405ec358]
mov edx, reloc.WS2_32.dll_recv
call fcn.14000bca0
lea rcx, [r13 + 8]
mov rdx, rax
call fcn.14000bd90
mov edx, 0x58
mov rcx, r13
call fcn.1401f2730
mov rcx, r13
call fcn.1401f1da0
mov r8, rax
mov ecx, ebx
mov edx, 0xffffffff
xor r9d, r9d
call fcn.1401b87a0
mov qword [rbp - 0x40], rax
cmp dword [rbp - 0x4c], 0
sete cl
movzx ecx, cl
movzx eax, byte [rbp + 0x18]
test eax, ecx
je 0x140310ac9
mov rcx, qword [rbp - 0x40]
call fcn.140190f10
mov qword [rbp - 0x40], rax
mov rcx, qword [rsi + 0x20]
mov edx, dword [rbp + 0x10]
mov r8, qword [rbp - 0x40]
cmp dword [rcx], ecx
call fcn.14036b490
mov rcx, qword [rsi + 0x20]
cmp dword [rcx], ecx
call fcn.14036b4f0
cmp eax, 0xcd
jne 0x140310ac9
xor ecx, ecx
mov dword [rbp - 0x50], ecx
mov rcx, qword [rsi + 0x20]
mov qword [rbp - 0x88], rcx
jmp 0x140310ae8
lea rcx, [0x1404fe920]
cmp qword [rcx - 8], 0
jne 0x140310b3e
mov rcx, qword [0x140cfd300]
mov rcx, qword [rcx + 0x10]
mov r9d, dword [r15 + 8]
mov rdx, r15
xor r8d, r8d
cmp dword [rcx], ecx
call fcn.1401fbfa0
mov qword [rbp - 0x40], rax
jmp 0x14031091f
cmp ebx, dword [r15 + 8]
jae 0x140310b52
mov ecx, ebx
movzx r13d, byte [r15 + rcx + 0x10]
cmp ebx, dword [rax + 8]
jae 0x140310b52
mov ecx, ebx
mov word [rax + rcx*2 + 0x10], r13w
inc ebx
cmp ebx, edi
jl 0x140310a47
jmp 0x140310913
mov rcx, rsp
call fcn.140310bfe
nop
mov rax, qword [rbp - 0x90]
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [0x1404fec98]
cmp qword [rcx - 8], 0
jne 0x140310b48
mov rsi, qword [0x140cfd7d8]
mov rcx, qword [rsi + 0x20]
lea r8, [rbp - 0x40]
mov edx, dword [rbp + 0x10]
cmp dword [rcx], ecx
call fcn.14036b080
test eax, eax
je 0x140310184
mov rax, qword [rbp - 0x40]
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, rsp
call fcn.140310bfe
jmp 0x140310a96
call fcn.1401df550
mov dword [rbp - 0x50], 1
cmp qword [rsi + 0x18], 0
je 0x140310b26
mov r14, qword [rsi + 0x18]
mov rcx, qword [r14 + 8]
xor eax, eax
mov qword [r14 + 8], rax
test rcx, rcx
je 0x140310b14
mov rax, qword [rcx]
call qword [rax + 0x70]
xor ecx, ecx
mov qword [r14 + 0x10], rcx
mov qword [rsi + 0x18], rcx
mov qword [rsi + 0x10], rcx
mov qword [rsi + 8], rcx
mov rcx, qword [rbp - 0x88]
call fcn.1401df6e0
jmp 0x140310ac9
call fcn.140002e9a
jmp 0x14031017d
call fcn.1400024da
jmp 0x140310a22
call fcn.140002e9a
jmp 0x140310aa8
call fcn.1401c10f0
int3