Function at 0x3000b1c7
Capabilities:
Check http status code
Check internet connectivity via wininet
Create http request
Read data from internet
Read file on windows
Receive data

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3690
call fcn.30014c94
mov eax, dword [0x30020490]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
or dword [ebp - 0x3668], 0xffffffff
push ebx
mov dword [ebp - 0x365c], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x3658], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x3654], eax
mov ebx, ecx
mov dword [ebp - 0x3650], edi
mov dword [ebp - 0x368c], edi
mov dword [ebp - 0x366c], edi
mov dword [ebp - 0x364c], edi
mov dword [ebp - 0x3660], edi
mov dword [ebp - 0x3674], edi
call fcn.30008955
mov eax, dword [0x30021388]
mov ecx, dword [eax]
lea edx, [ebp - 0x3650]
push edx
push 0x30001d4c
push eax
call dword [ecx + 0x20]
mov esi, eax
cmp esi, edi
jl 0x3000ba60
mov esi, 0x25f8
push esi
lea eax, [ebp - 0x3644]
push edi
push eax
call fcn.30014b52
mov eax, dword [ebp - 0x3658]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [ebp - 0x3644]
push edx
push ebx
push edi
push eax
mov dword [ebp - 0x3644], esi
mov dword [ebp - 0x3640], 0x4000000
call dword [ecx + 0x1c]
mov esi, eax
cmp esi, edi
jl 0x3000ba60
mov eax, dword [ebp - 0x3658]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
je 0x3000b2b0
mov esi, 0x80004004
jmp 0x3000ba60
push dword [ebp - 0x365c]
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
push dword [ebp - 0x365c]
mov dword [ebp - 0x3664], eax
push edi
call dword [sym.imp.ADVAPI32.dll_SetThreadToken]
test eax, eax
jne 0x3000b2f3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b2ed
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
mov eax, dword [ebp - 0x3664]
cmp eax, 2
mov dword [ebp - 0x368c], 1
je 0x3000b66e
cmp eax, 3
je 0x3000b66e
cmp eax, 4
jne 0x3000b664
push edi
lea eax, [ebp - 0x365c]
push eax
lea eax, [ebp - 0x104c]
push eax
lea eax, [ebp - 0x2094]
push eax
mov dword [ebp - 0x365c], 0x824
call dword [sym.imp.WININET.dll_InternetCanonicalizeUrlW]
test eax, eax
jne 0x3000b368
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b362
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
test word [ebp + 0x1c], 0x200
je 0x3000b392
push edi
lea eax, [ebp - 0x3670]
push eax
mov dword [ebp - 0x3670], edi
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
jne 0x3000b392
mov esi, 0x800708ca
jmp 0x3000ba60
push edi
push edi
push edi
push edi
push 0x30001b9c
call dword [sym.imp.WININET.dll_InternetOpenW]
cmp eax, edi
mov dword [ebp - 0x366c], eax
jne 0x3000b3cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b3c5
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
mov ebx, dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov dword [ebp - 0x3648], edi
cmp dword [ebp - 0x364c], edi
mov dword [ebp - 0x3670], edi
mov dword [ebp - 0x3690], 4
mov dword [ebp - 0x3680], edi
je 0x3000b401
push dword [ebp - 0x364c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push edi
push 0x80480200
push edi
push edi
lea eax, [ebp - 0x104c]
push eax
push dword [ebp - 0x366c]
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
cmp eax, edi
mov dword [ebp - 0x364c], eax
jne 0x3000b446
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b440
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
lea eax, [ebp - 0x3680]
push eax
lea eax, [ebp - 0x3690]
push eax
lea eax, [ebp - 0x3670]
push eax
push 0x20000013
push dword [ebp - 0x364c]
call ebx
test eax, eax
jne 0x3000b48c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b486
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
mov eax, dword [ebp - 0x3670]
mov ecx, 0x194
cmp eax, ecx
ja 0x3000b529
je 0x3000b574
cmp eax, 0xc8
je 0x3000b521
cmp eax, 0x12c
jbe 0x3000b57e
cmp eax, 0x12f
ja 0x3000b55c
lea eax, [ebp - 0x3680]
push eax
lea eax, [ebp - 0x365c]
push eax
lea eax, [ebp - 0x104c]
push eax
push 0x33
push dword [ebp - 0x364c]
mov dword [ebp - 0x365c], 0x824
mov dword [ebp - 0x3680], edi
call ebx
test eax, eax
jne 0x3000b515
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b50f
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
mov dword [ebp - 0x3648], 1
jmp 0x3000b54a
mov dword [ebp - 0x3648], edi
jmp 0x3000b54a
cmp eax, 0x198
je 0x3000b545
cmp eax, 0x1f5
jbe 0x3000b57e
cmp eax, 0x1f7
jbe 0x3000b574
cmp eax, 0x1f8
jne 0x3000b57e
mov esi, 0x80070102
cmp esi, edi
jne 0x3000b588
cmp dword [ebp - 0x3648], edi
jne 0x3000b3d7
jmp 0x3000b58e
cmp eax, 0x191
je 0x3000b56a
cmp eax, 0x193
jne 0x3000b57e
mov esi, 0x80070005
jmp 0x3000ba60
mov esi, 0x80070002
jmp 0x3000ba60
mov esi, 0x8000ffff
jmp 0x3000ba60
jl 0x3000ba60
lea eax, [ebp - 0x367c]
push eax
push dword [ebp - 0x364c]
call fcn.3001476c
mov esi, eax
cmp esi, edi
jl 0x3000ba60
mov ecx, dword [ebp + 0x18]
cmp ecx, edi
je 0x3000b5de
mov eax, dword [ecx + 4]
cmp dword [ebp - 0x3678], eax
jb 0x3000b628
jne 0x3000b5c8
mov eax, dword [ebp - 0x367c]
cmp eax, dword [ecx]
jbe 0x3000b628
mov eax, dword [ebp - 0x3658]
mov ecx, dword [eax]
push edi
push edi
push edi
push edi
push eax
call dword [ecx + 0x50]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], edi
lea eax, [ebp - 0x3688]
push eax
push dword [ebp - 0x364c]
call fcn.30014714
mov esi, eax
cmp esi, edi
jl 0x3000ba60
cmp dword [ebp + 0x14], edi
jl 0x3000b781
jg 0x3000b60e
cmp dword [ebp + 0x10], edi
jbe 0x3000b781
push edi
push edi
push edi
push dword [ebp + 0x10]
push dword [ebp - 0x364c]
call dword [sym.imp.WININET.dll_InternetSetFilePointer]
cmp eax, 0xffffffff
jmp 0x3000b75f
xor ebx, ebx
cmp dword [ebp + 0x24], edi
jbe 0x3000ba5e
mov eax, dword [ebp - 0x3654]
push edi
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
push 3
push dword [eax + ebx*4]
push dword [ebp - 0x3650]
call fcn.300106c9
mov esi, eax
cmp esi, edi
jl 0x3000ba60
inc ebx
cmp ebx, dword [ebp + 0x24]
jb 0x3000b633
jmp 0x3000ba5e
mov esi, 0x8007000f
jmp 0x3000ba60
cmp eax, 2
mov ecx, 0x8000080
jne 0x3000b680
cmp dword [0x3002136c], edi
je 0x3000b68d
cmp eax, 3
jne 0x3000b692
cmp dword [0x30021374], edi
jne 0x3000b692
mov ecx, 0x28000080
push edi
push ecx
push 3
push edi
push 1
push 0x80000000
lea eax, [ebp - 0x2094]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [ebp - 0x3668], ebx
jne 0x3000b6d8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b6d2
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
lea eax, [ebp - 0x367c]
push eax
push ebx
call fcn.300120db
mov esi, eax
cmp esi, edi
jl 0x3000ba60
mov ecx, dword [ebp + 0x18]
cmp ecx, edi
je 0x3000b72b
mov eax, dword [ecx + 4]
cmp dword [ebp - 0x3678], eax
jb 0x3000b841
jne 0x3000b715
mov eax, dword [ebp - 0x367c]
cmp eax, dword [ecx]
jbe 0x3000b841
mov eax, dword [ebp - 0x3658]
mov ecx, dword [eax]
push edi
push edi
push edi
push edi
push eax
call dword [ecx + 0x50]
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x14], edi
lea eax, [ebp - 0x3688]
push eax
push ebx
call fcn.30011a30
mov esi, eax
cmp esi, edi
jl 0x3000ba60
cmp dword [ebp + 0x14], edi
jl 0x3000b781
jg 0x3000b74e
cmp dword [ebp + 0x10], edi
jbe 0x3000b781
push edi
push edi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x3000b781
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b77b
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
xor ebx, ebx
cmp dword [ebp + 0x24], edi
jbe 0x3000b7c0
mov eax, dword [ebp - 0x3654]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax]
lea edx, [ebp - 0x367c]
push edx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x3684]
push dword [ebp - 0x3688]
push eax
call dword [ecx + 0x24]
mov esi, eax
cmp esi, edi
jl 0x3000ba60
inc ebx
cmp ebx, dword [ebp + 0x24]
jb 0x3000b788
cmp dword [ebp - 0x3688], edi
jne 0x3000b87d
cmp dword [ebp - 0x3684], edi
jne 0x3000b87d
xor ebx, ebx
cmp dword [ebp + 0x24], edi
jbe 0x3000ba5e
mov eax, dword [ebp - 0x3654]
push edi
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
lea eax, [eax + ebx*4]
push 1
push dword [eax]
mov dword [ebp - 0x3664], eax
push dword [ebp - 0x3650]
call fcn.300106c9
mov esi, eax
cmp esi, edi
jl 0x3000ba60
mov eax, dword [ebp - 0x3664]
push edi
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
push 2
push dword [eax]
push dword [ebp - 0x3650]
call fcn.300106c9
mov esi, eax
cmp esi, edi
jl 0x3000ba60
inc ebx
cmp ebx, dword [ebp + 0x24]
jb 0x3000b7e3
jmp 0x3000ba5e
xor ebx, ebx
cmp dword [ebp + 0x24], edi
jbe 0x3000ba5e
mov eax, dword [ebp - 0x3654]
push edi
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
push 3
push dword [eax + ebx*4]
push dword [ebp - 0x3650]
call fcn.300106c9
mov esi, eax
cmp esi, edi
jl 0x3000ba60
inc ebx
cmp ebx, dword [ebp + 0x24]
jb 0x3000b84c
jmp 0x3000ba5e
mov eax, dword [ebp - 0x3664]
dec eax
dec eax
je 0x3000b8ad
dec eax
je 0x3000b8a5
dec eax
je 0x3000b894
mov ebx, 0x10000
jmp 0x3000b8c1
mov ecx, dword [0x30021380]
mov eax, dword [0x30021364]
lea ebx, [ecx + eax - 1]
jmp 0x3000b8bc
mov ecx, dword [0x30021378]
jmp 0x3000b89a
mov eax, dword [0x30021364]
mov ecx, dword [0x30021370]
lea ebx, [ecx + eax - 1]
dec eax
not eax
and ebx, eax
push 4
push 0x3000
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
cmp eax, edi
mov dword [ebp - 0x3660], eax
jne 0x3000ba25
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b8f8
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
jmp 0x3000ba25
mov eax, dword [ebp - 0x3658]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
test eax, eax
jne 0x3000ba2f
cmp dword [ebp - 0x3664], 2
je 0x3000b945
cmp dword [ebp - 0x3664], 3
je 0x3000b945
lea eax, [ebp - 0x3674]
push eax
push ebx
push dword [ebp - 0x3660]
push dword [ebp - 0x364c]
call dword [sym.imp.WININET.dll_InternetReadFile]
jmp 0x3000b960
push edi
lea eax, [ebp - 0x3674]
push eax
push ebx
push dword [ebp - 0x3660]
push dword [ebp - 0x3668]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x3000b984
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, edi
jle 0x3000b97e
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x3000ba60
cmp dword [ebp - 0x3674], edi
mov dword [ebp - 0x3648], edi
je 0x3000b9e4
cmp dword [ebp + 0x24], edi
jbe 0x3000ba25
push dword [ebp - 0x3674]
mov eax, dword [ebp - 0x3654]
push dword [ebp - 0x3660]
mov ecx, dword [ebp - 0x3648]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push dword [eax + ecx*4]
push dword [ebp - 0x3650]
call fcn.300106c9
mov esi, eax
cmp esi, edi
jl 0x3000ba60
inc dword [ebp - 0x3648]
mov eax, dword [ebp - 0x3648]
cmp eax, dword [ebp + 0x24]
jb 0x3000b99b
jmp 0x3000ba25
cmp dword [ebp + 0x24], edi
jbe 0x3000ba22
mov eax, dword [ebp - 0x3654]
mov ecx, dword [ebp - 0x3648]
push edi
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
push 2
push dword [eax + ecx*4]
push dword [ebp - 0x3650]
call fcn.300106c9
mov esi, eax
cmp esi, edi
jl 0x3000ba60
inc dword [ebp - 0x3648]
mov eax, dword [ebp - 0x3648]
cmp eax, dword [ebp + 0x24]
jb 0x3000b9e9
xor esi, esi
inc esi
cmp esi, edi
je 0x3000b903
jmp 0x3000ba5e
xor ebx, ebx
cmp dword [ebp + 0x24], edi
jbe 0x3000ba5e
mov eax, dword [ebp - 0x3654]
push edi
push edi
push 0xffffffffffffffff
push 0xffffffffffffffff
push 4
push dword [eax + ebx*4]
push dword [ebp - 0x3650]
call fcn.300106c9
mov esi, eax
cmp esi, edi
jl 0x3000ba60
inc ebx
cmp ebx, dword [ebp + 0x24]
jb 0x3000ba36
xor esi, esi
mov eax, dword [ebp - 0x3658]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x64]
cmp dword [ebp - 0x3660], edi
je 0x3000ba86
push 0x8000
push edi
push dword [ebp - 0x3660]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
cmp dword [ebp - 0x364c], edi
je 0x3000ba9a
push dword [ebp - 0x364c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x366c], edi
je 0x3000baae
push dword [ebp - 0x366c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x3668], 0xffffffff
je 0x3000bac3
push dword [ebp - 0x3668]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x368c], edi
je 0x3000bb0f
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_SetThreadToken]
test eax, eax
jne 0x3000bb0f
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x3000bae9
call esi
mov esi, eax
jmp 0x3000baf9
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
push edi
push edi
push edi
push edi
push 0xc0000015
push esi
call fcn.30013bb1
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [ebp - 0x3650]
cmp eax, edi
je 0x3000bb1f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.30014af0
leave
ret 0x20