Function at 0x40a03e
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
and dword [ebp - 0x14], 0
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x1f0]
test al, 1
push esi
mov esi, dword [ebx]
push edi
mov dword [ebp - 8], esi
je 0x40a065
mov ecx, dword [ebx + 0x128]
jmp 0x40a068
or ecx, 0xffffffff
test al, 2
je 0x40a074
mov edi, dword [ebx + 0x13c]
jmp 0x40a077
or edi, 0xffffffff
push ecx
xor eax, eax
call fcn.0041331a
cmp eax, 4
pop ecx
mov dword [ebp - 0x20], eax
jne 0x40a09b
push str.select_poll_returned_error
call fcn.00409b0c
pop ecx
push 0x37
pop eax
jmp 0x40b54c
test byte [ebx + 0x1f0], 1
je 0x40b141
test byte [ebp - 0x20], 1
je 0x40b141
mov eax, dword [esi + 0x168]
test eax, eax
jne 0x40a0c1
mov eax, 0x4000
mov ecx, dword [ebx + 0x128]
push eax
push dword [ebx + 0x1e4]
lea esi, [ebp - 0xc]
mov eax, ebx
call fcn.00409d0f
test eax, eax
pop ecx
pop ecx
jl 0x40b13e
mov dword [ebp - 0x10], eax
jg 0x40b54c
mov eax, dword [ebx + 0x170]
or eax, dword [ebx + 0x174]
jne 0x40a12e
mov eax, dword [ebx + 0x178]
or eax, dword [ebx + 0x17c]
jne 0x40a12e
mov esi, dword [ebp - 8]
push 4
pop eax
call fcn.004127d6
cmp byte [ebx + 0x1d1], 0
je 0x40a131
call fcn.0041346f
mov dword [ebx + 0x1c8], eax
mov dword [ebx + 0x1cc], edx
jmp 0x40a131
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
test edi, edi
mov dword [ebp - 0x14], 1
jne 0x40a2ed
cmp dword [ebx + 0x1e0], edi
jne 0x40a2ed
mov byte [ebp - 2], 1
mov eax, dword [ebx + 0x1e4]
mov byte [edi + eax], 0
cmp byte [ebx + 0x190], 0
mov eax, dword [ebx + 0x1e4]
mov dword [ebx + 0x1a4], eax
je 0x40ae4f
mov byte [ebp - 1], 0
mov eax, dword [ebx + 0x1a4]
push edi
push 0xa
push eax
mov dword [ebx + 0x1a8], eax
call fcn.00430160
add esp, 0xc
test eax, eax
mov dword [ebx + 0x1ac], eax
je 0x40ac90
mov ecx, dword [ebx + 0x1a0]
mov edi, eax
sub edi, dword [ebx + 0x1a4]
inc edi
sub dword [ebp - 0xc], edi
inc eax
mov dword [ebx + 0x1a4], eax
sub eax, dword [ebx + 0x1a8]
mov dword [ebp - 0x1c], eax
add eax, ecx
mov ecx, dword [esi + 0x2f0]
cmp eax, ecx
jb 0x40a21e
imul eax, eax, 3
shr eax, 1
add ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x18], eax
ja 0x40a1df
mov dword [ebp - 0x18], ecx
mov ecx, dword [esi + 0x2ec]
mov eax, dword [ebx + 0x19c]
push dword [ebp - 0x18]
sub eax, ecx
push ecx
mov dword [ebp - 0x24], eax
call dword [0x4452ac]
test eax, eax
pop ecx
pop ecx
je 0x40acd1
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0x2f0], ecx
mov ecx, dword [ebp - 0x24]
mov dword [esi + 0x2ec], eax
add eax, ecx
mov dword [ebx + 0x19c], eax
push dword [ebp - 0x1c]
push dword [ebx + 0x1a8]
push dword [ebx + 0x19c]
call fcn.0041f4b0
mov ecx, dword [ebp - 0x1c]
add dword [ebx + 0x19c], ecx
mov eax, dword [ebx + 0x19c]
add dword [ebx + 0x1a0], ecx
mov byte [eax], 0
mov eax, dword [ebx + 0x19c]
mov dword [ebx + 0x1ac], eax
mov eax, dword [esi + 0x2ec]
add esp, 0xc
cmp dword [ebx + 0x198], 0
mov dword [ebx + 0x1b0], eax
jne 0x40a28d
cmp dword [ebx + 0x1a0], 5
jbe 0x40a28d
push dword [esi + 0x2ec]
mov eax, esi
call fcn.00409f6a
test al, al
pop ecx
je 0x40ad65
mov eax, dword [ebx + 0x1b0]
mov cl, byte [eax]
cmp cl, 0xa
je 0x40ab1d
cmp cl, 0xd
je 0x40ab22
mov ecx, dword [ebx + 0x198]
test ecx, ecx
lea edx, [ecx + 1]
mov dword [ebx + 0x198], edx
jne 0x40a3f8
lea ecx, [ebx + 0x1c0]
push ecx
lea edi, [ebx + 0x1c4]
push edi
lea ecx, [ebp - 0x28]
push ecx
push str._HTTP__d._d__3d
push eax
call fcn.0042ffa5
add esp, 0x14
cmp eax, 3
jne 0x40a305
mov eax, dword [ebp - 0x28]
imul eax, eax, 0xa
add dword [edi], eax
jmp 0x40a35a
test edi, edi
mov byte [ebp - 2], 0
jg 0x40a153
and dword [ebx + 0x1f0], 0xfffffffe
jmp 0x40b141
lea eax, [ebx + 0x1c0]
push eax
push str._HTTP__3d
push dword [ebx + 0x1b0]
call fcn.0042ffa5
add esp, 0xc
test eax, eax
mov dword [edi], 0xa
jne 0x40a35a
push dword [ebx + 0x1b0]
mov eax, esi
call fcn.00409f6a
test al, al
pop ecx
je 0x40ad93
xor eax, eax
mov dword [ebx + 0x1c0], 0xc8
cmp dword [esi + 0x124], 1
setne al
add eax, 0xa
mov dword [edi], eax
cmp byte [esi + 0x191], 0
lea eax, [ebx + 0x1c0]
mov ecx, dword [eax]
mov dword [esi + 0x8390], ecx
mov ecx, dword [edi]
mov dword [esi + 0x8398], ecx
je 0x40a3b8
mov ecx, dword [eax]
cmp ecx, 0x190
jl 0x40a3b8
cmp ecx, 0x191
je 0x40a3b8
cmp ecx, 0x197
je 0x40a3b8
mov edx, dword [ebx + 0x78]
or edx, dword [ebx + 0x7c]
je 0x40adb8
cmp dword [esi + 0x11c], 1
jne 0x40adb8
cmp ecx, 0x1a0
jne 0x40adb8
cmp dword [edi], 0xa
jne 0x40a3c4
mov byte [ebx + 0xe4], 1
mov eax, dword [eax]
sub eax, 0xcc
je 0x40a3d7
sub eax, 0x64
je 0x40a3d7
sub eax, 0x70
jne 0x40a3f8
xor eax, eax
mov dword [ebx + 0x130], eax
mov dword [ebx + 0x134], eax
mov dword [ebx + 0xa8], eax
mov dword [ebx + 0xac], eax
mov byte [ebx + 0x1f6], 1
cmp byte [ebx + 0x1f6], 0
jne 0x40a4a9
cmp byte [esi + 0x1b7], 0
jne 0x40a4a9
mov edi, str.Content_Length:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a4a9
mov eax, dword [ebx + 0x1b0]
push 0xa
add eax, 0xf
push 0
push eax
call fcn.0042f302
mov edi, dword [esi + 0x178]
mov ecx, dword [esi + 0x17c]
mov dword [ebp - 0x2c], edx
mov edx, edi
add esp, 0xc
or edx, ecx
je 0x40a470
cmp dword [ebp - 0x2c], ecx
jg 0x40ad9f
jl 0x40a470
cmp eax, edi
ja 0x40ad9f
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jl 0x40a48e
jg 0x40a47d
test eax, eax
jb 0x40a48e
mov dword [ebx + 0x130], eax
mov dword [ebx + 0x134], ecx
jmp 0x40aa97
push ecx
push eax
push str.Negative_content_length:__lld__closing_after_transfer_n
mov byte [ebx + 0xe4], 1
call fcn.00409aa3
add esp, 0xc
jmp 0x40aa97
mov edi, str.Content_Type:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a57c
mov edi, dword [ebx + 0x1b0]
add edi, 0xd
jmp 0x40a4e7
movsx eax, al
push eax
call fcn.0042e65b
test eax, eax
pop ecx
je 0x40a4ed
inc edi
mov al, byte [edi]
test al, al
jne 0x40a4d8
push 0xd
push edi
call fcn.0042fe30
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
jne 0x40a51d
push 0xa
push edi
call fcn.0042fe30
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
je 0x40aa97
jmp 0x40a51d
cmp dword [ebp - 0x10], edi
jbe 0x40a52e
dec dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax]
push eax
call fcn.0042e65b
test eax, eax
pop ecx
jne 0x40a515
mov eax, dword [ebp - 0x10]
push dword [esi + 0x83b4]
sub eax, edi
inc eax
mov dword [ebp - 0x18], eax
call fcn.0040d014
mov eax, dword [ebp - 0x18]
pop ecx
inc eax
push eax
call dword [0x4452a4]
test eax, eax
pop ecx
mov dword [esi + 0x83b4], eax
je 0x40acdc
push dword [ebp - 0x18]
push edi
push eax
call fcn.0041f4b0
mov eax, dword [esi + 0x83b4]
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov byte [ecx + eax], 0
jmp 0x40aa97
cmp dword [ebx + 0x1c4], 0xa
jne 0x40a5b0
cmp byte [ebx + 0xe7], 0
je 0x40a5b0
mov eax, dword [ebx + 0x1b0]
push str.keep_alive
push str.Proxy_Connection:
call fcn.00413edf
test al, al
pop ecx
pop ecx
je 0x40a5b0
push str.HTTP_1.0_proxy_connection_set_to_keep_alive__n
jmp 0x40a614
cmp dword [ebx + 0x1c4], 0xb
jne 0x40a5eb
cmp byte [ebx + 0xe7], 0
je 0x40a5eb
mov eax, dword [ebx + 0x1b0]
push str.close
push str.Proxy_Connection:
call fcn.00413edf
test al, al
pop ecx
pop ecx
je 0x40a5eb
mov byte [ebx + 0xe4], 1
push str.HTTP_1.1_proxy_connection_set_close__n
jmp 0x40a61b
cmp dword [ebx + 0x1c4], 0xa
jne 0x40a625
mov eax, dword [ebx + 0x1b0]
push str.keep_alive
push str.Connection:
call fcn.00413edf
test al, al
pop ecx
pop ecx
je 0x40a625
push str.HTTP_1.0_connection_set_to_keep_alive__n
mov byte [ebx + 0xe4], 0
call fcn.00409aa3
jmp 0x40a8e8
mov eax, dword [ebx + 0x1b0]
push str.close
push str.Connection:
call fcn.00413edf
test al, al
pop ecx
pop ecx
je 0x40a64c
mov byte [ebx + 0xe4], 1
jmp 0x40aa97
mov eax, dword [ebx + 0x1b0]
push str.chunked
push str.Transfer_Encoding:
call fcn.00413edf
test al, al
pop ecx
pop ecx
je 0x40a68b
mov eax, dword [ebx + 0x16c]
add eax, 0x3c
mov byte [ebx + 0xe6], 1
and dword [eax + 0x14], 0
and dword [eax + 0x20], 0
mov dword [eax + 0x18], 1
jmp 0x40aa97
mov edi, str.Trailer:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
jne 0x40aa90
mov edi, str.Trailers:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
jne 0x40aa90
mov edi, str.Content_Encoding:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a812
cmp dword [esi + 0x60], 0
je 0x40a812
mov edi, dword [ebx + 0x1b0]
add edi, 0x11
jmp 0x40a71b
movsx eax, al
push eax
call fcn.0042e65b
test eax, eax
pop ecx
je 0x40a721
inc edi
mov al, byte [edi]
test al, al
jne 0x40a70c
push str.identity
call fcn.0041f820
pop ecx
push eax
push edi
push str.identity
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a74b
and dword [ebx + 0x1d4], 0
jmp 0x40aa97
push str.deflate
call fcn.0041f820
pop ecx
push eax
push edi
push str.deflate
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a778
mov dword [ebx + 0x1d4], 1
jmp 0x40aa97
push str.gzip
call fcn.0041f820
pop ecx
push eax
push edi
push str.gzip
call fcn.004124f1
add esp, 0xc
test eax, eax
jne 0x40a803
push str.x_gzip
call fcn.0041f820
pop ecx
push eax
push edi
push str.x_gzip
call fcn.004124f1
add esp, 0xc
test eax, eax
jne 0x40a803
push str.compress
call fcn.0041f820
pop ecx
push eax
push edi
push str.compress
call fcn.004124f1
add esp, 0xc
test eax, eax
jne 0x40a7f4
push str.x_compress
call fcn.0041f820
pop ecx
push eax
push edi
push str.x_compress
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40aa97
mov dword [ebx + 0x1d4], 3
jmp 0x40aa97
mov dword [ebx + 0x1d4], 2
jmp 0x40aa97
mov eax, dword [ebx + 0x1b0]
push str.bytes
push str.Content_Range:
call fcn.00413edf
test al, al
pop ecx
pop ecx
je 0x40a881
push dword [ebx + 0x1b0]
call fcn.0041250b
add eax, 5
cmp byte [eax], 0x3a
pop ecx
jne 0x40a842
inc eax
push 0xa
push 0
push eax
call fcn.0042f302
mov dword [ebx + 0x1b8], eax
mov dword [ebx + 0x1bc], edx
mov eax, dword [ebx + 0x78]
add esp, 0xc
cmp eax, dword [ebx + 0x1b8]
jne 0x40aa97
mov eax, dword [ebx + 0x7c]
cmp eax, edx
jne 0x40aa97
mov byte [ebx + 0x1b4], 1
jmp 0x40aa97
cmp dword [esi + 0x1dc], 0
je 0x40a8ee
mov edi, str.Set_Cookie:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a8ee
push 2
mov edx, esi
call fcn.00412478
mov eax, dword [ebx + 0x160]
test eax, eax
pop ecx
jne 0x40a8c1
mov eax, dword [ebx + 0x34]
push dword [ebx + 0x50]
mov ecx, dword [ebx + 0x1b0]
push eax
push 1
push dword [esi + 0x1dc]
add ecx, 0xb
push esi
call fcn.0040c10c
add esp, 0x14
push 2
mov edx, esi
call fcn.004124ab
pop ecx
jmp 0x40aa97
mov edi, str.Last_Modified:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a95f
cmp dword [esi + 0x108], 0
jne 0x40a920
cmp byte [esi + 0x189], 0
je 0x40a95f
push 0
call fcn.0041f470
pop ecx
push edi
call fcn.0041f820
add eax, dword [ebx + 0x1b0]
pop ecx
mov ecx, eax
lea edi, [ebx + 0x1d8]
call fcn.00412f24
mov dword [edi], eax
mov dword [edi + 4], edx
cmp byte [esi + 0x189], 0
je 0x40aa97
mov dword [esi + 0x839c], eax
jmp 0x40aa97
mov edi, str.WWW_Authenticate:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a98c
mov eax, dword [ebx + 0x1c0]
cmp eax, 0x191
je 0x40a9b9
mov edi, str.Proxy_authenticate:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40a9d6
mov eax, dword [ebx + 0x1c0]
cmp eax, 0x197
jne 0x40a9d6
push dword [ebx + 0x1b0]
push eax
push ebx
call fcn.00413aaa
add esp, 0xc
test eax, eax
jne 0x40b54c
jmp 0x40aa97
mov eax, dword [ebx + 0x1c0]
cmp eax, 0x12c
jl 0x40aa97
cmp eax, 0x190
jge 0x40aa97
mov edi, str.Location:
push edi
call fcn.0041f820
pop ecx
push eax
push dword [ebx + 0x1b0]
push edi
call fcn.004124f1
add esp, 0xc
test eax, eax
je 0x40aa97
cmp byte [esi + 0x192], 0
je 0x40aa97
mov edi, dword [ebx + 0x1b0]
add edi, 9
jmp 0x40aa39
movsx eax, al
push eax
call fcn.0042e65b
test eax, eax
pop ecx
je 0x40aa42
inc edi
mov al, byte [edi]
test al, al
mov dword [ebp - 0x10], edi
jne 0x40aa2a
mov edi, dword [ebx + 0x1ac]
jmp 0x40aa58
movsx eax, byte [edi]
push eax
call fcn.0042e65b
test eax, eax
pop ecx
je 0x40aa5e
dec edi
cmp edi, dword [ebp - 0x10]
jae 0x40aa4a
inc edi
cmp edi, dword [ebp - 0x10]
mov al, byte [edi]
mov byte [ebp - 3], al
je 0x40aa97
push dword [ebp - 0x10]
mov byte [edi], 0
call dword [0x4452b0]
mov dword [ebx + 0x164], eax
mov al, byte [ebp - 3]
mov byte [edi], al
cmp dword [ebx + 0x164], 0
pop ecx
je 0x40acdc
jmp 0x40aa97
mov byte [ebx + 0xfd], 1
cmp byte [esi + 0x194], 0
push 2
pop edi
je 0x40aaa6
push 3
pop edi
cmp byte [esi + 0x1a4], 0
je 0x40aacf
mov ecx, dword [ebp - 8]
push ebx
push dword [ebx + 0x1a0]
mov ebx, dword [ebx + 0x1b0]
push 1
call fcn.00409dbb
mov esi, dword [ebp - 8]
mov ebx, dword [ebp + 8]
add esp, 0xc
push dword [ebx + 0x1b0]
mov eax, dword [ebx + 0x1a0]
push edi
mov ecx, esi
call fcn.00409c96
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
jne 0x40b54c
mov eax, dword [ebx + 0x1a0]
add dword [esi + 0x83a0], eax
mov eax, dword [ebx + 0x1a0]
add dword [ebx + 0x68], eax
mov eax, dword [esi + 0x2ec]
and dword [ebx + 0x1a0], 0
mov dword [ebx + 0x19c], eax
jmp 0x40ac79
cmp cl, 0xd
jne 0x40ab29
inc eax
mov dword [ebx + 0x1b0], eax
mov eax, dword [ebx + 0x1b0]
cmp byte [eax], 0xa
jne 0x40ab3b
inc eax
mov dword [ebx + 0x1b0], eax
mov ecx, dword [ebx + 0x1c0]
cmp ecx, 0x64
jne 0x40ab6b
and dword [ebx + 0x198], 0
lea eax, [ebx + 0x1d0]
cmp byte [eax], 0
mov byte [ebx + 0x190], 1
je 0x40ab72
or dword [ebx + 0x1f0], 2
mov byte [eax], 0
jmp 0x40ab72
mov byte [ebx + 0x190], 0
cmp ecx, 0x1a1
jne 0x40ab88
and dword [ebx + 0x1f0], 0xfffffffd
mov byte [ebx + 0x1d0], 0
cmp ecx, 0x197
jne 0x40ab9d
cmp byte [ebx + 0xe7], 0
jne 0x40adb1
mov ecx, ebx
call fcn.00413b9e
test eax, eax
jne 0x40adb8
cmp byte [esi + 0x194], al
push 2
pop ecx
je 0x40abba
push 3
pop ecx
mov eax, dword [esi + 0x2ec]
mov edi, dword [ebx + 0x1b0]
push eax
sub edi, eax
push ecx
mov eax, edi
mov ecx, esi
call fcn.00409c96
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
jne 0x40b54c
add dword [esi + 0x83a0], edi
add dword [ebx + 0x68], edi
mov eax, dword [ebx + 0x1c0]
mov ecx, dword [ebx + 0x68]
sub eax, 0x64
neg eax
sbb eax, eax
not eax
and eax, ecx
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx + 0x78]
or eax, dword [ebx + 0x7c]
je 0x40ac23
cmp dword [esi + 0x11c], 1
jne 0x40ac23
cmp dword [ebx + 0x1c0], 0x1a0
jne 0x40ac23
mov byte [ebp - 1], 1
jmp 0x40ac4f
mov eax, ebx
call fcn.0041371b
test eax, eax
mov dword [ebp - 0x10], eax
jne 0x40b54c
cmp byte [ebx + 0xf8], al
je 0x40ac4f
push str.Keep_sending_data_to_get_tossed_away__n
call fcn.00409aa3
or dword [ebx + 0x1f0], 2
pop ecx
cmp byte [ebx + 0x190], 0
je 0x40add1
mov eax, dword [esi + 0x2ec]
and dword [ebx + 0x1a0], 0
cmp byte [ebp - 1], 0
mov dword [ebx + 0x19c], eax
jne 0x40b141
mov eax, dword [ebx + 0x1a4]
cmp byte [eax], 0
je 0x40ae4f
mov edi, dword [ebp - 0xc]
jmp 0x40a17a
mov eax, dword [ebx + 0x1a0]
mov ecx, dword [esi + 0x2f0]
add eax, edi
cmp eax, ecx
jb 0x40acfa
imul eax, eax, 3
shr eax, 1
add ecx, ecx
cmp eax, ecx
mov dword [ebp - 0x18], eax
ja 0x40acb3
mov dword [ebp - 0x18], ecx
mov eax, dword [esi + 0x2ec]
push dword [ebp - 0x18]
mov edi, dword [ebx + 0x19c]
push eax
sub edi, eax
call dword [0x4452ac]
test eax, eax
pop ecx
pop ecx
jne 0x40ace3
push str.Failed_to_alloc_memory_for_big_header_
call fcn.00409b0c
pop ecx
push 0x1b
jmp 0x40a095
mov ecx, dword [ebp - 0x18]
mov dword [esi + 0x2ec], eax
add eax, edi
mov dword [esi + 0x2f0], ecx
mov dword [ebx + 0x19c], eax
push dword [ebp - 0xc]
lea edi, [ebx + 0x19c]
push dword [ebx + 0x1a4]
push dword [edi]
call fcn.0041f4b0
mov eax, dword [ebp - 0xc]
add dword [edi], eax
add dword [ebx + 0x1a0], eax
mov eax, dword [ebx + 0x1a0]
add esp, 0xc
cmp dword [ebx + 0x198], 0
jne 0x40ae4f
cmp eax, 5
jbe 0x40ae4f
push dword [esi + 0x2ec]
mov eax, esi
call fcn.00409f6a
test al, al
pop ecx
jne 0x40ae4f
mov byte [ebx + 0x190], al
mov dword [ebx + 0x194], 2
jmp 0x40ae4f
cmp dword [ebp - 0xc], 0
mov byte [ebx + 0x190], 0
je 0x40ad81
mov dword [ebx + 0x194], 1
jmp 0x40ae4f
mov dword [ebx + 0x194], 2
mov dword [ebp - 0xc], edi
jmp 0x40ae4f
mov byte [ebx + 0x190], 0
jmp 0x40ae4f
push str.Maximum_file_size_exceeded
call fcn.00409b0c
pop ecx
push 0x3f
jmp 0x40a095
push 0x4b
jmp 0x40a095
push dword [ebx + 0x1c0]
push str.The_requested_URL_returned_error:__d
call fcn.00409b0c
pop ecx
pop ecx
push 0x16
jmp 0x40a095
cmp byte [ebx + 0xf5], 0
je 0x40ade0
mov byte [ebp - 1], 1
jmp 0x40adf7
cmp byte [ebx + 0xe6], 0
je 0x40adf7
or dword [ebx + 0x130], 0xffffffff
or dword [ebx + 0x134], 0xffffffff
mov eax, dword [ebx + 0x130]
cmp eax, 0xffffffff
mov ecx, dword [ebx + 0x134]
jne 0x40ae0c
cmp ecx, eax
je 0x40ae2f
push ecx
push eax
mov eax, esi
call fcn.004128c5
mov eax, dword [ebx + 0x130]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebx + 0x134]
pop ecx
pop ecx
mov dword [ebx + 0xac], eax
cmp dword [ebx + 0xa8], 0
jne 0x40ae45
cmp dword [ebx + 0xac], 0
jne 0x40ae45
mov byte [ebp - 1], 1
cmp byte [ebp - 1], 0
jne 0x40a2f9
xor edi, edi
cmp dword [ebx + 0x1a4], edi
je 0x40b133
cmp byte [ebx + 0x190], 0
jne 0x40b133
cmp dword [ebp - 0xc], edi
jg 0x40ae79
cmp byte [ebp - 2], 0
je 0x40b141
cmp dword [ebx + 0x1e0], edi
jne 0x40af75
cmp byte [ebp - 2], 0
jne 0x40af75
test byte [ebx + 8], 4
je 0x40af75
cmp dword [ebx + 0x164], edi
je 0x40aece
cmp byte [ebx + 0xe4], 0
je 0x40aebc
and dword [ebx + 0x1f0], 0xfffffffe
mov eax, dword [ebp + 0xc]
mov byte [eax], 1
jmp 0x40b54a
push str.Ignoring_the_response_body_n
mov byte [ebx + 0x1f5], 1
call fcn.00409aa3
pop ecx
mov eax, dword [ebx + 0x78]
or eax, dword [ebx + 0x7c]
je 0x40af03
cmp byte [ebx + 0x1b4], 0
jne 0x40af03
cmp dword [esi + 0x11c], 1
jne 0x40af03
cmp byte [ebx + 0x1f5], 0
jne 0x40af03
push str.HTTP_server_doesnt_seem_to_support_byte_ranges._Cannot_resume.
call fcn.00409b0c
pop ecx
push 0x21
jmp 0x40a095
mov eax, dword [esi + 0x108]
cmp eax, edi
je 0x40af75
cmp dword [ebx + 0x70], edi
jne 0x40af75
mov edi, dword [ebx + 0x1dc]
test edi, edi
mov ecx, dword [ebx + 0x1d8]
jl 0x40af75
jg 0x40af28
test ecx, ecx
jbe 0x40af75
mov ecx, dword [esi + 0x114]
test ecx, ecx
mov edx, dword [esi + 0x110]
jl 0x40af75
jg 0x40af3e
test edx, edx
jbe 0x40af75
dec eax
dec eax
je 0x40af60
cmp edi, ecx
jg 0x40af75
jl 0x40af50
cmp dword [ebx + 0x1d8], edx
jae 0x40af75
push str.The_requested_document_is_not_new_enough_n
call fcn.00409aa3
pop ecx
jmp 0x40aeb1
cmp edi, ecx
jl 0x40af75
jg 0x40af6e
cmp dword [ebx + 0x1d8], edx
jbe 0x40af75
push str.The_requested_document_is_not_old_enough_n
jmp 0x40af55
inc dword [ebx + 0x1e0]
cmp byte [esi + 0x1a4], 0
je 0x40afd6
mov ecx, dword [ebp - 8]
lea edi, [ebx + 0x194]
cmp dword [edi], 0
push ebx
je 0x40afbd
push dword [ebx + 0x1a0]
mov ebx, dword [esi + 0x2ec]
push 3
call fcn.00409dbb
add esp, 0xc
cmp dword [edi], 1
jne 0x40afd0
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x1a4]
mov ecx, dword [ebp - 8]
push eax
jmp 0x40afc3
mov ebx, dword [ebx + 0x1a4]
push dword [ebp - 0xc]
push 3
call fcn.00409dbb
add esp, 0xc
mov esi, dword [ebp - 8]
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0xe6], 0
je 0x40b033
lea eax, [ebp - 0xc]
push eax
push dword [ebx + 0x1a4]
mov eax, dword [ebp - 0xc]
mov edi, ebx
call fcn.004121a0
test eax, eax
mov esi, dword [ebp - 8]
pop ecx
pop ecx
jle 0x40b027
cmp eax, 4
jne 0x40b013
push str.Failed_writing_data
call fcn.00409b0c
pop ecx
push 0x17
jmp 0x40a095
push eax
push str.Received_problem__d_in_the_chunky_parser
call fcn.00409b0c
pop ecx
pop ecx
push 0x38
jmp 0x40a095
cmp eax, 0xffffffff
jne 0x40b033
and dword [ebx + 0x1f0], 0xfffffffe
mov edi, dword [ebx + 0xa8]
cmp edi, 0xffffffff
mov ecx, dword [ebx + 0xac]
jne 0x40b048
cmp ecx, edi
je 0x40b07d
mov eax, dword [ebp - 0xc]
cdq
add eax, dword [ebx + 0x170]
adc edx, dword [ebx + 0x174]
cmp edx, ecx
jl 0x40b07d
jg 0x40b062
cmp eax, edi
jb 0x40b07d
mov eax, edi
sub eax, dword [ebx + 0x170]
mov dword [ebp - 0xc], eax
jns 0x40b074
xor eax, eax
mov dword [ebp - 0xc], eax
and dword [ebx + 0x1f0], 0xfffffffe
jmp 0x40b080
mov eax, dword [ebp - 0xc]
cdq
add dword [ebx + 0x170], eax
mov eax, dword [ebx + 0x170]
adc dword [ebx + 0x174], edx
mov dword [esi + 0x1f8], eax
mov eax, dword [ebx + 0x174]
mov dword [esi + 0x1fc], eax
cmp byte [ebx + 0xe6], 0
jne 0x40b133
xor eax, eax
cmp dword [ebp - 0xc], eax
jne 0x40b0c6
cmp dword [ebx + 0x194], eax
jne 0x40b0ce
cmp byte [ebp - 2], al
je 0x40b141
cmp dword [ebx + 0x194], eax
je 0x40b0fd
cmp byte [ebx + 0x1f5], 0
jne 0x40b0fd
push dword [esi + 0x2ec]
mov eax, dword [ebx + 0x1a0]
push 1
mov ecx, esi
call fcn.00409c96
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
je 0x40b0fd
mov eax, dword [ebp - 0x10]
jmp 0x40b54c
cmp dword [ebx + 0x194], 2
jge 0x40b126
cmp byte [ebx + 0x1f5], 0
jne 0x40b126
push dword [ebx + 0x1a4]
mov eax, dword [ebp - 0xc]
push 1
mov ecx, esi
call fcn.00409c96
pop ecx
pop ecx
mov dword [ebp - 0x10], eax
and dword [ebx + 0x194], 0
cmp dword [ebp - 0x10], 0
jne 0x40b0f5
cmp byte [ebp - 2], 0
je 0x40b141
jmp 0x40a2f9
mov esi, dword [ebp - 8]
test byte [ebx + 0x1f0], 2
je 0x40b31c
test byte [ebp - 0x20], 2
je 0x40b31c
mov eax, dword [ebx + 0x170]
or eax, dword [ebx + 0x174]
jne 0x40b17c
mov eax, dword [ebx + 0x178]
or eax, dword [ebx + 0x17c]
jne 0x40b17c
push 4
pop eax
call fcn.004127d6
or dword [ebp - 0x14], 2
cmp dword [ebx + 0x1f8], 0
jne 0x40b273
mov eax, dword [ebx + 0x1e8]
mov dword [ebx + 0x1fc], eax
cmp byte [ebx + 0x1f4], 0
jne 0x40b1d8
cmp byte [ebx + 0x1d1], 0
je 0x40b1bb
mov eax, dword [ebx + 0x16c]
cmp dword [eax + 0x78], 2
je 0x40b376
push 0x4000
lea ecx, [ebp - 0x24]
mov edi, ebx
call fcn.00409e91
test eax, eax
pop ecx
jne 0x40b54c
mov edi, dword [ebp - 0x24]
jmp 0x40b1da
xor edi, edi
test edi, edi
mov dword [ebp - 0xc], edi
jle 0x40b3a5
mov esi, dword [ebp - 8]
mov dword [ebx + 0x1f8], edi
cmp byte [esi + 0xe5], 0
je 0x40b273
cmp dword [esi + 0x8310], 0
jne 0x40b212
push 0x8000
call dword [0x4452a4]
pop ecx
mov dword [esi + 0x8310], eax
xor eax, eax
cmp dword [esi + 0x8310], eax
je 0x40b3cd
xor edx, edx
cmp eax, edi
jge 0x40b25f
mov ecx, dword [ebx + 0x1fc]
mov cl, byte [edx + ecx]
cmp cl, 0xa
jne 0x40b24b
mov ecx, dword [esi + 0x8310]
mov byte [eax + ecx], 0xd
mov ecx, dword [esi + 0x8310]
inc eax
mov byte [eax + ecx], 0xa
jmp 0x40b257
mov edi, dword [esi + 0x8310]
mov byte [eax + edi], cl
mov edi, dword [ebp - 0xc]
inc edx
inc eax
cmp edx, edi
jl 0x40b226
cmp eax, edi
je 0x40b273
mov ecx, dword [esi + 0x8310]
mov dword [ebx + 0x1fc], ecx
mov dword [ebx + 0x1f8], eax
lea eax, [ebp - 0x28]
push eax
push dword [ebx + 0x1f8]
mov eax, dword [ebx + 0x13c]
push dword [ebx + 0x1fc]
mov ecx, ebx
call fcn.00409c19
add esp, 0xc
test eax, eax
jne 0x40b54c
mov edi, dword [ebp - 8]
cmp byte [edi + 0x1a4], al
mov esi, dword [ebp - 0x28]
je 0x40b2c0
push ebx
mov ebx, dword [ebx + 0x1fc]
push esi
push 4
mov ecx, edi
call fcn.00409dbb
mov ebx, dword [ebp + 8]
add esp, 0xc
mov eax, dword [ebx + 0x1f8]
cmp eax, esi
je 0x40b2da
sub eax, esi
add dword [ebx + 0x1fc], esi
mov dword [ebx + 0x1f8], eax
jmp 0x40b2fd
mov eax, dword [ebx + 0x1e8]
and dword [ebx + 0x1f8], 0
mov dword [ebx + 0x1fc], eax
cmp byte [ebx + 0x1f4], 0
je 0x40b2fd
and dword [ebx + 0x1f0], 0xfffffffd
lea ecx, [ebx + 0x178]
mov eax, esi
cdq
add dword [ecx], eax
mov eax, dword [ecx]
adc dword [ecx + 4], edx
mov dword [edi + 0x200], eax
mov eax, dword [ecx + 4]
mov dword [edi + 0x204], eax
call fcn.0041346f
cmp dword [ebp - 0x14], 0
mov dword [ebx + 0x188], eax
mov dword [ebx + 0x18c], edx
je 0x40b3d7
mov eax, dword [ebx + 0x138]
test eax, eax
je 0x40b352
mov ecx, dword [ebx + 0x170]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x174]
mov dword [eax + 4], ecx
mov eax, dword [ebx + 0x140]
test eax, eax
je 0x40b40b
mov ecx, dword [ebx + 0x178]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x17c]
mov dword [eax + 4], ecx
jmp 0x40b40b
and dword [ebx + 0x1f0], 0xfffffffd
mov byte [ebx + 0x1d1], 0
mov byte [ebx + 0x1d0], 1
call fcn.0041346f
and dword [ebp - 0x14], 0xfffffffd
mov dword [ebx + 0x1c8], eax
mov dword [ebx + 0x1cc], edx
jmp 0x40b31c
and dword [ebx + 0x1f0], 0xfffffffd
cmp byte [ebx + 0xf8], 0
je 0x40b31c
mov eax, ebx
call fcn.00409fb8
test eax, eax
je 0x40b31c
jmp 0x40b54c
push str.Failed_to_alloc_scratch_buffer_
jmp 0x40acd6
cmp byte [ebx + 0x1d0], 0
je 0x40b40b
push dword [ebx + 0x1cc]
push dword [ebx + 0x1c8]
push edx
push eax
call fcn.00413495
add esp, 0x10
cmp eax, 0x3e8
jle 0x40b40b
or dword [ebx + 0x1f0], 2
mov byte [ebx + 0x1d0], 0
mov ecx, ebx
call fcn.00412921
test eax, eax
jne 0x40b534
push dword [ebx + 0x18c]
mov esi, dword [ebp - 8]
push dword [ebx + 0x188]
mov eax, esi
call fcn.0041254c
test eax, eax
pop ecx
pop ecx
jne 0x40b54c
mov edi, dword [esi + 0x98]
test edi, edi
je 0x40b49c
push dword [ebx + 0x184]
push dword [ebx + 0x180]
push dword [ebx + 0x18c]
push dword [ebx + 0x188]
call fcn.00413495
cdq
mov ecx, 0x3e8
idiv ecx
add esp, 0x10
cmp eax, edi
jl 0x40b49c
push dword [ebx + 0x134]
push dword [ebx + 0x130]
push dword [ebx + 0x174]
push dword [ebx + 0x170]
push str.Operation_timed_out_with__lld_out_of__lld_bytes_received
call fcn.00409b0c
add esp, 0x14
push 0x1c
jmp 0x40a095
cmp dword [ebx + 0x1f0], 0
jne 0x40b542
cmp byte [ebx + 0xf5], 0
jne 0x40b529
mov eax, dword [ebx + 0x130]
mov ecx, dword [ebx + 0x134]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x40b4fe
mov edi, dword [ebx + 0x170]
cmp edi, eax
mov edx, dword [ebx + 0x174]
jne 0x40b4db
cmp edx, ecx
je 0x40b4fe
cmp dword [ebx + 0x164], 0
jne 0x40b4fe
sub eax, edi
sbb ecx, edx
push ecx
push eax
push str.transfer_closed_with__lld_bytes_remaining_to_read
call fcn.00409b0c
add esp, 0xc
push 0x12
jmp 0x40a095
cmp byte [ebx + 0xf5], 0
jne 0x40b529
cmp byte [ebx + 0xe6], 0
je 0x40b529
mov eax, dword [ebx + 0x16c]
cmp dword [eax + 0x54], 7
je 0x40b529
push str.transfer_closed_with_outstanding_read_data_remaining
call fcn.00409b0c
pop ecx
jmp 0x40b4f7
mov ecx, ebx
call fcn.00412921
test eax, eax
je 0x40b53b
push 0x2a
jmp 0x40a095
cmp dword [ebx + 0x1f0], 0
mov ecx, dword [ebp + 0xc]
sete al
mov byte [ecx], al
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret