Function at 0x6c1105a0
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
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x26c
mov ebp, dword [esp + 0x288]
movd xmm1, dword [esp + 0x294]
movd xmm2, dword [esp + 0x298]
mov edi, dword [esp + 0x280]
punpckldq xmm1, xmm2
mov esi, ebp
movq qword [esp + 0x30], xmm1
test byte [0x6c1450b0], 8
jne 0x6c110b00
cmp dword [edi], 1
je 0x6c110605
mov dword [esp + 8], 0x988
mov dword [esp + 4], str._Users_gcenx_Documents_GitHub_wineskincx_dlls_wininet_ftp.c
mov dword [esp], 0x6c148084
call dword [sym.imp.ucrtbase.dll__assert]
mov eax, dword [esp + 0x28c]
test eax, eax
je 0x6c1109c0
mov eax, dword [esp + 0x28c]
cmp word [eax], 0
je 0x6c1109c0
mov dword [esp + 8], 0x84
mov dword [esp + 4], 0x6c148760
mov dword [esp], edi
call fcn.6c124320
mov ebx, eax
test eax, eax
je 0x6c110e79
test bp, bp
mov eax, 0x15
mov edx, 0xffffffff
movq xmm3, qword [esp + 0x30]
cmove esi, eax
mov eax, dword [esp + 0x29c]
mov dword [ebx + 0x48], edx
or dword [ebx + 0x20], eax
mov eax, 0xffffffff
mov dword [ebx], 2
mov word [ebx + 0x78], si
movq qword [ebx + 0x10], xmm3
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x4c], 0xffffffff
mov dword [esp], edi
call fcn.6c124560
mov edx, dword [edi + 0x38]
lea ecx, [edi + 0x38]
mov dword [ebx + 0x40], edi
lea eax, [ebx + 0x30]
movd xmm4, ecx
movd xmm0, edx
punpckldq xmm0, xmm4
movq qword [ebx + 0x30], xmm0
mov dword [edx + 4], eax
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x44]
test eax, eax
je 0x6c1106cb
cmp dword [edi + 0x54], 3
je 0x6c110cf8
mov ecx, dword [esp + 0x28c]
test ecx, ecx
je 0x6c1106e7
mov eax, dword [esp + 0x28c]
cmp word [eax], 0
jne 0x6c110bf0
mov dword [esp + 0x48], 0x208
mov esi, dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [esp], str.anonymous
call esi
mov dword [ebx + 0x80], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x38], eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0x6c1480f0
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
sub esp, 0xc
lea eax, [esp + 0x48]
mov dword [esp + 0xc], 0
mov dword [esp + 0x30], eax
lea ebp, [esp + 0x58]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], ebp
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 0x6c110ad0
mov eax, dword [esp + 0x44]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test byte [0x6c1450b0], 8
jne 0x6c110a98
mov dword [esp], ebp
call esi
mov dword [ebx + 0x7c], eax
mov eax, dword [esp + 0x284]
mov dword [esp], eax
call esi
mov dword [ebx + 0x74], eax
test byte [ebx + 0x20], 1
je 0x6c110b70
mov eax, dword [esp + 0x284]
cmp word [eax], 0
je 0x6c110bb7
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x6c1107c0
sub eax, dword [esp + 0x284]
add eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x284]
mov dword [esp + 8], 0xa
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 4], eax
call fcn.6c13eb60
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x44], 0x10
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
movzx eax, word [ebx + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x284]
mov dword [esp], eax
call fcn.6c13e900
test eax, eax
je 0x6c110e01
movsx eax, word [esp + 0x48]
cmp ax, 2
jne 0x6c110bc8
mov eax, dword [sym.imp.ucrtbase.dll_strlen]
mov dword [esp], ebp
mov dword [esp + 0x3c], eax
call eax
mov ecx, dword [esp + 0x298]
mov dword [esp + 0xc], ebp
add eax, 1
mov dword [esp + 8], 0xb
mov dword [esp + 0x10], eax
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.6c13eb60
call fcn.6c130950
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 2
call dword [sym.imp.ws2_32.dll_socket]
sub esp, 0xc
mov esi, eax
cmp eax, 0xffffffff
je 0x6c110bd5
mov eax, dword [esp + 0x3c]
mov dword [esp], ebp
call eax
mov dword [esp + 0xc], ebp
add eax, 1
mov dword [esp + 8], 0x14
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x298]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.6c13eb60
mov eax, dword [esp + 0x44]
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call dword [sym.imp.ws2_32.dll_connect]
sub esp, 0xc
test eax, eax
js 0x6c110d7f
test byte [0x6c1450b0], 8
jne 0x6c110c80
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x44], esi
mov dword [esp], ebp
call eax
mov dword [esp + 0xc], ebp
add eax, 1
mov dword [esp + 8], 0x15
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x298]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.6c13eb60
mov eax, dword [esp + 0x38]
mov dword [esp + 0x44], 0x10
mov dword [esp], esi
mov dword [esp + 8], eax
lea eax, [ebx + 0x54]
mov dword [esp + 4], eax
call dword [sym.imp.ws2_32.dll_getsockname]
sub esp, 0xc
test byte [0x6c1450b0], 8
jne 0x6c110c50
mov edx, dword [ebx + 0x14]
mov eax, ebx
call fcn.6c10aab0
mov ecx, dword [ebx + 0x80]
mov edx, 0xc
mov eax, dword [ebx + 0x44]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.6c10b060
test eax, eax
jne 0x6c1109f0
mov dword [esp], ebx
call fcn.6c1246b0
add esp, 0x26c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x290]
test eax, eax
je 0x6c110625
mov eax, dword [esp + 0x290]
cmp word [eax], 0
je 0x6c110625
mov dword [esp], 0x57
call fcn.6c12c120
jmp 0x6c1109ad
mov edx, dword [ebx + 0x14]
mov eax, ebx
call fcn.6c10aab0
test eax, eax
je 0x6c110cb0
cmp eax, 0xe6
je 0x6c110e12
cmp eax, 0x14b
je 0x6c110e8a
cmp eax, 0x14c
je 0x6c110dd5
mov edx, 0x2efe
cmp eax, 0x1aa
je 0x6c110a4d
mov edx, 0x2eef
cmp eax, 0x212
je 0x6c110a4d
cmp eax, 0x1a9
mov edx, 0x2efd
mov eax, 0x2ee3
cmovne edx, eax
mov dword [esp], edx
call fcn.6c12c120
test byte [0x6c1450b0], 8
je 0x6c1109a5
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c1109a5
mov eax, ebp
call fcn.6c109ca0
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], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c110789
mov eax, dword [esp + 0x30]
mov dword [esp], ebp
mov dword [esp + 4], eax
call dword [sym.imp.advapi32.dll_GetUserNameW]
sub esp, 8
test eax, eax
jne 0x6c11076c
xor edx, edx
mov word [esp + 0x58], dx
jmp 0x6c11076c
mov eax, dword [esp + 0x290]
call fcn.6c109ca0
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28c]
call fcn.6c109ca0
mov ebx, eax
mov eax, dword [esp + 0x284]
call fcn.6c109ca0
mov ecx, dword [esp + 0x38]
movzx edx, bp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], ecx
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], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c1105e3
mov eax, dword [ebx + 8]
mov dword [esp + 0x10], 8
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 0x3c
mov dword [esp], edi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 0x5c], 0
mov dword [esp + 4], eax
call fcn.6c13eb60
mov eax, dword [esp + 0x284]
cmp word [eax], 0
jne 0x6c1107c0
mov eax, 2
jmp 0x6c1107d3
test byte [0x6c1450b0], 4
jne 0x6c110cc8
mov dword [esp], 0x2efd
call fcn.6c12c120
mov dword [esp], ebx
call fcn.6c1246b0
jmp 0x6c1109ad
mov eax, dword [esp + 0x28c]
lea ebp, [esp + 0x58]
mov esi, dword [sym.imp.ucrtbase.dll__wcsdup]
mov dword [esp], eax
call esi
mov dword [ebx + 0x80], eax
mov eax, dword [esp + 0x290]
test eax, eax
mov eax, 0x6c14801a
cmovne eax, dword [esp + 0x290]
mov dword [esp + 0x290], eax
mov dword [esp], eax
call esi
mov dword [ebx + 0x7c], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x30], eax
jmp 0x6c110791
mov dword [esp + 0xc], 0x6c147b7c
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c11096d
mov dword [esp + 0xc], str.Connected_to_server_n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c11090b
test byte [0x6c1450b0], 8
je 0x6c1109a5
jmp 0x6c110a62
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], 0x6c1450b0
mov dword [esp], 2
call fcn.6c10a080
jmp 0x6c110bd5
mov dword [esp + 4], 0x20
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcschr]
test eax, eax
je 0x6c110d3e
test byte [0x6c1450b0], 1
je 0x6c1106cb
mov dword [esp + 0xc], str.Several_proxies_not_implemented._n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 0
call fcn.6c10a080
mov esi, dword [edi + 0x48]
test esi, esi
je 0x6c1106cb
test byte [0x6c1450b0], 1
je 0x6c1106cb
mov dword [esp + 0xc], str.Proxy_bypass_is_ignored._n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 0
call fcn.6c10a080
jmp 0x6c1106cb
test byte [0x6c1450b0], 2
jne 0x6c110da5
mov dword [esp], 0x2efd
call fcn.6c12c120
mov dword [esp], esi
call dword [sym.imp.ws2_32.dll_closesocket]
sub esp, 4
jmp 0x6c1109a5
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], 0x6c1450b0
mov dword [esp], 1
call fcn.6c10a080
jmp 0x6c110d88
mov eax, ebx
call fcn.6c10b150
mov esi, eax
test byte [0x6c1450b0], 8
jne 0x6c110efe
test esi, esi
je 0x6c1109a5
mov eax, dword [ebx + 8]
add esp, 0x26c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x2ee7
call fcn.6c12c120
jmp 0x6c1109a5
test byte [0x6c1450b0], 8
je 0x6c110df3
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
test byte [0x6c1450b0], 8
je 0x6c110df3
mov dword [esp + 0xc], str.Successfully_logged_into_server_n
mov dword [esp + 8], str.FTP_Connect
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c110df3
mov dword [esp], 0xe
call fcn.6c12c120
jmp 0x6c1109ad
test byte [0x6c1450b0], 8
jne 0x6c110fc1
mov ecx, dword [ebx + 0x7c]
mov edx, 4
mov eax, dword [ebx + 0x44]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.6c10b060
test eax, eax
jne 0x6c110f38
test byte [0x6c1450b0], 8
je 0x6c1109a5
xor esi, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_SendPassword
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c110dde
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Returning__d_n
mov dword [esp + 8], str.FTP_ConnectToHost
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
test esi, esi
jne 0x6c110e47
jmp 0x6c1109a5
mov edx, dword [ebx + 0x14]
mov eax, ebx
call fcn.6c10aab0
mov esi, eax
test eax, eax
je 0x6c110ec2
test byte [0x6c1450b0], 8
jne 0x6c110fea
cmp eax, 0xe6
je 0x6c110df3
cmp esi, 0x14c
je 0x6c110fa6
mov eax, 0x2efe
cmp esi, 0x1aa
je 0x6c110f99
mov eax, 0x2eef
cmp esi, 0x212
je 0x6c110f99
cmp esi, 0x1a9
mov eax, 0x2efd
mov edx, 0x2ee3
cmovne eax, edx
mov dword [esp], eax
call fcn.6c12c120
jmp 0x6c110ec2
mov eax, ebx
call fcn.6c10b150
mov esi, eax
test byte [0x6c1450b0], 8
je 0x6c110deb
jmp 0x6c110ed1
mov dword [esp + 0xc], 0x6c147b7c
mov dword [esp + 8], str.FTP_SendPassword
mov dword [esp + 4], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
jmp 0x6c110e97
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], 0x6c1450b0
mov dword [esp], 3
call fcn.6c10a080
cmp esi, 0xe6
jne 0x6c110f64
mov esi, 1
test byte [0x6c1450b0], 8
jne 0x6c110ed1
jmp 0x6c110df3