Function at 0x1000dbbf
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.1003b1e0
push 0xfffffffffffffffe
push 0x100b5008
push 0x1003f150
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x100be114]
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 edi, ecx
mov dword [ebp - 0x70], edi
xor esi, esi
mov ebx, esi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x54], 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 0x1000dc3c
xor ebx, ebx
inc ebx
jmp 0x1000e0e6
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000dc4a
mov eax, dword [eax]
jmp 0x1000dc4c
mov eax, esi
push str.file:__
push eax
call fcn.1003f2ae
pop ecx
pop ecx
test eax, eax
jne 0x1000dc34
push esi
push esi
push esi
push esi
push str.deployHelper
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x1000dc34
mov edx, dword [edi + 8]
mov eax, dword [edx + 0x14]
test eax, eax
je 0x1000dc81
mov ecx, dword [eax]
jmp 0x1000dc83
mov ecx, esi
push esi
push esi
push 3
push 0x10075484
push 0x10075488
movzx eax, word [edx + 0x1c]
push eax
push ecx
push dword [ebp - 0x54]
call dword [sym.imp.WININET.dll_InternetConnectW]
mov dword [ebp - 0x50], eax
test eax, eax
je 0x1000dc34
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], 0x3c
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x58], 0x4400000
mov eax, dword [edi + 8]
mov eax, dword [eax + 4]
test eax, eax
je 0x1000dcd3
mov eax, dword [eax]
jmp 0x1000dcd5
mov eax, esi
push str.https:__
push eax
call fcn.1003f2ae
pop ecx
pop ecx
mov edx, 0x4c00000
test eax, eax
mov ecx, dword [ebp - 0x58]
cmovne ecx, edx
mov dword [ebp - 0x58], ecx
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x1000dd00
mov eax, dword [eax]
jmp 0x1000dd02
mov eax, esi
push esi
push ecx
push esi
push 0x100754a0
push str.HTTP_1.1
push eax
push 0x100754b8
push dword [ebp - 0x50]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1000e12f
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1000dd34
mov eax, dword [eax]
jmp 0x1000dd36
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 ecx, eax
mov dword [ebp - 0x28], ecx
cmp ecx, 0xffffffff
je 0x1000e12f
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0x74], esi
xor edx, edx
inc edx
mov eax, edx
push 5
pop ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x24], eax
test eax, eax
je 0x1000de26
test ecx, ecx
jle 0x1000de22
push esi
push esi
push esi
push esi
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x1000de1c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov eax, 0x2f05
cmp edx, eax
ja 0x1000ddf7
je 0x1000ddf7
mov eax, edx
sub eax, 0x2ee2
je 0x1000ddd9
sub eax, 5
je 0x1000ddd9
sub eax, 7
je 0x1000ddf7
sub eax, 0xf
jne 0x1000ddf7
mov eax, esi
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x30]
dec ecx
mov dword [ebp - 0x30], ecx
test ecx, ecx
cmovg eax, dword [ebp - 0x64]
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x1000ddef
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]
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x30]
xor edx, edx
inc edx
jmp 0x1000dd70
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]
test eax, eax
mov eax, esi
push 1
pop edx
cmove eax, edx
mov ecx, dword [ebp - 0x30]
jmp 0x1000dd6d
mov eax, dword [ebp - 0x24]
xor edx, edx
inc edx
test eax, eax
jne 0x1000de2d
mov ebx, edx
jmp 0x1000e0e6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x4c], 4
push esi
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x20000013
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x1000de64
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x48], eax
xor ecx, ecx
lea eax, [ecx + 1]
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x2c]
cmp edx, 0x197
je 0x1000de7f
cmp edx, 0x191
jne 0x1000ded0
test eax, eax
je 0x1000ded0
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push dword [ebp - 0x48]
push dword [ebp - 0x1c]
push esi
push dword [edi + 8]
call dword [eax + 0xc]
cmp eax, 0x4c7
jne 0x1000dea0
mov eax, esi
jmp 0x1000de69
push esi
push esi
push esi
push esi
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
mov dword [ebp - 0x4c], 4
push esi
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x2c]
push eax
push 0x20000013
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov eax, dword [ebp - 0x24]
jmp 0x1000de6c
cmp edx, 0xc8
je 0x1000dfcc
cmp edx, 0xce
je 0x1000dfcc
lea eax, [edx - 0x190]
cmp eax, 0xc7
ja 0x1000dfb1
cmp edx, 0x193
jne 0x1000df07
push edx
jmp 0x1000df90
cmp edx, 0x1f4
jne 0x1000df2c
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 0x1000dfa2
mov dword [ebp - 0x38], ebx
jmp 0x1000dfa2
cmp edx, 0x1f7
jne 0x1000df8f
cmp dword [ebp - 0x3c], 5
jge 0x1000df67
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x5c], eax
test eax, eax
js 0x1000df55
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x5c]
dec eax
jmp 0x1000df3d
inc dword [ebp - 0x3c]
add dword [ebp - 0x40], 0x1e
xor eax, eax
inc eax
mov dword [ebp - 0x38], eax
jmp 0x1000dcbb
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push 0x1f7
push dword [ebp - 0x1c]
xor edx, edx
inc edx
push edx
push dword [edi + 8]
call dword [eax + 0xc]
cmp eax, 6
jne 0x1000dfa2
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], 0x3c
jmp 0x1000df5c
push edx
xor edx, edx
push dword [ebp - 0x1c]
inc edx
push edx
mov ecx, dword [edi + 4]
push dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
xor ebx, ebx
cmp dword [ebp - 0x2c], 0x194
sete bl
inc ebx
jmp 0x1000dfc4
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 0x1000e0b7
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x68], 4
push esi
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x44]
push eax
push 0x20000005
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
mov eax, dword [ebp - 0x44]
mov ecx, 0xe4e1c0
test eax, eax
cmove eax, ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x48], esi
cmp dword [ebp - 0x2c], 0xce
jne 0x1000e01e
push 2
push esi
push esi
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
jmp 0x1000e033
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 - 0x34], esi
lea eax, [ebp - 0x34]
push eax
push 0x1fa0
lea eax, [ebp]
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x1000e0a4
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x1000e070
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 - 0x34]
mov edx, dword [ebp - 0x60]
add edx, eax
mov dword [ebp - 0x60], edx
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push dword [ebp - 0x44]
push edx
push dword [edi + 8]
call dword [eax + 8]
mov ecx, edi
call fcn.1000e231
test eax, eax
jne 0x1000e09c
cmp dword [ebp - 0x34], eax
jne 0x1000e033
mov eax, dword [ebp - 0x48]
jmp 0x1000e0af
push 3
pop ebx
xor eax, eax
inc eax
jmp 0x1000e0ac
xor ecx, ecx
lea eax, [ecx + 1]
lea ebx, [ecx + 1]
mov dword [ebp - 0x20], ebx
test eax, eax
jne 0x1000e189
push dword [ebp - 0x1c]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebp - 0x28], 0xffffffff
mov eax, dword [edi + 8]
cmp dword [eax], esi
je 0x1000e17f
mov ecx, edi
call fcn.1000e231
test eax, eax
je 0x1000e0ee
push 3
pop ebx
mov dword [ebp - 0x20], ebx
jmp 0x1000e189
test ebx, ebx
jne 0x1000e170
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1000e0fd
mov eax, dword [eax]
jmp 0x1000e0ff
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 0x1000e136
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
push dword [ebp - 0x2c]
push dword [ebp - 0x1c]
push 2
push dword [edi + 8]
call dword [eax + 0xc]
xor eax, eax
lea ebx, [eax + 1]
jmp 0x1000e0e6
mov ecx, dword [edi + 8]
mov eax, dword [ecx + 8]
test eax, eax
je 0x1000e144
mov edx, dword [eax]
jmp 0x1000e146
mov edx, esi
mov eax, dword [ecx + 4]
test eax, eax
je 0x1000e151
mov ecx, dword [eax]
jmp 0x1000e153
mov ecx, esi
mov eax, dword [edi + 0xc]
test eax, eax
je 0x1000e15e
mov eax, dword [eax]
jmp 0x1000e160
mov eax, esi
push edx
push esi
push ecx
push eax
call fcn.1000eae3
add esp, 0x10
test eax, eax
je 0x1000e12f
mov ecx, edi
call fcn.1000e231
test eax, eax
jne 0x1000e0e3
cmp dword [ebp - 0x38], 0
jne 0x1000dcbb
mov dword [ebp - 4], 0xfffffffe
call fcn.1000e1e7
mov eax, dword [edi + 8]
cmp dword [eax], esi
jne 0x1000e1af
test ebx, ebx
je 0x1000e1af
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push esi
push dword [ebp - 0x1c]
push 3
push eax
call dword [edx + 0xc]
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
push dword [edi + 8]
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.1003b105
add ebp, 0x3f44
leave
ret