Function at 0x51c2f0
Capabilities:
Check for time delay via gettickcount
Check http status code
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x28
push ebx
push ebp
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp + 0x1ec]
test al, 1
mov ebx, dword [ebp]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], 0
je 0x51c31a
mov ecx, dword [ebp + 0x128]
jmp 0x51c31d
or ecx, 0xffffffff
test al, 2
je 0x51c329
mov eax, dword [ebp + 0x13c]
jmp 0x51c32c
or eax, 0xffffffff
push 0
push eax
push ecx
call fcn.00522050
add esp, 0xc
cmp eax, 4
mov dword [esp + 0x2c], eax
jne 0x51c35a
push str.select_poll_returned_error
push ebx
call fcn.00521d00
add esp, 8
pop ebp
mov eax, 0x37
pop ebx
add esp, 0x28
ret
test byte [ebp + 0x1ec], 1
push esi
push edi
je 0x51d562
test al, 1
je 0x51d562
mov eax, dword [ebx + 0x160]
test eax, eax
jne 0x51c380
mov eax, 0x4000
mov edx, dword [ebp + 0x1e0]
lea ecx, [esp + 0x14]
push ecx
push eax
mov eax, dword [ebp + 0x128]
push edx
push eax
push ebp
call fcn.005219c0
add esp, 0x14
test eax, eax
jl 0x51d562
mov dword [esp + 0x1c], eax
jg 0x51da24
mov ecx, dword [ebp + 0x170]
or ecx, dword [ebp + 0x174]
jne 0x51c3f1
mov edx, dword [ebp + 0x178]
or edx, dword [ebp + 0x17c]
jne 0x51c3f1
push 4
push ebx
call fcn.00522ce0
mov al, byte [ebp + 0x1d1]
add esp, 8
test al, al
je 0x51c3f1
call fcn.005221e0
mov dword [ebp + 0x1c8], eax
mov dword [ebp + 0x1cc], edx
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 0x20], 1
jne 0x51c412
mov ecx, dword [ebp + 0x1dc]
test ecx, ecx
jne 0x51c412
mov byte [esp + 0x12], 1
jmp 0x51c41f
test eax, eax
mov byte [esp + 0x12], 0
jle 0x51d55b
mov ecx, dword [ebp + 0x1e0]
mov byte [eax + ecx], 0
mov al, byte [ebp + 0x190]
test al, al
mov edx, dword [ebp + 0x1e0]
mov dword [ebp + 0x1a4], edx
je 0x51d1ff
mov byte [esp + 0x3c], 0
jmp 0x51c450
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1a4]
push ecx
push 0xa
push eax
mov dword [ebp + 0x1a8], eax
call fcn.0053bb60
add esp, 0xc
test eax, eax
mov dword [ebp + 0x1ac], eax
je 0x51cfbe
mov esi, dword [ebp + 0x1a4]
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 0x1a0]
mov ecx, eax
sub ecx, esi
mov esi, dword [ebp + 0x1a8]
inc ecx
sub edi, ecx
inc eax
mov dword [ebp + 0x1a4], eax
sub eax, esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], edi
mov ecx, dword [ebx + 0x2e8]
mov dword [esp + 0x24], eax
add eax, edx
cmp eax, ecx
jb 0x51c4fb
lea eax, [eax + eax*2]
shr eax, 1
lea edi, [ecx + ecx]
cmp eax, edi
jbe 0x51c4c6
mov edi, eax
mov eax, dword [ebx + 0x2e4]
mov esi, dword [ebp + 0x19c]
push edi
push eax
sub esi, eax
call dword [0x5ae5f0]
add esp, 8
test eax, eax
je 0x51d09a
mov dword [ebx + 0x2e4], eax
add eax, esi
mov dword [ebx + 0x2e8], edi
mov dword [ebp + 0x19c], eax
mov edx, dword [esp + 0x24]
mov edi, dword [ebp + 0x19c]
mov esi, dword [ebp + 0x1a8]
mov ecx, edx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x19c]
mov ecx, dword [ebp + 0x1a0]
add esi, edx
add ecx, edx
mov dword [ebp + 0x19c], esi
mov eax, esi
mov dword [ebp + 0x1a0], ecx
mov byte [eax], 0
mov ecx, dword [ebp + 0x19c]
mov eax, dword [ebp + 0x198]
test eax, eax
mov dword [ebp + 0x1ac], ecx
mov edx, dword [ebx + 0x2e4]
mov dword [ebp + 0x1b0], edx
jne 0x51c57e
cmp dword [ebp + 0x1a0], 5
jbe 0x51c57e
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x2e4]
call fcn.0051c1e0
test al, al
je 0x51d0b5
mov eax, dword [ebp + 0x1b0]
mov cl, byte [eax]
cmp cl, 0xa
je 0x51ce21
cmp cl, 0xd
je 0x51ce26
mov ecx, dword [ebp + 0x198]
xor ebx, ebx
cmp ecx, ebx
lea edx, [ecx + 1]
mov dword [ebp + 0x198], edx
jne 0x51c6f3
lea edi, [ebp + 0x1c0]
push edi
lea esi, [ebp + 0x1c4]
push esi
lea ecx, [esp + 0x30]
push ecx
push str._HTTP__d._d__3d
push eax
call fcn.0053ecb1
add esp, 0x14
cmp eax, 3
jne 0x51c695
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov eax, dword [esi]
shl edx, 1
add eax, edx
mov dword [esi], eax
mov edi, dword [esp + 0x18]
mov edx, dword [ebp + 0x1c0]
mov dword [edi + 0x8388], edx
mov eax, dword [esi]
mov dword [edi + 0x8390], eax
mov al, byte [edi + 0x18d]
test al, al
je 0x51c64b
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x190
jl 0x51c64b
cmp eax, 0x191
je 0x51c64b
cmp eax, 0x197
je 0x51c64b
mov ecx, dword [ebp + 0x78]
or ecx, dword [ebp + 0x7c]
je 0x51d0ee
cmp dword [edi + 0x114], 1
jne 0x51d0ee
cmp eax, 0x1a0
jne 0x51d0ee
cmp dword [esi], 0xa
jne 0x51c657
mov byte [ebp + 0xe4], 1
mov eax, dword [ebp + 0x1c0]
sub eax, 0xcc
je 0x51c672
sub eax, 0x64
je 0x51c672
sub eax, 0x70
jne 0x51c6f9
xor ebx, ebx
mov dword [ebp + 0x130], ebx
mov dword [ebp + 0x134], ebx
mov dword [ebp + 0xa8], ebx
mov dword [ebp + 0xac], ebx
mov byte [ebp + 0x1f2], 1
jmp 0x51c6fb
mov eax, dword [ebp + 0x1b0]
push edi
push str._HTTP__3d
push eax
call fcn.0053ecb1
add esp, 0xc
cmp eax, ebx
mov dword [esi], 0xa
jne 0x51c5ea
mov edi, dword [esp + 0x18]
mov ebx, dword [ebp + 0x1b0]
mov eax, edi
call fcn.0051c1e0
test al, al
je 0x51d110
mov dword [ebp + 0x1c0], 0xc8
mov edx, dword [edi + 0x11c]
xor ecx, ecx
cmp edx, 1
setne cl
add ecx, 0xa
mov dword [esi], ecx
jmp 0x51c5ee
mov edi, dword [esp + 0x18]
jmp 0x51c6fb
xor ebx, ebx
mov al, byte [ebp + 0x1f2]
test al, al
jne 0x51c7a1
mov al, byte [edi + 0x1b3]
test al, al
jne 0x51c7a1
mov edx, dword [ebp + 0x1b0]
push 0xf
push edx
push str.Content_Length:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51c7a1
mov eax, dword [ebp + 0x1b0]
push 0xa
add eax, 0xf
push ebx
push eax
call fcn.005406c8
mov esi, dword [edi + 0x170]
mov ecx, dword [edi + 0x174]
mov ebx, esi
add esp, 0xc
or ebx, ecx
je 0x51c76a
cmp edx, ecx
jg 0x51d11c
jl 0x51c76a
cmp eax, esi
ja 0x51d11c
test edx, edx
jl 0x51c785
jg 0x51c774
test eax, eax
jb 0x51c785
mov dword [ebp + 0x130], eax
mov dword [ebp + 0x134], edx
jmp 0x51cd88
push edx
push eax
push str.Negative_content_length:__lld__closing_after_transfer_n
push edi
mov byte [ebp + 0xe4], 1
call fcn.00521c20
add esp, 0x10
jmp 0x51cd88
mov ecx, dword [ebp + 0x1b0]
push 0xd
push ecx
push str.Content_Type:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51c887
mov esi, dword [ebp + 0x1b0]
mov al, byte [esi + 0xd]
add esi, 0xd
test al, al
je 0x51c7e8
nop
movsx edx, al
push edx
call fcn.0053eb38
add esp, 4
test eax, eax
je 0x51c7e8
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x51c7d0
push 0xd
push esi
call fcn.0053dc90
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x51c80e
push 0xa
push esi
call fcn.0053dc90
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51cd88
movsx eax, byte [ebx]
push eax
call fcn.0053eb38
add esp, 4
test eax, eax
je 0x51c836
mov edi, edi
cmp ebx, esi
jbe 0x51c836
movsx ecx, byte [ebx - 1]
dec ebx
push ecx
call fcn.0053eb38
add esp, 4
test eax, eax
jne 0x51c820
mov edx, dword [edi + 0x83ac]
sub ebx, esi
push edx
inc ebx
call fcn.00518310
lea eax, [ebx + 1]
push eax
call dword [0x5ae5e8]
add esp, 8
test eax, eax
mov dword [edi + 0x83ac], eax
je 0x51d7f4
mov ecx, ebx
mov edx, ecx
shr ecx, 2
mov edi, eax
mov eax, dword [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0x83ac]
mov byte [ebx + ecx], 0
mov edi, eax
jmp 0x51cd88
mov eax, dword [ebp + 0x1c4]
mov esi, 0xa
cmp eax, esi
jne 0x51c8d7
mov al, byte [ebp + 0xe7]
test al, al
je 0x51c8d7
mov edx, dword [ebp + 0x1b0]
push str.keep_alive
push str.Proxy_Connection:
push edx
call fcn.0052b7b0
add esp, 0xc
test al, al
je 0x51c8d7
push str.HTTP_1.0_proxy_connection_set_to_keep_alive__n
push edi
mov byte [ebp + 0xe4], 0
call fcn.00521c20
add esp, 8
jmp 0x51cd88
cmp dword [ebp + 0x1c4], 0xb
jne 0x51c921
mov al, byte [ebp + 0xe7]
test al, al
je 0x51c921
mov eax, dword [ebp + 0x1b0]
push str.close
push str.Proxy_Connection:
push eax
call fcn.0052b7b0
add esp, 0xc
test al, al
je 0x51c921
push str.HTTP_1.1_proxy_connection_set_close__n
push edi
mov byte [ebp + 0xe4], 1
call fcn.00521c20
add esp, 8
jmp 0x51cd88
cmp dword [ebp + 0x1c4], esi
jne 0x51c960
mov ecx, dword [ebp + 0x1b0]
push str.keep_alive
push str.Connection:
push ecx
call fcn.0052b7b0
add esp, 0xc
test al, al
je 0x51c960
push str.HTTP_1.0_connection_set_to_keep_alive__n
push edi
mov byte [ebp + 0xe4], 0
call fcn.00521c20
add esp, 8
jmp 0x51cd88
mov edx, dword [ebp + 0x1b0]
push str.close
push str.Connection:
push edx
call fcn.0052b7b0
add esp, 0xc
test al, al
je 0x51c989
mov byte [ebp + 0xe4], 1
jmp 0x51cd88
mov eax, dword [ebp + 0x1b0]
push str.chunked
push str.Transfer_Encoding:
push eax
call fcn.0052b7b0
add esp, 0xc
test al, al
je 0x51c9bb
push ebp
mov byte [ebp + 0xe6], 1
call fcn.0052e150
add esp, 4
jmp 0x51cd88
mov ecx, dword [ebp + 0x1b0]
push 8
push ecx
push str.Trailer:
call fcn.0051fb90
add esp, 0xc
test eax, eax
jne 0x51cd81
mov edx, dword [ebp + 0x1b0]
push 9
push edx
push str.Trailers:
call fcn.0051fb90
add esp, 0xc
test eax, eax
jne 0x51cd81
mov eax, dword [ebp + 0x1b0]
push 0x11
push eax
push str.Content_Encoding:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51cb00
cmp dword [edi + 0x60], ebx
je 0x51cb00
mov esi, dword [ebp + 0x1b0]
mov al, byte [esi + 0x11]
add esi, 0x11
test al, al
je 0x51ca48
mov edi, edi
movsx ecx, al
push ecx
call fcn.0053eb38
add esp, 4
test eax, eax
je 0x51ca48
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x51ca30
push 8
push esi
push str.identity
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51ca6b
mov dword [ebp + 0x1d4], 0
jmp 0x51cd88
push 7
push esi
push str.deflate
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51ca8e
mov dword [ebp + 0x1d4], 1
jmp 0x51cd88
push 4
push esi
push str.gzip
call fcn.0051fb90
add esp, 0xc
test eax, eax
jne 0x51caf1
push 6
push esi
push str.x_gzip
call fcn.0051fb90
add esp, 0xc
test eax, eax
jne 0x51caf1
push 8
push esi
push str.compress
call fcn.0051fb90
add esp, 0xc
test eax, eax
jne 0x51cae2
push 0xa
push esi
push str.x_compress
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51cd88
mov dword [ebp + 0x1d4], 3
jmp 0x51cd88
mov dword [ebp + 0x1d4], 2
jmp 0x51cd88
mov edx, dword [ebp + 0x1b0]
push str.bytes
push str.Content_Range:
push edx
call fcn.0052b7b0
add esp, 0xc
test al, al
je 0x51cb7a
mov eax, dword [ebp + 0x1b0]
push str.bytes
push eax
call fcn.0051fbb0
mov cl, byte [eax + 5]
add eax, 5
add esp, 8
cmp cl, 0x3a
jne 0x51cb3d
inc eax
push esi
push ebx
push eax
call fcn.005406c8
mov dword [ebp + 0x1b8], eax
mov dword [ebp + 0x1bc], edx
mov ecx, dword [ebp + 0x78]
add esp, 0xc
cmp ecx, eax
jne 0x51cd88
mov edx, dword [ebp + 0x7c]
cmp edx, dword [ebp + 0x1bc]
jne 0x51cd88
mov byte [ebp + 0x1b4], 1
jmp 0x51cd88
cmp dword [edi + 0x1d4], ebx
je 0x51cbe4
mov eax, dword [ebp + 0x1b0]
push 0xb
push eax
push str.Set_Cookie:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51cbe4
push 2
push 2
push edi
call fcn.00520fe0
mov eax, dword [ebp + 0x160]
add esp, 0xc
cmp eax, ebx
jne 0x51cbb6
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x1b0]
push ecx
push eax
mov eax, dword [edi + 0x1d4]
add edx, 0xb
push edx
push 1
push eax
push edi
call fcn.0051ed80
push 2
push edi
call fcn.00521020
add esp, 0x20
jmp 0x51cd88
mov ecx, dword [ebp + 0x1b0]
push 0xe
push ecx
push str.Last_Modified:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51cc50
cmp dword [edi + 0x108], ebx
jne 0x51cc10
mov al, byte [edi + 0x185]
test al, al
je 0x51cc50
push ebx
call fcn.0053ef6d
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x1b0]
lea edx, [esp + 0x30]
push edx
add eax, 0xe
push eax
call fcn.0052e980
mov dword [ebp + 0x1d8], eax
mov cl, byte [edi + 0x185]
add esp, 0xc
test cl, cl
je 0x51cd88
mov dword [edi + 0x8394], eax
jmp 0x51cd88
mov ecx, dword [ebp + 0x1b0]
push 0x11
push ecx
push str.WWW_Authenticate:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51cc77
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x191
je 0x51cc9e
mov edx, dword [ebp + 0x1b0]
push 0x13
push edx
push str.Proxy_authenticate:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51ccbc
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x197
jne 0x51ccbc
mov ecx, dword [ebp + 0x1b0]
push ecx
push eax
push ebp
call fcn.0052b340
add esp, 0xc
cmp eax, ebx
jne 0x51da24
jmp 0x51cd88
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x12c
jl 0x51cd88
cmp eax, 0x190
jge 0x51cd88
mov edx, dword [ebp + 0x1b0]
push 9
push edx
push str.Location:
call fcn.0051fb90
add esp, 0xc
test eax, eax
je 0x51cd88
mov al, byte [edi + 0x18e]
test al, al
je 0x51cd88
mov esi, dword [ebp + 0x1b0]
mov al, byte [esi + 9]
add esi, 9
test al, al
je 0x51cd2c
movsx eax, al
push eax
call fcn.0053eb38
add esp, 4
test eax, eax
je 0x51cd2c
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x51cd14
mov ebx, dword [ebp + 0x1ac]
dec ebx
cmp ebx, esi
jb 0x51cd4c
movsx ecx, byte [ebx]
push ecx
call fcn.0053eb38
add esp, 4
test eax, eax
je 0x51cd4c
dec ebx
cmp ebx, esi
jae 0x51cd37
mov dl, byte [ebx + 1]
inc ebx
cmp ebx, esi
mov byte [esp + 0x13], dl
je 0x51cd88
push esi
mov byte [ebx], 0
call dword [0x5ae5f4]
mov dword [ebp + 0x164], eax
mov al, byte [esp + 0x17]
mov byte [ebx], al
mov eax, dword [ebp + 0x164]
add esp, 4
test eax, eax
je 0x51d7f4
jmp 0x51cd88
mov byte [ebp + 0xfd], 1
mov al, byte [edi + 0x190]
test al, al
mov esi, 2
je 0x51cd9c
mov esi, 3
mov al, byte [edi + 0x1a0]
test al, al
je 0x51cdc0
mov ecx, dword [ebp + 0x1a0]
mov edx, dword [ebp + 0x1b0]
push ebp
push ecx
push edx
push 1
push edi
call fcn.00521a60
add esp, 0x14
mov eax, dword [ebp + 0x1a0]
mov ecx, dword [ebp + 0x1b0]
push eax
push ecx
push esi
push edi
call fcn.00521ec0
add esp, 0x10
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x51da24
mov esi, dword [edi + 0x8398]
mov edx, dword [ebp + 0x1a0]
add esi, edx
mov dword [edi + 0x8398], esi
mov ecx, dword [ebp + 0x68]
mov eax, dword [ebp + 0x1a0]
add ecx, eax
mov dword [ebp + 0x68], ecx
mov ecx, dword [edi + 0x2e4]
mov dword [ebp + 0x19c], ecx
mov dword [ebp + 0x1a0], 0
jmp 0x51cfa6
cmp cl, 0xd
jne 0x51ce2d
inc eax
mov dword [ebp + 0x1b0], eax
mov eax, dword [ebp + 0x1b0]
cmp byte [eax], 0xa
jne 0x51ce3f
inc eax
mov dword [ebp + 0x1b0], eax
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x64
jne 0x51ce7d
mov cl, byte [ebp + 0x1d0]
test cl, cl
mov byte [ebp + 0x190], 1
mov dword [ebp + 0x198], 0
je 0x51ce84
mov ecx, dword [ebp + 0x1ec]
or ecx, 2
mov byte [ebp + 0x1d0], 0
mov dword [ebp + 0x1ec], ecx
jmp 0x51ce84
mov byte [ebp + 0x190], 0
cmp eax, 0x1a1
jne 0x51cea1
mov eax, dword [ebp + 0x1ec]
and eax, 0xfffffffd
mov byte [ebp + 0x1d0], 0
mov dword [ebp + 0x1ec], eax
push ebp
call fcn.0052b450
add esp, 4
test eax, eax
jne 0x51d137
mov edi, dword [esp + 0x18]
mov al, byte [edi + 0x190]
test al, al
mov ecx, 2
je 0x51ceca
mov ecx, 3
mov eax, dword [edi + 0x2e4]
mov esi, dword [ebp + 0x1b0]
sub esi, eax
push esi
push eax
push ecx
push edi
call fcn.00521ec0
add esp, 0x10
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x51da24
add dword [edi + 0x8398], esi
mov edx, dword [ebp + 0x68]
add edx, esi
mov dword [ebp + 0x68], edx
mov ecx, dword [ebp + 0x1c0]
mov eax, edx
xor edx, edx
cmp ecx, 0x64
mov ecx, dword [ebp + 0x7c]
setne dl
dec edx
and eax, edx
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x78]
or eax, ecx
je 0x51cf3a
cmp dword [edi + 0x114], 1
jne 0x51cf3a
cmp dword [ebp + 0x1c0], 0x1a0
jne 0x51cf3a
mov byte [esp + 0x3c], 1
jmp 0x51cf76
push ebp
call fcn.0052b990
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x51da24
mov al, byte [ebp + 0xf8]
test al, al
je 0x51cf76
push str.Keep_sending_data_to_get_tossed_away__n
push edi
call fcn.00521c20
mov eax, dword [ebp + 0x1ec]
add esp, 8
or eax, 2
mov dword [ebp + 0x1ec], eax
mov al, byte [ebp + 0x190]
test al, al
je 0x51d15d
mov ecx, dword [edi + 0x2e4]
mov al, byte [esp + 0x3c]
test al, al
mov dword [ebp + 0x19c], ecx
mov dword [ebp + 0x1a0], 0
jne 0x51d562
mov edx, dword [ebp + 0x1a4]
cmp byte [edx], 0
je 0x51d1ff
mov ebx, dword [esp + 0x18]
jmp 0x51c450
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1a0]
add eax, ecx
mov ecx, dword [ebx + 0x2e8]
cmp eax, ecx
jb 0x51d017
lea eax, [eax + eax*2]
shr eax, 1
lea edi, [ecx + ecx]
cmp eax, edi
jbe 0x51cfe2
mov edi, eax
mov eax, dword [ebx + 0x2e4]
mov esi, dword [ebp + 0x19c]
push edi
push eax
sub esi, eax
call dword [0x5ae5f0]
add esp, 8
test eax, eax
je 0x51d09a
mov dword [ebx + 0x2e4], eax
add eax, esi
mov dword [ebx + 0x2e8], edi
mov dword [ebp + 0x19c], eax
mov ecx, dword [esp + 0x14]
mov edi, dword [ebp + 0x19c]
mov esi, dword [ebp + 0x1a4]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 0x19c]
mov edx, dword [ebp + 0x1a0]
mov ecx, dword [ebp + 0x198]
add esi, eax
add edx, eax
test ecx, ecx
mov dword [ebp + 0x19c], esi
mov dword [ebp + 0x1a0], edx
mov eax, edx
jne 0x51d203
cmp eax, 5
jbe 0x51d203
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x2e4]
call fcn.0051c1e0
test al, al
jne 0x51d1ff
mov byte [ebp + 0x190], al
mov dword [ebp + 0x194], 2
jmp 0x51d1ff
push str.Failed_to_alloc_memory_for_big_header_
push ebx
call fcn.00521d00
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0x28
ret
mov eax, dword [esp + 0x14]
test eax, eax
mov ebx, dword [esp + 0x18]
mov byte [ebp + 0x190], 0
je 0x51d0d7
mov dword [ebp + 0x194], 1
jmp 0x51d203
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x194], 2
mov dword [esp + 0x14], eax
jmp 0x51d203
mov ecx, dword [ebp + 0x1c0]
push ecx
push str.The_requested_URL_returned_error:__d
push edi
call fcn.00521d00
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 0x16
pop ebx
add esp, 0x28
ret
mov byte [ebp + 0x190], 0
jmp 0x51d1ff
push str.Maximum_file_size_exceeded
push edi
call fcn.00521d00
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x3f
pop ebx
add esp, 0x28
ret
mov edx, dword [ebp + 0x1c0]
mov eax, dword [esp + 0x18]
push edx
push str.The_requested_URL_returned_error:__d
push eax
call fcn.00521d00
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 0x16
pop ebx
add esp, 0x28
ret
mov al, byte [ebp + 0xf5]
test al, al
je 0x51d16e
mov byte [esp + 0x3c], 1
jmp 0x51d189
mov al, byte [ebp + 0xe6]
test al, al
je 0x51d189
mov eax, 0xffffffff
mov dword [ebp + 0x130], eax
mov dword [ebp + 0x134], eax
mov eax, dword [ebp + 0x130]
cmp eax, 0xffffffff
mov ecx, dword [ebp + 0x134]
jne 0x51d19e
cmp ecx, eax
je 0x51d1c1
push ecx
push eax
push edi
call fcn.00522e70
mov ecx, dword [ebp + 0x130]
mov edx, dword [ebp + 0x134]
add esp, 0xc
mov dword [ebp + 0xa8], ecx
mov dword [ebp + 0xac], edx
mov eax, dword [ebp + 0xa8]
test eax, eax
jne 0x51d1dc
mov eax, dword [ebp + 0xac]
test eax, eax
jne 0x51d1dc
mov byte [esp + 0x3c], 1
jmp 0x51d1e4
mov al, byte [esp + 0x3c]
test al, al
je 0x51d1ff
mov ecx, dword [ebp + 0x1ec]
mov al, byte [esp + 0x3c]
and ecx, 0xfffffffe
test al, al
mov dword [ebp + 0x1ec], ecx
jne 0x51d562
mov ebx, dword [esp + 0x18]
mov eax, dword [ebp + 0x1a4]
test eax, eax
je 0x51d553
mov al, byte [ebp + 0x190]
test al, al
jne 0x51d553
mov eax, dword [esp + 0x14]
test eax, eax
jg 0x51d233
mov al, byte [esp + 0x12]
test al, al
je 0x51d562
mov eax, dword [ebp + 0x1dc]
test eax, eax
jne 0x51d350
mov al, byte [esp + 0x12]
test al, al
jne 0x51d350
test byte [ebp + 8], 4
je 0x51d350
mov eax, dword [ebp + 0x164]
test eax, eax
je 0x51d2a0
mov al, byte [ebp + 0xe4]
test al, al
je 0x51d28b
mov eax, dword [ebp + 0x1ec]
and eax, 0xfffffffe
pop edi
mov dword [ebp + 0x1ec], eax
mov eax, dword [esp + 0x3c]
pop esi
pop ebp
mov byte [eax], 1
xor eax, eax
pop ebx
add esp, 0x28
ret
push str.Ignoring_the_response_body_n
push ebx
mov byte [ebp + 0x1f1], 1
call fcn.00521c20
add esp, 8
mov ecx, dword [ebp + 0x78]
or ecx, dword [ebp + 0x7c]
je 0x51d2e0
mov al, byte [ebp + 0x1b4]
test al, al
jne 0x51d2e0
cmp dword [ebx + 0x114], 1
jne 0x51d2e0
mov al, byte [ebp + 0x1f1]
test al, al
jne 0x51d2e0
push str.HTTP_server_doesnt_seem_to_support_byte_ranges._Cannot_resume.
push ebx
call fcn.00521d00
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x21
pop ebx
add esp, 0x28
ret
mov eax, dword [ebx + 0x108]
test eax, eax
je 0x51d350
mov ecx, dword [ebp + 0x70]
test ecx, ecx
jne 0x51d350
mov edx, dword [ebp + 0x1d8]
test edx, edx
jle 0x51d350
mov ecx, dword [ebx + 0x10c]
test ecx, ecx
jle 0x51d350
sub eax, 2
je 0x51d32d
cmp edx, ecx
jge 0x51d350
push str.The_requested_document_is_not_new_enough_n
push ebx
call fcn.00521c20
mov edx, dword [esp + 0x48]
add esp, 8
pop edi
pop esi
pop ebp
mov byte [edx], 1
xor eax, eax
pop ebx
add esp, 0x28
ret
cmp edx, ecx
jle 0x51d350
push str.The_requested_document_is_not_old_enough_n
push ebx
call fcn.00521c20
mov eax, dword [esp + 0x48]
add esp, 8
pop edi
pop esi
pop ebp
mov byte [eax], 1
xor eax, eax
pop ebx
add esp, 0x28
ret
inc dword [ebp + 0x1dc]
mov al, byte [ebx + 0x1a0]
test al, al
je 0x51d3b5
mov eax, dword [ebp + 0x194]
test eax, eax
push ebp
je 0x51d39e
mov ecx, dword [ebp + 0x1a0]
mov edx, dword [ebx + 0x2e4]
push ecx
push edx
push 3
push ebx
call fcn.00521a60
mov eax, dword [ebp + 0x194]
add esp, 0x14
cmp eax, 1
jne 0x51d3b5
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1a4]
push ebp
push eax
push ecx
jmp 0x51d3aa
mov edx, dword [esp + 0x18]
mov eax, dword [ebp + 0x1a4]
push edx
push eax
push 3
push ebx
call fcn.00521a60
add esp, 0x14
mov al, byte [ebp + 0xe6]
test al, al
je 0x51d425
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1a4]
lea ecx, [esp + 0x14]
push ecx
push edx
push eax
push ebp
call fcn.0052e170
add esp, 0x10
test eax, eax
jle 0x51d419
cmp eax, 4
jne 0x51d3fd
push str.Failed_writing_data
push ebx
call fcn.00521d00
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x17
pop ebx
add esp, 0x28
ret
push eax
push str.Received_problem__d_in_the_chunky_parser
push ebx
call fcn.00521d00
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 0x38
pop ebx
add esp, 0x28
ret
cmp eax, 0xffffffff
jne 0x51d425
and dword [ebp + 0x1ec], 0xfffffffe
mov esi, dword [ebp + 0xa8]
cmp esi, 0xffffffff
mov ecx, dword [ebp + 0xac]
jne 0x51d43a
cmp ecx, esi
je 0x51d478
mov edi, dword [esp + 0x14]
mov eax, edi
cdq
add eax, dword [ebp + 0x170]
adc edx, dword [ebp + 0x174]
cmp edx, ecx
jl 0x51d47c
jg 0x51d457
cmp eax, esi
jb 0x51d47c
mov edi, dword [ebp + 0xa8]
sub edi, dword [ebp + 0x170]
mov dword [esp + 0x14], edi
jns 0x51d46f
xor edi, edi
mov dword [esp + 0x14], edi
and dword [ebp + 0x1ec], 0xfffffffe
jmp 0x51d47c
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x170]
mov eax, edi
cdq
add ecx, eax
mov eax, dword [ebp + 0x174]
adc eax, edx
mov dword [ebp + 0x170], ecx
mov edx, dword [ebp + 0x170]
mov ecx, eax
push ecx
push edx
push ebx
mov dword [ebp + 0x174], eax
call fcn.00522e30
mov al, byte [ebp + 0xe6]
add esp, 0xc
test al, al
jne 0x51d553
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x51d4da
mov eax, dword [ebp + 0x194]
test eax, eax
jne 0x51d4e4
mov al, byte [esp + 0x12]
test al, al
je 0x51d562
mov eax, dword [ebp + 0x194]
test eax, eax
je 0x51d513
mov al, byte [ebp + 0x1f1]
test al, al
jne 0x51d513
mov eax, dword [ebp + 0x1a0]
mov ecx, dword [ebx + 0x2e4]
push eax
push ecx
push 1
push ebx
call fcn.00521ec0
add esp, 0x10
test eax, eax
je 0x51d517
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [esp + 0x1c]
cmp dword [ebp + 0x194], 2
jge 0x51d541
mov cl, byte [ebp + 0x1f1]
test cl, cl
jne 0x51d541
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x1a4]
push edx
push eax
push 1
push ebx
call fcn.00521ec0
add esp, 0x10
test eax, eax
mov dword [ebp + 0x194], 0
jne 0x51da24
mov al, byte [esp + 0x12]
test al, al
je 0x51d562
and dword [ebp + 0x1ec], 0xfffffffe
test byte [ebp + 0x1ec], 2
je 0x51d801
test byte [esp + 0x34], 2
je 0x51d801
mov ecx, dword [ebp + 0x170]
or ecx, dword [ebp + 0x174]
jne 0x51d5a7
mov edx, dword [ebp + 0x178]
or edx, dword [ebp + 0x17c]
jne 0x51d5a7
mov esi, dword [esp + 0x18]
push 4
push esi
call fcn.00522ce0
add esp, 8
jmp 0x51d5ab
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
mov eax, dword [ebp + 0x1f8]
or edi, 2
test eax, eax
jne 0x51d6c2
mov eax, dword [ebp + 0x1e4]
mov dword [ebp + 0x1fc], eax
mov al, byte [ebp + 0x1f0]
test al, al
jne 0x51d785
mov al, byte [ebp + 0x1d1]
test al, al
je 0x51d5f4
mov ecx, dword [ebp + 0x16c]
cmp dword [ecx + 0x78], 2
je 0x51d7b3
lea edx, [esp + 0x34]
push edx
push 0x4000
push ebp
call fcn.0051c0e0
add esp, 0xc
test eax, eax
jne 0x51da24
mov ecx, dword [esp + 0x34]
test ecx, ecx
mov dword [esp + 0x14], ecx
jle 0x51d78d
mov dword [ebp + 0x1f8], ecx
mov al, byte [esi + 0xe5]
test al, al
je 0x51d6c2
mov eax, dword [esi + 0x8308]
test eax, eax
jne 0x51d65d
push 0x8000
call dword [0x5ae5e8]
add esp, 4
test eax, eax
mov dword [esi + 0x8308], eax
mov ecx, dword [esp + 0x14]
je 0x51d7e6
xor edx, edx
xor eax, eax
test ecx, ecx
jle 0x51d6a8
jmp 0x51d670
mov ecx, dword [ebp + 0x1fc]
mov cl, byte [edx + ecx]
cmp cl, 0xa
jne 0x51d695
mov ecx, dword [esi + 0x8308]
mov byte [eax + ecx], 0xd
mov ecx, dword [esi + 0x8308]
inc eax
mov byte [eax + ecx], 0xa
jmp 0x51d69e
mov ebx, dword [esi + 0x8308]
mov byte [eax + ebx], cl
mov ecx, dword [esp + 0x14]
inc edx
inc eax
cmp edx, ecx
jl 0x51d670
cmp eax, ecx
je 0x51d6c2
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x8308]
mov dword [ebp + 0x1fc], edx
mov dword [ebp + 0x1f8], eax
mov ecx, dword [ebp + 0x1f8]
mov edx, dword [ebp + 0x1fc]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [ebp + 0x13c]
push ecx
push edx
push eax
push ebp
call fcn.00521df0
add esp, 0x14
test eax, eax
jne 0x51da24
mov al, byte [esi + 0x1a0]
test al, al
je 0x51d70f
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0x1fc]
push ebp
push ecx
push edx
push 4
push esi
call fcn.00521a60
add esp, 0x14
mov ecx, dword [ebp + 0x1f8]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x51d72d
sub ecx, eax
mov dword [ebp + 0x1f8], ecx
add dword [ebp + 0x1fc], eax
jmp 0x51d754
mov ecx, dword [ebp + 0x1e4]
mov dword [ebp + 0x1fc], ecx
mov dword [ebp + 0x1f8], 0
mov cl, byte [ebp + 0x1f0]
test cl, cl
je 0x51d754
and dword [ebp + 0x1ec], 0xfffffffd
mov ecx, dword [ebp + 0x178]
cdq
add ecx, eax
mov eax, dword [ebp + 0x17c]
adc eax, edx
mov edx, eax
mov dword [ebp + 0x17c], eax
push edx
mov eax, ecx
push eax
push esi
mov dword [ebp + 0x178], ecx
call fcn.00522e50
add esp, 0xc
jmp 0x51d809
mov dword [esp + 0x14], 0
and dword [ebp + 0x1ec], 0xfffffffd
mov al, byte [ebp + 0xf8]
test al, al
je 0x51d809
push ebp
call fcn.0051c240
add esp, 4
test eax, eax
je 0x51d809
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov ecx, dword [ebp + 0x1ec]
and ecx, 0xfffffffd
mov byte [ebp + 0x1d1], 0
mov byte [ebp + 0x1d0], 1
mov dword [ebp + 0x1ec], ecx
call fcn.005221e0
mov dword [ebp + 0x1c8], eax
mov dword [ebp + 0x1cc], edx
and edi, 0xfffffffd
jmp 0x51d809
push str.Failed_to_alloc_scratch_buffer_
push esi
call fcn.00521d00
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0x28
ret
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x20]
call fcn.005221e0
test edi, edi
mov dword [ebp + 0x188], eax
mov dword [ebp + 0x18c], edx
je 0x51d856
mov eax, dword [ebp + 0x138]
test eax, eax
je 0x51d839
mov ecx, dword [ebp + 0x170]
mov dword [eax], ecx
mov edx, dword [ebp + 0x174]
mov dword [eax + 4], edx
mov eax, dword [ebp + 0x140]
test eax, eax
je 0x51d8a1
mov ecx, dword [ebp + 0x178]
mov dword [eax], ecx
mov edx, dword [ebp + 0x17c]
mov dword [eax + 4], edx
jmp 0x51d8a1
mov al, byte [ebp + 0x1d0]
test al, al
je 0x51d8a1
mov eax, dword [ebp + 0x1cc]
mov ecx, dword [ebp + 0x1c8]
mov edx, dword [ebp + 0x18c]
push eax
mov eax, dword [ebp + 0x188]
push ecx
push edx
push eax
call fcn.00522210
add esp, 0x10
cmp eax, 0x3e8
jle 0x51d8a1
mov eax, dword [ebp + 0x1ec]
or eax, 2
mov byte [ebp + 0x1d0], 0
mov dword [ebp + 0x1ec], eax
push ebp
call fcn.00522ef0
add esp, 4
test eax, eax
je 0x51d8bb
pop edi
pop esi
pop ebp
mov eax, 0x2a
pop ebx
add esp, 0x28
ret
mov ecx, dword [ebp + 0x18c]
mov edx, dword [ebp + 0x188]
push ecx
push edx
push esi
call fcn.0052e070
add esp, 0xc
test eax, eax
jne 0x51da24
mov eax, dword [esi + 0x98]
test eax, eax
je 0x51d95c
mov eax, dword [ebp + 0x184]
mov ecx, dword [ebp + 0x180]
mov edx, dword [ebp + 0x18c]
push eax
mov eax, dword [ebp + 0x188]
push ecx
push edx
push eax
call fcn.00522210
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
mov eax, dword [esi + 0x98]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add esp, 0x10
cmp ecx, eax
jl 0x51d95c
mov edx, dword [ebp + 0x134]
mov eax, dword [ebp + 0x130]
mov ecx, dword [ebp + 0x174]
push edx
mov edx, dword [ebp + 0x170]
push eax
push ecx
push edx
push str.Operation_timed_out_with__lld_out_of__lld_bytes_received
push esi
call fcn.00521d00
add esp, 0x18
pop edi
pop esi
pop ebp
mov eax, 0x1c
pop ebx
add esp, 0x28
ret
mov eax, dword [ebp + 0x1ec]
test eax, eax
jne 0x51da19
mov bl, byte [ebp + 0xf5]
test bl, bl
jne 0x51da00
mov eax, dword [ebp + 0x130]
mov ecx, dword [ebp + 0x134]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x51d9cb
mov edx, dword [ebp + 0x170]
cmp edx, eax
mov edi, dword [ebp + 0x174]
jne 0x51d9a1
cmp edi, ecx
je 0x51d9cb
cmp dword [ebp + 0x164], 0
jne 0x51d9cb
sub eax, edx
sbb ecx, edi
push ecx
push eax
push str.transfer_closed_with__lld_bytes_remaining_to_read
push esi
call fcn.00521d00
add esp, 0x10
pop edi
pop esi
pop ebp
mov eax, 0x12
pop ebx
add esp, 0x28
ret
test bl, bl
jne 0x51da00
mov al, byte [ebp + 0xe6]
test al, al
je 0x51da00
mov eax, dword [ebp + 0x16c]
cmp dword [eax + 0x54], 7
je 0x51da00
push str.transfer_closed_with_outstanding_read_data_remaining
push esi
call fcn.00521d00
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x12
pop ebx
add esp, 0x28
ret
push ebp
call fcn.00522ef0
add esp, 4
test eax, eax
jne 0x51d8ae
mov eax, dword [ebp + 0x1ec]
test eax, eax
mov edx, dword [esp + 0x40]
sete cl
mov byte [edx], cl
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret