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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x848
mov r8d, 0x76
lea rdx, global___FUNCTION__.151
lea rcx, str.src.it_dinoex_chat.c
call dbg.updatecontext_f
mov rcx, qword [0x1004632d0]
add rcx, 0xb550
call dbg.irlist_get_head
mov rsi, rax
test rax, rax
je 0x10043be88
mov r13, qword [0x1004632e0]
mov r12, qword [0x1004632d0]
mov r14, r12
lea r15, [rsp + 0x3c]
mov eax, dword [rsi + 0xcc]
imul rax, rax, 0xb60
lea rax, [r12 + rax + 0x48]
mov qword [r13], rax
mov eax, dword [rsi + 0xc8]
cmp eax, 2
jne 0x10043bcde
mov ecx, dword [rsi + 8]
movsxd rax, ecx
shr rax, 6
mov edx, 1
shl rdx, cl
test qword [r14 + rax*8 + 0xb648], rdx
je 0x10043be74
mov dword [rsp + 0x38], 4
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9, r15
mov r8d, 0x1007
mov edx, 0xffff
call sym.getsockopt
test eax, eax
jns 0x10043bc71
call sym.__errno
mov ebx, dword [rax]
call sym.__errno
mov ecx, dword [rax]
call sym.strerror
mov r9, rax
mov r8, qword [rsi + 0xa8]
lea rdx, str.Non_riesco_a_determinare_lo_stato_della_connessione_DCC__s:__s
mov ecx, 2
call dbg.outerror
mov ecx, ebx
call sym.strerror
mov r8, rax
mov rcx, qword [rsi + 0xb0]
lea rdx, str.Tentativo_di_connessione_DCC_CHAT_fallito:__s
call dbg.notice
mov edx, 0
mov rcx, rsi
call dbg.shutdowndccchat
jmp 0x10043be74
mov ecx, dword [rsp + 0x3c]
test ecx, ecx
je 0x10043bcd1
call sym.strerror
mov r9, qword [rsi + 0xa8]
mov qword [rsp + 0x20], rax
lea r8, str.Tentativo_di_connessione_DCC_CHAT_fallito_su__s:__s
mov edx, 0
mov ecx, 7
call dbg.ioutput
mov ecx, dword [rsp + 0x3c]
call sym.strerror
mov r8, rax
mov rcx, qword [rsi + 0xb0]
lea rdx, str.Tentativo_di_connessione_DCC_CHAT_fallito:__s
call dbg.notice
mov edx, 0
mov rcx, rsi
call dbg.shutdowndccchat
jmp 0x10043be74
mov rcx, rsi
call dbg.setupdccchatconnected
jmp 0x10043be74
cmp eax, 1
jne 0x10043bd17
mov ecx, dword [rsi + 4]
movsxd rax, ecx
shr rax, 6
mov edx, 1
shl rdx, cl
mov rdi, qword [0x1004632d0]
test qword [rdi + rax*8 + 0xb628], rdx
je 0x10043be74
mov rcx, rsi
call dbg.setupdccchataccept
jmp 0x10043be74
sub eax, 3
cmp eax, 1
ja 0x10043be74
mov ecx, dword [rsi + 8]
movsxd rax, ecx
shr rax, 6
mov edx, 1
shl rdx, cl
mov rdi, qword [0x1004632d0]
test qword [rdi + rax*8 + 0xb628], rdx
je 0x10043be74
lea rdx, [rsp + 0x40]
mov ecx, 0x100
mov eax, 0
mov rdi, rdx
rep stosq qword [rdi], rax
mov ecx, dword [rsi + 8]
mov r9d, 0x10
mov r8d, 0x800
call sym.recv
mov rdx, rax
test rax, rax
jg 0x10043bde6
test rax, rax
jns 0x10043be98
call sym.__errno
mov ecx, dword [rax]
call sym.strerror
mov r9, qword [rsi + 0xa8]
mov qword [rsp + 0x20], rax
lea r8, str.DCC_CHAT_persa_su__s:__s
mov edx, 0
mov ecx, 7
call dbg.ioutput
call sym.__errno
mov ecx, dword [rax]
call sym.strerror
mov r8, rax
mov rcx, qword [rsi + 0xb0]
lea rdx, str.DCC_CHAT_persa:__s
call dbg.notice
mov edx, 0
mov rcx, rsi
call dbg.shutdowndccchat
jmp 0x10043be74
lea rbp, [rsi + 0xd8]
mov eax, 0
mov rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasb al, byte [rdi]
mov rax, rcx
not rax
sub rax, 1
test edx, edx
je 0x10043be6c
lea rbx, [rsp + 0x40]
lea edx, [rdx - 1]
lea rdi, [rbx + rdx + 1]
movzx edx, byte [rbx]
cmp rax, 0x7ff
je 0x10043be29
cmp dl, 0xa
jne 0x10043be58
test rax, rax
je 0x10043be3e
lea rdx, [rax - 1]
cmp byte [rsi + rax + 0xd7], 0xd
cmove rax, rdx
mov byte [rsi + rax + 0xd8], 0
mov rdx, rbp
mov rcx, rsi
call dbg.parsedccchat
mov eax, 0
jmp 0x10043be63
mov byte [rsi + rax + 0xd8], dl
add rax, 1
add rbx, 1
cmp rdi, rbx
jne 0x10043be19
mov byte [rsi + rax + 0xd8], 0
mov rcx, rsi
call dbg.irlist_get_next
mov rsi, rax
test rax, rax
jne 0x10043bba6
mov rax, qword [0x1004632e0]
mov qword [rax], 0
jmp 0x10043bec9
mov r9, qword [rsi + 0xa8]
lea rbx, str.Chiuso
mov qword [rsp + 0x20], rbx
lea r8, str.DCC_CHAT_persa_su__s:__s
mov edx, 0
mov ecx, 7
call dbg.ioutput
mov r8, rbx
jmp 0x10043bdc1
add rsp, 0x848
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret