Function at 0x409890
Capabilities:
Check http status code

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, eax
jmp 0x4098a0
mov eax, dword [esi + 0x5c]
mov ebx, dword [esp + 0x20]
mov dword [esi + 0x60], eax
mov ecx, dword [ebx]
push ecx
push 0xa
push eax
call fcn.004ab110
add esp, 0xc
mov dword [esi + 0x64], eax
test eax, eax
je 0x40a263
sub eax, dword [esi + 0x5c]
inc eax
mov ebp, eax
mov eax, ebx
sub dword [eax], ebp
mov eax, dword [esi + 0x64]
inc eax
mov dword [esi + 0x5c], eax
sub eax, dword [esi + 0x60]
mov ebx, edi
push eax
call fcn.004097e0
add esp, 4
test eax, eax
jne 0x40a3c2
mov edx, dword [esi + 0x54]
mov dword [esi + 0x64], edx
mov eax, dword [edi + 0x45c]
xor ebx, ebx
mov dword [esi + 0x68], eax
cmp dword [esi + 0x50], ebx
jne 0x40991f
cmp dword [esi + 0x58], 5
jbe 0x40991f
mov ecx, dword [edi + 0x45c]
push ecx
mov eax, edi
call fcn.00409650
add esp, 4
test al, al
je 0x40a2b7
mov eax, dword [esi + 0x68]
mov cl, byte [eax]
cmp cl, 0xa
je 0x40a0c5
cmp cl, 0xd
je 0x40a0ca
mov ecx, dword [esi + 0x50]
lea edx, [ecx + 1]
mov dword [esi + 0x50], edx
cmp ecx, ebx
jne 0x409ab2
mov ebx, dword [esp + 0x1c]
lea ebp, [esi + 0x78]
push ebp
add ebx, 0xc0
push ebx
lea ecx, [esp + 0x14]
push ecx
push str._HTTP__d._d__3d
push eax
call fcn.004aa76f
add esp, 0x14
cmp eax, 3
jne 0x40997b
mov eax, dword [esp + 0xc]
lea edx, [eax + eax*4]
add edx, edx
add dword [ebx], edx
jmp 0x4099ba
mov eax, dword [esi + 0x68]
push ebp
push str._HTTP__3d
push eax
call fcn.004aa76f
add esp, 0xc
mov dword [ebx], 0xa
test eax, eax
jne 0x4099ba
mov ecx, dword [esi + 0x68]
push ecx
mov eax, edi
call fcn.00409650
add esp, 4
test al, al
je 0x40a2e4
mov dword [ebp], 0xc8
mov dword [ebx], 0xa
mov edx, dword [ebp]
mov dword [edi + 0x8560], edx
mov eax, dword [ebx]
mov dword [edi + 0x8568], eax
mov eax, dword [edi + 0x8530]
test eax, eax
je 0x4099d9
cmp eax, dword [ebx]
jle 0x4099e1
mov ecx, dword [ebx]
mov dword [edi + 0x8530], ecx
cmp byte [edi + 0x260], 0
je 0x409a3f
mov eax, dword [ebp]
cmp eax, 0x190
jl 0x409a3f
mov ecx, dword [esp + 0x1c]
cmp eax, 0x191
jne 0x409a08
cmp byte [ecx + 0x14c], 0
jne 0x409a43
cmp eax, 0x197
jne 0x409a18
cmp byte [ecx + 0x14d], 0
jne 0x409a43
mov edx, dword [edi + 0x8550]
or edx, dword [edi + 0x8554]
je 0x409a36
cmp dword [edi + 0x1e0], 1
jne 0x409a36
cmp eax, 0x1a0
je 0x409a43
mov edx, dword [esi + 0x78]
push edx
jmp 0x40a31b
mov ecx, dword [esp + 0x1c]
mov ebx, dword [ebx]
cmp ebx, 0xa
jne 0x409a65
push str.HTTP_1.0__assume_close_after_body_n
push edi
call fcn.0040d790
mov eax, dword [esp + 0x24]
add esp, 8
mov byte [eax + 0x148], 1
jmp 0x409a7a
cmp ebx, 0xb
jl 0x409a7a
cmp byte [ecx + 0x148], 0
jne 0x409a7a
mov byte [ecx + 0x192], 1
mov ebp, dword [ebp]
sub ebp, 0xcc
je 0x409a8f
sub ebp, 0x64
je 0x409a8f
sub ebp, 0x70
jne 0x409ab2
xor eax, eax
cmp dword [edi + 0x1d0], eax
je 0x409aa0
mov byte [edi + 0x8570], 1
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov byte [esi + 0xae], 1
cmp byte [esi + 0xae], 0
jne 0x409b5f
cmp byte [edi + 0x287], 0
jne 0x409b5f
mov ecx, dword [esi + 0x68]
push 0xf
push ecx
push str.Content_Length:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409b5f
mov edx, dword [esi + 0x68]
push 0xa
add edx, 0xf
push 0
push edx
call fcn.004ab0da
mov ebx, dword [edi + 0x240]
mov ecx, dword [edi + 0x244]
mov ebp, ebx
add esp, 0xc
or ebp, ecx
je 0x409b1a
cmp edx, ecx
jg 0x40a2f1
jl 0x409b1a
cmp eax, ebx
ja 0x40a2f1
test edx, edx
jl 0x409b3f
jg 0x409b24
test eax, eax
jb 0x409b3f
push edx
push eax
push edi
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], edx
call fcn.00411a90
add esp, 0xc
jmp 0x40a05f
mov ecx, dword [esp + 0x1c]
push edx
push eax
push str.Negative_content_length:__lld__closing_after_transfer_n
push edi
mov byte [ecx + 0x148], 1
call fcn.0040d790
add esp, 0x10
jmp 0x40a05f
mov edx, dword [esi + 0x68]
push 0xd
push edx
push str.Content_Type:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409bba
mov eax, dword [esi + 0x68]
push eax
call fcn.0041ba10
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40a30b
cmp byte [ebx], 0
jne 0x409ba0
push ebx
call dword [0x501098]
add esp, 4
jmp 0x40a05f
mov ecx, dword [edi + 0x8588]
push ecx
call fcn.00404af0
add esp, 4
mov dword [edi + 0x8588], ebx
jmp 0x40a05f
mov ebx, dword [esp + 0x1c]
mov ebp, 0xa
cmp dword [ebx + 0xc0], ebp
jne 0x409c08
cmp byte [ebx + 0x14b], 0
je 0x409c08
mov edx, dword [esi + 0x68]
push str.keep_alive
push str.Proxy_Connection:
push edx
call fcn.0041c500
add esp, 0xc
test al, al
je 0x409c08
push str.HTTP_1.0_proxy_connection_set_to_keep_alive__n
push edi
mov byte [ebx + 0x148], 0
call fcn.0040d790
add esp, 8
jmp 0x40a05f
cmp dword [ebx + 0xc0], 0xb
jne 0x409c4e
cmp byte [ebx + 0x14b], 0
je 0x409c4e
mov eax, dword [esi + 0x68]
push str.close
push str.Proxy_Connection:
push eax
call fcn.0041c500
add esp, 0xc
test al, al
je 0x409c4e
push str.HTTP_1.1_proxy_connection_set_close__n
push edi
mov byte [ebx + 0x148], 1
call fcn.0040d790
add esp, 8
jmp 0x40a05f
cmp dword [ebx + 0xc0], ebp
jne 0x409c8a
mov ecx, dword [esi + 0x68]
push str.keep_alive
push str.Connection:
push ecx
call fcn.0041c500
add esp, 0xc
test al, al
je 0x409c8a
push str.HTTP_1.0_connection_set_to_keep_alive__n
push edi
mov byte [ebx + 0x148], 0
call fcn.0040d790
add esp, 8
jmp 0x40a05f
mov edx, dword [esi + 0x68]
push str.close
push str.Connection:
push edx
call fcn.0041c500
add esp, 0xc
test al, al
je 0x409cb0
mov byte [ebx + 0x148], 1
jmp 0x40a05f
mov eax, dword [esi + 0x68]
push str.chunked
push str.Transfer_Encoding:
push eax
call fcn.0041c500
add esp, 0xc
test al, al
je 0x409cdf
push ebx
mov byte [esi + 0xc0], 1
call fcn.00422030
add esp, 4
jmp 0x40a05f
mov ecx, dword [esi + 0x68]
push 8
push ecx
push str.Trailer:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
jne 0x40a058
mov edx, dword [esi + 0x68]
push 9
push edx
push str.Trailers:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
jne 0x40a058
mov eax, dword [esi + 0x68]
push 0x11
push eax
push str.Content_Encoding:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409e1f
cmp dword [edi + 0x2b8], 0
je 0x409e1f
mov ebx, dword [esi + 0x68]
mov al, byte [ebx + 0x11]
add ebx, 0x11
test al, al
je 0x409d68
lea ebx, [ebx]
movzx ecx, al
push ecx
call fcn.004aab4e
add esp, 4
test eax, eax
je 0x409d68
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x409d50
push 8
push ebx
push str.identity
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409d8b
mov dword [esi + 0x88], 0
jmp 0x40a05f
push 7
push ebx
push str.deflate
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409dae
mov dword [esi + 0x88], 1
jmp 0x40a05f
push 4
push ebx
push str.gzip
call fcn.0040e6d0
add esp, 0xc
test eax, eax
jne 0x409e10
push 6
push ebx
push str.x_gzip
call fcn.0040e6d0
add esp, 0xc
test eax, eax
jne 0x409e10
push 8
push ebx
push str.compress
call fcn.0040e6d0
add esp, 0xc
test eax, eax
jne 0x409e01
push ebp
push ebx
push str.x_compress
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x40a05f
mov dword [esi + 0x88], 3
jmp 0x40a05f
mov dword [esi + 0x88], 2
jmp 0x40a05f
mov edx, dword [esi + 0x68]
push 0xe
push edx
push str.Content_Range:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409e93
mov ebx, dword [esi + 0x68]
mov al, byte [ebx + 0xe]
add ebx, 0xe
test al, al
je 0x409e5b
movzx eax, al
push eax
call fcn.004aaa49
add esp, 4
test eax, eax
jne 0x409e5b
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x409e43
push ebp
push 0
push ebx
call fcn.004ab0da
mov dword [esi + 0x70], eax
mov dword [esi + 0x74], edx
mov ecx, dword [edi + 0x8550]
add esp, 0xc
cmp ecx, eax
jne 0x40a05f
mov edx, dword [edi + 0x8554]
cmp edx, dword [esi + 0x74]
jne 0x40a05f
mov byte [esi + 0x6c], 1
jmp 0x40a05f
cmp dword [edi + 0x344], 0
je 0x409efe
mov eax, dword [esi + 0x68]
push 0xb
push eax
push str.Set_Cookie:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409efe
push 2
push 2
push edi
call fcn.00413530
mov eax, dword [ebx + 0x188]
add esp, 0xc
test eax, eax
jne 0x409ed0
mov eax, dword [ebx + 0x8c]
mov ecx, dword [edi + 0x8544]
mov edx, dword [esi + 0x68]
push ecx
push eax
mov eax, dword [edi + 0x344]
add edx, 0xb
push edx
push 1
push eax
push edi
call fcn.0040c520
push 2
push edi
call fcn.00413570
add esp, 0x20
jmp 0x40a05f
mov ecx, dword [esi + 0x68]
push 0xe
push ecx
push str.Last_Modified:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409f70
cmp dword [edi + 0x1d0], 0
jne 0x409f27
cmp byte [edi + 0x259], 0
je 0x409f70
push 0
call fcn.004a990d
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x68]
mov dword [esp + 0x18], edx
lea edx, [esp + 0x14]
push edx
add eax, 0xe
push eax
call fcn.00421fe0
add esp, 0xc
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], edx
cmp byte [edi + 0x259], 0
je 0x40a05f
mov ecx, eax
mov dword [edi + 0x856c], ecx
jmp 0x40a05f
mov edx, dword [esi + 0x68]
push 0x11
push edx
push str.WWW_Authenticate:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409f91
mov eax, dword [esi + 0x78]
cmp eax, 0x191
je 0x409fb2
mov eax, dword [esi + 0x68]
push 0x13
push eax
push str.Proxy_authenticate:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x409fcd
mov eax, dword [esi + 0x78]
cmp eax, 0x197
jne 0x409fcd
mov ecx, dword [esi + 0x68]
push ecx
push eax
push ebx
call fcn.0041bfe0
add esp, 0xc
test eax, eax
jne 0x40a3c2
jmp 0x40a05f
mov eax, dword [esi + 0x78]
cmp eax, 0x12c
jl 0x40a05f
cmp eax, 0x190
jge 0x40a05f
mov edx, dword [esi + 0x68]
push 9
push edx
push str.Location:
call fcn.0040e6d0
add esp, 0xc
test eax, eax
je 0x40a05f
mov eax, dword [esi + 0x68]
push eax
call fcn.0041ba10
add esp, 4
test eax, eax
je 0x40a30b
cmp byte [eax], 0
jne 0x40a01e
push eax
call dword [0x501098]
add esp, 4
jmp 0x40a05f
cmp byte [edi + 0x261], 0
mov dword [edi + 0xc8], eax
je 0x40a05f
push eax
call dword [0x5010a0]
add esp, 4
mov dword [edi + 0xcc], eax
test eax, eax
je 0x40a30b
push ebx
call fcn.0041bc20
add esp, 4
test eax, eax
jne 0x40a3c2
jmp 0x40a05f
mov byte [esi + 0xc4], 1
cmp byte [edi + 0x263], 0
mov ebx, 2
je 0x40a072
mov ebx, 3
cmp byte [edi + 0x270], 0
je 0x40a093
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x68]
push ecx
push edx
push eax
push 1
push edi
call fcn.0040d6a0
add esp, 0x14
mov ecx, dword [esi + 0x58]
mov edx, dword [esi + 0x68]
mov eax, dword [esp + 0x1c]
push ecx
push edx
push ebx
push eax
call fcn.0040d9c0
add esp, 0x10
test eax, eax
jne 0x40a3c2
mov ecx, dword [esi + 0x58]
add dword [edi + 0x8574], ecx
mov edx, dword [esi + 0x58]
add dword [edi + 0x48], edx
jmp 0x40a231
cmp cl, 0xd
jne 0x40a0ce
inc eax
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x68]
cmp byte [eax], 0xa
jne 0x40a0da
inc eax
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x78]
cmp eax, 0x64
jl 0x40a107
cmp eax, 0xc7
jg 0x40a107
mov byte [esi + 0x48], 1
mov dword [esi + 0x50], ebx
cmp dword [esi + 0x84], ebx
je 0x40a147
or dword [esi + 0xa8], 2
mov dword [esi + 0x84], ebx
jmp 0x40a147
mov ecx, dword [esi]
and ecx, dword [esi + 4]
mov byte [esi + 0x48], bl
cmp ecx, 0xffffffff
jne 0x40a147
cmp byte [esi + 0xc0], bl
jne 0x40a147
mov ebx, dword [esp + 0x1c]
cmp byte [ebx + 0x148], 0
jne 0x40a147
cmp dword [ebx + 0xc0], 0xb
jl 0x40a147
push str.no_chunk__no_close__no_size._Assume_close_to_signal_end_n
push edi
call fcn.0040d790
add esp, 8
mov byte [ebx + 0x148], 1
cmp dword [esi + 0x78], 0x1a1
jne 0x40a161
and dword [esi + 0xa8], 0xfffffffd
mov dword [esi + 0x84], 3
mov edx, dword [esp + 0x1c]
push edx
call fcn.0041c140
add esp, 4
test eax, eax
jne 0x40a317
lea ecx, [eax + 2]
cmp byte [edi + 0x263], al
je 0x40a184
lea ecx, [eax + 3]
mov eax, dword [edi + 0x45c]
mov ebx, dword [esi + 0x68]
mov ebp, dword [esp + 0x1c]
sub ebx, eax
push ebx
push eax
push ecx
push ebp
call fcn.0040d9c0
add esp, 0x10
test eax, eax
jne 0x40a3c2
add dword [edi + 0x48], ebx
add dword [edi + 0x8574], ebx
mov eax, dword [esi + 0x78]
cmp eax, 0x64
mov ecx, dword [edi + 0x48]
jl 0x40a1c2
cmp eax, 0xc7
jle 0x40a1c4
xor ecx, ecx
mov eax, dword [edi + 0x8550]
or eax, dword [edi + 0x8554]
mov dword [edi + 0x4c], ecx
je 0x40a1f0
cmp dword [edi + 0x1e0], 1
jne 0x40a1f0
cmp dword [esi + 0x78], 0x1a0
jne 0x40a1f0
mov ecx, dword [esp + 0x24]
mov byte [ecx], 1
jmp 0x40a227
mov edx, dword [esp + 0x24]
cmp byte [edx], 0
jne 0x40a227
push ebp
call fcn.0041c7d0
add esp, 4
test eax, eax
jne 0x40a3c2
cmp byte [ebp + 0x157], al
je 0x40a227
push str.Keep_sending_data_to_get_tossed_away__n
push edi
call fcn.0040d790
add esp, 8
or dword [esi + 0xa8], 2
cmp byte [esi + 0x48], 0
je 0x40a335
mov eax, dword [edi + 0x45c]
mov ecx, dword [esp + 0x24]
mov dword [esi + 0x58], 0
mov dword [esi + 0x54], eax
cmp byte [ecx], 0
jne 0x40a3c0
mov edx, dword [esi + 0x5c]
cmp byte [edx], 0
jne 0x4098a0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
mov eax, dword [ebx]
push eax
mov ebx, edi
call fcn.004097e0
add esp, 4
test eax, eax
jne 0x40a3c2
cmp dword [esi + 0x50], eax
jne 0x40a3c0
cmp dword [esi + 0x58], 5
jbe 0x40a3c0
mov ecx, dword [edi + 0x45c]
push ecx
mov eax, edi
call fcn.00409650
add esp, 4
test al, al
jne 0x40a3c0
mov byte [esi + 0x48], al
mov dword [esi + 0x4c], 2
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x20]
mov byte [esi + 0x48], bl
cmp dword [eax], ebx
je 0x40a2d2
mov dword [esi + 0x4c], 1
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
mov dword [esi + 0x4c], 2
pop esi
mov dword [eax], ebp
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
mov byte [esi + 0x48], 0
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
push str.Maximum_file_size_exceeded
push edi
call fcn.0040d820
add esp, 8
pop esi
pop ebp
mov eax, 0x3f
pop ebx
add esp, 0xc
ret
pop esi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0xc
ret
mov eax, dword [esi + 0x78]
push eax
push str.The_requested_URL_returned_error:__d
push edi
call fcn.0040d820
add esp, 0xc
pop esi
pop ebp
mov eax, 0x16
pop ebx
add esp, 0xc
ret
cmp byte [edi + 0x266], 0
je 0x40a347
mov ecx, dword [esp + 0x24]
mov byte [ecx], 1
jmp 0x40a35d
cmp byte [esi + 0xc0], 0
je 0x40a35d
mov dword [esi], 0xffffffff
mov dword [esi + 4], 0xffffffff
mov eax, dword [esi]
mov ecx, dword [esi + 4]
cmp eax, 0xffffffff
jne 0x40a36b
cmp ecx, eax
je 0x40a381
push ecx
push eax
push edi
call fcn.00411a90
mov edx, dword [esi]
mov eax, dword [esi + 4]
add esp, 0xc
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], eax
cmp dword [esi + 0x10], 0
jne 0x40a396
cmp dword [esi + 0x14], 0
jne 0x40a396
mov ecx, dword [esp + 0x24]
mov byte [ecx], 1
jmp 0x40a39f
mov edx, dword [esp + 0x24]
cmp byte [edx], 0
je 0x40a3a6
and dword [esi + 0xa8], 0xfffffffe
cmp byte [edi + 0x270], 0
je 0x40a3c0
mov eax, dword [esi + 0x60]
push ebp
push ebx
push eax
push 1
push edi
call fcn.0040d6a0
add esp, 0x14
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0xc
ret