Function at 0x407490
Capabilities:
Check http status code
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x28
push ebx
push ebp
mov ebp, dword [esp + 0x34]
push esi
push edi
mov dword [esp + 0x24], 0
mov eax, dword [ebp + 0x1ec]
mov esi, dword [ebp]
test al, 1
mov dword [esp + 0x14], esi
je 0x4074bc
mov ecx, dword [ebp + 0x128]
jmp 0x4074bf
or ecx, 0xffffffff
test al, 2
je 0x4074cb
mov eax, dword [ebp + 0x13c]
jmp 0x4074ce
or eax, 0xffffffff
push 0
push eax
push ecx
call fcn.00419770
add esp, 0xc
cmp eax, 4
mov dword [esp + 0x34], eax
jne 0x4074fe
push str.select_poll_returned_error
push esi
call fcn.0040dc60
add esp, 8
mov eax, 0x37
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
test byte [ebp + 0x1ec], 1
je 0x4086cd
test al, 1
je 0x4086cd
mov eax, dword [esi + 0x160]
test eax, eax
jne 0x407522
mov eax, 0x4000
mov edx, dword [ebp + 0x1e0]
lea ecx, [esp + 0x18]
push ecx
push eax
mov eax, dword [ebp + 0x128]
push edx
push eax
push ebp
call fcn.0040def0
add esp, 0x14
test eax, eax
jl 0x4086cd
mov dword [esp + 0x1c], eax
jg 0x408cdf
mov ecx, dword [ebp + 0x170]
mov eax, dword [ebp + 0x174]
or ecx, eax
jne 0x407597
mov edx, dword [ebp + 0x178]
mov eax, dword [ebp + 0x17c]
or edx, eax
jne 0x407597
push 4
push esi
call fcn.0040ec90
mov al, byte [ebp + 0x1d1]
add esp, 8
test al, al
je 0x407597
call fcn.0040eb40
mov dword [ebp + 0x1c8], eax
mov dword [ebp + 0x1cc], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x24], 1
test eax, eax
jne 0x4075b8
mov ecx, dword [ebp + 0x1dc]
test ecx, ecx
jne 0x4075b8
mov byte [esp + 0x13], 1
jmp 0x4075c5
test eax, eax
mov byte [esp + 0x13], 0
jle 0x4086bf
mov ecx, dword [ebp + 0x1e0]
mov byte [ecx + eax], 0
mov cl, byte [ebp + 0x190]
mov eax, dword [ebp + 0x1e0]
test cl, cl
mov dword [ebp + 0x1a4], eax
je 0x4083db
mov edx, dword [esp + 0x18]
mov byte [esp + 0x3c], 0
push edx
push 0xa
push eax
mov dword [ebp + 0x1a8], eax
call fcn.00420a10
add esp, 0xc
mov dword [ebp + 0x1ac], eax
test eax, eax
je 0x40821a
mov eax, dword [ebp + 0x1ac]
mov edx, dword [ebp + 0x1a4]
mov edi, dword [esp + 0x18]
mov ebx, eax
mov esi, dword [ebp + 0x1a8]
sub ebx, edx
mov ecx, dword [ebp + 0x1a0]
inc ebx
sub edi, ebx
inc eax
mov dword [ebp + 0x1a4], eax
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
sub eax, esi
mov dword [esp + 0x28], eax
add eax, ecx
mov ecx, dword [edi + 0x2e8]
cmp eax, ecx
jb 0x4076a6
lea eax, [eax + eax*2]
add ecx, ecx
shr eax, 1
cmp eax, ecx
mov dword [esp + 0x20], eax
ja 0x407669
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 0x2e4]
mov esi, dword [ebp + 0x19c]
push edx
push eax
sub esi, eax
call dword [0x4400ac]
add esp, 8
test eax, eax
je 0x408967
mov ecx, dword [esp + 0x20]
mov dword [edi + 0x2e4], eax
add eax, esi
mov dword [edi + 0x2e8], ecx
mov dword [ebp + 0x19c], eax
mov edx, dword [esp + 0x28]
mov esi, dword [ebp + 0x1a8]
mov edi, dword [ebp + 0x19c]
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 edx, dword [esp + 0x14]
mov eax, esi
mov dword [ebp + 0x19c], esi
mov dword [ebp + 0x1a0], ecx
mov byte [eax], 0
mov ecx, dword [ebp + 0x19c]
mov dword [ebp + 0x1ac], ecx
mov eax, dword [edx + 0x2e4]
mov dword [ebp + 0x1b0], eax
mov eax, dword [ebp + 0x198]
test eax, eax
jne 0x407730
cmp dword [ebp + 0x1a0], 5
jbe 0x407730
mov eax, edx
mov ecx, dword [eax + 0x2e4]
push ecx
push eax
call fcn.00408cf0
add esp, 8
test al, al
je 0x4082ff
mov eax, dword [ebp + 0x1b0]
mov cl, byte [eax]
cmp cl, 0xa
je 0x40805e
cmp cl, 0xd
je 0x408063
mov ecx, dword [ebp + 0x198]
test ecx, ecx
lea edx, [ecx + 1]
mov dword [ebp + 0x198], edx
jne 0x407836
lea edi, [ebp + 0x1c0]
lea esi, [ebp + 0x1c4]
push edi
lea ecx, [esp + 0x30]
push esi
push ecx
push str._HTTP__d._d__3d
push eax
call fcn.004208fd
add esp, 0x14
cmp eax, 3
jne 0x4078cd
mov eax, dword [esp + 0x2c]
lea edx, [eax + eax*4]
mov eax, dword [esi]
shl edx, 1
add eax, edx
mov dword [esi], eax
mov ebx, dword [esp + 0x14]
mov eax, dword [edi]
mov dword [ebx + 0x8388], eax
mov al, byte [ebx + 0x18d]
mov ecx, dword [esi]
test al, al
mov dword [ebx + 0x8390], ecx
je 0x4077f5
mov eax, dword [edi]
cmp eax, 0x190
jl 0x4077f5
cmp eax, 0x191
je 0x4077f5
cmp eax, 0x197
je 0x4077f5
mov edx, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x7c]
or edx, ecx
je 0x408982
cmp dword [ebx + 0x114], 1
jne 0x408982
cmp eax, 0x1a0
jne 0x408982
cmp dword [esi], 0xa
jne 0x407801
mov byte [ebp + 0xe4], 1
mov edi, dword [edi]
sub edi, 0xcc
je 0x407815
sub edi, 0x64
je 0x407815
sub edi, 0x70
jne 0x407836
xor eax, eax
mov dword [ebp + 0x130], eax
mov dword [ebp + 0xa8], eax
mov dword [ebp + 0x134], eax
mov dword [ebp + 0xac], eax
mov byte [ebp + 0x1f2], 1
mov al, byte [ebp + 0x1f2]
test al, al
jne 0x407946
mov eax, dword [esp + 0x14]
mov cl, byte [eax + 0x1b3]
test cl, cl
jne 0x407946
mov ecx, dword [ebp + 0x1b0]
push 0xf
push ecx
push str.Content_Length:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407946
mov edx, dword [ebp + 0x1b0]
push 0xa
add edx, 0xf
push 0
push edx
call fcn.0041acd0
mov edi, dword [esp + 0x20]
add esp, 0xc
mov esi, dword [edi + 0x170]
mov ecx, dword [edi + 0x174]
mov ebx, esi
or ebx, ecx
je 0x4078b2
cmp edx, ecx
jg 0x4089a4
jl 0x4078b2
cmp eax, esi
ja 0x4089a4
test edx, edx
jl 0x40792a
jg 0x4078bc
test eax, eax
jb 0x40792a
mov dword [ebp + 0x130], eax
mov dword [ebp + 0x134], edx
jmp 0x407fc1
mov eax, dword [ebp + 0x1b0]
push edi
push str._HTTP__3d
push eax
call fcn.004208fd
add esp, 0xc
mov dword [esi], 0xa
test eax, eax
jne 0x40779a
mov ecx, dword [ebp + 0x1b0]
mov ebx, dword [esp + 0x14]
push ecx
push ebx
call fcn.00408cf0
add esp, 8
test al, al
je 0x408330
mov dword [edi], 0xc8
mov ecx, dword [ebx + 0x11c]
xor edx, edx
cmp ecx, 1
setne dl
add edx, 0xa
mov dword [esi], edx
jmp 0x40779e
push edx
push eax
push str.Negative_content_length:__lld__closing_after_transfer_n
push edi
mov byte [ebp + 0xe4], 1
call fcn.0040dbf0
add esp, 0x10
jmp 0x407fc1
mov eax, dword [ebp + 0x1b0]
push 0xd
push eax
push str.Content_Type:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407a5b
mov esi, dword [ebp + 0x1b0]
add esi, 0xd
mov al, byte [esi]
test al, al
je 0x4079a6
cmp dword [0x445118], 1
jle 0x40798c
movsx ecx, al
push 8
push ecx
call fcn.004202f4
add esp, 8
jmp 0x40799a
movsx edx, al
mov eax, dword [str.________________________________H]
mov al, byte [eax + edx*2]
and eax, 8
test eax, eax
je 0x4079a6
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x407973
push 0xd
push esi
call fcn.00420500
mov edi, eax
add esp, 8
test edi, edi
jne 0x4079cc
push 0xa
push esi
call fcn.00420500
mov edi, eax
add esp, 8
test edi, edi
je 0x407fc1
mov ebx, 1
cmp dword [0x445118], ebx
jle 0x4079e9
movsx ecx, byte [edi]
push 8
push ecx
call fcn.004202f4
add esp, 8
jmp 0x4079f7
movsx edx, byte [edi]
mov eax, dword [str.________________________________H]
mov al, byte [eax + edx*2]
and eax, 8
test eax, eax
je 0x407a02
cmp edi, esi
jbe 0x407a02
dec edi
jmp 0x4079d1
mov ecx, dword [esp + 0x14]
sub edi, esi
inc edi
mov edx, dword [ecx + 0x83ac]
mov ebx, edi
push edx
call sym.SportLauncher.exe_curl_free
lea eax, [ebx + 1]
push eax
call dword [0x4400a4]
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
mov dword [ecx + 0x83ac], eax
je 0x408aa7
mov ecx, ebx
mov edi, eax
mov edx, ecx
mov eax, dword [esp + 0x14]
shr ecx, 2
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 [ecx + ebx], 0
jmp 0x407fc1
mov eax, dword [ebp + 0x1c4]
mov ebx, 0xa
cmp eax, ebx
jne 0x407aaf
mov al, byte [ebp + 0xe7]
test al, al
je 0x407aaf
mov edx, dword [ebp + 0x1b0]
push str.keep_alive
push str.Proxy_Connection:
push edx
call fcn.00417390
add esp, 0xc
test al, al
je 0x407aaf
mov edi, dword [esp + 0x14]
push str.HTTP_1.0_proxy_connection_set_to_keep_alive__n
push edi
mov byte [ebp + 0xe4], 0
call fcn.0040dbf0
add esp, 8
jmp 0x407fc5
cmp dword [ebp + 0x1c4], 0xb
jne 0x407afd
mov al, byte [ebp + 0xe7]
test al, al
je 0x407afd
mov eax, dword [ebp + 0x1b0]
push str.close
push str.Proxy_Connection:
push eax
call fcn.00417390
add esp, 0xc
test al, al
je 0x407afd
mov edi, dword [esp + 0x14]
push str.HTTP_1.1_proxy_connection_set_close__n
push edi
mov byte [ebp + 0xe4], 1
call fcn.0040dbf0
add esp, 8
jmp 0x407fc5
cmp dword [ebp + 0x1c4], ebx
jne 0x407b40
mov ecx, dword [ebp + 0x1b0]
push str.keep_alive
push str.Connection:
push ecx
call fcn.00417390
add esp, 0xc
test al, al
je 0x407b40
mov edi, dword [esp + 0x14]
push str.HTTP_1.0_connection_set_to_keep_alive__n
push edi
mov byte [ebp + 0xe4], 0
call fcn.0040dbf0
add esp, 8
jmp 0x407fc5
mov edx, dword [ebp + 0x1b0]
push str.close
push str.Connection:
push edx
call fcn.00417390
add esp, 0xc
test al, al
je 0x407b69
mov byte [ebp + 0xe4], 1
jmp 0x407fc1
mov eax, dword [ebp + 0x1b0]
push str.chunked
push str.Transfer_Encoding:
push eax
call fcn.00417390
add esp, 0xc
test al, al
je 0x407b9b
push ebp
mov byte [ebp + 0xe6], 1
call fcn.0041a390
add esp, 4
jmp 0x407fc1
mov ecx, dword [ebp + 0x1b0]
push 8
push ecx
push str.Trailer:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
jne 0x407fba
mov edx, dword [ebp + 0x1b0]
push 9
push edx
push str.Trailers:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
jne 0x407fba
mov eax, dword [ebp + 0x1b0]
push 0x11
push eax
push str.Content_Encoding:
call sym.SportLauncher.exe_curl_strnequal
mov edi, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x407cfd
mov eax, dword [edi + 0x60]
test eax, eax
je 0x407cfd
mov esi, dword [ebp + 0x1b0]
add esi, 0x11
mov al, byte [esi]
test al, al
je 0x407c46
cmp dword [0x445118], 1
jle 0x407c2c
movsx ecx, al
push 8
push ecx
call fcn.004202f4
add esp, 8
jmp 0x407c3a
movsx edx, al
mov eax, dword [str.________________________________H]
mov al, byte [eax + edx*2]
and eax, 8
test eax, eax
je 0x407c46
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x407c13
push 8
push esi
push str.identity
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407c69
mov dword [ebp + 0x1d4], 0
jmp 0x407fc5
push 7
push esi
push str.deflate
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407c8c
mov dword [ebp + 0x1d4], 1
jmp 0x407fc5
push 4
push esi
push str.gzip
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
jne 0x407cee
push 6
push esi
push str.x_gzip
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
jne 0x407cee
push 8
push esi
push str.compress
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
jne 0x407cdf
push ebx
push esi
push str.x_compress
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407fc5
mov dword [ebp + 0x1d4], 3
jmp 0x407fc5
mov dword [ebp + 0x1d4], 2
jmp 0x407fc5
mov ecx, dword [ebp + 0x1b0]
push str.bytes
push str.Content_Range:
push ecx
call fcn.00417390
add esp, 0xc
test al, al
je 0x407d7c
mov edx, dword [ebp + 0x1b0]
push str.bytes
push edx
call fcn.0040b050
mov cl, byte [eax + 5]
add eax, 5
add esp, 8
cmp cl, 0x3a
jne 0x407d3a
inc eax
push ebx
push 0
push eax
call fcn.0041acd0
mov dword [ebp + 0x1b8], eax
mov dword [ebp + 0x1bc], edx
mov eax, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x1b8]
add esp, 0xc
cmp eax, ecx
jne 0x407fc5
mov ecx, dword [ebp + 0x7c]
mov eax, edx
cmp ecx, eax
jne 0x407fc5
mov byte [ebp + 0x1b4], 1
jmp 0x407fc5
mov eax, dword [edi + 0x1d4]
test eax, eax
je 0x407de8
mov edx, dword [ebp + 0x1b0]
push 0xb
push edx
push str.Set_Cookie:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407de8
push 2
push 2
push edi
call fcn.0040b360
mov eax, dword [ebp + 0x160]
add esp, 0xc
test eax, eax
jne 0x407dba
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x1b0]
push ecx
add edx, 0xb
push eax
mov eax, dword [edi + 0x1d4]
push edx
push 1
push eax
push edi
call fcn.0040a200
push 2
push edi
call fcn.0040b3b0
add esp, 0x20
jmp 0x407fc5
mov ecx, dword [ebp + 0x1b0]
push 0xe
push ecx
push str.Last_Modified:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407e57
mov eax, dword [edi + 0x108]
test eax, eax
jne 0x407e16
mov al, byte [edi + 0x185]
test al, al
je 0x407e57
push 0
call fcn.00420026
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x1b0]
lea edx, [esp + 0x34]
add eax, 0xe
push edx
push eax
call sym.SportLauncher.exe_curl_getdate
mov dword [ebp + 0x1d8], eax
mov cl, byte [edi + 0x185]
add esp, 0xc
test cl, cl
je 0x407fc5
mov dword [edi + 0x8394], eax
jmp 0x407fc5
mov ecx, dword [ebp + 0x1b0]
push 0x11
push ecx
push str.WWW_Authenticate:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407e7e
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x191
je 0x407ea5
mov edx, dword [ebp + 0x1b0]
push 0x13
push edx
push str.Proxy_authenticate:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407ec3
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x197
jne 0x407ec3
mov ecx, dword [ebp + 0x1b0]
push ecx
push eax
push ebp
call fcn.004171c0
add esp, 0xc
test eax, eax
jne 0x408cdf
jmp 0x407fc5
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x12c
jl 0x407fc5
cmp eax, 0x190
jge 0x407fc5
mov edx, dword [ebp + 0x1b0]
push 9
push edx
push str.Location:
call sym.SportLauncher.exe_curl_strnequal
add esp, 0xc
test eax, eax
je 0x407fc5
mov al, byte [edi + 0x18e]
test al, al
je 0x407fc5
mov edi, dword [ebp + 0x1b0]
mov ebx, 1
add edi, 9
mov al, byte [edi]
test al, al
je 0x407f52
cmp dword [0x445118], ebx
jle 0x407f37
movsx eax, al
push 8
push eax
call fcn.004202f4
add esp, 8
jmp 0x407f46
mov edx, dword [str.________________________________H]
movsx ecx, al
mov al, byte [edx + ecx*2]
and eax, 8
test eax, eax
je 0x407f52
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x407f1f
mov esi, dword [ebp + 0x1ac]
dec esi
cmp esi, edi
jb 0x407f8d
cmp dword [0x445118], ebx
jle 0x407f75
movsx eax, byte [esi]
push 8
push eax
call fcn.004202f4
add esp, 8
jmp 0x407f84
movsx ecx, byte [esi]
mov edx, dword [str.________________________________H]
mov al, byte [edx + ecx*2]
and eax, 8
test eax, eax
je 0x407f8d
dec esi
cmp esi, edi
jae 0x407f5d
mov bl, byte [esi + 1]
inc esi
cmp esi, edi
je 0x407fc1
push edi
mov byte [esi], 0
call dword [0x4400b0]
mov dword [ebp + 0x164], eax
mov byte [esi], bl
mov eax, dword [ebp + 0x164]
add esp, 4
test eax, eax
je 0x408aa7
jmp 0x407fc1
mov byte [ebp + 0xfd], 1
mov edi, dword [esp + 0x14]
mov al, byte [edi + 0x190]
mov esi, 2
test al, al
je 0x407fd9
mov esi, 3
mov al, byte [edi + 0x1a0]
test al, al
je 0x407ffd
mov eax, dword [ebp + 0x1a0]
mov ecx, dword [ebp + 0x1b0]
push ebp
push eax
push ecx
push 1
push edi
call fcn.0040df90
add esp, 0x14
mov edx, dword [ebp + 0x1a0]
mov eax, dword [ebp + 0x1b0]
push edx
push eax
push esi
push edi
call fcn.0040de50
add esp, 0x10
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x408cdf
mov ecx, dword [ebp + 0x1a0]
mov edx, dword [edi + 0x8398]
add edx, ecx
mov dword [edi + 0x8398], edx
mov edx, dword [ebp + 0x1a0]
mov eax, dword [ebp + 0x68]
add eax, edx
mov dword [ebp + 0x68], eax
mov eax, dword [edi + 0x2e4]
mov dword [ebp + 0x19c], eax
mov dword [ebp + 0x1a0], 0
jmp 0x4081e7
cmp cl, 0xd
jne 0x40806a
inc eax
mov dword [ebp + 0x1b0], eax
mov eax, dword [ebp + 0x1b0]
cmp byte [eax], 0xa
jne 0x40807c
inc eax
mov dword [ebp + 0x1b0], eax
mov eax, dword [ebp + 0x1c0]
cmp eax, 0x64
jne 0x4080ba
mov cl, byte [ebp + 0x1d0]
mov byte [ebp + 0x190], 1
test cl, cl
mov dword [ebp + 0x198], 0
je 0x4080c1
mov ecx, dword [ebp + 0x1ec]
mov byte [ebp + 0x1d0], 0
or ecx, 2
mov dword [ebp + 0x1ec], ecx
jmp 0x4080c1
mov byte [ebp + 0x190], 0
cmp eax, 0x1a1
jne 0x4080dd
mov eax, dword [ebp + 0x1ec]
mov byte [ebp + 0x1d0], 0
and al, 0xfd
mov dword [ebp + 0x1ec], eax
push ebp
call fcn.004172f0
add esp, 4
test eax, eax
jne 0x4089bf
mov edi, dword [esp + 0x14]
mov ecx, 2
mov al, byte [edi + 0x190]
test al, al
je 0x408106
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.0040de50
add esp, 0x10
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x408cdf
mov ecx, dword [edi + 0x8398]
add ecx, esi
mov dword [edi + 0x8398], ecx
mov eax, dword [ebp + 0x68]
add eax, esi
xor ecx, ecx
mov dword [ebp + 0x68], eax
mov ebx, dword [ebp + 0x1c0]
cmp ebx, 0x64
mov edx, dword [ebp + 0x78]
setne cl
dec ecx
and eax, ecx
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x7c]
or edx, eax
je 0x40817c
cmp dword [edi + 0x114], 1
jne 0x40817c
cmp dword [ebp + 0x1c0], 0x1a0
jne 0x40817c
mov byte [esp + 0x3c], 1
jmp 0x4081b7
push ebp
call fcn.00416e80
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x408cdf
mov al, byte [ebp + 0xf8]
test al, al
je 0x4081b7
push str.Keep_sending_data_to_get_tossed_away__n
push edi
call fcn.0040dbf0
mov eax, dword [ebp + 0x1ec]
add esp, 8
or al, 2
mov dword [ebp + 0x1ec], eax
mov al, byte [ebp + 0x190]
test al, al
je 0x40833c
mov eax, dword [edi + 0x2e4]
mov dword [ebp + 0x1a0], 0
mov dword [ebp + 0x19c], eax
mov al, byte [esp + 0x3c]
test al, al
jne 0x4086cd
mov eax, dword [ebp + 0x1a4]
cmp byte [eax], 0
je 0x4083db
mov ecx, dword [esp + 0x18]
mov dword [ebp + 0x1a8], eax
push ecx
push 0xa
push eax
call fcn.00420a10
add esp, 0xc
mov dword [ebp + 0x1ac], eax
test eax, eax
jne 0x407612
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 0x1a0]
mov eax, dword [esp + 0x18]
mov ecx, dword [edi + 0x2e8]
add eax, edx
cmp eax, ecx
jb 0x408277
lea eax, [eax + eax*2]
lea ebx, [ecx + ecx]
shr eax, 1
cmp eax, ebx
jbe 0x408242
mov ebx, eax
mov eax, dword [edi + 0x2e4]
mov esi, dword [ebp + 0x19c]
push ebx
push eax
sub esi, eax
call dword [0x4400ac]
add esp, 8
test eax, eax
je 0x408967
mov dword [edi + 0x2e4], eax
add eax, esi
mov dword [edi + 0x2e8], ebx
mov dword [ebp + 0x19c], eax
mov ecx, dword [esp + 0x18]
mov esi, dword [ebp + 0x1a4]
mov edi, dword [ebp + 0x19c]
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 + 0x18]
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 0x4083db
cmp eax, 5
jbe 0x4083db
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x2e4]
push ecx
push eax
call fcn.00408cf0
add esp, 8
test al, al
jne 0x4083db
mov byte [ebp + 0x190], al
mov dword [ebp + 0x194], 2
jmp 0x4083db
mov eax, dword [esp + 0x18]
mov byte [ebp + 0x190], 0
test eax, eax
je 0x40831d
mov dword [ebp + 0x194], 1
jmp 0x4083cf
mov dword [ebp + 0x194], 2
mov dword [esp + 0x18], ebx
jmp 0x4083cf
mov byte [ebp + 0x190], 0
jmp 0x4083cf
mov al, byte [ebp + 0xf5]
test al, al
je 0x40834d
mov byte [esp + 0x3c], 1
jmp 0x408366
mov al, byte [ebp + 0xe6]
test al, al
je 0x408366
or eax, 0xffffffff
mov dword [ebp + 0x130], eax
mov dword [ebp + 0x134], eax
mov eax, dword [ebp + 0x130]
mov ecx, dword [ebp + 0x134]
cmp eax, 0xffffffff
jne 0x40837b
cmp ecx, eax
je 0x40839e
push ecx
push eax
push edi
call fcn.0040ee20
mov edx, dword [ebp + 0x130]
mov eax, dword [ebp + 0x134]
mov dword [ebp + 0xa8], edx
add esp, 0xc
mov dword [ebp + 0xac], eax
mov eax, dword [ebp + 0xa8]
test eax, eax
jne 0x4083b9
mov eax, dword [ebp + 0xac]
test eax, eax
jne 0x4083b9
mov byte [esp + 0x3c], 1
jmp 0x4083c1
mov al, byte [esp + 0x3c]
test al, al
je 0x4083db
mov eax, dword [ebp + 0x1ec]
and al, 0xfe
mov dword [ebp + 0x1ec], eax
mov al, byte [esp + 0x3c]
test al, al
jne 0x4086cd
mov eax, dword [ebp + 0x1a4]
test eax, eax
je 0x4086b7
mov al, byte [ebp + 0x190]
test al, al
jne 0x4086b7
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x40840b
mov al, byte [esp + 0x13]
test al, al
je 0x4086cd
mov eax, dword [ebp + 0x1dc]
test eax, eax
jne 0x4084cf
mov al, byte [esp + 0x13]
test al, al
jne 0x4084cf
test byte [ebp + 8], 4
je 0x4084cf
mov eax, dword [ebp + 0x164]
test eax, eax
je 0x408462
mov al, byte [ebp + 0xe4]
test al, al
jne 0x4089e5
mov esi, dword [esp + 0x14]
push str.Ignoring_the_response_body_n
push esi
mov byte [ebp + 0x1f1], 1
call fcn.0040dbf0
add esp, 8
jmp 0x408466
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x78]
mov eax, dword [ebp + 0x7c]
or ecx, eax
je 0x408491
mov al, byte [ebp + 0x1b4]
test al, al
jne 0x408491
cmp dword [esi + 0x114], 1
jne 0x408491
mov al, byte [ebp + 0x1f1]
test al, al
je 0x408a04
mov eax, dword [esi + 0x108]
test eax, eax
je 0x4084d3
mov ecx, dword [ebp + 0x70]
test ecx, ecx
jne 0x4084d3
mov edx, dword [ebp + 0x1d8]
test edx, edx
jle 0x4084d3
mov ecx, dword [esi + 0x10c]
test ecx, ecx
jle 0x4084d3
sub eax, 2
je 0x4084c5
cmp edx, ecx
jl 0x408a1f
jmp 0x4084d3
cmp edx, ecx
jg 0x408a3e
jmp 0x4084d3
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x1dc]
inc ecx
mov dword [ebp + 0x1dc], ecx
mov al, byte [esi + 0x1a0]
test al, al
je 0x40853f
mov eax, dword [ebp + 0x194]
push ebp
test eax, eax
je 0x408528
mov edx, dword [ebp + 0x1a0]
mov eax, dword [esi + 0x2e4]
push edx
push eax
push 3
push esi
call fcn.0040df90
mov eax, dword [ebp + 0x194]
add esp, 0x14
cmp eax, 1
jne 0x40853f
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0x1a4]
push ebp
push ecx
push edx
jmp 0x408534
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x1a4]
push eax
push ecx
push 3
push esi
call fcn.0040df90
add esp, 0x14
mov al, byte [ebp + 0xe6]
test al, al
je 0x40857e
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x1a4]
lea edx, [esp + 0x18]
push edx
push eax
push ecx
push ebp
call fcn.0041a3b0
add esp, 0x10
test eax, eax
jg 0x408a5d
cmp eax, 0xffffffff
jne 0x40857e
mov eax, dword [ebp + 0x1ec]
and al, 0xfe
mov dword [ebp + 0x1ec], eax
mov edi, dword [ebp + 0xa8]
mov ecx, dword [ebp + 0xac]
cmp edi, 0xffffffff
jne 0x408593
cmp ecx, edi
je 0x4085dc
mov eax, dword [esp + 0x18]
mov ebx, dword [ebp + 0x170]
cdq
add eax, ebx
mov ebx, dword [ebp + 0x174]
adc edx, ebx
cmp edx, ecx
jl 0x4085dc
jg 0x4085b2
cmp eax, edi
jb 0x4085dc
mov eax, dword [ebp + 0xa8]
mov ecx, dword [ebp + 0x170]
sub eax, ecx
mov dword [esp + 0x18], eax
jns 0x4085ce
mov dword [esp + 0x18], 0
mov eax, dword [ebp + 0x1ec]
and al, 0xfe
mov dword [ebp + 0x1ec], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x170]
cdq
add ecx, eax
mov dword [ebp + 0x170], ecx
mov eax, dword [ebp + 0x174]
adc eax, edx
mov dword [ebp + 0x174], eax
mov edx, eax
mov eax, dword [ebp + 0x170]
push edx
push eax
push esi
call fcn.0040ede0
mov al, byte [ebp + 0xe6]
add esp, 0xc
test al, al
jne 0x4086b7
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x408640
mov eax, dword [ebp + 0x194]
test eax, eax
jne 0x40864a
mov al, byte [esp + 0x13]
test al, al
je 0x4086cd
mov esi, dword [esp + 0x14]
mov eax, dword [ebp + 0x194]
test eax, eax
je 0x408677
mov al, byte [ebp + 0x1f1]
test al, al
jne 0x408677
mov ecx, dword [ebp + 0x1a0]
mov edx, dword [esi + 0x2e4]
push ecx
push edx
push 1
push esi
call fcn.0040de50
add esp, 0x10
test eax, eax
jne 0x408cdf
jmp 0x40867b
mov eax, dword [esp + 0x1c]
cmp dword [ebp + 0x194], 2
jge 0x4086a5
mov cl, byte [ebp + 0x1f1]
test cl, cl
jne 0x4086a5
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x1a4]
push eax
push ecx
push 1
push esi
call fcn.0040de50
add esp, 0x10
test eax, eax
mov dword [ebp + 0x194], 0
jne 0x408cdf
mov al, byte [esp + 0x13]
test al, al
je 0x4086cd
mov eax, dword [ebp + 0x1ec]
and al, 0xfe
mov dword [ebp + 0x1ec], eax
test byte [ebp + 0x1ec], 2
je 0x408ab4
test byte [esp + 0x34], 2
je 0x408ab4
mov edx, dword [ebp + 0x170]
mov eax, dword [ebp + 0x174]
or edx, eax
jne 0x408716
mov eax, dword [ebp + 0x178]
mov ecx, dword [ebp + 0x17c]
or eax, ecx
jne 0x408716
mov edi, dword [esp + 0x14]
push 4
push edi
call fcn.0040ec90
add esp, 8
jmp 0x40871a
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [ebp + 0x1f8]
or esi, 2
test eax, eax
jne 0x408827
mov ecx, dword [ebp + 0x1e4]
mov dword [ebp + 0x1fc], ecx
mov al, byte [ebp + 0x1f0]
test al, al
jne 0x4088f6
mov al, byte [ebp + 0x1d1]
test al, al
je 0x408763
mov edx, dword [ebp + 0x16c]
cmp dword [edx + 0x78], 2
je 0x408931
lea eax, [esp + 0x34]
push eax
push 0x4000
push ebp
call fcn.004072f0
add esp, 0xc
test eax, eax
jne 0x408cdf
mov ecx, dword [esp + 0x34]
test ecx, ecx
mov dword [esp + 0x18], ecx
jle 0x4088fe
mov dword [ebp + 0x1f8], ecx
mov al, byte [edi + 0xe5]
test al, al
je 0x408827
mov eax, dword [edi + 0x8308]
test eax, eax
jne 0x4087cc
push 0x8000
call dword [0x4400a4]
add esp, 4
mov dword [edi + 0x8308], eax
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x408a99
xor edx, edx
xor eax, eax
test ecx, ecx
jle 0x40880d
mov ecx, dword [ebp + 0x1fc]
mov cl, byte [edx + ecx]
cmp cl, 0xa
jne 0x4087fa
mov ecx, dword [edi + 0x8308]
inc eax
mov byte [eax + ecx - 1], 0xd
mov ecx, dword [edi + 0x8308]
mov byte [eax + ecx], 0xa
jmp 0x408803
mov ebx, dword [edi + 0x8308]
mov byte [eax + ebx], cl
mov ecx, dword [esp + 0x18]
inc edx
inc eax
cmp edx, ecx
jl 0x4087d4
cmp eax, ecx
je 0x408827
mov dword [esp + 0x18], eax
mov edx, dword [edi + 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.0040ddb0
add esp, 0x14
test eax, eax
jne 0x408cdf
mov al, byte [edi + 0x1a0]
test al, al
je 0x408874
mov ecx, dword [esp + 0x3c]
mov edx, dword [ebp + 0x1fc]
push ebp
push ecx
push edx
push 4
push edi
call fcn.0040df90
add esp, 0x14
mov ecx, dword [ebp + 0x1f8]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x40889a
sub ecx, eax
mov dword [ebp + 0x1f8], ecx
mov ecx, dword [ebp + 0x1fc]
add ecx, eax
mov dword [ebp + 0x1fc], ecx
jmp 0x4088c1
mov ecx, dword [ebp + 0x1e4]
mov dword [ebp + 0x1f8], 0
mov dword [ebp + 0x1fc], ecx
mov cl, byte [ebp + 0x1f0]
test cl, cl
je 0x4088c1
and dword [ebp + 0x1ec], 0xfffffffd
mov ecx, dword [ebp + 0x178]
cdq
add ecx, eax
mov dword [ebp + 0x178], ecx
mov eax, dword [ebp + 0x17c]
adc eax, edx
mov dword [ebp + 0x17c], eax
mov edx, eax
mov eax, dword [ebp + 0x178]
push edx
push eax
push edi
call fcn.0040ee00
add esp, 0xc
jmp 0x408abc
mov dword [esp + 0x18], 0
mov ecx, dword [ebp + 0x1ec]
and ecx, 0xfffffffd
mov dword [ebp + 0x1ec], ecx
mov al, byte [ebp + 0xf8]
test al, al
je 0x408abc
push ebp
call fcn.004073e0
add esp, 4
test eax, eax
jne 0x408cdf
jmp 0x408abc
mov ecx, dword [ebp + 0x1ec]
mov byte [ebp + 0x1d1], 0
and ecx, 0xfffffffd
mov byte [ebp + 0x1d0], 1
mov dword [ebp + 0x1ec], ecx
call fcn.0040eb40
mov dword [ebp + 0x1c8], eax
mov dword [ebp + 0x1cc], edx
and esi, 0xfffffffd
jmp 0x408abc
push str.Failed_to_alloc_memory_for_big_header_
push edi
call fcn.0040dc60
add esp, 8
mov eax, 0x1b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov ecx, dword [ebp + 0x1c0]
push ecx
push str.The_requested_URL_returned_error:__d
push ebx
call fcn.0040dc60
add esp, 0xc
mov eax, 0x16
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push str.Maximum_file_size_exceeded
push edi
call fcn.0040dc60
add esp, 8
mov eax, 0x3f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov edx, dword [ebp + 0x1c0]
mov eax, dword [esp + 0x14]
push edx
push str.The_requested_URL_returned_error:__d
push eax
call fcn.0040dc60
add esp, 0xc
mov eax, 0x16
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [ebp + 0x1ec]
mov ecx, dword [esp + 0x40]
and al, 0xfe
pop edi
mov dword [ebp + 0x1ec], eax
pop esi
pop ebp
mov byte [ecx], 1
xor eax, eax
pop ebx
add esp, 0x28
ret
push str.HTTP_server_doesnt_seem_to_support_byte_ranges._Cannot_resume.
push esi
call fcn.0040dc60
add esp, 8
mov eax, 0x21
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push str.The_requested_document_is_not_new_enough_n
push esi
call fcn.0040dbf0
mov edx, dword [esp + 0x48]
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
mov byte [edx], 1
pop ebx
add esp, 0x28
ret
push str.The_requested_document_is_not_old_enough_n
push esi
call fcn.0040dbf0
mov eax, dword [esp + 0x48]
add esp, 8
pop edi
pop esi
mov byte [eax], 1
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret
cmp eax, 4
jne 0x408a7d
push str.Failed_writing_data
push esi
call fcn.0040dc60
add esp, 8
mov eax, 0x17
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push eax
push str.Received_problem__d_in_the_chunky_parser
push esi
call fcn.0040dc60
add esp, 0xc
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push str.Failed_to_alloc_scratch_buffer_
push edi
call fcn.0040dc60
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x1b
pop ebx
add esp, 0x28
ret
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
call fcn.0040eb40
mov dword [ebp + 0x188], eax
mov dword [ebp + 0x18c], edx
test esi, esi
je 0x408b09
mov eax, dword [ebp + 0x138]
test eax, eax
je 0x408aec
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 0x408b53
mov ecx, dword [ebp + 0x178]
mov dword [eax], ecx
mov edx, dword [ebp + 0x17c]
mov dword [eax + 4], edx
jmp 0x408b53
mov al, byte [ebp + 0x1d0]
test al, al
je 0x408b53
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.0040eba0
add esp, 0x10
cmp eax, 0x3e8
jle 0x408b53
mov eax, dword [ebp + 0x1ec]
mov byte [ebp + 0x1d0], 0
or al, 2
mov dword [ebp + 0x1ec], eax
push ebp
call fcn.0040eea0
add esp, 4
test eax, eax
je 0x408b6d
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 edi
call fcn.0041a2b0
add esp, 0xc
test eax, eax
jne 0x408cdf
mov eax, dword [edi + 0x98]
test eax, eax
je 0x408c0e
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.0040eba0
mov ecx, eax
mov eax, 0x10624dd3
imul ecx
mov eax, dword [edi + 0x98]
add esp, 0x10
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, eax
jl 0x408c0e
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 edi
call fcn.0040dc60
add esp, 0x18
mov eax, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [ebp + 0x1ec]
test eax, eax
jne 0x408cd4
mov bl, byte [ebp + 0xf5]
test bl, bl
jne 0x408cb2
mov eax, dword [ebp + 0x130]
mov ecx, dword [ebp + 0x134]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x408c7d
mov edx, dword [ebp + 0x170]
mov esi, dword [ebp + 0x174]
cmp edx, eax
jne 0x408c53
cmp esi, ecx
je 0x408c7d
cmp dword [ebp + 0x164], 0
jne 0x408c7d
sub eax, edx
sbb ecx, esi
push ecx
push eax
push str.transfer_closed_with__lld_bytes_remaining_to_read
push edi
call fcn.0040dc60
add esp, 0x10
mov eax, 0x12
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
test bl, bl
jne 0x408cb2
mov al, byte [ebp + 0xe6]
test al, al
je 0x408cb2
mov eax, dword [ebp + 0x16c]
cmp dword [eax + 0x54], 7
je 0x408cb2
push str.transfer_closed_with_outstanding_read_data_remaining
push edi
call fcn.0040dc60
add esp, 8
mov eax, 0x12
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push ebp
call fcn.0040eea0
add esp, 4
test eax, eax
je 0x408ccc
pop edi
pop esi
pop ebp
mov eax, 0x2a
pop ebx
add esp, 0x28
ret
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