Function at 0x10006070
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, 0x250
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov edx, ebx
test byte [0x10047174], 8
jne 0x10006598
cmp dword [edi], 1
jne 0x10006aaf
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x10006468
mov eax, dword [ebp + 0x14]
cmp word [eax], 0
je 0x10006468
mov dword [esp + 8], 0x84
mov dword [esp + 4], 0x1004f6a0
mov dword [esp], edi
mov dword [ebp - 0x22c], edx
call sym._alloc_object
mov edx, dword [ebp - 0x22c]
test eax, eax
mov esi, eax
je 0x100068f6
test bx, bx
mov eax, 0x15
mov dword [esi], 2
cmove edx, 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], dx
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 0x10006157
cmp dword [edi + 0x54], 3
je 0x10006770
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x1000616b
mov eax, dword [ebp + 0x14]
cmp word [eax], 0
jne 0x10006680
mov eax, dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [esp], str.anonymous
lea ebx, [ebp - 0x214]
mov dword [ebp - 0x224], 0x208
mov dword [ebp - 0x230], eax
call eax
mov dword [esi + 0x80], eax
lea eax, [ebp - 0x228]
mov dword [ebp - 0x234], eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0x10049d78
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
lea eax, [ebp - 0x224]
sub esp, 0xc
mov dword [ebp - 0x22c], eax
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x228]
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 0x10006530
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test byte [0x10047174], 8
jne 0x10006560
mov dword [esp], ebx
mov eax, dword [ebp - 0x230]
call eax
mov dword [esi + 0x7c], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
mov dword [esi + 0x74], eax
test byte [esi + 0x20], 1
je 0x10006610
mov eax, dword [ebp + 0xc]
cmp word [eax], 0
je 0x10006653
lea esi, cs:[esi]
add eax, 2
cmp word [eax], 0
jne 0x10006260
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 - 0x234]
mov dword [esp + 0x10], ebx
mov dword [ebp - 0x228], 0x10
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x22c]
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 0x1000687e
movsx eax, word [ebp - 0x224]
cmp ax, 2
jne 0x10006660
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp], ebx
mov dword [ebp - 0x238], 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 - 0x230], eax
sub esp, 0xc
cmp eax, 0xffffffff
je 0x1000666d
mov dword [esp], ebx
mov eax, dword [ebp - 0x238]
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 - 0x228]
mov ecx, dword [ebp - 0x230]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x22c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call dword [sym.imp.ws2_32.dll_connect]
sub esp, 0xc
test eax, eax
js 0x100067f7
test byte [0x10047174], 8
jne 0x10006710
mov eax, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x238]
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 - 0x234]
mov dword [ebp - 0x228], 0x10
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x230]
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [sym.imp.ws2_32.dll_getsockname]
sub esp, 0xc
test byte [0x10047174], 8
jne 0x100066e0
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 0x10006490
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 0x100060b2
mov eax, dword [ebp + 0x18]
cmp word [eax], 0
je 0x100060b2
mov dword [esp], 0x57
xor esi, esi
call sym._INTERNET_SetLastError
jmp 0x10006459
mov edx, dword [esi + 0x14]
mov eax, esi
call sym._FTP_ReceiveResponse
test eax, eax
je 0x100064f1
cmp eax, 0xe6
je 0x1000688f
cmp eax, 0x14b
je 0x10006907
cmp eax, 0x14c
je 0x10006853
mov edx, 0x2efe
cmp eax, 0x1aa
je 0x100064e9
mov edx, 0x2eef
cmp eax, 0x212
je 0x100064e9
cmp eax, 0x1a9
mov edx, 0x2ee3
mov eax, 0x2efd
cmove edx, eax
mov dword [esp], edx
call sym._INTERNET_SetLastError
test byte [0x10047174], 8
je 0x1000644f
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x1000644f
mov eax, dword [ebp - 0x22c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.advapi32.dll_GetUserNameW]
sub esp, 8
test eax, eax
jne 0x10006203
xor edx, edx
mov word [ebp - 0x214], dx
jmp 0x10006203
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], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x10006222
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x230], edx
call sym._wine_dbgstr_wn.constprop.0_1
mov dword [ebp - 0x22c], 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 ecx, dword [ebp - 0x22c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ecx
movzx ecx, bx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], edi
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], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
mov edx, dword [ebp - 0x230]
jmp 0x10006091
mov eax, dword [esi + 8]
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], ebx
mov dword [ebp - 0x214], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 8], 0x3c
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [ebp - 0x210], 0
call sym._INTERNET_SendCallback
mov eax, dword [ebp + 0xc]
cmp word [eax], 0
jne 0x10006260
mov eax, 2
jmp 0x1000626f
test byte [0x10047174], 4
jne 0x10006740
mov dword [esp], 0x2efd
call sym._INTERNET_SetLastError
jmp 0x1000644f
mov ebx, dword [sym.imp.ucrtbase.dll__wcsdup]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x230], ebx
mov dword [esp], eax
call ebx
mov dword [esi + 0x80], eax
mov eax, dword [ebp + 0x18]
test eax, eax
mov eax, 0x10049cbe
cmovne eax, dword [ebp + 0x18]
mov dword [ebp + 0x18], eax
mov dword [esp], eax
call ebx
lea ebx, [ebp - 0x214]
mov dword [esi + 0x7c], eax
lea eax, [ebp - 0x228]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x224]
mov dword [ebp - 0x22c], eax
jmp 0x10006230
mov dword [esp + 0xc], 0x10049824
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x10006417
mov dword [esp + 0xc], str.Connected_to_server_n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x100063a9
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], 0x10047174
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_2
jmp 0x1000666d
mov dword [esp + 4], 0x20
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
je 0x100067b6
test byte [0x10047174], 1
je 0x10006157
mov dword [esp + 0xc], str.Several_proxies_not_implemented._n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x10047174
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_2
mov ebx, dword [edi + 0x48]
test ebx, ebx
je 0x10006157
test byte [0x10047174], 1
je 0x10006157
mov dword [esp + 0xc], str.Proxy_bypass_is_ignored._n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x10047174
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_2
jmp 0x10006157
test byte [0x10047174], 2
jne 0x10006823
mov dword [esp], 0x2efd
call sym._INTERNET_SetLastError
mov eax, dword [ebp - 0x230]
mov dword [esp], eax
call dword [sym.imp.ws2_32.dll_closesocket]
sub esp, 4
jmp 0x1000644f
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], 0x10047174
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_2
jmp 0x10006800
mov eax, esi
call sym._FTP_SendAccount
mov ebx, eax
test byte [0x10047174], 8
jne 0x100069e4
test ebx, ebx
je 0x1000644f
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 0x1000644f
test byte [0x10047174], 8
je 0x10006871
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
test byte [0x10047174], 8
je 0x10006871
mov dword [esp + 0xc], str.Successfully_logged_into_server_n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x10006871
mov dword [esp], 0xe
call sym._INTERNET_SetLastError
jmp 0x10006459
test byte [0x10047174], 8
jne 0x10006a20
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 0x100069a8
mov edx, dword [esi + 0x14]
mov eax, esi
call sym._FTP_ReceiveResponse
mov ebx, eax
test eax, eax
je 0x100069a8
test byte [0x10047174], 8
jne 0x10006a49
cmp eax, 0xe6
je 0x10006871
cmp ebx, 0x14c
je 0x10006a94
mov eax, 0x2efe
cmp ebx, 0x1aa
je 0x100069a0
mov eax, 0x2eef
cmp ebx, 0x212
je 0x100069a0
cmp ebx, 0x1a9
mov eax, 0x2ee3
mov edx, 0x2efd
cmove eax, edx
mov dword [esp], eax
call sym._INTERNET_SetLastError
test byte [0x10047174], 8
je 0x1000644f
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], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x1000685c
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
test ebx, ebx
jne 0x100068c4
jmp 0x1000644f
mov dword [esp + 0xc], 0x10049824
mov dword [esp + 8], str.FTP_SendPassword
mov dword [esp + 4], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
jmp 0x10006914
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], 0x10047174
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_2
cmp ebx, 0xe6
jne 0x10006967
mov ebx, 1
test byte [0x10047174], 8
jne 0x100069b7
jmp 0x10006871
mov eax, esi
call sym._FTP_SendAccount
mov ebx, eax
test byte [0x10047174], 8
je 0x10006869
jmp 0x100069b7
mov dword [esp + 8], 0x98a
mov dword [esp + 4], str..._src_wine_dlls_wininet_ftp.c
mov dword [esp], 0x10049d0b
call dword [sym.imp.ucrtbase.dll__assert]
nop
nop
nop
nop