Function at 0x41d4c0
Capabilities:
Check http status code
Create http request
Download and write a file
Get http content length
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x106c
call fcn.00488190
mov eax, dword [0x4c9890]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x4a1b98
lea eax, [ebp - 0x104c]
push 0x822
push eax
mov edi, ecx
mov esi, 0x80004005
call fcn.004146d0
lea ebx, [edi + 0x5a66]
push ebx
push str._RetrieveEula__m_szEulaURL____s_
call fcn.00413860
mov ecx, dword [edi + 0xd574]
add esp, 0x14
call fcn.00411290
push 0
push 0
push 0
push 0
push str.Microsoft_Internet_Explorer
call dword [sym.imp.WININET.dll_InternetOpenW]
mov ecx, dword [edi + 0xd574]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0xd574]
cmp dword [eax + 4], 0
jne 0x41d584
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x41d54c
mov esi, eax
jmp 0x41d555
movzx esi, ax
or esi, 0x80070000
push esi
push eax
push 0x4a9124
push str._s_failed__error___d__0x_x_
call fcn.00413860
push str.fail_to_RetrieveEula_at_InternetOpenW
lea eax, [ebp - 0x104c]
push 0x822
push eax
call fcn.004146d0
add esp, 0x1c
jmp 0x41d89c
push 4
lea ecx, [ebp - 0x106c]
push ecx
push 0x4d
mov dword [ebp - 0x106c], 1
push dword [eax + 4]
call dword [sym.imp.WININET.dll_InternetSetOptionW]
mov eax, dword [edi + 0xd574]
push 0
push SysReAllocString
push 0
push 0
push ebx
push dword [eax + 4]
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov ecx, dword [edi + 0xd574]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0xd574]
cmp dword [eax + 8], 0
jne 0x41d604
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x41d5e0
mov esi, eax
jmp 0x41d5e9
movzx esi, ax
or esi, 0x80070000
push esi
push eax
push 0x4a9754
push str._s_failed__error___d__0x_x_
call fcn.00413860
push str.fail_to_RetrieveEula_at_InternetOpenUrlW
jmp 0x41d56b
push str._RetrieveEula__InternetOpenUrlW_completed
call fcn.00413860
mov ebx, dword [sym.imp.WININET.dll_HttpQueryInfoW]
add esp, 4
lea eax, [ebp - 0x1058]
push 0
push eax
lea eax, [ebp - 0x1054]
push eax
mov eax, dword [edi + 0xd574]
push 0x20000013
mov dword [ebp - 0x1054], 0
mov dword [ebp - 0x1058], 4
push dword [eax + 8]
call ebx
test eax, eax
jne 0x41d681
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x41d65d
mov esi, eax
jmp 0x41d666
movzx esi, ax
or esi, 0x80070000
push esi
push eax
push 0x4a9fec
push str._s_failed__error___d__0x_x_
call fcn.00413860
push str.fail_to_RetrieveEula_at_HttpQueryInfoW
jmp 0x41d56b
cmp dword [ebp - 0x1054], 0x194
jne 0x41d6b5
push str._RetrieveEula__404_File_not_found.
call fcn.00413860
push str.fail_to_RetrieveEula_at_404
lea eax, [ebp - 0x104c]
push 0x822
push eax
call fcn.004146d0
add esp, 0x10
jmp 0x41d89c
push 0
lea eax, [ebp - 0x1058]
push eax
lea eax, [ebp - 0x1054]
push eax
mov eax, dword [edi + 0xd574]
push 0x20000005
mov dword [ebp - 0x1058], 4
push dword [eax + 8]
call ebx
test eax, eax
jne 0x41d715
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x41d6f1
mov esi, eax
jmp 0x41d6fa
movzx esi, ax
or esi, 0x80070000
push esi
push eax
push 0x4a9fec
push str._s_failed__error___d__0x_x_
call fcn.00413860
push str.failed_at_HttpQueryInfo_HTTP_QUERY_CONTENT_LENGTH
jmp 0x41d56b
push dword [ebp - 0x1058]
push dword [ebp - 0x1054]
push str.HttpQueryInfoW_HTTP_QUERY_CONTENT_LENGTH___dwInfo___d__dwInfoSize___d
call fcn.00413860
mov eax, dword [ebp - 0x1054]
add esp, 0xc
mov dword [ebp - 0x1068], eax
push 0
push 0x80
push 2
push 0
push 3
push 0xc0000000
lea eax, [edi + 0x5656]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0x2800
mov dword [ebp - 0x1064], eax
call fcn.0048614e
add esp, 4
xor ebx, ebx
mov dword [ebp - 0x1050], eax
mov dword [ebp - 0x105c], 0
test eax, eax
je 0x41d882
jmp 0x41d790
cmp byte [edi + 0xd534], 0
jne 0x41d882
lea ecx, [ebp - 0x105c]
push ecx
push 0x27ff
push eax
mov eax, dword [edi + 0xd574]
mov dword [ebp - 0x105c], 0
push dword [eax + 8]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
setne al
test al, al
je 0x41d851
mov eax, dword [ebp - 0x105c]
add ebx, eax
test eax, eax
je 0x41d832
push 0
lea ecx, [ebp - 0x1060]
push ecx
push eax
push dword [ebp - 0x1050]
mov dword [ebp - 0x1060], 0
push dword [ebp - 0x1064]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x41d81e
mov eax, dword [ebp - 0x1060]
cmp eax, dword [ebp - 0x105c]
mov eax, dword [ebp - 0x1050]
jae 0x41d790
push str._RetrieveEula__fwrite_met_some_error
call fcn.00413860
add esp, 4
mov esi, 0x80700006
jmp 0x41d87c
push str._RetrieveEula__No_content_to_read
call fcn.00413860
xor eax, eax
add esp, 4
cmp dword [ebp - 0x1068], ebx
mov esi, 0x80700006
cmove esi, eax
jmp 0x41d87c
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jg 0x41d85f
mov esi, eax
jmp 0x41d868
movzx esi, ax
or esi, 0x80070000
push esi
push eax
push 0x4a1f4c
push str._s_failed__error___d__0x_x_
call fcn.00413860
add esp, 0x10
mov eax, dword [ebp - 0x1050]
push eax
call fcn.004866e2
mov eax, dword [ebp - 0x1064]
add esp, 4
test eax, eax
je 0x41d89c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [edi + 0xd574]
mov dword [edi + 0xd53c], esi
call fcn.00411290
mov eax, dword [edi + 0xd574]
push str.RetrieveEula_end
mov byte [eax + 0xc], 1
call fcn.00413860
lea eax, [edi + 0x5656]
push eax
push esi
push str.RetrieveEula__0x_08X_:__s
lea eax, [ebp - 0x104c]
push 0x822
push eax
call fcn.004146d0
lea eax, [ebp - 0x104c]
push eax
call fcn.004010d0
mov ecx, dword [ebp - 4]
add esp, 0x1c
xor ecx, ebp
pop edi
pop esi
xor eax, eax
pop ebx
call fcn.00487c50
mov esp, ebp
pop ebp
ret