Function at 0x10007f90
Capabilities:
Check http status code
Check if file exists
Connect to http server
Create http request
Parse url
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x88
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x80], 0x2710
mov dword [ebp - 0x84], 0x7530
mov dword [ebp - 0x88], 0x7530
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0xc], 0
call ebx
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x10008003
lea esi, [eax + 6]
jmp 0x10008953
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpW]
lea eax, [edi + 0xa18]
push 0x1001df0c
push eax
call esi
test eax, eax
jne 0x1000802d
push 0x1001b870
lea eax, [edi + 0xa18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp dword [edi + 0xa14], 0
je 0x100080bf
push 0x1001b72c
lea eax, [edi + 0xa98]
push eax
call esi
test eax, eax
jne 0x100080b6
push 0x1001b8a0
lea esi, [edi + 0x1940]
push esi
call dword [sym.imp.SHLWAPI.dll_StrStrW]
test eax, eax
jne 0x100080b6
push esi
call ebx
push 0x1001b8bc
mov esi, eax
call ebx
add eax, 2
add eax, esi
cmp eax, 0x400
jb 0x10008084
mov esi, 0xc
jmp 0x10008953
test esi, esi
je 0x100080a1
cmp word [edi + esi*2 + 0x193e], 0xa
je 0x100080a1
mov eax, 0xa
mov word [edi + esi*2 + 0x1940], ax
inc esi
lea eax, [edi + 0x1940]
push 0x1001b8bc
lea eax, [eax + esi*2]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp dword [edi + 0xa14], 0
jne 0x100080c9
mov esi, 0xd
jmp 0x10008953
push 0x1000
mov ebx, 0x800
push 0x40
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
test edi, edi
jne 0x100080f2
lea esi, [eax + 0xb]
jmp 0x10008187
mov eax, 0x7b
mov esi, 1
mov word [edi], ax
xor edi, edi
mov dword [ebp - 8], esi
cmp dword [0x1001def0], edi
jbe 0x10008152
nop dword [eax]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x1001def8]
lea eax, [eax + edi*8]
push eax
call fcn.10008d20
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x1000814a
inc edi
cmp edi, dword [0x1001def0]
jb 0x10008110
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 8]
mov dword [ebp - 0x14], edi
jmp 0x10008155
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x14], edi
jmp 0x10008177
mov edi, dword [ebp - 0x14]
mov eax, dword [0x1001df04]
lea ecx, [eax + 5]
add ecx, esi
cmp ecx, ebx
jb 0x100081a1
push 0x42
lea eax, [ecx + ecx]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GlobalReAlloc]
test eax, eax
jne 0x10008197
lea esi, [eax + 0xb]
test edi, edi
je 0x10008187
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor edi, edi
mov dword [ebp - 0x14], edi
test esi, esi
je 0x100081ee
mov dword [ebp - 4], 0
jmp 0x10008950
mov edi, eax
mov eax, dword [0x1001df04]
mov dword [ebp - 0x14], edi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
test eax, eax
je 0x100081e0
push 0x1001b718
lea eax, [edi + esi*2]
push eax
call ebx
push dword [0x1001defc]
inc esi
lea eax, [edi + esi*2]
push eax
call ebx
mov ecx, dword [0x1001df04]
add esi, ecx
mov eax, dword [0x1001defc]
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 0x2c
je 0x100081e0
cmp eax, 0xa
je 0x100081e0
inc esi
lea eax, [esi - 1]
push 0x1001b71c
lea eax, [edi + eax*2]
push eax
call ebx
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
lea eax, [ebp - 0x34]
push eax
push edi
call fcn.100019d0
add esp, 0xc
mov dword [ebp - 4], eax
test eax, eax
je 0x10008217
mov esi, 3
jmp 0x10008950
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x74], 0x3c
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
lea esi, [ebx + 1]
mov dword [ebp - 0x68], 0
lea edi, [esi + esi]
push edi
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x64], eax
test eax, eax
jne 0x10008254
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x100082cf
push edi
xor eax, eax
mov dword [ebp - 0x60], esi
push 0x40
mov word [ebp - 0x5c], ax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x10008276
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x100082cf
push edi
push 0x40
mov dword [ebp - 0x54], esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x50], eax
test eax, eax
jne 0x10008292
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x100082cf
push edi
push 0x40
mov dword [ebp - 0x4c], esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x48], eax
test eax, eax
jne 0x100082ae
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x100082cf
push edi
push 0x40
mov dword [ebp - 0x44], esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], esi
test esi, esi
jne 0x100082cd
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
call eax
jmp 0x100082cf
xor eax, eax
mov edi, dword [ebp + 8]
mov dword [ebp - 4], eax
test eax, eax
je 0x100082e3
mov esi, 5
jmp 0x10008953
lea eax, [ebp - 0x74]
push eax
push 0
push ebx
push edi
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x10008306
lea esi, [eax + 2]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
jmp 0x10008953
push dword [ebp - 0x40]
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov eax, dword [ebp - 0x3c]
add dword [ebp - 0x44], eax
lea eax, [edi + 0x1028]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
call ebx
mov esi, eax
lea eax, [edi + 0x10a8]
push eax
call ebx
add esi, eax
lea eax, [edi + 0xfa8]
push eax
call ebx
add esi, eax
lea eax, [edi + 0xf28]
push eax
call ebx
add esi, eax
lea eax, [edi + 0xb28]
push eax
mov dword [ebp - 0x7c], eax
call ebx
add esi, eax
lea eax, [edi + 0xaa8]
push eax
call ebx
add eax, esi
lea ecx, [eax*2 + 0x46c]
mov eax, dword [ebp - 0x44]
add eax, ecx
add eax, eax
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x1000838c
lea esi, [eax + 0xb]
mov dword [ebp - 4], eax
jmp 0x10008953
mov esi, edi
mov ecx, 1
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], ecx
cmp dword [esi + 0x112c], 0
je 0x100083d1
mov eax, dword [0x1001df08]
mov ecx, 2
mov dword [ebp - 0x10], ecx
test eax, eax
jne 0x100083c3
cmp dword [esi + 0x1128], eax
jne 0x100083e1
mov dword [ebp - 0x28], eax
jmp 0x100083e8
cmp eax, 1
je 0x100083e1
mov dword [ebp - 0x28], 0
jmp 0x100083e8
cmp dword [esi + 0x1128], 0
je 0x100083e8
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
cmp dword [esi + 0x1130], 0
je 0x10008408
cmp dword [ebp - 0x68], 4
jne 0x100083fe
add ecx, ecx
mov dword [ebp - 0x10], ecx
jmp 0x10008408
mov dword [esi + 0x1130], 0
xor edi, edi
mov dword [ebp - 8], edi
test ecx, ecx
jle 0x10008935
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x10008423
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x10008431
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x1000843f
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x48]
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [esi + 0x10a8]
push eax
call ebx
test eax, eax
je 0x1000847a
push edi
mov edi, dword [ebp - 0xc]
lea eax, [esi + 0x10a8]
push eax
push 0x1001b8fc
push edi
call ebx
lea eax, [edi + eax*2]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x1000847d
mov edi, dword [ebp - 0xc]
lea eax, [esi + 0xaa8]
push eax
call ebx
test eax, eax
je 0x100084ac
push dword [esi + 0x1134]
lea eax, [esi + 0xaa8]
push eax
push 0x1001b90c
push edi
call ebx
lea eax, [edi + eax*2]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [esi + 0xb28]
push eax
call ebx
test eax, eax
je 0x100085e7
lea eax, [ebp - 0x78]
mov dword [ebp - 0x1c], 0
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x78], 0
push eax
lea eax, [esi + 0x2140]
push eax
call fcn.100019d0
add esp, 0xc
test eax, eax
jne 0x1000890d
mov esi, dword [ebp - 0x1c]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100084f2
sub ecx, edx
lea eax, [ecx*2 + 1]
add eax, ecx
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
mov edx, edi
test edi, edi
je 0x10008587
mov al, byte [esi]
test al, al
je 0x10008584
nop dword [eax + eax]
cmp al, 0x61
jl 0x10008528
cmp al, 0x7a
jle 0x10008579
cmp al, 0x41
jl 0x10008530
cmp al, 0x5a
jle 0x10008579
lea ecx, [eax - 0x30]
cmp cl, 9
jbe 0x10008579
cmp al, 0x2d
je 0x10008579
cmp al, 0x5f
je 0x10008579
cmp al, 0x2e
je 0x10008579
cmp al, 0x7e
je 0x10008579
cmp al, 0x20
jne 0x10008551
mov byte [edx], 0x2b
jmp 0x1000857b
mov byte [edx], 0x25
movzx eax, byte [esi]
shr eax, 4
movzx eax, byte [eax + 0x1001b6d0]
mov byte [edx + 1], al
movsx eax, byte [esi]
and eax, 0xf
movzx eax, byte [eax + 0x1001b6d0]
mov byte [edx + 2], al
add edx, 3
jmp 0x1000857c
mov byte [edx], al
inc edx
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x10008520
mov byte [edx], 0
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
test edi, edi
je 0x1000890d
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0
push eax
push edi
call fcn.10001a90
add esp, 8
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
test esi, esi
jne 0x1000890d
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x1000890d
mov edi, dword [ebp - 0xc]
push eax
push dword [ebp - 0x7c]
push 0x1001b91c
push edi
call ebx
lea eax, [edi + eax*2]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov esi, dword [ebp + 8]
add esp, 0x10
lea eax, [esi + 0xfa8]
push eax
call ebx
test eax, eax
je 0x10008616
push dword [esi + 0x113c]
lea eax, [esi + 0xfa8]
push eax
push 0x1001b934
push edi
call ebx
lea eax, [edi + eax*2]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [esi + 0xf28]
push eax
call ebx
test eax, eax
je 0x10008645
push dword [esi + 0x1138]
lea eax, [esi + 0xf28]
push eax
push 0x1001b944
push edi
call ebx
lea eax, [edi + eax*2]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [esi + 0x1028]
push eax
call ebx
mov edi, dword [ebp - 8]
test eax, eax
je 0x1000868f
mov eax, edi
and eax, 0x80000001
jns 0x10008663
dec eax
or eax, 0xfffffffe
inc eax
xor ecx, ecx
cmp dword [ebp + eax*4 - 0x2c], 1
lea eax, [esi + 0x1028]
setne cl
push ecx
push eax
push 0x1001b954
push dword [ebp - 0xc]
call ebx
mov ecx, dword [ebp - 0xc]
lea eax, [ecx + eax*2]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
cmp dword [esi + 0x1130], 0
lea ebx, [esi + 0x113c]
mov dword [esi + 0x1138], 0
mov dword [esi + 0x1134], 0
mov dword [ebx], 0
je 0x100086d0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x68]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
mov eax, 3
cmovge ecx, eax
mov dword [ebp - 0x68], ecx
mov eax, edi
and eax, 0x80000001
jns 0x100086de
dec eax
or eax, 0xfffffffe
inc eax
mov edi, dword [ebp + eax*4 - 0x2c]
lea eax, [esi + 0xa18]
push 0
push 0
push 0
push edi
push eax
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x1000872a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 8], 2
mov dword [esi + 0x1138], eax
mov dword [esi + 0x1134], 7
jl 0x100088f4
mov esi, 7
mov dword [ebp - 4], eax
jmp 0x10008950
push 4
lea ecx, [ebp - 0x80]
push ecx
push 2
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionW]
push 4
lea eax, [ebp - 0x84]
push eax
push 5
push dword [ebp - 0x18]
call dword [sym.imp.WININET.dll_InternetSetOptionW]
push 4
lea eax, [ebp - 0x88]
push eax
push 6
push dword [ebp - 0x18]
call dword [sym.imp.WININET.dll_InternetSetOptionW]
cmp dword [ebp - 0x68], 4
mov ecx, 0x1bb
push 0
push 0
push 3
push 0
mov eax, 0x50
push 0
cmove eax, ecx
movzx eax, ax
push eax
push dword [ebp - 0x64]
push dword [ebp - 0x18]
call dword [sym.imp.WININET.dll_InternetConnectW]
mov ecx, eax
mov dword [ebp - 0x30], ecx
test ecx, ecx
jne 0x100087c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 8], 2
mov dword [esi + 0x1138], eax
mov dword [esi + 0x1134], 1
jl 0x100088f4
mov esi, 1
mov dword [ebp - 4], eax
jmp 0x10008950
cmp dword [ebp - 0x68], 4
mov edx, 0x4880100
push 0
mov eax, 0x4080100
cmove eax, edx
push eax
push 0
push 0
push 0
push dword [ebp - 0xc]
push 0x1001b964
push ecx
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x1000881f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 8], 2
mov dword [esi + 0x1138], eax
mov dword [esi + 0x1134], 8
jl 0x100088f4
mov esi, 8
mov dword [ebp - 4], eax
jmp 0x10008950
mov eax, dword [ebp - 0x38]
add esi, 0x1940
dec eax
push eax
push dword [ebp - 0x34]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push esi
mov esi, dword [ebp - 0x20]
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
mov dword [ebp - 4], eax
test eax, eax
jne 0x10008877
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 8], 2
mov esi, dword [ebp + 8]
mov dword [esi + 0x1138], eax
mov dword [esi + 0x1134], 0xa
jl 0x100088f4
mov esi, 0xa
mov dword [ebp - 4], eax
jmp 0x10008950
push 0
lea eax, [ebp - 4]
mov dword [ebp - 4], 4
push eax
push ebx
push 0x20000013
push esi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
jne 0x100088c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 8], 2
mov esi, dword [ebp + 8]
mov dword [esi + 0x1138], eax
mov dword [esi + 0x1134], 9
jl 0x100088f4
mov esi, 9
mov dword [ebp - 4], eax
jmp 0x10008950
mov eax, dword [ebx]
cmp eax, 0xc8
jb 0x100088d1
cmp eax, 0x12b
jbe 0x1000891b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 8], 2
mov esi, dword [ebp + 8]
mov dword [esi + 0x1138], eax
mov dword [esi + 0x1134], 4
jge 0x100089e9
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x10]
jge 0x10008935
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
jmp 0x10008415
mov esi, 0x14
mov dword [ebp - 4], 0
jmp 0x10008950
mov esi, dword [ebp + 8]
cmp dword [esi + 0x112c], 0
je 0x10008935
dec edi
neg edi
sbb edi, edi
add edi, 2
mov dword [0x1001df08], edi
push dword [ebp - 0x20]
push esi
call fcn.100091e0
mov ecx, dword [ebp - 4]
mov esi, eax
xor eax, eax
add esp, 8
test esi, esi
cmovne ecx, eax
mov dword [ebp - 4], ecx
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 4]
mov dword [edi + 0x1138], ecx
mov dword [edi + 0x1134], esi
test eax, eax
je 0x10008970
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x30]
mov ebx, dword [sym.imp.WININET.dll_InternetCloseHandle]
test eax, eax
je 0x10008980
push eax
call ebx
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x1000898a
push eax
call ebx
mov eax, dword [ebp - 0x64]
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalFree]
test eax, eax
je 0x1000899a
push eax
call ebx
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x100089a4
push eax
call ebx
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x100089ae
push eax
call ebx
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x100089b8
push eax
call ebx
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x100089c2
push eax
call ebx
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x100089cc
push eax
call ebx
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x100089d6
push eax
call ebx
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x100089e0
push eax
call ebx
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 4
mov dword [ebp - 4], eax
jmp 0x10008950