Function at 0x6c1061e0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get session user name
Get socket information
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x26c
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x23c], eax
mov ebx, eax
test byte [0x6c147174], 8
jne 0x6c106718
cmp dword [edi], 1
je 0x6c106229
mov dword [esp + 8], 0x988
mov dword [esp + 4], str..._src_wine_dlls_wininet_ftp.c
mov dword [esp], 0x6c149d0b
call dword [sym.imp.ucrtbase.dll__assert]
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x6c1065e8
mov eax, dword [ebp + 0x14]
cmp word [eax], 0
je 0x6c1065e8
mov dword [esp + 8], 0x84
mov dword [esp + 4], 0x6c14f680
mov dword [esp], edi
call sym._alloc_object
mov esi, eax
test eax, eax
je 0x6c106a76
cmp word [ebp - 0x23c], 0
mov eax, 0x15
mov dword [esi], 2
cmove ebx, eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x50], 0
mov dword [esi + 0x44], 0xffffffff
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 0x20]
mov word [esi + 0x78], bx
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 0x24]
or dword [esi + 0x20], eax
mov dword [esi + 0x48], 0xffffffff
mov dword [esi + 0x4c], 0xffffffff
mov dword [esp], edi
call sym._WININET_AddRef
mov dword [esi + 0x40], edi
mov edx, dword [edi + 0x38]
lea eax, [esi + 0x30]
mov dword [esi + 0x30], edx
lea edx, [edi + 0x38]
mov dword [esi + 0x34], edx
mov edx, dword [edi + 0x38]
mov dword [edx + 4], eax
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x44]
test eax, eax
je 0x6c1062df
cmp dword [edi + 0x54], 3
je 0x6c1068f0
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x6c1062f3
mov eax, dword [ebp + 0x14]
cmp word [eax], 0
jne 0x6c106800
mov eax, dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [esp], str.anonymous
lea ebx, [ebp - 0x220]
mov dword [ebp - 0x230], 0x208
mov dword [ebp - 0x240], eax
call eax
mov dword [esi + 0x80], eax
lea eax, [ebp - 0x234]
mov dword [ebp - 0x244], eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6c149d78
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
lea eax, [ebp - 0x230]
sub esp, 0xc
mov dword [ebp - 0x23c], eax
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x234]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.EmailName
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
jne 0x6c1066e8
mov eax, dword [ebp - 0x234]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test byte [0x6c147174], 8
jne 0x6c1066b0
mov dword [esp], ebx
mov eax, dword [ebp - 0x240]
call eax
mov dword [esi + 0x7c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x240]
call eax
mov dword [esi + 0x74], eax
test byte [esi + 0x20], 1
je 0x6c106788
mov eax, dword [ebp + 0xc]
cmp word [eax], 0
je 0x6c1067cb
add eax, 2
cmp word [eax], 0
jne 0x6c1063e0
sub eax, dword [ebp + 0xc]
add eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x20]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._INTERNET_SendCallback
mov eax, dword [ebp - 0x244]
mov dword [esp + 0x10], ebx
mov dword [ebp - 0x234], 0x10
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x23c]
mov dword [esp + 8], eax
movzx eax, word [esi + 0x78]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sym._GetAddress
test eax, eax
je 0x6c1069fe
movsx eax, word [ebp - 0x230]
cmp ax, 2
jne 0x6c1067d8
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp], ebx
mov dword [ebp - 0x248], eax
call eax
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0xc], ebx
inc eax
mov dword [esp + 8], 0xb
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], edi
call sym._INTERNET_SendCallback
call sym._init_winsock
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
call dword [sym.imp.ws2_32.dll_socket]
mov dword [ebp - 0x240], eax
sub esp, 0xc
cmp eax, 0xffffffff
je 0x6c1067e5
mov dword [esp], ebx
mov eax, dword [ebp - 0x248]
call eax
mov dword [esp + 0xc], ebx
inc eax
mov dword [esp + 8], 0x14
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x20]
mov dword [esp], edi
mov dword [esp + 4], eax
call sym._INTERNET_SendCallback
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x240]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x23c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.ws2_32.dll_connect]
sub esp, 0xc
test eax, eax
js 0x6c106977
test byte [0x6c147174], 8
jne 0x6c106860
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x248]
mov dword [esi + 0x44], eax
mov dword [esp], ebx
call ecx
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0xc], ebx
inc eax
mov dword [esp + 8], 0x15
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], edi
call sym._INTERNET_SendCallback
lea eax, [esi + 0x54]
mov ecx, dword [ebp - 0x244]
mov dword [ebp - 0x234], 0x10
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x240]
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [sym.imp.ws2_32.dll_getsockname]
sub esp, 0xc
test byte [0x6c147174], 8
jne 0x6c106890
mov edx, dword [esi + 0x14]
mov eax, esi
call sym._FTP_ReceiveResponse
mov ecx, dword [esi + 0x80]
mov eax, dword [esi + 0x44]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov edx, 0xc
mov dword [esp], 0
call sym._FTP_SendCommand
test eax, eax
jne 0x6c106610
mov dword [esp], esi
xor esi, esi
call sym._WININET_Release
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, dword [ebp + 0x18]
test esi, esi
je 0x6c106241
mov eax, dword [ebp + 0x18]
cmp word [eax], 0
je 0x6c106241
mov dword [esp], 0x57
xor esi, esi
call sym._INTERNET_SetLastError
jmp 0x6c1065d9
mov edx, dword [esi + 0x14]
mov eax, esi
call sym._FTP_ReceiveResponse
test eax, eax
je 0x6c106671
cmp eax, 0xe6
je 0x6c106a0f
cmp eax, 0x14b
je 0x6c106a87
cmp eax, 0x14c
je 0x6c1069d3
mov edx, 0x2efe
cmp eax, 0x1aa
je 0x6c106669
mov edx, 0x2eef
cmp eax, 0x212
je 0x6c106669
cmp eax, 0x1a9
mov edx, 0x2ee3
mov eax, 0x2efd
cmove edx, eax
mov dword [esp], edx
call sym._INTERNET_SetLastError
test byte [0x6c147174], 8
je 0x6c1065cf
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c1065cf
mov eax, ebx
call sym._wine_dbgstr_wn.constprop.0_1
mov dword [esp + 0xc], str.Password_used_for_anonymous_ftp_:___s__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c1063aa
mov eax, dword [ebp - 0x23c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.advapi32.dll_GetUserNameW]
sub esp, 8
test eax, eax
jne 0x6c10638b
xor edx, edx
mov word [ebp - 0x220], dx
jmp 0x6c10638b
mov eax, dword [ebp + 0x18]
call sym._wine_dbgstr_wn.constprop.0_1
mov dword [ebp - 0x240], eax
mov eax, dword [ebp + 0x14]
call sym._wine_dbgstr_wn.constprop.0_1
mov esi, eax
mov eax, dword [ebp + 0xc]
call sym._wine_dbgstr_wn.constprop.0_1
mov edx, dword [ebp - 0x240]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edx
movzx edx, word [ebp - 0x23c]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0xc], str._p__Server__s__Port__d__User__s__Paswd__s__n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c106207
mov eax, dword [esi + 8]
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], ebx
mov dword [ebp - 0x220], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 8], 0x3c
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [ebp - 0x21c], 0
call sym._INTERNET_SendCallback
mov eax, dword [ebp + 0xc]
cmp word [eax], 0
jne 0x6c1063e0
mov eax, 2
jmp 0x6c1063ef
test byte [0x6c147174], 4
jne 0x6c1068c0
mov dword [esp], 0x2efd
call sym._INTERNET_SetLastError
jmp 0x6c1065cf
mov ebx, dword [sym.imp.ucrtbase.dll__wcsdup]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x240], ebx
mov dword [esp], eax
call ebx
mov dword [esi + 0x80], eax
mov eax, dword [ebp + 0x18]
test eax, eax
mov eax, 0x6c149cbe
cmovne eax, dword [ebp + 0x18]
mov dword [ebp + 0x18], eax
mov dword [esp], eax
call ebx
lea ebx, [ebp - 0x220]
mov dword [esi + 0x7c], eax
lea eax, [ebp - 0x234]
mov dword [ebp - 0x244], eax
lea eax, [ebp - 0x230]
mov dword [ebp - 0x23c], eax
jmp 0x6c1063b8
mov dword [esp + 0xc], str.Connected_to_server_n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c106529
mov dword [esp + 0xc], 0x6c149824
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c106597
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.unsupported_address_family__d_n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c1067e5
mov dword [esp + 4], 0x20
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
je 0x6c106936
test byte [0x6c147174], 1
je 0x6c1062df
mov dword [esp + 0xc], str.Several_proxies_not_implemented._n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_2
mov ebx, dword [edi + 0x48]
test ebx, ebx
je 0x6c1062df
test byte [0x6c147174], 1
je 0x6c1062df
mov dword [esp + 0xc], str.Proxy_bypass_is_ignored._n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c1062df
test byte [0x6c147174], 2
jne 0x6c1069a3
mov dword [esp], 0x2efd
call sym._INTERNET_SetLastError
mov eax, dword [ebp - 0x240]
mov dword [esp], eax
call dword [sym.imp.ws2_32.dll_closesocket]
sub esp, 4
jmp 0x6c1065cf
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov dword [esp + 0xc], str.Unable_to_connect___d__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c106980
mov eax, esi
call sym._FTP_SendAccount
mov ebx, eax
test byte [0x6c147174], 8
jne 0x6c106b64
test ebx, ebx
je 0x6c1065cf
mov esi, dword [esi + 8]
lea esp, [ebp - 0xc]
pop ebx
mov eax, esi
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x2ee7
call sym._INTERNET_SetLastError
jmp 0x6c1065cf
test byte [0x6c147174], 8
je 0x6c1069f1
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
test byte [0x6c147174], 8
je 0x6c1069f1
mov dword [esp + 0xc], str.Successfully_logged_into_server_n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c1069f1
mov dword [esp], 0xe
call sym._INTERNET_SetLastError
jmp 0x6c1065d9
test byte [0x6c147174], 8
jne 0x6c106ba0
mov ecx, dword [esi + 0x7c]
mov eax, dword [esi + 0x44]
mov dword [esp + 8], 0
mov edx, 4
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._FTP_SendCommand
test eax, eax
je 0x6c106b28
mov edx, dword [esi + 0x14]
mov eax, esi
call sym._FTP_ReceiveResponse
mov ebx, eax
test eax, eax
je 0x6c106b28
test byte [0x6c147174], 8
jne 0x6c106bc9
cmp eax, 0xe6
je 0x6c1069f1
cmp ebx, 0x14c
je 0x6c106c14
mov eax, 0x2efe
cmp ebx, 0x1aa
je 0x6c106b20
mov eax, 0x2eef
cmp ebx, 0x212
je 0x6c106b20
cmp ebx, 0x1a9
mov eax, 0x2ee3
mov edx, 0x2efd
cmove eax, edx
mov dword [esp], eax
call sym._INTERNET_SetLastError
test byte [0x6c147174], 8
je 0x6c1065cf
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_SendPassword
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c1069dc
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
test ebx, ebx
jne 0x6c106a44
jmp 0x6c1065cf
mov dword [esp + 0xc], 0x6c149824
mov dword [esp + 8], str.FTP_SendPassword
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x6c106a94
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Received_reply_code__d_n
mov dword [esp + 8], str.FTP_SendPassword
mov dword [esp + 4], 0x6c147174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
cmp ebx, 0xe6
jne 0x6c106ae7
mov ebx, 1
test byte [0x6c147174], 8
jne 0x6c106b37
jmp 0x6c1069f1
mov eax, esi
call sym._FTP_SendAccount
mov ebx, eax
test byte [0x6c147174], 8
je 0x6c1069e9
jmp 0x6c106b37