Function at 0x10043280
Capabilities:
Connect to http server
Create http request
Download and write a file
Get common file path
Read data from internet
Receive and write data from server to client
Receive data
Send data
Send http request
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x2a44
call fcn.100906a0
mov eax, dword [0x100da4b0]
xor eax, esp
mov dword [esp + 0x2a40], eax
mov eax, dword [ebp + 0xc]
test ecx, ecx
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov dword [esp + 0x24], eax
mov esi, 0x100be334
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
mov eax, esi
push edi
mov edi, dword [ebp + 8]
cmovne eax, ecx
push eax
push 0x100cacf8
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], ebx
call fcn.10045657
push eax
call fcn.100448e6
add esp, 0xc
mov eax, esi
test edi, edi
cmovne eax, edi
push eax
push 0x100cad0c
call fcn.10045657
push eax
call fcn.100448e6
add esp, 0xc
test ebx, ebx
cmovne esi, ebx
push esi
push 0x100cad20
call fcn.10045657
push eax
call fcn.100448e6
add esp, 0xc
mov dword [esp + 0x30], 0x100cad34
xor ebx, ebx
lea eax, [esp + 0x141]
mov esi, 0x103
mov dword [esp + 0x34], ebx
mov edi, ebx
mov byte [esp + 0x140], bl
push esi
push ebx
push eax
call fcn.10090560
add esp, 0xc
mov byte [esp + 0x38], bl
lea eax, [esp + 0x39]
push esi
push ebx
push eax
call fcn.10090560
xor esi, esi
add esp, 0xc
inc esi
cmp dword [esp + 0x1c], ebx
je 0x100433cf
lea eax, [esp + 0x140]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x38]
push eax
push ebx
push 0x100cad6c
lea eax, [esp + 0x14c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push ebx
push ebx
push 2
push ebx
push esi
push 0xc0000000
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x100433cf
call fcn.10045657
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x100cad70
push esi
call fcn.100448e6
add esp, 0xc
xor eax, eax
jmp 0x10043551
push ebx
push ebx
push ebx
push esi
push 0x100cad94
call dword [sym.imp.WININET.dll_InternetOpenA]
push esi
push ebx
push 3
mov ecx, 0x100bc7cc
mov dword [esp + 0x38], eax
push ecx
push ecx
push dword [esp + 0x2c]
push dword [esp + 0x2c]
push eax
call dword [sym.imp.WININET.dll_InternetConnectA]
push esi
push 0x4000000
lea ecx, [esp + 0x38]
mov dword [esp + 0x2c], eax
push ecx
push dword [esp + 0x34]
push 0x100cadb8
push dword [esp + 0x34]
push 0x100cadc4
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
push dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
mov dword [esp + 0x1c], ebx
call esi
push eax
push dword [esp + 0x14]
push 0x100cad38
call esi
push eax
push 0x100cad38
push ebx
call dword [sym.imp.WININET.dll_HttpSendRequestA]
mov ebx, eax
test edi, edi
je 0x10043537
xor eax, eax
push 0x2800
push eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x250]
push eax
call fcn.10090560
add esp, 0xc
lea eax, [esp + 0x10]
push eax
push 0x27ff
lea eax, [esp + 0x250]
push eax
push dword [esp + 0x24]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x1004350a
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1004350a
cmp eax, 0x2800
jae 0x10043566
push 0
lea ecx, [esp + 0x18]
mov byte [esp + eax + 0x24c], 0
push ecx
push eax
lea eax, [esp + 0x254]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x100434d9
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x10]
je 0x10043500
call fcn.10045657
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x100cadcc
push esi
call fcn.100448e6
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
xor ebx, ebx
test edi, edi
jne 0x10043479
jmp 0x10043537
test edi, edi
je 0x10043537
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x10043537
mov ecx, dword [ebp + 0x18]
lea eax, [esp + 0x38]
push eax
push 0x100bc944
lea eax, [ecx - 1]
push eax
push ecx
push dword [esp + 0x2c]
call fcn.1008bac3
add esp, 0x14
push dword [esp + 0x18]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [esp + 0x24]
call esi
push dword [esp + 0x2c]
call esi
mov eax, ebx
mov ecx, dword [esp + 0x2a4c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1008a221
mov esp, ebp
pop ebp
ret
call fcn.1008c5ac
int3