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

Disassembly:
push rbp
push rbx
sub rsp, 0x4f8
lea rbp, [rsp + 0x80]
movups xmmword [rbp + 0x460], xmm6
mov qword [rbp + 0x490], rcx
lea rdx, [rbp + 0x3b0]
mov rax, qword [rbp + 0x490]
mov r9d, 0
mov r8d, 4
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
test eax, eax
setle al
test al, al
je 0x140001c15
lea rax, str.Error_al_recibir_el_tamao_del_nombre_del_archivo.
mov rdx, rax
mov rax, qword [0x1400ebc60]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x140002590
lea rax, [rbp + 0x3b5]
mov qword [rbp + 0x438], rax
nop
nop
mov eax, dword [rbp + 0x3b0]
mov ecx, eax
lea rdx, [rbp + 0x3b5]
lea rax, [rbp + 0x390]
mov r8, rdx
mov rdx, rcx
mov rcx, rax
call method.std::vector_char__std::allocator_char___.vector_unsigned_long_long__std::allocator_char__const_
lea rax, [rbp + 0x3b5]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
mov eax, dword [rbp + 0x3b0]
mov ebx, eax
lea rax, [rbp + 0x390]
mov rcx, rax
call method.std::vector_char__std::allocator_char___.data__
mov rdx, rax
mov rax, qword [rbp + 0x490]
mov r9d, 0
mov r8d, ebx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
test eax, eax
setle al
test al, al
je 0x140001ccd
lea rax, str.Error_al_recibir_el_nombre_del_archivo.
mov rdx, rax
mov rax, qword [0x1400ebc60]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov ebx, 0
jmp 0x14000249e
lea rax, [rbp + 0x3b6]
mov qword [rbp + 0x430], rax
nop
nop
lea rax, [rbp + 0x390]
mov rcx, rax
call method.std::vector_char__std::allocator_char___.end__
mov rbx, rax
lea rax, [rbp + 0x390]
mov rcx, rax
call method.std::vector_char__std::allocator_char___.begin__
mov rdx, rax
lea rcx, [rbp + 0x3b6]
lea rax, [rbp + 0x370]
mov r9, rcx
mov r8, rbx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string___gnu_cxx::__normal_iterator_char__std::vector_char__std.allocator_char_______void____gnu_cxx::__normal_iterator_char__std::vector_char__std::allocator_
lea rax, [rbp + 0x3b6]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
lea rdx, [rbp + 0x370]
lea rax, [rbp + 0x1a0]
mov r8d, 4
mov rcx, rax
call fcn.1400abc00
lea rax, [rbp + 0x1a0]
mov rcx, rax
call method.std::basic_ofstream_char__std::char_traits_char___.is_open__
xor eax, 1
test al, al
je 0x140001db8
lea rax, str.No_se_pudo_abrir_el_archivo_
mov rdx, rax
mov rax, qword [0x1400ebc60]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
lea rax, [rbp + 0x370]
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char
mov rcx, rax
lea rax, str._para_escritura.
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov ebx, 0
jmp 0x14000245e
lea rdx, [rbp + 0x198]
mov rax, qword [rbp + 0x490]
mov r9d, 0
mov r8d, 8
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
test eax, eax
setle al
test al, al
je 0x140001e1c
lea rax, str.Error_al_recibir_el_tamao_del_archivo.
mov rdx, rax
mov rax, qword [0x1400ebc60]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov ebx, 0
jmp 0x14000245e
call method.std::chrono::_V2::system_clock.now__
mov qword [rbp + 0x190], rax
mov rax, qword [rbp + 0x190]
mov qword [rbp + 0x188], rax
lea rax, [rbp + 0x3b7]
mov qword [rbp + 0x428], rax
nop
nop
lea rdx, [rbp + 0x3b7]
lea rax, [rbp + 0x170]
mov r8, rdx
mov edx, 0x4000
mov rcx, rax
call method.std::vector_char__std::allocator_char___.vector_unsigned_long_long__std::allocator_char__const_
lea rax, [rbp + 0x3b7]
mov rcx, rax
call method.std::__new_allocator_char_.__new_allocator__
nop
mov qword [rbp + 0x458], 0
jmp 0x1400020de
mov rax, qword [rbp + 0x198]
sub rax, qword [rbp + 0x458]
mov qword [rbp + 0x3b8], rax
lea rax, [rbp + 0x3b8]
mov rdx, rax
lea rax, [0x1400e5018]
mov rcx, rax
call method.unsigned_long_long_const_std.min_unsigned_long_long__unsigned_long_long_const__unsigned_long_long_const_
mov rax, qword [rax]
mov ebx, eax
lea rax, [rbp + 0x170]
mov rcx, rax
call method.std::vector_char__std::allocator_char___.data__
mov rdx, rax
mov rax, qword [rbp + 0x490]
mov r9d, 0
mov r8d, ebx
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_recv]
call rax
mov dword [rbp + 0x454], eax
cmp dword [rbp + 0x454], 0
jle 0x1400020a8
mov eax, dword [rbp + 0x454]
movsxd rbx, eax
lea rax, [rbp + 0x170]
mov rcx, rax
call method.std::vector_char__std::allocator_char___.data__
mov rdx, rax
lea rax, [rbp + 0x1a0]
mov r8, rbx
mov rcx, rax
call method.std::ostream.write_char_const__long_long_
mov eax, dword [rbp + 0x454]
cdqe
add qword [rbp + 0x458], rax
pxor xmm0, xmm0
cvtsi2sd xmm0, qword [rbp + 0x458]
mov rax, qword [rbp + 0x198]
pxor xmm2, xmm2
cvtsi2sd xmm2, rax
movapd xmm1, xmm0
divsd xmm1, xmm2
movsd xmm0, qword [0x1400e5ae0]
mulsd xmm0, xmm1
movsd qword [rbp + 0x448], xmm0
call method.std::chrono::_V2::system_clock.now__
mov qword [rbp - 0x58], rax
lea rdx, [rbp + 0x188]
lea rax, [rbp - 0x58]
mov rcx, rax
call sym._ZNSt6chronomiINS_3_V212system_clockENS_8durationIxSt5ratioILx1ELx1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10ti
mov qword [rbp + 0x3c0], rax
lea rdx, [rbp + 0x3c0]
lea rax, [rbp - 0x60]
mov rcx, rax
call method.std::chrono::duration_double__std::ratio_1ll__1ll___::duration_long_long__std.ratio_1ll__1000000000ll___void__std::chrono::duration_long_long__std::ratio_1ll__1000000000ll____const_
mov rax, qword [rbp - 0x58]
mov qword [rbp + 0x188], rax
pxor xmm6, xmm6
cvtsi2sd xmm6, dword [rbp + 0x454]
lea rax, [rbp - 0x60]
mov rcx, rax
call method.std::chrono::duration_double__std::ratio_1ll__1ll___.count___const
movapd xmm1, xmm0
divsd xmm6, xmm1
movapd xmm0, xmm6
movsd qword [rbp + 0x440], xmm0
lea rax, str._rDescargando:
mov rdx, rax
mov rax, qword [0x1400ebc80]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea rdx, [method.std.fixed_std::ios_base_]
mov rcx, rax
call method.std::ostream.operator___std::ios_base____std::ios_base__
mov rbx, rax
mov ecx, 2
call method.std.setprecision_int_
mov edx, eax
mov rcx, rbx
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____std::_Setprecision_
movsd xmm0, qword [rbp + 0x448]
movapd xmm1, xmm0
mov rcx, rax
call method.std::ostream.operator___double_
mov rcx, rax
lea rax, str.__a
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea rdx, [method.std.fixed_std::ios_base_]
mov rcx, rax
call method.std::ostream.operator___std::ios_base____std::ios_base__
mov rbx, rax
mov ecx, 2
call method.std.setprecision_int_
mov edx, eax
mov rcx, rbx
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____std::_Setprecision_
movsd xmm0, qword [rbp + 0x440]
movsd xmm1, qword [0x1400e5ae8]
divsd xmm0, xmm1
movapd xmm1, xmm0
mov rcx, rax
call method.std::ostream.operator___double_
mov rcx, rax
lea rax, str._MB_s
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rax, qword [0x1400ebc80]
mov rcx, rax
call method.std::ostream.flush__
jmp 0x1400020de
cmp dword [rbp + 0x454], 0
jg 0x1400020de
lea rax, str._nError_al_recibir_datos.
mov rdx, rax
mov rax, qword [0x1400ebc60]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x1400020f2
mov rax, qword [rbp + 0x198]
cmp qword [rbp + 0x458], rax
jl 0x140001e84
call method.std::chrono::_V2::system_clock.now__
mov qword [rbp + 0x168], rax
lea rdx, [rbp + 0x190]
lea rax, [rbp + 0x168]
mov rcx, rax
call sym._ZNSt6chronomiINS_3_V212system_clockENS_8durationIxSt5ratioILx1ELx1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10ti
mov qword [rbp + 0x3c8], rax
lea rax, [rbp + 0x3c8]
mov rcx, rax
call sym._ZNSt6chrono13duration_castINS_8durationIxSt5ratioILx1ELx1EEEExS2_ILx1ELx1000000000EEEENSt9enable_ifIXsrNS_13__is_durationIT_E
mov qword [rbp + 0x160], rax
lea rax, [rbp + 0x160]
mov rcx, rax
call sym._ZNSt6chrono13duration_castINS_8durationIxSt5ratioILx3600ELx1EEEExS2_ILx1ELx1EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valu
mov qword [rbp + 0x158], rax
mov dword [rbp + 0x3e4], 1
lea rdx, [rbp + 0x3e4]
lea rax, [rbp + 0x3d8]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_3600ll__1ll___.duration_int__void__int_const_
lea rdx, [rbp + 0x3d8]
lea rax, [rbp + 0x160]
mov rcx, rax
call method.std::common_type_std::chrono::duration_long_long__std::ratio_1ll__1ll_____std::chrono::duration_long_long__std::ratio_3600ll__1ll_____::type_std::chrono::operator__long_long__std::ratio_1ll__1ll___long_long__std.ratio_3600ll__1ll____std::chrono::du
mov qword [rbp + 0x3d0], rax
lea rax, [rbp + 0x3d0]
mov rcx, rax
call sym._ZNSt6chrono13duration_castINS_8durationIxSt5ratioILx60ELx1EEEExS2_ILx1ELx1EEEENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueE
mov qword [rbp + 0x150], rax
mov dword [rbp + 0x3fc], 1
lea rdx, [rbp + 0x3fc]
lea rax, [rbp + 0x3f0]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_60ll__1ll___.duration_int__void__int_const_
lea rdx, [rbp + 0x3f0]
lea rax, [rbp + 0x160]
mov rcx, rax
call method.std::common_type_std::chrono::duration_long_long__std::ratio_1ll__1ll_____std::chrono::duration_long_long__std::ratio_60ll__1ll_____::type_std::chrono::operator__long_long__std::ratio_1ll__1ll___long_long__std.ratio_60ll__1ll____std::chrono::durati
mov qword [rbp + 0x3e8], rax
lea rax, [rbp + 0x3e8]
mov rcx, rax
call sym._ZNSt6chrono13duration_castINS_8durationIxSt5ratioILx1ELx1EEEExS3_EENSt9enable_ifIXsrNS_13__is_durationIT_EE5valueES7_E4typeER
mov qword [rbp + 0x148], rax
lea rax, [rbp - 0x30]
mov rcx, rax
call fcn.1400cf410
lea rax, [rbp + 0x158]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_3600ll__1ll___.count___const
test rax, rax
setg al
test al, al
je 0x140002242
lea rax, [rbp + 0x158]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_3600ll__1ll___.count___const
mov rdx, rax
lea rax, [rbp - 0x30]
mov rcx, rax
call method.std::ostream.operator___long_long_
mov rcx, rax
lea rax, str._horas_
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea rax, [rbp + 0x158]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_3600ll__1ll___.count___const
test rax, rax
jg 0x14000226a
lea rax, [rbp + 0x150]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_60ll__1ll___.count___const
test rax, rax
jle 0x140002271
mov eax, 1
jmp 0x140002276
mov eax, 0
test al, al
je 0x1400022aa
lea rax, [rbp + 0x150]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_60ll__1ll___.count___const
mov rdx, rax
lea rax, [rbp - 0x30]
mov rcx, rax
call method.std::ostream.operator___long_long_
mov rcx, rax
lea rax, str._minutos_
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea rax, [rbp + 0x158]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_3600ll__1ll___.count___const
test rax, rax
jg 0x1400022e6
lea rax, [rbp + 0x150]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_60ll__1ll___.count___const
test rax, rax
jg 0x1400022e6
lea rax, [rbp + 0x148]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_1ll__1ll___.count___const
test rax, rax
jle 0x1400022ed
mov eax, 1
jmp 0x1400022f2
mov eax, 0
test al, al
je 0x140002326
lea rax, [rbp + 0x148]
mov rcx, rax
call method.std::chrono::duration_long_long__std::ratio_1ll__1ll___.count___const
mov rdx, rax
lea rax, [rbp - 0x30]
mov rcx, rax
call method.std::ostream.operator___long_long_
mov rcx, rax
lea rax, str._segundos.
mov rdx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea rax, str._nTiempo_de_descarga:
mov rdx, rax
mov rax, qword [0x1400ebc80]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rbx, rax
lea rax, [rbp + 0x400]
lea rdx, [rbp - 0x30]
mov rcx, rax
call method.std::__cxx11::basic_ostringstream_char__std::char_traits_char___std::allocator_char___.str___const
lea rax, [rbp + 0x400]
mov rdx, rax
mov rcx, rbx
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
lea rax, [rbp + 0x400]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x50]
mov rcx, rax
call fcn.1400bde00
lea rdx, [rbp - 0x50]
mov rax, qword [rbp + 0x490]
mov rcx, rax
call sym.recibirDatos_unsigned_long_long__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp - 0x50]
mov r8d, 0
lea rdx, str.DOWNLOAD_Complete
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.find_char_const__unsigned_long_long__const
cmp rax, 0xffffffffffffffff
setne al
test al, al
je 0x1400023f8
lea rax, str._nDescarga_completada._Presiona_una_tecla_para_continuar.
mov rdx, rax
mov rax, qword [0x1400ebc80]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
jmp 0x140002423
lea rax, str._nError_en_la_descarga._Presiona_una_tecla_para_continuar.
mov rdx, rax
mov rax, qword [0x1400ebc60]
mov rcx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov rcx, rax
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
lea rax, [rbp + 0x1a0]
mov rcx, rax
call method.std::basic_ofstream_char__std::char_traits_char___.close__
lea rax, [rbp - 0x50]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x30]
mov rcx, rax
call fcn.1400cfa00
lea rax, [rbp + 0x170]
mov rcx, rax
call method.std::vector_char__std::allocator_char___.vector__
mov ebx, 1
lea rax, [rbp + 0x1a0]
mov rcx, rax
call method.std::basic_ofstream_char__std::char_traits_char___.basic_ofstream__
cmp ebx, 1
jne 0x140002479
mov ebx, 1
jmp 0x14000247e
mov ebx, 0
lea rax, [rbp + 0x370]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
cmp ebx, 1
jne 0x140002499
mov ebx, 1
jmp 0x14000249e
mov ebx, 0
lea rax, [rbp + 0x390]
mov rcx, rax
call method.std::vector_char__std::allocator_char___.vector__
cmp ebx, 1
jmp 0x140002590
movups xmm6, xmmword [rbp + 0x460]
add rsp, 0x4f8
pop rbx
pop rbp
ret