Function at 0x5bf0c0
Capabilities:
Create http request
Download and write a file
Query remote server for available data
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, 0x2920
call fcn.006b59e0
mov eax, dword [0x7e6410]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x7e1674
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
inc dword [0x7f8c70]
push 0x7e1674
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [esi + 0xc1c]
mov dword [ebp - 0x291c], 0
xor ebx, ebx
mov dword [ebp - 0x2908], 0
xor edi, edi
mov dword [ebp - 0x2910], 0
mov dword [ebp - 0x2918], 0x80
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [esi + 0xc24]
test eax, eax
je 0x5bf156
mov edi, eax
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x5bf147
sub edi, ecx
sar edi, 1
push 0
push 0
push 0
push 0
lea eax, [esi + 0x810]
push eax
call dword [sym.imp.WININET.dll_InternetOpenW]
mov ecx, eax
mov dword [ebp - 0x2914], ecx
test ecx, ecx
jne 0x5bf17e
xor ebx, ebx
jmp 0x5bf46a
mov eax, dword [0x7e166c]
push 4
mov dword [ebp - 0x2920], eax
lea eax, [ebp - 0x2920]
push eax
push 2
push ecx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
push 0
push 0x84000300
push edi
push dword [esi + 0xc24]
lea eax, [esi + 4]
push eax
push dword [ebp - 0x2914]
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov dword [ebp - 0x290c], eax
test eax, eax
jne 0x5bf1e2
cmp dword [esi + 0xc28], ebx
mov ecx, 1
mov eax, dword [0x7f8c74]
cmovne eax, ecx
xor ebx, ebx
mov dword [0x7f8c74], eax
jmp 0x5bf47b
mov edi, dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea ecx, [ebp - 0x2918]
push 0
push ecx
lea ecx, [ebp - 0x104]
push ecx
push 5
push eax
call edi
test eax, eax
jne 0x5bf206
or eax, 0xffffffff
jmp 0x5bf215
lea eax, [ebp - 0x104]
push eax
call fcn.006b3230
add esp, 4
mov ecx, dword [esi + 0xc20]
test ecx, ecx
je 0x5bf221
mov dword [ecx], eax
push eax
push dword [esi + 0x808]
push dword [0x7f8c84]
push dword [esi + 0x80c]
call dword [sym.imp.USER32.dll_PostMessageW]
push 0
lea eax, [ebp - 0x2918]
push eax
lea eax, [ebp - 0x104]
push eax
push 0x13
push dword [ebp - 0x290c]
call edi
test eax, eax
je 0x5bf269
cmp word [ebp - 0x104], 0x32
je 0x5bf269
xor ebx, ebx
jmp 0x5bf46a
mov edi, dword [ebp - 0x290c]
nop
push 0
push 0
lea eax, [ebp - 0x291c]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x5bf2dd
lea eax, [ebp - 0x2908]
push eax
push 0x2800
lea eax, [ebp - 0x2904]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x5bf2dd
cmp dword [esi], 0
je 0x5bf304
mov eax, dword [esi + 0x804]
cmp eax, 0xffffffff
je 0x5bf3e6
push 0
lea ecx, [ebp - 0x2910]
push ecx
push dword [ebp - 0x2908]
lea ecx, [ebp - 0x2904]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x5bf3e6
mov eax, dword [esi + 0xc14]
xor ebx, ebx
test eax, eax
je 0x5bf46a
push dword [eax]
call fcn.006b3261
mov eax, dword [esi + 0xc14]
add esp, 4
mov dword [eax], ebx
jmp 0x5bf46a
mov eax, dword [ebp - 0x2908]
test eax, eax
je 0x5bf459
mov ecx, dword [esi + 0xc14]
test ecx, ecx
je 0x5bf3e0
inc eax
cmp dword [ecx], 0
jne 0x5bf36e
push eax
call fcn.006b1920
mov ecx, eax
add esp, 4
mov eax, dword [esi + 0xc14]
mov dword [eax], ecx
test ecx, ecx
je 0x5bf2dd
push dword [ebp - 0x2908]
lea eax, [ebp - 0x2904]
push eax
mov eax, dword [esi + 0xc14]
push dword [eax]
call fcn.006b3d50
mov eax, dword [esi + 0xc14]
add esp, 0xc
mov ecx, dword [eax]
mov eax, dword [ebp - 0x2908]
mov byte [eax + ecx], 0
jmp 0x5bf3da
add eax, ebx
push eax
call fcn.006b1920
mov edi, eax
add esp, 4
test edi, edi
je 0x5bf2dd
mov eax, dword [esi + 0xc14]
push ebx
push dword [eax]
push edi
call fcn.006b3d50
push dword [ebp - 0x2908]
lea eax, [ebp - 0x2904]
push eax
lea eax, [edi + ebx]
push eax
call fcn.006b3d50
mov eax, dword [esi + 0xc14]
push dword [eax]
call fcn.006b3261
mov eax, dword [esi + 0xc14]
add esp, 0x1c
mov dword [eax], edi
mov eax, dword [esi + 0xc14]
mov edi, dword [ebp - 0x290c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x2908]
add ecx, ebx
mov byte [ecx + eax], 0
mov eax, dword [ebp - 0x2908]
mov dword [ebp - 0x2910], eax
add ebx, dword [ebp - 0x2910]
mov eax, dword [esi + 0xc18]
test eax, eax
je 0x5bf3f8
mov dword [eax], ebx
mov eax, dword [esi + 0x80c]
test eax, eax
je 0x5bf416
push ebx
push dword [esi + 0x808]
push dword [0x7f8c78]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [0x7f8c68], 0
je 0x5bf43d
cmp dword [0x7f8c6c], 0xffffffff
je 0x5bf2dd
mov eax, dword [0x7f8c6c]
cmp eax, dword [esi + 0x808]
je 0x5bf507
mov eax, dword [esi + 0xc10]
cmp eax, 0xffffffff
je 0x5bf44c
cmp eax, ebx
jle 0x5bf459
cmp dword [ebp - 0x2908], 0
jne 0x5bf270
mov eax, dword [esi + 0xc18]
test eax, eax
je 0x5bf465
mov dword [eax], ebx
mov ebx, 1
mov eax, dword [ebp - 0x290c]
test eax, eax
je 0x5bf47b
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x2914]
test eax, eax
je 0x5bf48c
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [esi + 0x804]
cmp eax, 0xffffffff
je 0x5bf49e
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi + 0x80c]
test eax, eax
je 0x5bf4bc
push ebx
push dword [esi + 0x808]
push dword [0x7f8c80]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esi + 0xc24]
test eax, eax
je 0x5bf4cf
push eax
call fcn.006b31f8
add esp, 4
push esi
call fcn.00428680
add esp, 4
push 0x7e1674
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
dec dword [0x7f8c70]
push 0x7e1674
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.006b3266
mov esp, ebp
pop ebp
ret
mov dword [0x7f8c68], 0
jmp 0x5bf2dd