Function at 0x1000cc02
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.10039d10
push 0xfffffffffffffffe
push 0x10075890
push 0x1003ab10
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x10080f6c]
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 0x1000cc81
mov dword [ebp - 0x20], 1
jmp 0x1000d274
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp eax, edi
je 0x1000cc8f
mov eax, dword [eax]
jmp 0x1000cc91
xor eax, eax
push str.file:__
push eax
call fcn.1002b477
pop ecx
pop ecx
test eax, eax
jne 0x1000cc75
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 0x1000cc75
mov eax, dword [esi + 8]
movzx ecx, word [eax + 0x1c]
mov eax, dword [eax + 0x14]
cmp eax, edi
je 0x1000ccca
mov eax, dword [eax]
jmp 0x1000cccc
xor eax, eax
push edi
push edi
push 3
push 0x1005da9c
push 0x1005daa0
push ecx
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.wininet.dll_InternetConnectW]
mov dword [ebp - 0x40], eax
cmp eax, edi
je 0x1000cc75
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 0x1000cd11
mov eax, dword [eax]
jmp 0x1000cd13
xor eax, eax
push str.https:__
push eax
call fcn.1002b477
pop ecx
pop ecx
test eax, eax
je 0x1000cd2b
mov dword [ebp - 0x64], 0x4c00000
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x10]
cmp eax, edi
je 0x1000cd39
mov eax, dword [eax]
jmp 0x1000cd3b
xor eax, eax
push edi
push dword [ebp - 0x64]
push edi
push 0x1005dab8
push str.HTTP_1.1
push eax
push 0x1005dad0
push dword [ebp - 0x40]
call dword [sym.imp.wininet.dll_HttpOpenRequestW]
mov ebx, eax
mov dword [ebp - 0x1c], ebx
cmp ebx, edi
je 0x1000cc75
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x1000cd71
mov eax, dword [eax]
jmp 0x1000cd73
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 0x1000cc75
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 0x1000cc75
cmp dword [ebp - 0x44], edi
jle 0x1000ce34
push edi
push edi
push edi
push edi
push ebx
call dword [sym.imp.wininet.dll_HttpSendRequestW]
test eax, eax
jne 0x1000ce34
call dword [sym.imp.kernel32.dll_GetLastError]
mov ecx, eax
sub ecx, 0x2ee2
je 0x1000ce21
sub ecx, 5
je 0x1000ce21
mov dword [ebp - 0x28], edi
sub ecx, 0x16
je 0x1000cdf9
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 0x1000cdab
jmp 0x1000cda4
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], edi
jle 0x1000ce08
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], edi
jne 0x1000cdb4
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
push 0x2efd
push ebx
push edi
push dword [esi + 8]
call dword [eax + 0xc]
jmp 0x1000cdab
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
push eax
push ebx
push edi
push dword [esi + 8]
call dword [edx + 0xc]
jmp 0x1000cdab
cmp dword [ebp - 0x28], edi
je 0x1000cc75
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 0x1000ce72
call dword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
mov dword [ebp - 0x28], 1
mov eax, dword [ebp - 0x30]
cmp eax, 0x197
je 0x1000ce8a
cmp eax, 0x191
jne 0x1000ced8
cmp dword [ebp - 0x28], edi
je 0x1000ced8
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 0x1000ceab
mov dword [ebp - 0x28], edi
jmp 0x1000ce79
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 0x1000ce79
cmp eax, 0xc8
je 0x1000d001
cmp eax, 0xce
je 0x1000d001
cmp eax, 0x1a0
jne 0x1000cf04
xor ecx, ecx
cmp ecx, edi
je 0x1000cf04
cmp ecx, 0xffffffff
jne 0x1000d0c2
lea ecx, [eax - 0x190]
cmp ecx, 0xc7
ja 0x1000cfe6
cmp eax, 0x193
jne 0x1000cf37
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 0x1000cfd1
cmp eax, 0x1f4
jne 0x1000cf5f
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 0x1000cfd1
mov dword [ebp - 0x34], ebx
jmp 0x1000cfd1
cmp eax, 0x1f7
jne 0x1000cfc0
cmp dword [ebp - 0x4c], 5
jge 0x1000cf9a
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], edi
jl 0x1000cf87
push 0x3e8
call dword [sym.imp.kernel32.dll_Sleep]
dec dword [ebp - 0x58]
jmp 0x1000cf72
inc dword [ebp - 0x4c]
add dword [ebp - 0x48], 0x1e
mov dword [ebp - 0x34], 1
jmp 0x1000ccf9
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 0x1000cfd1
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x48], 0x3c
jmp 0x1000cf8e
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 0x1000d198
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 0x1000d19b
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 0x1000d035
mov dword [ebp - 0x38], 0xe4e1c0
jmp 0x1000d0de
cmp dword [ebp - 0x6c], edi
je 0x1000d0de
xor eax, eax
cmp eax, edi
je 0x1000d0de
cmp dword [ebp - 0x38], eax
jne 0x1000d0de
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 0x1000d0de
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 0x1000d0ca
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 0x1000d0de
mov dword [ebp - 0x20], edi
jmp 0x1000d274
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 0x1000d0ff
push 2
push edi
push edi
push dword [ebp - 0x24]
call dword [sym.imp.kernel32.dll_SetFilePointer]
jmp 0x1000d114
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 0x1000d186
cmp dword [ebp - 0x2c], edi
je 0x1000d155
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.1000cbf1
test eax, eax
jne 0x1000d1d2
cmp dword [ebp - 0x2c], edi
jne 0x1000d114
jmp 0x1000d18f
xor eax, eax
inc eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x60], edi
jne 0x1000d274
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x1c], edi
je 0x1000d1a9
push dword [ebp - 0x1c]
call dword [sym.imp.wininet.dll_InternetCloseHandle]
cmp dword [ebp - 0x24], 0xffffffff
je 0x1000d1bc
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 0x1000d26b
mov ecx, esi
call fcn.1000cbf1
test eax, eax
je 0x1000d1de
mov dword [ebp - 0x20], 3
jmp 0x1000d274
cmp dword [ebp - 0x20], edi
jne 0x1000d25c
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x1000d1ee
mov eax, dword [eax]
jmp 0x1000d1f0
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 0x1000d222
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 0x1000d274
mov eax, dword [esi + 8]
mov ecx, dword [eax + 8]
cmp ecx, edi
je 0x1000d230
mov ecx, dword [ecx]
jmp 0x1000d232
xor ecx, ecx
mov eax, dword [eax + 4]
cmp eax, edi
je 0x1000d23d
mov edx, dword [eax]
jmp 0x1000d23f
xor edx, edx
mov eax, dword [esi + 0xc]
cmp eax, edi
je 0x1000d24a
mov eax, dword [eax]
jmp 0x1000d24c
xor eax, eax
push ecx
push edi
push edx
push eax
call fcn.1000e82e
add esp, 0x10
test eax, eax
je 0x1000d21d
mov ecx, esi
call fcn.1000cbf1
test eax, eax
jne 0x1000d1d2
cmp dword [ebp - 0x34], edi
jne 0x1000ccf9
mov dword [ebp - 4], 0xfffffffe
call fcn.1000d2d1
mov eax, dword [esi + 8]
cmp dword [eax], edi
jne 0x1000d29b
cmp dword [ebp - 0x20], edi
je 0x1000d29b
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.10039bc2
add ebp, 0x4208
leave
ret