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

Disassembly:
sub esp, 0x18
mov ecx, dword [esp + 0x24]
xor eax, eax
push ebx
mov dword [esp + 8], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [ecx], eax
push ebp
lea esp, [esp]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x258]
test eax, eax
mov ebp, eax
jne 0x45e925
mov ebp, 0x4000
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x45e952
mov edx, dword [esi + 0x48]
test edx, edx
jne 0x45e952
mov ebx, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
sub eax, ebx
sbb ecx, edx
xor edx, edx
cmp ecx, edx
jg 0x45e952
jl 0x45e950
cmp eax, ebp
jae 0x45e952
mov ebp, eax
xor ebx, ebx
cmp ebp, ebx
je 0x45e98c
mov ecx, dword [esi + 0x94]
mov edx, dword [edi + 0x220]
lea eax, [esp + 8]
push eax
push ebp
push ecx
push edx
push edi
call fcn.00462020
add esp, 0x14
cmp eax, 0x51
mov dword [esp + 0xc], eax
je 0x45ef7c
cmp eax, ebx
jg 0x45efb5
jmp 0x45e990
mov dword [esp + 8], ebx
mov eax, dword [esi + 0x20]
or eax, dword [esi + 0x24]
jne 0x45e9c9
mov ecx, dword [esi + 0x28]
or ecx, dword [esi + 0x2c]
jne 0x45e9c9
mov ebp, dword [esp + 0x24]
push 5
push ebp
call fcn.00479d50
mov eax, dword [esi + 0x84]
add esp, 8
cmp eax, ebx
jle 0x45e9cd
call fcn.00466ae0
mov dword [esi + 0x7c], eax
mov dword [esi + 0x80], edx
jmp 0x45e9cd
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
or dword [eax], 1
mov eax, dword [esp + 8]
cmp eax, ebx
jne 0x45e9ef
cmp dword [esi + 0x90], ebx
jne 0x45e9ef
mov ebx, 1
mov dword [esp + 0x18], ebx
jmp 0x45e9fb
test eax, eax
mov dword [esp + 0x18], ebx
jle 0x45efbb
mov edx, dword [esi + 0x94]
mov byte [eax + edx], 0
mov eax, dword [esi + 0x94]
mov dword [esi + 0x5c], eax
mov ecx, dword [edi + 0x214]
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x45ea44
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0xc]
push ecx
push edi
push ebp
call eax
add esp, 0x10
test eax, eax
mov dword [esp + 0xc], eax
jne 0x45efb5
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x45ef80
mov eax, dword [esi + 0x48]
test eax, eax
je 0x45eb32
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0xc]
push eax
push edi
push ebp
mov dword [esp + 0x2c], 0
call fcn.004775b0
add esp, 0x10
test eax, eax
mov dword [esp + 0xc], eax
jne 0x45efb5
mov ecx, dword [edi + 0x214]
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x45eac5
mov ecx, dword [esi + 0x14]
test ecx, ecx
jg 0x45eac5
jl 0x45ea94
mov ecx, dword [esi + 0x10]
test ecx, ecx
ja 0x45eac5
mov ecx, dword [esp + 8]
test ecx, ecx
jle 0x45eac9
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0xc]
push ecx
push edi
push ebp
call eax
add esp, 0x10
test eax, eax
mov dword [esp + 0xc], eax
jne 0x45efb5
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x45ef80
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x45eb36
test ecx, ecx
jle 0x45ef80
mov edx, dword [edi]
mov eax, dword [edx + 8]
test eax, eax
je 0x45efc4
push eax
call fcn.00465f60
mov ecx, dword [esp + 0xc]
add esp, 4
test eax, eax
je 0x45efc4
mov eax, dword [ebp + 0x8648]
push eax
push ecx
push str.Rewinding_stream_by_:__zd_bytes_on_url__s__zero_length_body__n
push ebp
call fcn.004622f0
mov eax, dword [edi + 0x274]
mov edx, dword [esp + 0x18]
add esp, 0x10
sub eax, edx
mov dword [edi + 0x274], eax
mov dword [edi + 0x1f4], 1
jmp 0x45ef80
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x45ef3a
mov eax, dword [esi + 0x48]
test eax, eax
jne 0x45ef3a
test ecx, ecx
jg 0x45eb58
test ebx, ebx
je 0x45ef3a
mov eax, dword [esi + 0x90]
test eax, eax
jne 0x45ec11
test ebx, ebx
jne 0x45ec11
mov edx, dword [edi + 0x214]
test dword [edx + 0x3c], 0x40001
je 0x45ec11
mov eax, dword [ebp + 0xcc]
test eax, eax
je 0x45ebb5
mov eax, dword [edi + 0x1a0]
test eax, eax
jne 0x45efdc
push str.Ignoring_the_response_body_n
push ebp
mov dword [esi + 0xa8], 1
call fcn.004622f0
mov ecx, dword [esp + 0x10]
add esp, 8
mov eax, dword [ebp + 0x8660]
or eax, dword [ebp + 0x8664]
je 0x45ebe1
mov eax, dword [esi + 0x6c]
test eax, eax
jne 0x45ebe1
cmp dword [ebp + 0x208], 1
jne 0x45ebe1
mov eax, dword [esi + 0xa8]
test eax, eax
je 0x45effd
mov eax, dword [ebp + 0x200]
test eax, eax
je 0x45ec11
mov eax, dword [ebp + 0x8658]
test eax, eax
jne 0x45ec11
mov ecx, dword [esi + 0x8c]
push ecx
push ebp
call fcn.0045e890
add esp, 8
test eax, eax
je 0x45f016
mov ecx, dword [esp + 8]
inc dword [esi + 0x90]
mov eax, dword [ebp + 0x2d4]
test eax, eax
je 0x45ec67
mov eax, dword [esi + 0x4c]
test eax, eax
push edi
je 0x45ec53
mov edx, dword [esi + 0x58]
mov eax, dword [ebp + 0x544]
push edx
push eax
push 3
push ebp
call fcn.00462170
mov eax, dword [esi + 0x4c]
mov ecx, dword [esp + 0x1c]
add esp, 0x14
cmp eax, 1
jne 0x45ec67
mov edx, dword [esi + 0x5c]
push edi
push ecx
push edx
jmp 0x45ec58
mov eax, dword [esi + 0x5c]
push ecx
push eax
push 3
push ebp
call fcn.00462170
mov ecx, dword [esp + 0x1c]
add esp, 0x14
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x45ecf7
mov eax, dword [esi + 0x5c]
lea edx, [esp + 8]
push edx
push ecx
push eax
push edi
call fcn.0047c440
add esp, 0x10
test eax, eax
jg 0x45f032
cmp eax, 0xffffffff
jne 0x45ecf3
and dword [esi + 0xa0], 0xfffffffe
mov ebp, dword [edi + 0x24]
test ebp, ebp
je 0x45ecf3
mov ecx, dword [edi]
push ebp
push str.Leftovers_after_chunking:__zu_bytes_n
push ecx
call fcn.004622f0
mov edx, dword [edi]
mov eax, dword [edx + 8]
add esp, 0xc
test eax, eax
je 0x45ecf3
push eax
call fcn.00465f60
add esp, 4
test eax, eax
je 0x45ecf3
mov eax, dword [edi]
push ebp
push str.Rewinding__zu_bytes_n
push eax
call fcn.004622f0
mov eax, dword [edi + 0x274]
add esp, 0xc
sub eax, ebp
mov dword [edi + 0x274], eax
mov dword [edi + 0x1f4], 1
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x45ed1c
mov eax, dword [esi + 0xa8]
test eax, eax
jne 0x45ed1c
mov ebx, dword [esi + 0x20]
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x24]
add ebx, edx
adc eax, 0
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], eax
mov ebx, dword [esi + 0x10]
cmp ebx, 0xffffffff
mov ebp, dword [esi + 0x14]
jne 0x45ed2f
cmp ebp, ebx
je 0x45ee19
mov eax, ecx
cdq
add eax, dword [esi + 0x20]
adc edx, dword [esi + 0x24]
cmp edx, ebp
jl 0x45ee19
jg 0x45ed4a
cmp eax, ebx
jb 0x45ee19
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x20]
sub ecx, edx
add ecx, eax
mov ebx, ecx
mov dword [esp + 0x14], ebx
je 0x45edfe
mov eax, dword [esi + 0xa8]
test eax, eax
jne 0x45edfe
mov eax, dword [edi]
mov eax, dword [eax + 8]
test eax, eax
je 0x45edd4
push eax
call fcn.00465f60
add esp, 4
test eax, eax
je 0x45edd4
mov ecx, dword [esp + 8]
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
push ecx
mov ecx, dword [esi + 0x14]
push edx
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [esi]
push edx
push eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x8648]
push ecx
push edx
push ebx
push str.Rewinding_stream_by_:__zu_bytes_on_url__s__size___lld__maxdownload___lld__bytecount___lld__nread___zd__n
push eax
call fcn.004622f0
mov eax, dword [edi + 0x274]
add esp, 0x2c
sub eax, ebx
mov dword [edi + 0x274], eax
mov dword [edi + 0x1f4], 1
jmp 0x45edfe
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
push eax
mov eax, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 4]
push edx
mov edx, dword [esi]
push eax
mov eax, dword [esp + 0x34]
push ecx
push edx
push ebx
push str.Excess_found_in_a_non_pipelined_read:_excess___zu__size___lld__maxdownload___lld__bytecount___lld_n
push eax
call fcn.004622f0
add esp, 0x24
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0x20]
mov dword [esp + 8], ecx
jns 0x45ee10
xor ecx, ecx
mov dword [esp + 8], ecx
and dword [esi + 0xa0], 0xfffffffe
jmp 0x45ee1d
mov ebx, dword [esp + 0x14]
mov ebp, dword [esi + 0x20]
mov eax, ecx
mov ecx, dword [esi + 0x24]
cdq
add ebp, eax
mov eax, dword [esp + 0x24]
adc ecx, edx
push ecx
mov edx, ebp
push edx
push eax
mov dword [esi + 0x20], ebp
mov dword [esi + 0x24], ecx
call fcn.00479ed0
mov eax, dword [esi + 0xc0]
mov ecx, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x45ef3e
test ecx, ecx
jne 0x45ee6a
mov eax, dword [esi + 0x4c]
test eax, eax
jne 0x45ee71
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45ef3e
mov eax, dword [esi + 0x4c]
test eax, eax
je 0x45eee0
mov eax, dword [esi + 0xa8]
test eax, eax
jne 0x45eee0
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov ecx, edx
and ecx, eax
cmp ecx, 0xffffffff
je 0x45eeb6
mov ebp, dword [esi + 0x58]
xor ecx, ecx
cmp ecx, eax
jl 0x45eeb6
jg 0x45ee99
cmp ebp, edx
jbe 0x45eeb6
mov edx, dword [esi + 0x10]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x544]
push edx
push ecx
push 1
push edi
call fcn.004627b0
mov dword [esp + 0x1c], eax
jmp 0x45eed1
mov edx, dword [esi + 0x58]
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x544]
push edx
push ecx
push 1
push edi
call fcn.004627b0
mov dword [esp + 0x1c], eax
add esp, 0x10
test eax, eax
jne 0x45efb5
mov ecx, dword [esp + 8]
cmp dword [esi + 0x4c], 2
jge 0x45ef25
mov eax, dword [esi + 0xa8]
test eax, eax
jne 0x45ef25
mov edx, dword [edi + 0x214]
mov eax, dword [edx + 0x3c]
test ah, 0x40
push ecx
je 0x45ef0e
mov eax, dword [esi + 0x5c]
push eax
push edi
call fcn.0046a340
add esp, 0xc
jmp 0x45ef1d
mov ecx, dword [esi + 0x5c]
push ecx
push 1
push edi
call fcn.004627b0
add esp, 0x10
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
test eax, eax
mov dword [esi + 0x4c], 0
je 0x45ef3e
pop ebp
pop ebx
add esp, 0x18
ret
mov ebx, dword [esp + 0x14]
mov edx, dword [edi + 0x214]
mov eax, dword [edx + 0x34]
test eax, eax
je 0x45ef5d
test ebx, ebx
jbe 0x45ef5d
mov eax, dword [edi + 0x1f4]
test eax, eax
je 0x45f06a
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45ef6c
and dword [esi + 0xa0], 0xfffffffe
mov eax, dword [edi + 0x214]
test byte [eax + 0x3c], 0x30
jne 0x45e910
mov ebp, dword [esp + 0x24]
mov eax, dword [esi + 0xa0]
and al, 3
cmp al, 2
jne 0x45efb3
mov eax, dword [edi + 0x1a0]
test eax, eax
je 0x45efb3
push str.we_are_done_reading_and_this_is_set_to_close__stop_send_n
push ebp
call fcn.004622f0
mov eax, dword [esi + 0xa0]
add esp, 8
and eax, 0xfffffffd
mov dword [esi + 0xa0], eax
xor eax, eax
pop ebp
pop ebx
add esp, 0x18
ret
and dword [esi + 0xa0], 0xfffffffe
jmp 0x45ef80
mov eax, dword [ebp + 0x8648]
push eax
push ecx
push str.Excess_found_in_a_non_pipelined_read:_excess___zd_url___s__zero_length_body__n
push ebp
call fcn.004622f0
add esp, 0x10
jmp 0x45ef80
mov eax, dword [esi + 0xa0]
mov ecx, dword [esp + 0x2c]
and eax, 0xfffffffe
mov dword [esi + 0xa0], eax
pop ebp
mov dword [ecx], 1
xor eax, eax
pop ebx
add esp, 0x18
ret
push str.HTTP_server_doesnt_seem_to_support_byte_ranges._Cannot_resume.
push ebp
call fcn.004623b0
add esp, 8
pop ebp
mov eax, 0x21
pop ebx
add esp, 0x18
ret
mov edx, dword [esp + 0x2c]
pop ebp
mov dword [edx], 1
mov dword [edi + 0x1a0], 1
xor eax, eax
pop ebx
add esp, 0x18
ret
cmp eax, 4
jne 0x45f050
push str.Failed_writing_data
push ebp
call fcn.004623b0
add esp, 8
pop ebp
mov eax, 0x17
pop ebx
add esp, 0x18
ret
push eax
push str.Problem___d__in_the_Chunked_Encoded_data
push ebp
call fcn.004623b0
add esp, 0xc
pop ebp
mov eax, 0x38
pop ebx
add esp, 0x18
ret
mov ebp, dword [esi + 0x5c]
add ebp, ecx
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0xc]
push edx
mov dword [esi + 0x5c], ebp
mov ebp, dword [esp + 0x2c]
mov eax, dword [edi + 0x214]
push edi
push ebp
mov dword [esp + 0x18], ebx
call dword [eax + 0x34]
add esp, 0x10
test eax, eax
jne 0x45efb5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x45ef80
or dword [esi + 0xa0], 1
jmp 0x45ef80