Function at 0x401168
Capabilities:
Check http status code
Connect to http server
Create http request
Delete file
Download and write a file
Move file
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Set file attributes
Timestomp file
Write file on windows

Disassembly:
jmp 0x406dd0
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x47f058
push eax
mov eax, 0x5158
mov dword fs:[0], esp
call fcn.0041b580
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetParent]
push eax
call fcn.0044b325
mov dword [esp + 0x44], eax
xor ebx, ebx
mov ecx, 0x13ff
xor eax, eax
lea edi, [esp + 0x169]
mov byte [esp + 0x168], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x65]
mov byte [esp + 0x64], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x4a30bc
lea ecx, [esp + 0x1c]
stosb byte es:[edi], al
mov dword [esp + 0x20], ebx
mov dword [esp + 0x5c], 0x49c674
mov dword [esp + 0x60], ebx
call fcn.0044a7b3
mov edi, dword [esp + 0x5178]
lea ecx, [esp + 0x14]
push edi
mov dword [esp + 0x5174], ebx
call fcn.0044a7b3
push edi
lea ecx, [esp + 0x14]
mov byte [esp + 0x5174], 1
call fcn.0044a7b3
lea ecx, [esp + 0x10]
mov byte [esp + 0x5170], 2
call fcn.0044acd3
push str.http:__
lea ecx, [esp + 0x14]
call 0x43f84c
or edi, 0xffffffff
cmp eax, edi
jne 0x406edf
lea ecx, [esp + 0x10]
mov byte [esp + 0x5170], 1
call fcn.0044a745
lea ecx, [esp + 0x14]
mov byte [esp + 0x5170], bl
call fcn.0044a745
lea ecx, [esp + 0x18]
mov dword [esp + 0x5170], edi
call fcn.0044a745
xor eax, eax
jmp 0x407704
push str.http:__
lea ecx, [esp + 0x14]
call 0x43f84c
push str.http:__
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add ebp, eax
lea ecx, [esp + 0x20]
push ebp
push ecx
lea ecx, [esp + 0x1c]
call fcn.0043f627
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x5174], 3
call fcn.0044a87e
lea ecx, [esp + 0x20]
mov byte [esp + 0x5170], 2
call fcn.0044a745
push 0x2f
lea ecx, [esp + 0x18]
call fcn.0044ac66
cmp eax, edi
jne 0x406f4e
mov edx, dword [0x4a340c]
push ebx
push 5
push 0x466
push edx
jmp 0x406fa3
push 0x2f
lea ecx, [esp + 0x18]
call fcn.0044ac66
push eax
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x1c]
call fcn.0043f627
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x5174], 4
call fcn.0044a87e
lea ecx, [esp + 0x20]
mov byte [esp + 0x5170], 2
call fcn.0044a745
mov eax, dword [esp + 0x18]
cmp dword [eax - 8], ebx
jne 0x406fe4
mov ecx, dword [0x4a340c]
push ebx
push 5
push 0x466
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x10]
mov byte [esp + 0x5170], 1
call fcn.0044a745
lea ecx, [esp + 0x14]
mov byte [esp + 0x5170], bl
call fcn.0044a745
lea ecx, [esp + 0x18]
mov dword [esp + 0x5170], edi
call fcn.0044a745
mov eax, 1
jmp 0x407704
push 0x2f
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], eax
call fcn.0044ac66
lea edx, [esp + 0x20]
push eax
push edx
lea ecx, [esp + 0x1c]
call fcn.0043f75c
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x5174], 5
call fcn.0044a87e
lea ecx, [esp + 0x20]
mov byte [esp + 0x5170], 2
call fcn.0044a745
push 0x3a
lea ecx, [esp + 0x14]
call fcn.0044ac66
cmp eax, edi
jne 0x40703f
mov ebp, dword [esp + 0x10]
mov edi, 0x50
jmp 0x407095
push 0x3a
lea ecx, [esp + 0x14]
call fcn.0044ac66
inc eax
lea ecx, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.0043f627
mov eax, dword [eax]
push eax
call fcn.0041b4b0
add esp, 4
lea ecx, [esp + 0x20]
mov edi, eax
call fcn.0044a745
push 0x3a
lea ecx, [esp + 0x14]
call fcn.0044ac66
lea ecx, [esp + 0x20]
push eax
push ecx
lea ecx, [esp + 0x18]
call fcn.0043f75c
mov ebp, dword [eax]
lea ecx, [esp + 0x20]
call fcn.0044a745
push ebx
push ebx
push ebx
push ebx
push str.Mozilla_4.0__compatible__MSIE_5.00__Windows_98
call dword [sym.imp.WININET.dll_InternetOpenA]
cmp eax, ebx
mov dword [esp + 0x2c], eax
jne 0x4070c9
or edi, 0xffffffff
mov dword [esi + 0xe4], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x5184]
mov dword [edx], eax
jmp 0x406ea7
mov eax, dword [0x4a340c]
push ebx
push 2
push 0x466
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
push 1
push ebx
push 3
push ebx
push ebx
push edi
push ebp
mov ebp, dword [esp + 0x48]
push ebp
call dword [sym.imp.WININET.dll_InternetConnectA]
mov edi, eax
cmp edi, ebx
mov dword [esp + 0x38], edi
jne 0x40711f
or edi, 0xffffffff
mov dword [esi + 0xe4], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x5184]
push ebp
mov dword [ecx], eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x406ea7
mov eax, dword [esp + 0x28]
push ebx
lea edx, [esp + 0x5c]
push 0x4000000
push edx
push ebx
push str.HTTP_1.1
push eax
push 0x49c620
push edi
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov ebp, eax
cmp ebp, ebx
mov dword [esp + 0x34], ebp
jne 0x4071ab
or ebp, 0xffffffff
mov dword [esi + 0xe4], ebp
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x5184]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push edi
mov dword [ecx], eax
call esi
mov edx, dword [esp + 0x2c]
push edx
call esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x5170], 1
call fcn.0044a745
lea ecx, [esp + 0x14]
mov byte [esp + 0x5170], bl
call fcn.0044a745
lea ecx, [esp + 0x18]
mov dword [esp + 0x5170], ebp
call fcn.0044a745
xor eax, eax
jmp 0x407704
push ebx
push ebx
push ebx
push ebx
push ebp
call dword [sym.imp.WININET.dll_HttpSendRequestA]
cmp eax, ebx
jne 0x4071d8
mov dword [esi + 0xe4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x5184]
mov dword [ecx], eax
jmp 0x40726a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x5184]
lea edx, [esp + 0x30]
push ebx
push edx
mov dword [ecx], eax
lea eax, [esp + 0x6c]
push eax
push 0x13
push ebp
mov dword [esp + 0x44], 0x104
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x407223
lea ecx, [esp + 0x64]
push ecx
call fcn.0041b425
add esp, 4
cmp eax, 0xc8
mov dword [esp + 0x1c], eax
je 0x4072b9
mov dword [esi + 0xe4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esp + 0x5184]
add esi, 0x1f4
mov dword [edx], eax
mov eax, dword [esp + 0x1c]
push eax
push str.HTTP__d
push esi
call fcn.0041a58f
mov ecx, dword [0x4a340c]
add esp, 0xc
push ebx
push 3
push 0x466
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebp
call esi
push edi
call esi
mov edx, dword [esp + 0x2c]
push edx
call esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x5170], 1
call fcn.0044a745
lea ecx, [esp + 0x14]
mov byte [esp + 0x5170], bl
call fcn.0044a745
lea ecx, [esp + 0x18]
mov dword [esp + 0x5170], 0xffffffff
call fcn.0044a745
xor eax, eax
jmp 0x407704
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x5184]
push ebx
push 2
push 0x466
mov dword [ecx], eax
mov edx, dword [0x4a340c]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [esp + 0x30]
push ebx
lea ecx, [esp + 0x68]
push eax
push ecx
push 5
push ebp
mov dword [esp + 0x44], 0x104
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
lea edx, [esp + 0x64]
push edx
call fcn.0041b425
mov dword [esp + 0x44], eax
mov dword [esi + 0xe4], eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5184]
add esp, 4
cmp eax, ebx
mov dword [esi + 0xe8], ebx
jne 0x4076b8
mov eax, dword [esp + 0x517c]
lea ecx, [esp + 0x64]
push eax
push ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x64]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp byte [esp + eax + 0x63], 0x5c
je 0x40736a
lea eax, [esp + 0x64]
push 0x49c610
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov edi, dword [esp + 0x28]
push 0x2f
push edi
call fcn.0041af40
add esp, 8
test eax, eax
je 0x407391
push 0x2f
push edi
call fcn.0041af40
add esp, 8
inc eax
lea ecx, [esp + 0x64]
push eax
push ecx
jmp 0x407397
lea edx, [esp + 0x64]
push edi
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x64]
lea edi, [esi + 0x404]
push eax
push 0x49c4e0
push edi
call fcn.0043fbd2
mov ecx, dword [esp + 0x34]
push str..exe
push ecx
call fcn.0041ac90
add esp, 0x14
test eax, eax
jne 0x4073ff
mov edx, dword [esp + 0x28]
push str..EXE
push edx
call fcn.0041ac90
add esp, 8
test eax, eax
jne 0x4073ff
mov eax, dword [0x4a340c]
push ebx
push 5
push 0x466
push eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], 1
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x30]
push ebx
lea edx, [esp + 0x68]
push ecx
push edx
push 0xb
push ebp
mov dword [esp + 0x44], 0x104
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov ecx, dword [esp + 0x40]
mov eax, dword [edi]
lea edx, [esp + 0x64]
push ecx
push edx
push eax
mov ecx, esi
call fcn.00401393
test eax, eax
je 0x407455
mov ecx, dword [0x4a340c]
mov eax, dword [esp + 0x40]
push ebx
push 4
push 0x466
push ecx
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x4076b4
cmp dword [esp + 0x20], ebx
je 0x4076b4
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x49c5fc
lea edx, [esp + 0x24]
push edi
push edx
call fcn.0044a9da
push eax
mov ecx, edi
mov byte [esp + 0x5174], 6
call fcn.0044a87e
lea ecx, [esp + 0x20]
mov byte [esp + 0x5170], 2
call fcn.0044a745
mov eax, dword [edi]
push ebx
push ebx
push 2
push ebx
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x40769b
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x16c]
push 0x5000
push ecx
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
cmp eax, ebx
je 0x40758e
mov eax, dword [esp + 0x3c]
cmp eax, ebx
jbe 0x40758e
cmp dword [esi + 0xec], ebx
jne 0x40758e
lea ecx, [esp + 0x60]
push ebx
push ecx
lea edx, [esp + 0x170]
push eax
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x1c], eax
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xe4]
cmp eax, ebx
mov dword [esp + 0x20], eax
jle 0x407569
fild dword [esp + 0x1c]
fidiv dword [esp + 0x20]
fmul dword [0x484ba4]
fcom qword [0x484b98]
fnstsw ax
test ah, 0x41
jne 0x407567
call fcn.0041b5b0
push eax
mov eax, dword [edi]
push eax
mov eax, dword [esp + 0x4c]
push 0x465
mov ecx, dword [eax + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x407569
fstp st(0)
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x16c]
push 0x5000
push eax
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
cmp eax, ebx
jne 0x4074de
cmp dword [esi + 0xec], ebx
jne 0x407683
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0xe4]
cmp edx, eax
jb 0x407683
xor eax, eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x4a], eax
lea edx, [esp + 0x64]
mov dword [esp + 0x4e], eax
push ecx
mov dword [esp + 0x56], eax
push edx
mov ecx, esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov word [esp + 0x50], bx
mov word [esp + 0x5e], ax
call fcn.00401302
lea eax, [esp + 0x20]
lea ecx, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea edx, [esp + 0x20]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x24]
push eax
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [edi]
mov ecx, edi
mov eax, dword [edx - 8]
add eax, 0xfffffffd
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.0043f75c
mov ecx, dword [esp + 0x28]
push 0x80
push ecx
mov byte [esp + 0x5178], 7
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea edx, [esp + 0x28]
mov ecx, edi
push edx
call fcn.0044a87e
mov eax, dword [0x4a340c]
push ebx
push 4
push 0x466
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0x28]
mov byte [esp + 0x5170], 2
call fcn.0044a745
jmp 0x4076b0
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x4a340c]
push ebx
push 1
push 0x466
push ecx
jmp 0x4076aa
mov edx, dword [0x4a340c]
push ebx
push 5
push 0x466
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebp
call esi
push edi
call esi
mov eax, dword [esp + 0x2c]
push eax
call esi
lea ecx, [esp + 0x10]
mov byte [esp + 0x5170], 1
call fcn.0044a745
lea ecx, [esp + 0x14]
mov byte [esp + 0x5170], bl
call fcn.0044a745
lea ecx, [esp + 0x18]
mov dword [esp + 0x5170], 0xffffffff
call fcn.0044a745
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x5168]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x5164
ret 0x10