Function at 0x100093fd
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 - 0x4208]
mov eax, 0x4208
call fcn.1003c230
push 0xfffffffffffffffe
push 0x1008c848
push 0x1003c8a0
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x10095dec]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x4204], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x68], esi
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x1c], edi
or dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 4], edi
mov eax, dword [esi + 4]
mov dword [eax + 4], esi
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push dword [esi + 8]
call dword [eax]
test eax, eax
jne 0x1000947c
mov dword [ebp - 0x20], 1
jmp 0x10009a6f
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp eax, edi
je 0x1000948a
mov eax, dword [eax]
jmp 0x1000948c
xor eax, eax
push str.file:__
push eax
call fcn.10042f0f
pop ecx
pop ecx
test eax, eax
jne 0x10009470
push edi
push edi
push edi
push edi
push str.deployHelper
call dword [sym.imp.wininet.dll_InternetOpenW]
mov dword [ebp - 0x3c], eax
cmp eax, edi
je 0x10009470
mov eax, dword [esi + 8]
movzx ecx, word [eax + 0x1c]
mov eax, dword [eax + 0x14]
cmp eax, edi
je 0x100094c5
mov eax, dword [eax]
jmp 0x100094c7
xor eax, eax
push edi
push edi
push 3
push 0x100737e4
push 0x100737e8
push ecx
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.wininet.dll_InternetConnectW]
mov dword [ebp - 0x40], eax
cmp eax, edi
je 0x10009470
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x3c
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x64], 0x4400000
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp eax, edi
je 0x1000950c
mov eax, dword [eax]
jmp 0x1000950e
xor eax, eax
push str.https:__
push eax
call fcn.10042f0f
pop ecx
pop ecx
test eax, eax
je 0x10009526
mov dword [ebp - 0x64], 0x4c00000
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x10]
cmp eax, edi
je 0x10009534
mov eax, dword [eax]
jmp 0x10009536
xor eax, eax
push edi
push dword [ebp - 0x64]
push edi
push 0x10073800
push str.HTTP_1.1
push eax
push 0x10073818
push dword [ebp - 0x40]
call dword [sym.imp.wininet.dll_HttpOpenRequestW]
mov ebx, eax
mov dword [ebp - 0x1c], ebx
cmp ebx, edi
je 0x10009470
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x1000956c
mov eax, dword [eax]
jmp 0x1000956e
xor eax, eax
push edi
push 0x20
push 4
push edi
push edi
push 0x40000000
push eax
call dword [sym.imp.kernel32.dll_CreateFileW]
mov dword [ebp - 0x24], eax
cmp eax, 0xffffffff
je 0x10009470
push edi
push eax
call dword [sym.imp.kernel32.dll_GetFileSize]
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x44], 5
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], edi
je 0x10009470
cmp dword [ebp - 0x44], edi
jle 0x1000962f
push edi
push edi
push edi
push edi
push ebx
call dword [sym.imp.wininet.dll_HttpSendRequestW]
test eax, eax
jne 0x1000962f
call dword [sym.imp.kernel32.dll_GetLastError]
mov ecx, eax
sub ecx, 0x2ee2
je 0x1000961c
sub ecx, 5
je 0x1000961c
mov dword [ebp - 0x28], edi
sub ecx, 0x16
je 0x100095f4
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
push eax
push ebx
push edi
push dword [esi + 8]
call dword [edx + 0xc]
test eax, eax
jne 0x100095a6
jmp 0x1000959f
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], edi
jle 0x10009603
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], edi
jne 0x100095af
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push 0x2efd
push ebx
push edi
push dword [esi + 8]
call dword [eax + 0xc]
jmp 0x100095a6
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
push eax
push ebx
push edi
push dword [esi + 8]
call dword [edx + 0xc]
jmp 0x100095a6
cmp dword [ebp - 0x28], edi
je 0x10009470
call dword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x50], 4
push edi
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x30]
push eax
push 0x20000013
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpQueryInfoW]
test eax, eax
jne 0x1000966d
call dword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x28], 1
mov eax, dword [ebp - 0x30]
cmp eax, 0x197
je 0x10009685
cmp eax, 0x191
jne 0x100096d3
cmp dword [ebp - 0x28], edi
je 0x100096d3
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push ebx
push dword [ebp - 0x1c]
push edi
push dword [esi + 8]
call dword [eax + 0xc]
cmp eax, 0x4c7
jne 0x100096a6
mov dword [ebp - 0x28], edi
jmp 0x10009674
push edi
push edi
push edi
push edi
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpSendRequestW]
mov dword [ebp - 0x50], 4
push edi
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x30]
push eax
push 0x20000013
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_HttpQueryInfoW]
jmp 0x10009674
cmp eax, 0xc8
je 0x100097fc
cmp eax, 0xce
je 0x100097fc
cmp eax, 0x1a0
jne 0x100096ff
xor ecx, ecx
cmp ecx, edi
je 0x100096ff
cmp ecx, 0xffffffff
jne 0x100098bd
lea ecx, [eax - 0x190]
cmp ecx, 0xc7
ja 0x100097e1
cmp eax, 0x193
jne 0x10009732
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push 0x193
push dword [ebp - 0x1c]
push 1
push dword [esi + 8]
call dword [eax + 0xc]
jmp 0x100097cc
cmp eax, 0x1f4
jne 0x1000975a
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push 0x1f4
push dword [ebp - 0x1c]
xor ebx, ebx
inc ebx
push ebx
push dword [esi + 8]
call dword [eax + 0xc]
cmp eax, 6
jne 0x100097cc
mov dword [ebp - 0x34], ebx
jmp 0x100097cc
cmp eax, 0x1f7
jne 0x100097bb
cmp dword [ebp - 0x4c], 5
jge 0x10009795
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], edi
jl 0x10009782
push 0x3e8
call dword [sym.imp.kernel32.dll_Sleep]
dec dword [ebp - 0x58]
jmp 0x1000976d
inc dword [ebp - 0x4c]
add dword [ebp - 0x48], 0x1e
mov dword [ebp - 0x34], 1
jmp 0x100094f4
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push 0x1f7
push dword [ebp - 0x1c]
push 1
push dword [esi + 8]
call dword [eax + 0xc]
cmp eax, 6
jne 0x100097cc
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x3c
jmp 0x10009789
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
push eax
push dword [ebp - 0x1c]
push 1
push dword [esi + 8]
call dword [edx + 0xc]
xor eax, eax
cmp dword [ebp - 0x30], 0x194
sete al
inc eax
mov dword [ebp - 0x20], eax
jmp 0x10009993
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
push eax
push dword [ebp - 0x1c]
xor ebx, ebx
inc ebx
push ebx
push dword [esi + 8]
call dword [edx + 0xc]
mov dword [ebp - 0x20], ebx
jmp 0x10009996
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x70], 4
push edi
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x20000005
push dword [ebp - 0x1c]
mov ebx, dword [sym.imp.wininet.dll_HttpQueryInfoW]
call ebx
cmp dword [ebp - 0x38], edi
ja 0x10009830
mov dword [ebp - 0x38], 0xe4e1c0
jmp 0x100098d9
cmp dword [ebp - 0x6c], edi
je 0x100098d9
xor eax, eax
cmp eax, edi
je 0x100098d9
cmp dword [ebp - 0x38], eax
jne 0x100098d9
mov dword [ebp - 0x5c], 0x200
push edi
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0xb4]
push eax
push 0x35
push dword [ebp - 0x1c]
call ebx
test eax, eax
jne 0x100098d9
push edi
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp + 0xb4]
push eax
push 0xb
push dword [ebp - 0x1c]
call ebx
push edi
test eax, eax
je 0x100098c5
lea eax, [ebp + 0x2b4]
push eax
lea eax, [ebp + 0xb4]
push eax
call dword [sym.imp.wininet.dll_InternetTimeToSystemTimeW]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp + 0x2b4]
push eax
call dword [sym.imp.kernel32.dll_SystemTimeToFileTime]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x84]
push eax
call dword [sym.imp.kernel32.dll_CompareFileTime]
cmp eax, 1
jne 0x100098d9
mov dword [ebp - 0x20], edi
jmp 0x10009a6f
push edi
push edi
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_SetFilePointer]
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_SetEndOfFile]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x60], edi
cmp dword [ebp - 0x30], 0xce
jne 0x100098fa
push 2
push edi
push edi
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_SetFilePointer]
jmp 0x1000990f
push edi
push edi
push edi
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_SetFilePointer]
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_SetEndOfFile]
mov dword [ebp - 0x2c], edi
lea eax, [ebp - 0x2c]
push eax
mov eax, 0x1fa0
push eax
lea eax, [ebp + 0x2c4]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_InternetReadFile]
test eax, eax
je 0x10009981
cmp dword [ebp - 0x2c], edi
je 0x10009950
mov dword [ebp - 0x74], edi
push edi
lea eax, [ebp - 0x74]
push eax
push dword [ebp - 0x2c]
lea eax, [ebp + 0x2c4]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_WriteFile]
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x54], eax
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov ebx, dword [ebp - 0x38]
xor eax, eax
add ebx, eax
push ebx
mov ebx, dword [ebp - 0x54]
add ebx, eax
push ebx
push dword [esi + 8]
call dword [edx + 8]
mov ecx, esi
call fcn.100093df
test eax, eax
jne 0x100099cd
cmp dword [ebp - 0x2c], edi
jne 0x1000990f
jmp 0x1000998a
xor eax, eax
inc eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x60], edi
jne 0x10009a6f
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x1c], edi
je 0x100099a4
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_InternetCloseHandle]
cmp dword [ebp - 0x24], 0xffffffff
je 0x100099b7
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_CloseHandle]
or dword [ebp - 0x24], 0xffffffff
mov eax, dword [esi + 8]
cmp dword [eax], edi
je 0x10009a66
mov ecx, esi
call fcn.100093df
test eax, eax
je 0x100099d9
mov dword [ebp - 0x20], 3
jmp 0x10009a6f
cmp dword [ebp - 0x20], edi
jne 0x10009a57
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x100099e9
mov eax, dword [eax]
jmp 0x100099eb
xor eax, eax
push 0x2000
push 0x2b4
lea ecx, [ebp]
push ecx
push edi
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
jne 0x10009a1d
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push dword [ebp - 0x30]
push dword [ebp - 0x1c]
push 2
push dword [esi + 8]
call dword [eax + 0xc]
mov dword [ebp - 0x20], ebx
jmp 0x10009a6f
mov eax, dword [esi + 8]
mov ecx, dword [eax + 8]
cmp ecx, edi
je 0x10009a2b
mov ecx, dword [ecx]
jmp 0x10009a2d
xor ecx, ecx
mov eax, dword [eax + 4]
cmp eax, edi
je 0x10009a38
mov edx, dword [eax]
jmp 0x10009a3a
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x10009a45
mov eax, dword [eax]
jmp 0x10009a47
xor eax, eax
push ecx
push edi
push edx
push eax
call fcn.10012136
add esp, 0x10
test eax, eax
je 0x10009a18
mov ecx, esi
call fcn.100093df
test eax, eax
jne 0x100099cd
cmp dword [ebp - 0x34], edi
jne 0x100094f4
mov dword [ebp - 4], 0xfffffffe
call fcn.10009acc
mov eax, dword [esi + 8]
cmp dword [eax], edi
jne 0x10009a96
cmp dword [ebp - 0x20], edi
je 0x10009a96
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
push edi
push dword [ebp - 0x1c]
push 3
push eax
call dword [edx + 0xc]
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push dword [esi + 8]
call dword [eax + 4]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x4204]
xor ecx, ebp
call fcn.1003c09c
add ebp, 0x4208
leave
ret