Function at 0x180015490
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1060
call fcn.180011720
sub rsp, rax
mov rax, qword [0x180068020]
xor rax, rsp
mov qword [rsp + 0x1050], rax
mov r15, qword [rcx + 0x1970]
lea r12, [rcx + 0xc8]
xor r13d, r13d
mov rbx, rcx
cmp qword [r12], r13
jne 0x18001550b
mov rdx, r12
mov qword [rcx + 0x18e0], r13
call fcn.180011d70
lea r9d, [r13 + 4]
mov qword [rsp + 0x20], r13
lea r8, [rbx + 0x18e4]
mov rdx, r12
mov rcx, rbx
call fcn.180011c10
lea rsi, [fcn.18000ad20]
movsxd r10, dword [rbx + 0xd8]
mov r9, qword [r12]
mov r8, r10
test r10d, r10d
jle 0x18001555c
lea rcx, [rsp + 0x50]
lea rdx, [rbx + 0xe8]
nop dword [rax]
nop word [rax + rax]
mov rax, qword [rdx - 8]
lea rdx, [rdx + 0x18]
mov qword [rcx + 8], rax
lea rcx, [rcx + 0x10]
mov eax, dword [rdx - 0x18]
mov dword [rcx - 0x10], eax
sub r8, 1
jne 0x180015540
mov ecx, dword [rsp + 0x50]
lea rdx, [rsp + 0x50]
cmp r9, rcx
jb 0x180015583
nop word [rax + rax]
add rdx, 0x10
mov eax, ecx
sub r9, rax
dec r10d
mov ecx, dword [rdx]
cmp r9, rcx
jae 0x180015570
add qword [rdx + 8], r9
lea rax, [rsp + 0x40]
sub dword [rdx], r9d
mov r8d, r10d
mov rcx, qword [rbx]
lea r9, [rsp + 0x44]
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], r13d
call qword [sym.imp.WS2_32.dll_WSARecv]
test eax, eax
mov ecx, 0xffffffff
cmove ecx, dword [rsp + 0x44]
movsxd rax, ecx
test ecx, ecx
js 0x180015aad
je 0x180015adb
add qword [r12], rax
mov rdx, qword [r12]
cmp rdx, qword [rbx + 0xd0]
jb 0x180015512
mov ecx, dword [rbx + 0x18e0]
test ecx, ecx
je 0x180015948
sub ecx, 1
je 0x18001581a
sub ecx, 1
je 0x180015689
cmp ecx, 1
jne 0x1800157b1
mov rdx, r15
mov rcx, rbx
call fcn.180014ed0
test eax, eax
js 0x180015998
mov eax, dword [rbx + 0x193c]
test eax, eax
je 0x180015640
mov rdi, qword [rbx + 0x1968]
add rdi, rax
sub rdi, qword [r12]
sub rdi, 0x40
jmp 0x18001564d
mov edi, dword [rbx + 0x18e4]
add edi, 4
sub rdi, qword [r12]
test rdi, rdi
js 0x180015982
jle 0x1800157b1
mov dword [rbx + 0x18e0], 4
mov rcx, rdi
call fcn.18000ad10
mov r8, rax
mov qword [rsp + 0x20], rsi
mov r9d, edi
mov rdx, r12
mov rcx, rbx
call fcn.180011c10
jmp 0x180015512
mov rdx, r15
mov rcx, rbx
call fcn.180014d60
movsxd rbp, eax
test eax, eax
js 0x180015a0f
je 0x18001573f
mov r14d, r13d
cmp dword [r15 + 0x18d0], r13d
jle 0x1800156fe
lea rsi, [r15 + 0x18d8]
nop dword [rax + rax]
cmp qword [rsi + 8], rbp
mov rdi, rbp
mov r8, qword [rsi]
mov rdx, r12
cmovbe rdi, qword [rsi + 8]
mov rcx, rbx
mov r9d, edi
mov qword [rsp + 0x20], r13
call fcn.180011c10
sub rbp, rdi
je 0x180015730
inc r14d
add rsi, 0x18
cmp r14d, dword [r15 + 0x18d0]
jl 0x1800156c0
lea rsi, [fcn.18000ad20]
test rbp, rbp
jle 0x18001573f
mov rcx, rbp
mov dword [rbx + 0x18e0], 3
call fcn.18000ad10
mov r8, rax
mov qword [rsp + 0x20], rsi
mov r9d, ebp
mov rdx, r12
mov rcx, rbx
call fcn.180011c10
jmp 0x180015512
mov dword [rbx + 0x18e0], 3
jmp 0x18001550b
mov eax, dword [rbx + 0x193c]
mov rcx, qword [rbx + 0xc8]
test eax, eax
je 0x180015763
mov rdi, qword [rbx + 0x1968]
add rdi, rax
sub rdi, rcx
sub rdi, 0x40
jmp 0x18001576f
mov edi, dword [rbx + 0x18e4]
add edi, 4
sub rdi, rcx
test rdi, rdi
js 0x1800159f9
jle 0x1800157aa
mov rcx, rdi
mov dword [rbx + 0x18e0], 4
call fcn.18000ad10
mov r8, rax
lea rdx, [rbx + 0xc8]
lea rax, [fcn.18000ad20]
mov r9d, edi
mov qword [rsp + 0x20], rax
jmp 0x180015503
lea rsi, [fcn.18000ad20]
mov edx, dword [rbx + 0x1930]
cmp edx, 0x103
je 0x1800159f3
mov r9, qword [r15 + 0x58]
mov rcx, rbx
mov r8, qword [r15 + 0xa0]
mov edi, dword [rbx + 0x193c]
call qword [r15 + 0x50]
mov qword [rbx + 0x1970], r13
test edi, edi
je 0x1800159b9
lea r8, [rbx + 0x18e8]
mov dword [rbx + 0x18e0], 1
mov r9d, 0x40
mov qword [rsp + 0x20], r13
lea rdx, [rbx + 0xc8]
mov rcx, rbx
call fcn.180011c10
jmp 0x180015512
mov eax, dword [rbx + 0xd8]
lea r8, [rbx + 0x1928]
dec eax
mov qword [rbx + 0x1968], rdx
cdqe
lea rcx, [rax + 0xe]
lea rcx, [rax + rcx*2]
lea rdx, [rbx + rcx*8]
mov rcx, rbx
call fcn.1800147f0
test eax, eax
jne 0x180015a94
movzx eax, word [rbx + 0x1936]
add dword [rbx + 0x70], eax
mov eax, dword [rbx + 0x1928]
cmp eax, dword [0x1800680b0]
jne 0x180015a7b
test byte [rbx + 0x1938], 1
je 0x180015a62
cmp dword [rbx + 0x1930], 0x103
jne 0x180015895
mov edi, dword [rbx + 0x18e4]
add edi, 4
sub rdi, qword [r12]
jmp 0x18001565c
mov rdx, qword [rbx + 0x1940]
mov rcx, rbx
call fcn.180014a60
mov qword [rbx + 0x1970], rax
mov r15, rax
test rax, rax
je 0x180015a49
mov r9, qword [rbx + 0xc0]
cmp r9, rax
jne 0x1800158c8
mov r9, qword [rax]
jmp 0x18001590e
mov rcx, qword [r9]
mov rdx, r9
test rcx, rcx
je 0x180015900
mov r8, r9
nop word [rax + rax]
mov rax, rcx
mov rdx, r8
cmp rcx, r15
je 0x180015900
mov qword [rbx + 0xc0], rcx
mov r8, rax
mov rcx, qword [rcx]
mov rdx, rax
test rcx, rcx
jne 0x1800158e0
mov rax, qword [rdx]
test rax, rax
je 0x18001590e
mov rax, qword [rax]
mov qword [rdx], rax
mov rdx, r15
mov qword [rbx + 0xc0], r9
mov rcx, rbx
call fcn.180014b00
movsxd rcx, eax
test eax, eax
js 0x180015a30
mov edi, ecx
mov dword [rbx + 0x18e0], 2
and edi, 0xfffe
and ecx, 0xfffe
jmp 0x180015669
mov eax, dword [rbx + 0x18e4]
lea r8, [rbx + 0x18e8]
bswap eax
mov r9d, 0x40
mov dword [rbx + 0x18e4], eax
mov rdx, r12
mov dword [rbx + 0x18e0], 1
mov rcx, rbx
mov qword [rsp + 0x20], r13
call fcn.180011c10
jmp 0x180015512
lea rdx, str.Negative_number_of_PAD_bytes_encountered_during_PDU_decode_ofvariable_payload
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
mov rcx, rbx
call fcn.180011dc0
mov r8, rax
lea rdx, str.Failed_to_parse_variable_part_of_command_payload.__s
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
mov qword [rbx + 0xc8], r13
xor eax, eax
mov rcx, qword [rsp + 0x1050]
xor rcx, rsp
call fcn.180010bf0
lea r11, [rsp + 0x1060]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov qword [r12], r13
jmp 0x1800159c0
lea rdx, str.Negative_number_of_PAD_bytes_encountered_during_PDU_decode_offixed_payload
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
mov rcx, rbx
call fcn.180011dc0
mov r8, rax
lea rdx, str.Failed_to_parse_fixed_part_of_command_payload.__s
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
lea rdx, str.can_not_determine_fixed_size
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
lea rdx, str.no_matching_PDU_found
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
lea rdx, str.received_non_reply
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
lea rdx, str.received_non_SMB2_blob
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
lea rdx, str.Failed_to_decode_smb2_header
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
je 0x1800159c0
cmp eax, 0x2733
je 0x1800159c0
mov r8d, eax
lea rdx, str.Read_from_socket_failed__errno:_d._Closing_socket.
mov rcx, rbx
call fcn.180011ef0
mov eax, 0xffffffff
jmp 0x1800159c2