Function at 0x1000a9b5
Capabilities:
Check http status code
Connect to http server
Create http request
Download and write a file
Get file size
Get file system object information
Get http content length
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
lea ebp, [esp - 0x3f44]
mov eax, 0x3f44
call fcn.100588e0
push 0xfffffffffffffffe
push 0x10110fa0
push 0x1005cb50
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x1011ca44]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x3f40], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x64], ecx
mov edi, eax
mov dword [ebp - 0x70], edi
xor esi, esi
mov ebx, esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x1c], esi
or dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 4], esi
mov eax, dword [edi + 4]
mov dword [eax + 4], edi
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push dword [edi + 8]
call dword [eax]
test eax, eax
jne 0x1000aa37
xor ebx, ebx
inc ebx
jmp 0x1000aebe
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000aa45
mov eax, dword [eax]
jmp 0x1000aa47
mov eax, esi
push str.file:__
push eax
call fcn.1005eb20
pop ecx
pop ecx
test eax, eax
jne 0x1000aa2f
push esi
push esi
push esi
push esi
push str.deployHelper
call dword [sym.imp.wininet.dll_InternetOpenW]
mov edx, eax
mov dword [ebp - 0x60], edx
test edx, edx
je 0x1000aa2f
mov eax, dword [edi + 8]
movzx ecx, word [eax + 0x1c]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x1000aa82
mov eax, dword [eax]
jmp 0x1000aa84
mov eax, esi
push esi
push esi
push 3
push 0x100c6814
push 0x100c6818
push ecx
push eax
push edx
call dword [sym.imp.wininet.dll_InternetConnectW]
mov dword [ebp - 0x50], eax
test eax, eax
je 0x1000aa2f
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x44], 0x3c
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x54], 0x4400000
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000aac7
mov eax, dword [eax]
jmp 0x1000aac9
mov eax, esi
push str.https:__
push eax
call fcn.1005eb20
pop ecx
pop ecx
mov edx, 0x4c00000
test eax, eax
mov ecx, dword [ebp - 0x54]
cmovne ecx, edx
mov dword [ebp - 0x54], ecx
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x1000aaf4
mov eax, dword [eax]
jmp 0x1000aaf6
mov eax, esi
push esi
push ecx
push esi
push 0x100c6830
push str.HTTP_1.1
push eax
push 0x100c6848
push dword [ebp - 0x50]
call dword [sym.imp.wininet.dll_HttpOpenRequestW]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1000af14
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1000ab28
mov eax, dword [eax]
jmp 0x1000ab2a
mov eax, esi
push esi
push 0x20
push 4
push esi
push esi
push 0x40000000
push eax
call dword [sym.imp.kernel32.dll_CreateFileW]
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
je 0x1000af14
push esi
push eax
call dword [sym.imp.kernel32.dll_GetFileSize]
mov dword [ebp - 0x78], esi
xor edx, edx
inc edx
push 5
pop ecx
mov dword [ebp - 0x30], ecx
mov eax, edx
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1000ac05
test ecx, ecx
jle 0x1000ac01
push esi
push esi
push esi
push esi
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpSendRequestW]
test eax, eax
jne 0x1000abfb
call dword [sym.imp.kernel32.dll_GetLastError]
mov edx, eax
sub eax, 0x2ee2
je 0x1000abdd
sub eax, 5
je 0x1000abdd
sub eax, 0x16
je 0x1000abbb
mov dword [ebp - 0x24], esi
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push edx
push dword [ebp - 0x1c]
push esi
push dword [edi + 8]
call dword [eax + 0xc]
xor edx, edx
mov ecx, dword [ebp - 0x30]
inc edx
test eax, eax
jne 0x1000abf3
jmp 0x1000ab5d
mov eax, esi
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x30]
dec ecx
mov dword [ebp - 0x30], ecx
test ecx, ecx
push 1
pop edx
cmovg eax, edx
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x1000ab6a
push 0x2efd
jmp 0x1000abde
push edx
push dword [ebp - 0x1c]
push esi
mov ecx, dword [edi + 4]
push dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x24]
jmp 0x1000ab62
mov eax, dword [ebp - 0x24]
xor edx, edx
inc edx
test eax, eax
jne 0x1000ac0c
mov ebx, edx
jmp 0x1000aebe
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x2c], 4
push esi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
push 0x20000013
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpQueryInfoW]
test eax, eax
jne 0x1000ac43
call dword [sym.imp.kernel32.dll_GetLastError]
mov dword [ebp - 0x4c], eax
xor ecx, ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x34]
cmp edx, 0x197
je 0x1000ac5e
cmp edx, 0x191
jne 0x1000acaf
test eax, eax
je 0x1000acaf
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push dword [ebp - 0x4c]
push dword [ebp - 0x1c]
push esi
push dword [edi + 8]
call dword [eax + 0xc]
cmp eax, 0x4c7
jne 0x1000ac7f
mov eax, esi
jmp 0x1000ac48
push esi
push esi
push esi
push esi
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpSendRequestW]
mov dword [ebp - 0x2c], 4
push esi
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x34]
push eax
push 0x20000013
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpQueryInfoW]
mov eax, dword [ebp - 0x24]
jmp 0x1000ac4b
cmp edx, 0xc8
je 0x1000ada7
cmp edx, 0xce
je 0x1000ada7
lea eax, [edx - 0x190]
cmp eax, 0xc7
ja 0x1000ad8c
cmp edx, 0x193
jne 0x1000ace6
push edx
jmp 0x1000ad6d
cmp edx, 0x1f4
jne 0x1000ad0b
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push edx
push dword [ebp - 0x1c]
xor ebx, ebx
inc ebx
push ebx
push dword [edi + 8]
call dword [eax + 0xc]
cmp eax, 6
jne 0x1000ad7d
mov dword [ebp - 0x3c], ebx
jmp 0x1000ad7d
cmp edx, 0x1f7
jne 0x1000ad6c
cmp dword [ebp - 0x40], 5
jge 0x1000ad46
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x58], eax
test eax, eax
js 0x1000ad34
push 0x3e8
call dword [sym.imp.kernel32.dll_Sleep]
mov eax, dword [ebp - 0x58]
dec eax
jmp 0x1000ad1c
inc dword [ebp - 0x40]
add dword [ebp - 0x44], 0x1e
xor eax, eax
inc eax
mov dword [ebp - 0x3c], eax
jmp 0x1000aaaf
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push 0x1f7
push dword [ebp - 0x1c]
push 1
push dword [edi + 8]
call dword [eax + 0xc]
cmp eax, 6
jne 0x1000ad7d
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x44], 0x3c
jmp 0x1000ad3b
push edx
push dword [ebp - 0x1c]
push 1
mov ecx, dword [edi + 4]
push dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
xor ebx, ebx
cmp dword [ebp - 0x34], 0x194
sete bl
inc ebx
jmp 0x1000ad9f
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push edx
push dword [ebp - 0x1c]
xor ebx, ebx
inc ebx
push ebx
push dword [edi + 8]
call dword [eax + 0xc]
mov dword [ebp - 0x20], ebx
jmp 0x1000ae81
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x68], 4
push esi
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x48]
push eax
push 0x20000005
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpQueryInfoW]
mov eax, dword [ebp - 0x48]
mov ecx, 0xe4e1c0
test eax, eax
cmove eax, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x4c], esi
cmp dword [ebp - 0x34], 0xce
jne 0x1000adf9
push 2
push esi
push esi
push dword [ebp - 0x28]
call dword [sym.imp.kernel32.dll_SetFilePointer]
jmp 0x1000ae0e
push esi
push esi
push esi
push dword [ebp - 0x28]
call dword [sym.imp.kernel32.dll_SetFilePointer]
push dword [ebp - 0x28]
call dword [sym.imp.kernel32.dll_SetEndOfFile]
mov dword [ebp - 0x38], esi
lea eax, [ebp - 0x38]
push eax
push 0x1fa0
lea eax, [ebp]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_InternetReadFile]
test eax, eax
je 0x1000aec6
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x1000ae4f
mov dword [ebp - 0x6c], esi
push esi
lea ecx, [ebp - 0x6c]
push ecx
push eax
lea eax, [ebp]
push eax
push dword [ebp - 0x28]
call dword [sym.imp.kernel32.dll_WriteFile]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x5c]
add edx, eax
mov dword [ebp - 0x5c], edx
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push dword [ebp - 0x48]
push edx
push dword [edi + 8]
call dword [eax + 8]
mov ecx, edi
call fcn.1000a9a4
test eax, eax
jne 0x1000aebb
cmp dword [ebp - 0x38], eax
jne 0x1000ae0e
mov eax, dword [ebp - 0x4c]
test eax, eax
jne 0x1000af6e
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x1000ae8f
push eax
call dword [sym.imp.wininet.dll_InternetCloseHandle]
mov ecx, dword [ebp - 0x28]
cmp ecx, 0xffffffff
je 0x1000aea4
push ecx
call dword [sym.imp.kernel32.dll_CloseHandle]
or ecx, 0xffffffff
mov dword [ebp - 0x28], ecx
mov eax, dword [edi + 8]
cmp dword [eax], 0
je 0x1000af64
mov ecx, edi
call fcn.1000a9a4
test eax, eax
je 0x1000aed3
push 3
pop ebx
mov dword [ebp - 0x20], ebx
jmp 0x1000af6e
xor ecx, ecx
lea eax, [ecx + 1]
lea ebx, [ecx + 1]
mov dword [ebp - 0x20], ebx
jmp 0x1000ae79
test ebx, ebx
jne 0x1000af55
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1000aee2
mov eax, dword [eax]
jmp 0x1000aee4
mov eax, esi
push 0x2000
push 0x2b4
lea ecx, [ebp + 0x3c8c]
push ecx
push esi
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
jne 0x1000af1b
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push dword [ebp - 0x34]
push dword [ebp - 0x1c]
push 2
push dword [edi + 8]
call dword [eax + 0xc]
xor eax, eax
lea ebx, [eax + 1]
jmp 0x1000aebe
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 8]
test eax, eax
je 0x1000af29
mov edx, dword [eax]
jmp 0x1000af2b
mov edx, esi
mov eax, dword [ecx + 4]
test eax, eax
je 0x1000af36
mov ecx, dword [eax]
jmp 0x1000af38
mov ecx, esi
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1000af43
mov eax, dword [eax]
jmp 0x1000af45
mov eax, esi
push edx
push esi
push ecx
push eax
call fcn.1000f476
add esp, 0x10
test eax, eax
je 0x1000af14
mov ecx, edi
call fcn.1000a9a4
test eax, eax
jne 0x1000aebb
cmp dword [ebp - 0x3c], 0
jne 0x1000aaaf
mov dword [ebp - 4], 0xfffffffe
call fcn.1000afe0
mov eax, dword [edi + 8]
mov dword [ebp - 0x2c], eax
cmp dword [eax], esi
jne 0x1000afa3
mov dword [ebp - 0x2c], eax
test ebx, ebx
je 0x1000afa3
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push esi
push dword [ebp - 0x1c]
push 3
push eax
call dword [edx + 0xc]
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push dword [ebp - 0x2c]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x3f40]
xor ecx, ebp
call fcn.100587af
add ebp, 0x3f44
leave
ret