Function at 0x407880
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x124
push ebx
push esi
mov esi, ecx
cmp dword [esi + 0x20], 0
push edi
je 0x407c1f
cmp dword [esi + 0x28], 0xffffffff
je 0x407c1f
cmp dword [ebp + 0x78], 0
mov ebx, dword [ebp + 0x64]
mov byte [ebp - 0xb8], 0
jne 0x4078e7
lea eax, [ebp - 0xc8]
push eax
push ebx
call fcn.00405fa5
test eax, eax
pop ecx
pop ecx
je 0x4078e7
lea eax, [ebp - 0x38]
push ebx
push eax
call fcn.00428660
pop ecx
pop ecx
mov byte [ebp - 0xb8], 0
mov byte [ebp - 0xc8], 0
mov word [ebp + 0x48], 0x50
push ebx
call fcn.004279a0
add eax, 0x40
push eax
call fcn.0043be5a
cmp dword [ebp + 0x78], 0
pop ecx
pop ecx
mov edi, eax
jne 0x4079b6
push str.GET
push edi
call fcn.00428660
cmp dword [ebp + 0x70], 0
pop ecx
pop ecx
je 0x407984
cmp byte [ebp - 0xc8], 0
je 0x407944
cmp byte [ebp - 0xb8], 0
je 0x407984
lea eax, [ebp - 0xc8]
push eax
push edi
call fcn.00428670
push 0x454a08
push edi
call fcn.00428670
add esp, 0x10
cmp byte [ebp - 0xb8], 0
je 0x407984
lea eax, [ebp - 0xb8]
push eax
push edi
call fcn.00428670
cmp word [ebp + 0x48], 0x50
pop ecx
pop ecx
je 0x407984
movzx eax, word [ebp + 0x48]
push eax
lea eax, [ebp + 0x4c]
push 0x454f98
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp + 0x4c]
push eax
push edi
call fcn.00428670
add esp, 0x14
push 0x454a0c
push edi
call fcn.00428670
lea eax, [ebp - 0x38]
push eax
push edi
call fcn.00428670
add esp, 0x10
cmp dword [ebp + 0x6c], 0
je 0x4079a9
push str._HTTP_1.1_r_n
jmp 0x4079ae
push str._HTTP_1.0_r_n
push edi
call fcn.00428670
jmp 0x4079bd
push ebx
push edi
call fcn.00428660
pop ecx
pop ecx
push edi
call fcn.004279a0
pop ecx
mov dword [ebp + 0x64], eax
push 0
lea eax, [ebp + 0x64]
push eax
push edi
mov ecx, esi
call fcn.00405d65
mov ebx, eax
test ebx, ebx
je 0x4079eb
push edi
call fcn.0043be55
pop ecx
mov eax, ebx
jmp 0x407c22
cmp byte [ebp - 0xb8], 0
mov ebx, 0x453e70
je 0x407a7d
cmp dword [ebp + 0x78], 0
jne 0x407a7d
push str.Host:
push edi
call fcn.00428660
lea eax, [ebp - 0xb8]
push eax
push edi
call fcn.00428670
add esp, 0x10
cmp word [ebp + 0x48], 0x50
je 0x407a46
movzx eax, word [ebp + 0x48]
push eax
lea eax, [ebp + 0x4c]
push 0x454f98
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp + 0x4c]
push eax
push edi
call fcn.00428670
add esp, 0x14
push ebx
push edi
call fcn.00428670
push edi
call fcn.004279a0
add esp, 0xc
mov dword [ebp + 0x64], eax
push 0
lea eax, [ebp + 0x64]
push eax
push edi
mov ecx, esi
call fcn.00405d65
test eax, eax
mov dword [ebp + 0x78], eax
je 0x407a7d
push edi
call fcn.0043be55
mov eax, dword [ebp + 0x78]
pop ecx
jmp 0x407c22
push edi
call fcn.0043be55
mov edi, dword [ebp + 0x68]
test edi, edi
pop ecx
je 0x407ab0
cmp byte [edi], 0
je 0x407ab0
push edi
call fcn.004279a0
pop ecx
mov dword [ebp + 0x64], eax
push 0
lea eax, [ebp + 0x64]
push eax
push edi
mov ecx, esi
call fcn.00405d65
test eax, eax
jne 0x407c22
lea eax, [ebp + 0x4c]
push ebx
push eax
call fcn.00428660
pop ecx
pop ecx
push 0
lea eax, [ebp + 0x64]
push eax
lea eax, [ebp + 0x4c]
push eax
mov ecx, esi
mov dword [ebp + 0x64], 2
call fcn.00405d65
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
call ebx
test edi, edi
mov dword [ebp + 0x70], eax
je 0x407aec
mov eax, edi
jmp 0x407c22
mov eax, dword [esi + 0x24]
cmp eax, 0xffffffff
je 0x407b0b
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x407b0b
mov eax, 0x200
jmp 0x407c22
mov ecx, esi
call fcn.00405df4
mov edi, dword [ebp + 0x74]
test edi, edi
mov dword [ebp + 0x78], eax
je 0x407b23
call ebx
sub eax, dword [ebp + 0x70]
mov dword [edi], eax
mov eax, dword [ebp + 0x78]
test eax, eax
jne 0x407c22
mov eax, dword [esi + 0x24]
cmp eax, 0xffffffff
je 0x407b43
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x407b01
push 0x20
push dword [esi + 0x38]
call fcn.00428980
xor edi, edi
cmp eax, edi
pop ecx
pop ecx
je 0x407c1f
push eax
call fcn.00428926
cmp eax, 0xc8
pop ecx
jb 0x407c18
cmp eax, 0x12b
ja 0x407c18
mov ecx, esi
call fcn.0040655b
cmp eax, edi
jne 0x407c22
mov eax, dword [esi + 0x24]
cmp eax, 0xffffffff
je 0x407b9d
push edi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x407b01
cmp dword [ebp + 0x7c], edi
je 0x407ba6
xor eax, eax
jmp 0x407c22
push str.content_length:
mov ecx, esi
call fcn.004076f0
cmp eax, edi
je 0x407bbd
push eax
call fcn.00428926
pop ecx
mov ecx, esi
call fcn.00406e00
mov ecx, esi
mov ebx, eax
call fcn.00405d18
cmp dword [ebp + 0x64], edi
je 0x4079e4
cmp dword [esi + 0x38], edi
je 0x4079e4
mov eax, dword [esi + 0x48]
cmp eax, edi
je 0x407bed
push eax
call fcn.0043be55
pop ecx
mov eax, dword [esi + 0x3c]
inc eax
push eax
mov dword [esi + 0x40], edi
call fcn.0043be5a
push dword [esi + 0x3c]
mov dword [esi + 0x48], eax
push dword [esi + 0x38]
push eax
call fcn.00427a30
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x3c]
add esp, 0x10
mov byte [eax + ecx], 0
jmp 0x407ba2
add eax, 0x20000000
jmp 0x407c22
push 3
pop eax
pop edi
pop esi
pop ebx
add ebp, 0x5c
leave
ret 0x1c