Function at 0x6401ded0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x94
mov eax, dword [0x640f0ebc]
xor eax, esp
mov dword [esp + 0x90], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x6c], edi
movsx eax, byte [edi + 0x5c]
movsx edx, byte [edi + 0x5d]
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
lea ecx, [eax + eax*4]
movsx eax, byte [edi + 0x5e]
lea esi, [eax + ecx*2]
mov dword [esp + 0x70], esi
cmp esi, 0xe2
je 0x6401df2e
cmp esi, 0xfa
jne 0x6401df5b
push 1
push 0x640b45e8
lea ecx, [edi + 0x6c]
push 4
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
test al, al
je 0x6401df5b
mov ecx, dword [edi + 0x18]
test ecx, ecx
je 0x6401df5b
call sym.Qt5Network.dll_public:_enum_QNetworkReply::NetworkError___thiscall_QNetworkReply::error_void_
test eax, eax
je 0x6401df5b
mov byte [edi + 0x71], 1
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.640ae828
add esp, 0x94
ret
mov eax, dword [edi + 0x64]
sub eax, 1
je 0x6401df70
sub eax, 1
jne 0x6401df77
mov dword [edi + 0x64], eax
jmp 0x6401eed5
mov dword [edi + 0x64], 2
mov eax, dword [edi + 0x60]
sub eax, 0
je 0x6401dfb6
sub eax, 2
jne 0x6401eed5
mov al, byte [edi + 0x5c]
cmp al, 5
ja 0x6401dfa9
cmp esi, 0xca
je 0x6401dfa9
movsx eax, al
mov eax, dword [eax*4 + 0x640b45d0]
mov dword [edi + 0x60], eax
jmp 0x6401e05e
mov eax, 4
mov dword [edi + 0x60], eax
jmp 0x6401e05e
mov al, byte [edi + 0x5c]
cmp al, 1
je 0x6401eed5
cmp al, 2
jne 0x6401eed5
push 0xffffffffffffffff
push 0
push str.Connected_to_host__1
lea eax, [esp + 0x84]
mov dword [edi + 0x60], 1
push eax
mov ecx, 0x640f0150
call dword [sym.imp.Qt5Core.dll_public:_class_QString___thiscall_QMetaObject::tr_char_const___char_const___int_]
lea ecx, [esp + 0x88]
push ecx
lea ecx, [edi + 0x50]
call sym.Qt5Network.dll_public:_class_QString___thiscall_QAbstractSocket::peerName_void_
push ecx
mov ecx, esp
mov byte [esp + 0x80], 0x20
push dword [esp + 0x80]
mov esi, eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
push 0
push esi
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x88]
call dword [sym.imp.Qt5Core.dll_public:_class_QString___thiscall_QString::arg_class_QString_const___int__class_QChar_]
push eax
mov ecx, edi
call fcn.6401d6d0
lea ecx, [esp + 0x84]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x88]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x78]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov esi, dword [esp + 0x70]
lea eax, [esp + 0x7c]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x90], eax
lea eax, [edi + 0x58]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x8c]
push eax
push 3
push 0x640f0180
push edi
mov dword [esp + 0x9c], 0
call dword [sym.imp.Qt5Core.dll_public:_static_void___cdecl_QMetaObject::activate_class_QObject___struct_QMetaObject_const___int__void___]
add esp, 0x10
cmp byte [edi + 8], 0
je 0x6401e0f3
mov byte [edi + 8], 0
mov esi, dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
mov eax, dword [edi + 0x60]
sub eax, 1
je 0x6401e9b7
sub eax, 2
je 0x6401e9b0
sub eax, 1
jne 0x6401eed5
push 1
lea esi, [edi + 0x6c]
push str.EPSV
push 4
mov ecx, esi
mov dword [esp + 0x7c], esi
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
test al, al
je 0x6401e4ab
push str.PASV_r_n
jmp 0x6401e4c5
cmp esi, 0xe3
jne 0x6401e28f
push str._d___d___d___d___d___d_
push 0x23
lea ecx, [esp + 0x80]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QLatin1String_]
push 0
push 1
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x90]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QRegExp::constructor_class_QString_const___enum_Qt::CaseSensitivity__enum_QRegExp::PatternSyntax_]
lea ecx, [esp + 0x78]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
push 0
push 0
lea ecx, [edi + 0x58]
push ecx
lea ecx, [esp + 0x90]
call dword [sym.imp.Qt5Core.dll_public:_int___thiscall_QRegExp::indexIn_class_QString_const___int__enum_QRegExp::CaretMode_const]
cmp eax, 0xffffffff
je 0x6401e27d
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x88]
call dword [sym.imp.Qt5Core.dll_public:_class_QStringList___thiscall_QRegExp::capturedTexts_void_]
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 8]
add ecx, 8
mov byte [esp + 0x81], 0x2e
lea edi, [eax + ecx*4]
mov ecx, dword [eax + 8]
add ecx, 7
mov byte [esp + 0x82], 0x2e
mov dword [esp + 0x50], edi
lea esi, [eax + ecx*4]
mov ecx, dword [eax + 8]
add ecx, 6
mov byte [esp + 0x83], 0x2e
lea edx, [eax + ecx*4]
mov ecx, dword [eax + 8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x58], esi
lea eax, [eax + ecx*4]
add eax, 0x14
lea ecx, [esp + 0x4c]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x83]
mov dword [esp + 0x60], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x82]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x54]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x81]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x88]
push eax
call fcn.6401a650
mov esi, dword [esp + 0x78]
mov edi, dword [sym.imp.Qt5Core.dll_public:_unsigned_int___thiscall_QString::toUInt_bool___int_const]
push 0xa
push 0
mov eax, dword [esi + 8]
mov dword [esp + 0x84], eax
add eax, 9
lea ecx, [esi + eax*4]
call edi
shl eax, 8
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x7c]
add eax, 0xa
push 0xa
push 0
lea ecx, [esi + eax*4]
call edi
add eax, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
movzx eax, ax
push eax
lea eax, [esp + 0x8c]
push eax
lea ecx, [edi + 0x10]
mov byte [edi + 0x70], 1
call fcn.6401ce70
lea ecx, [esp + 0x88]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x78]
call fcn.640032c0
lea ecx, [esp + 0x84]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QRegExp::destructor_void_]
jmp 0x6401e0a5
cmp esi, 0xe5
jne 0x6401e3af
push 1
push 0
push ecx
mov ecx, esp
mov byte [esp + 0x88], 0x28
push dword [esp + 0x88]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
lea ecx, [edi + 0x58]
call dword [sym.imp.Qt5Core.dll_public:_int___thiscall_QString::indexOf_class_QChar__int__enum_Qt::CaseSensitivity_const]
cmp eax, 0xffffffff
je 0x6401e0a5
inc eax
lea ecx, [edi + 0x58]
push eax
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QChar___thiscall_QString::at_int_const]
push 0xffffffffffffffff
push dword [esp + 0x6c]
lea eax, [esp + 0x10]
push eax
lea ecx, [edi + 0x58]
call dword [sym.imp.Qt5Core.dll_public:_class_QStringRef___thiscall_QString::midRef_int__int_]
mov cx, word [esp + 0x70]
push 1
push ecx
mov word [esp + 0x70], cx
mov ecx, esp
push dword [esp + 0x70]
mov dword [ecx], 0
lea ecx, [esp + 0x84]
push ecx
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_class_QVector_class_QStringRef____thiscall_QStringRef::split_class_QChar__class_QFlags_enum_Qt::SplitBehaviorFlags___enum_Qt::CaseSensitivity_]
mov eax, dword [esp + 0x78]
mov byte [edi + 0x70], 1
push 0xa
push 0
mov ecx, dword [eax + 0xc]
add eax, 0x24
add ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_int___thiscall_QStringRef::toInt_bool___int_const]
movzx esi, ax
lea ecx, [edi + 0x50]
lea eax, [esp + 0x64]
push eax
call sym.Qt5Network.dll_public:_class_QHostAddress___thiscall_QAbstractSocket::peerAddress_void_
lea ecx, [esp + 0x68]
push ecx
mov ecx, eax
call sym.Qt5Network.dll_public:_class_QString___thiscall_QHostAddress::toString_void_
push esi
push eax
lea ecx, [edi + 0x10]
call fcn.6401ce70
lea ecx, [esp + 0x68]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x64]
call sym.Qt5Network.dll_public:_void___thiscall_QHostAddress::destructor_void_
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
test eax, eax
je 0x6401e396
cmp eax, 0xffffffff
je 0x6401e0a5
mov eax, dword [esp + 0x78]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
setne al
test al, al
jne 0x6401e0a5
push 4
push 0xc
push dword [esp + 0x80]
call dword [sym.imp.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData___unsigned_int__unsigned_int_]
add esp, 0xc
jmp 0x6401e0a5
cmp esi, 0xe6
jne 0x6401e409
mov esi, dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
lea ecx, [edi + 0x6c]
push 1
push str.USER
push 5
call esi
test al, al
je 0x6401e3fb
mov ecx, dword [edi + 0x68]
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
sub eax, edx
test eax, eax
jle 0x6401e3fb
push 1
lea ecx, [ecx + edx*4]
push str.PASS
add ecx, 0x10
push 5
call esi
test al, al
je 0x6401e3fb
lea ecx, [edi + 0x68]
call fcn.6401de20
push 4
mov ecx, edi
call fcn.6401cd10
jmp 0x6401e0ab
cmp esi, 0xd5
jne 0x6401e460
mov esi, dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
lea ecx, [edi + 0x6c]
push 1
push 0x640b463c
push 5
call esi
test al, al
je 0x6401e0ab
lea eax, [esp + 0x64]
push eax
lea ecx, [edi + 0x58]
call dword [sym.imp.Qt5Core.dll__simplified_QString__QGBE_AV1_XZ]
push 0xa
push 0
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_long_long___int64____thiscall_QString::toLongLong_bool___int_const]
push edx
push eax
lea ecx, [edi + 0x10]
call fcn.64020660
lea ecx, [esp + 0x64]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
jmp 0x6401e0ab
cmp byte [edi + 0x5c], 1
jne 0x6401e0a5
mov esi, dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
lea ecx, [edi + 0x6c]
push 1
push str.STOR
push 5
call esi
test al, al
je 0x6401e0ab
lea ecx, [edi + 0x1c]
call sym.Qt5Network.dll_public:_bool___thiscall_QTcpServer::isListening_void_const
test al, al
je 0x6401e49e
push 0
push 0
lea ecx, [edi + 0x1c]
call sym.Qt5Network.dll_public:_bool___thiscall_QTcpServer::waitForNewConnection_int__bool__
lea ecx, [edi + 0x10]
call fcn.64021200
jmp 0x6401e0ab
push 1
push str.EPRT
push 4
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
test al, al
je 0x6401e4f4
push str.PORT_r_n
push 6
lea ecx, [esp + 0x84]
mov byte [edi + 9], 0
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QLatin1String_]
lea eax, [esp + 0x7c]
push eax
lea ecx, [edi + 0x68]
call fcn.6401de80
lea ecx, [esp + 0x7c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea esi, [edi + 0x6c]
jmp 0x6401e501
lea eax, [edi + 0x58]
mov ecx, edi
push eax
push 1
call fcn.6401d660
cmp dword [edi + 0x60], 2
je 0x6401eed5
cmp byte [edi + 0x70], 0
mov dword [edi + 0x60], 1
jne 0x6401eed5
mov eax, dword [edi + 0x68]
mov ecx, dword [eax + 8]
cmp dword [eax + 0xc], ecx
jne 0x6401e547
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::clear_void_]
lea eax, [edi + 0x58]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], eax
lea eax, [esp + 0x5c]
jmp 0x6401ea34
lea eax, [eax + ecx*4]
mov ecx, esi
add eax, 0x10
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QString_const__]
lea eax, [esp + 0x88]
push eax
lea ecx, [edi + 0x50]
call sym.Qt5Network.dll_public:_class_QHostAddress___thiscall_QAbstractSocket::localAddress_void_
push 1
push 0x640b4664
push 4
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
test al, al
je 0x6401e966
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
cmp eax, 1
jne 0x6401e721
cmp byte [edi + 9], 0
je 0x6401e721
lea eax, [esp + 0x88]
push eax
lea ecx, [edi + 0x10]
call fcn.64020800
mov ecx, dword [esp + 0x70]
mov esi, eax
push str.EPRT_
push 6
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QLatin1String_]
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
test eax, eax
push ecx
setne al
mov ecx, esp
add al, 0x31
mov byte [esp + 0x68], al
push dword [esp + 0x68]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
mov ecx, dword [esp + 0x74]
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QChar_]
push 0xa
lea eax, [esp + 0x5c]
push esi
push eax
call dword [sym.imp.Qt5Core.dll_public:_static_class_QString___cdecl_QString::number_int__int_]
add esp, 0xc
mov byte [esp + 0x50], 0x7c
mov esi, eax
lea ecx, [esp + 0x88]
lea eax, [esp + 0x48]
mov dword [esp + 0x68], esi
push eax
call sym.Qt5Network.dll_public:_class_QString___thiscall_QHostAddress::toString_void_
mov byte [esp + 0x84], 0x7c
mov edi, eax
mov ecx, dword [esi]
mov eax, dword [esp + 0x70]
mov edx, dword [edi]
mov esi, dword [ecx + 4]
mov ecx, dword [eax]
add esi, dword [edx + 4]
mov ecx, dword [ecx + 4]
add ecx, 2
add ecx, esi
push ecx
mov ecx, eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::reserve_int_]
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
mov esi, dword [eax + 4]
call dword [sym.imp.Qt5Core.dll_public:_class_QChar____thiscall_QString::data_void_]
push dword [esp + 0x84]
lea ecx, [esp + 0x78]
lea esi, [eax + esi*2]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
movzx eax, word [esp + 0x74]
mov ecx, edi
mov word [esi], ax
add esi, 2
mov eax, dword [edi]
mov dword [esp + 0x64], esi
mov eax, dword [eax + 4]
lea esi, [eax + eax]
push esi
call dword [sym.imp.Qt5Core.dll_public:_class_QChar_const____thiscall_QString::constData_void_const]
mov edi, dword [esp + 0x68]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x76]
add edi, esi
push dword [esp + 0x50]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
mov ecx, dword [esp + 0x68]
movzx eax, word [esp + 0x76]
mov word [edi], ax
add edi, 2
mov eax, dword [ecx]
mov eax, dword [eax + 4]
lea esi, [eax + eax]
push esi
call dword [sym.imp.Qt5Core.dll_public:_class_QChar_const____thiscall_QString::constData_void_const]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x7c]
add esp, 0xc
call dword [sym.imp.Qt5Core.dll_public:_class_QChar_const____thiscall_QString::constData_void_const]
lea ecx, [edi + esi]
mov esi, dword [esp + 0x70]
sub ecx, eax
sar ecx, 1
push ecx
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::resize_int_]
lea ecx, [esp + 0x48]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x58]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
push ecx
mov ecx, esp
mov byte [esp + 0x5c], 0x7c
push dword [esp + 0x5c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QChar_]
jmp 0x6401e944
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
test eax, eax
jne 0x6401eec9
lea eax, [esp + 0x88]
push eax
lea ecx, [edi + 0x10]
call fcn.64020800
lea ecx, [esp + 0x84]
mov dword [esp + 0x78], eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_void_]
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QSsl::SslProtocol___thiscall_QSslConfiguration::sessionProtocol_void_
mov esi, dword [sym.imp.Qt5Core.dll_public:_static_class_QString___cdecl_QString::number_unsigned_int__int_]
mov ecx, eax
push 0xa
shr ecx, 0x18
mov dword [esp + 0x80], eax
lea eax, [esp + 0x5c]
push ecx
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x84]
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
lea ecx, [esp + 0x58]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x7c]
shr eax, 0x10
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x50]
push eax
call esi
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x8d]
lea eax, [esp + 0x38]
mov byte [esp + 0x8d], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x3c], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x48]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x7c]
shr eax, 8
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x58]
push eax
call esi
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x8e]
lea eax, [esp + 0x30]
mov byte [esp + 0x8e], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x34], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x50]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x7c]
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x48]
push eax
call esi
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x8f]
lea eax, [esp + 0x28]
mov byte [esp + 0x8f], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x2c], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x40]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x78]
mov esi, dword [sym.imp.Qt5Core.dll_public:_static_class_QString___cdecl_QString::number_int__int_]
sar eax, 8
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x40]
push eax
call esi
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x83]
lea eax, [esp + 0x20]
mov byte [esp + 0x83], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x24], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x38]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x78]
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x68]
push eax
call esi
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0x81]
lea eax, [esp + 0x9c]
mov byte [esp + 0x81], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0xa0], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x60]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov esi, dword [esp + 0x70]
mov ecx, esi
push str.PORT
push 5
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QLatin1String_]
lea eax, [esp + 0x84]
mov ecx, esi
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
lea ecx, [esp + 0x84]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
push 0x640b45d0
push 2
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::append_class_QLatin1String_]
mov edi, dword [esp + 0x6c]
lea ecx, [edi + 0x68]
call fcn.6401de20
mov ecx, esi
jmp 0x6401eea3
push 1
push str.PASV
push 4
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::startsWith_class_QLatin1String__enum_Qt::CaseSensitivity_const]
test al, al
je 0x6401e9a1
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
cmp eax, 1
jne 0x6401e9a1
cmp byte [edi + 9], 0
je 0x6401e9a1
push str.EPSV_r_n
push 6
mov ecx, esi
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QLatin1String_]
lea ecx, [edi + 0x68]
call fcn.6401de20
mov ecx, esi
jmp 0x6401eea3
mov dword [edi + 0x60], 1
lea ecx, [edi + 0x28]
call dword [sym.imp.Qt5Core.dll_public:_bool___thiscall_QString::isNull_void_const]
test al, al
jne 0x6401e9f6
lea eax, [edi + 0x28]
push eax
lea ecx, [esp + 0x80]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_class_QString_const__]
lea eax, [esp + 0x7c]
mov ecx, edi
push eax
push 1
call fcn.6401d660
lea ecx, [esp + 0x7c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [edi + 0x28]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::clear_void_]
cmp byte [edi + 0x70], 0
jne 0x6401eed5
mov eax, dword [edi + 0x68]
lea ecx, [edi + 0x6c]
mov dword [esp + 0x70], ecx
mov edx, dword [eax + 8]
cmp dword [eax + 0xc], edx
jne 0x6401ea4c
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::clear_void_]
lea eax, [edi + 0x58]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], eax
lea eax, [esp + 0x90]
push eax
mov eax, dword [sym.imp.Qt5Core.dll_public:_static_void___cdecl_QMetaObject::activate_class_QObject___struct_QMetaObject_const___int__void___]
push 1
push 0x640f0180
push edi
call eax
add esp, 0x10
jmp 0x6401eed5
lea eax, [eax + edx*4]
add eax, 0x10
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QString_const__]
lea eax, [esp + 0x88]
push eax
lea ecx, [edi + 0x50]
call sym.Qt5Network.dll_public:_class_QHostAddress___thiscall_QAbstractSocket::localAddress_void_
push 1
push 0x640b4664
push 4
lea ecx, [edi + 0x6c]
call esi
test al, al
je 0x6401ee5f
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
cmp eax, 1
jne 0x6401ec26
cmp byte [edi + 9], 0
je 0x6401ec26
lea eax, [esp + 0x88]
push eax
lea ecx, [edi + 0x10]
call fcn.64020800
mov ecx, dword [esp + 0x70]
mov esi, eax
push str.EPRT_
push 6
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QLatin1String_]
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
test eax, eax
push ecx
setne al
mov ecx, esp
add al, 0x31
mov byte [esp + 0x64], al
push dword [esp + 0x64]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
mov ecx, dword [esp + 0x74]
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QChar_]
push 0xa
lea eax, [esp + 0x54]
push esi
push eax
call dword [sym.imp.Qt5Core.dll_public:_static_class_QString___cdecl_QString::number_int__int_]
add esp, 0xc
mov byte [esp + 0x40], 0x7c
mov esi, eax
lea ecx, [esp + 0x88]
lea eax, [esp + 0x48]
mov dword [esp + 0x58], esi
push eax
call sym.Qt5Network.dll_public:_class_QString___thiscall_QHostAddress::toString_void_
mov byte [esp + 0x38], 0x7c
mov edi, eax
mov ecx, dword [esi]
mov eax, dword [esp + 0x6c]
mov esi, dword [ecx + 4]
mov edx, dword [eax + 0x6c]
add esi, 2
mov ecx, dword [edi]
add esi, dword [edx + 4]
mov eax, dword [ecx + 4]
add eax, esi
mov esi, dword [esp + 0x6c]
push eax
lea ecx, [esi + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::reserve_int_]
mov eax, dword [esi + 0x6c]
lea ecx, [esi + 0x6c]
mov esi, dword [eax + 4]
call dword [sym.imp.Qt5Core.dll_public:_class_QChar____thiscall_QString::data_void_]
push dword [esp + 0x38]
lea ecx, [esp + 0x78]
lea esi, [eax + esi*2]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
movzx eax, word [esp + 0x74]
mov ecx, edi
mov word [esi], ax
add esi, 2
mov eax, dword [edi]
mov dword [esp + 0x60], esi
mov eax, dword [eax + 4]
lea esi, [eax + eax]
push esi
call dword [sym.imp.Qt5Core.dll_public:_class_QChar_const____thiscall_QString::constData_void_const]
mov edi, dword [esp + 0x64]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esp + 0x76]
add edi, esi
push dword [esp + 0x40]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
mov ecx, dword [esp + 0x58]
movzx eax, word [esp + 0x76]
mov word [edi], ax
add edi, 2
mov eax, dword [ecx]
mov eax, dword [eax + 4]
lea esi, [eax + eax]
push esi
call dword [sym.imp.Qt5Core.dll_public:_class_QChar_const____thiscall_QString::constData_void_const]
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x78]
add esp, 0xc
lea ecx, [ecx + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_class_QChar_const____thiscall_QString::constData_void_const]
lea edx, [edi + esi]
mov edi, dword [esp + 0x6c]
sub edx, eax
sar edx, 1
push edx
lea ecx, [edi + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::resize_int_]
lea ecx, [esp + 0x48]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
lea ecx, [esp + 0x50]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
push ecx
mov ecx, esp
mov byte [esp + 0x64], 0x7c
push dword [esp + 0x64]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QChar::constructor_struct_QLatin1Char_]
lea ecx, [edi + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QChar_]
jmp 0x6401ee4d
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
test eax, eax
jne 0x6401eec9
lea eax, [esp + 0x88]
push eax
lea ecx, [edi + 0x10]
call fcn.64020800
lea ecx, [esp + 0x84]
mov dword [esp + 0x78], eax
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::constructor_void_]
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QSsl::SslProtocol___thiscall_QSslConfiguration::sessionProtocol_void_
mov esi, dword [sym.imp.Qt5Core.dll_public:_static_class_QString___cdecl_QString::number_unsigned_int__int_]
mov ecx, eax
push 0xa
shr ecx, 0x18
mov dword [esp + 0x80], eax
lea eax, [esp + 0x64]
push ecx
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x84]
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
lea ecx, [esp + 0x60]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x7c]
shr eax, 0x10
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x40]
push eax
call esi
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0x81]
lea eax, [esp + 0x9c]
mov byte [esp + 0x81], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0xa0], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x38]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x7c]
shr eax, 8
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x48]
push eax
call esi
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x83]
lea eax, [esp + 0x20]
mov byte [esp + 0x83], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x24], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x40]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x7c]
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x60]
push eax
call esi
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x8d]
lea eax, [esp + 0x28]
mov byte [esp + 0x8d], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x2c], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x58]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x78]
mov esi, dword [sym.imp.Qt5Core.dll_public:_static_class_QString___cdecl_QString::number_int__int_]
sar eax, 8
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x50]
push eax
call esi
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x8e]
lea eax, [esp + 0x30]
mov byte [esp + 0x8e], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x34], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x48]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov eax, dword [esp + 0x78]
movzx eax, al
push 0xa
push eax
lea eax, [esp + 0x58]
push eax
call esi
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x8f]
lea eax, [esp + 0x38]
mov byte [esp + 0x8f], 0x2c
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0x3c], ecx
push eax
call fcn.6401a5b0
add esp, 0x14
lea ecx, [esp + 0x50]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov ecx, dword [esp + 0x70]
push str.PORT
push 5
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QLatin1String_]
mov ecx, dword [esp + 0x70]
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::append_class_QString_const__]
lea ecx, [esp + 0x84]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QString::destructor_void_]
mov edi, dword [esp + 0x6c]
push 0x640b45d0
push 2
lea ecx, [edi + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::append_class_QLatin1String_]
jmp 0x6401ee98
push 1
push str.PASV
push 4
lea ecx, [edi + 0x6c]
call esi
test al, al
je 0x6401ee98
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_enum_QAbstractSocket::NetworkLayerProtocol___thiscall_QHostAddress::protocol_void_
cmp eax, 1
jne 0x6401ee98
cmp byte [edi + 9], 0
je 0x6401ee98
push str.EPSV_r_n
push 6
lea ecx, [edi + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_class_QString____thiscall_QString::operator_class_QLatin1String_]
lea ecx, [edi + 0x68]
call fcn.6401de20
lea ecx, [edi + 0x6c]
lea eax, [esp + 0x6c]
mov dword [edi + 0x60], 2
push eax
call dword [sym.imp.Qt5Core.dll__toUtf8_QString__QGBE_AVQByteArray__XZ]
push eax
lea ecx, [edi + 0x50]
call dword [sym.imp.Qt5Core.dll_public:_long_long___int64____thiscall_QIODevice::write_class_QByteArray_const__]
lea ecx, [esp + 0x6c]
call dword [sym.imp.Qt5Core.dll_public:_void___thiscall_QByteArray::destructor_void_]
lea ecx, [esp + 0x88]
call sym.Qt5Network.dll_public:_void___thiscall_QHostAddress::destructor_void_
mov ecx, dword [esp + 0x98]
mov al, 1
pop edi
pop esi
xor ecx, esp
call fcn.640ae828
add esp, 0x94
ret