Function at 0x10052f50
Capabilities:
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100f2bd6
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x49c
mov eax, dword [0x1011b040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x430], ecx
mov byte [ebp - 0x431], 1
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x430]
cmp dword [eax + 4], 0
je 0x10052fae
mov ecx, dword [ebp - 0x430]
cmp dword [ecx + 8], 0
jne 0x10052fc9
mov dword [ebp - 0x4a0], 0x100fbcfc
push 0x1010887c
lea edx, [ebp - 0x4a0]
push edx
call sub.MSVCR120.dll__CxxThrowException
call fcn.1002cc50
mov dword [ebp - 0x45c], eax
movzx eax, byte [ebp + 0x10]
test eax, eax
je 0x10052fe8
mov dword [ebp - 0x464], 1
jmp 0x10052ff2
mov dword [ebp - 0x464], 2
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x43c], ecx
cmp dword [ebp - 0x43c], 0
jne 0x10053013
mov dword [ebp - 0x460], 0
jmp 0x100530ce
mov edx, dword [ebp - 0x43c]
mov dword [ebp - 0x448], edx
mov eax, dword [ebp - 0x448]
add eax, 1
mov dword [ebp - 0x46c], eax
mov ecx, dword [ebp - 0x448]
mov dl, byte [ecx]
mov byte [ebp - 0x43e], dl
add dword [ebp - 0x448], 1
cmp byte [ebp - 0x43e], 0
jne 0x1005302e
mov eax, dword [ebp - 0x448]
sub eax, dword [ebp - 0x46c]
mov dword [ebp - 0x49c], eax
mov ecx, dword [ebp - 0x49c]
add ecx, 1
mov dword [ebp - 0x438], ecx
cmp dword [ebp - 0x438], 0x3fffffff
jle 0x10053085
mov dword [ebp - 0x468], 0
jmp 0x100530c2
mov eax, dword [ebp - 0x438]
shl eax, 1
call fcn.100ed140
mov dword [ebp - 0x498], esp
mov dword [ebp - 0x10], esp
mov edx, dword [ebp - 0x45c]
push edx
mov eax, dword [ebp - 0x438]
push eax
mov ecx, dword [ebp - 0x43c]
push ecx
mov edx, dword [ebp - 0x498]
push edx
call fcn.100492f0
mov dword [ebp - 0x468], eax
mov eax, dword [ebp - 0x468]
mov dword [ebp - 0x460], eax
push 0
mov ecx, dword [ebp - 0x464]
push ecx
push 0x80000000
mov edx, dword [ebp - 0x460]
push edx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.WININET.dll_FtpOpenFileW]
mov edx, dword [ebp - 0x430]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x430]
cmp dword [eax + 0xc], 0
je 0x10053118
mov ecx, dword [ebp - 0x430]
cmp dword [ecx + 0xc], 0xffffffff
jne 0x100531e7
call fcn.1002e8a0
mov dword [ebp - 0x478], eax
mov ecx, dword [ebp - 0x478]
call sym.COMMON.dll_public:_int___thiscall_CppSQLite3Exception::ErrorCode_void_const
mov dword [ebp - 0x494], eax
cmp dword [ebp - 0x494], 0
jg 0x100531cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [ebp - 0x42c]
push edx
call sym.COMMON.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_CCodeOperation::IntToWString_int_
add esp, 8
mov dword [ebp - 0x480], eax
mov eax, dword [ebp - 0x480]
mov dword [ebp - 0x48c], eax
mov byte [ebp - 4], 1
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4a4], esp
mov edx, dword [ebp - 0x48c]
push edx
push str.GetFile__FtpOpenFile_Failed:
push ecx
call fcn.100346d0
add esp, 0xc
mov dword [ebp - 0x488], eax
mov eax, dword [ebp - 0x488]
mov dword [ebp - 0x4a8], eax
mov byte [ebp - 4], 2
call fcn.1002e8a0
mov dword [ebp - 0x490], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x490]
call fcn.1002e660
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x42c]
call fcn.1000a1c0
mov dword [ebp - 0x470], 0x100fbd4c
push 0x1010887c
lea ecx, [ebp - 0x470]
push ecx
call sub.MSVCR120.dll__CxxThrowException
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x43c], edx
cmp dword [ebp - 0x43c], 0
jne 0x10053208
mov dword [ebp - 0x458], 0
jmp 0x100532c3
mov eax, dword [ebp - 0x43c]
mov dword [ebp - 0x444], eax
mov ecx, dword [ebp - 0x444]
add ecx, 1
mov dword [ebp - 0x474], ecx
mov edx, dword [ebp - 0x444]
mov al, byte [edx]
mov byte [ebp - 0x43d], al
add dword [ebp - 0x444], 1
cmp byte [ebp - 0x43d], 0
jne 0x10053223
mov ecx, dword [ebp - 0x444]
sub ecx, dword [ebp - 0x474]
mov dword [ebp - 0x47c], ecx
mov edx, dword [ebp - 0x47c]
add edx, 1
mov dword [ebp - 0x438], edx
cmp dword [ebp - 0x438], 0x3fffffff
jle 0x1005327a
mov dword [ebp - 0x454], 0
jmp 0x100532b7
mov eax, dword [ebp - 0x438]
shl eax, 1
call fcn.100ed140
mov dword [ebp - 0x484], esp
mov dword [ebp - 0x10], esp
mov eax, dword [ebp - 0x45c]
push eax
mov ecx, dword [ebp - 0x438]
push ecx
mov edx, dword [ebp - 0x43c]
push edx
mov eax, dword [ebp - 0x484]
push eax
call fcn.100492f0
mov dword [ebp - 0x454], eax
mov ecx, dword [ebp - 0x454]
mov dword [ebp - 0x458], ecx
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
mov edx, dword [ebp - 0x458]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x450], eax
mov ax, word [0x100fbd60]
mov word [ebp - 0x414], ax
push 0x3fe
push 0
lea ecx, [ebp - 0x412]
push ecx
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x44c], 0
cmp dword [ebp - 0x450], 0
je 0x10053381
lea edx, [ebp - 0x44c]
push edx
push 0x400
lea eax, [ebp - 0x414]
push eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x10053374
cmp dword [ebp - 0x44c], 0
jbe 0x10053374
push 0
lea eax, [ebp - 0x44c]
push eax
mov ecx, dword [ebp - 0x44c]
push ecx
lea edx, [ebp - 0x414]
push edx
mov eax, dword [ebp - 0x450]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x1005331e
mov ecx, dword [ebp - 0x450]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10053416
mov dword [ebp - 4], 0xffffffff
jmp 0x10053428
jmp 0x10053431
mov ecx, dword [ebp - 0x430]
mov edx, dword [ecx + 0xc]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x430]
mov dword [eax + 0xc], 0
mov al, byte [ebp - 0x431]
lea esp, [ebp - 0x4bc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100ec36e
mov esp, ebp
pop ebp
ret 0xc