Function at 0x40f8f0
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket
Send http request

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x14e4
call fcn.00463a90
mov eax, dword [0x4b9430]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor edi, edi
push 0x1388
lea eax, [ebp - 0x1390]
mov ebx, ecx
push edi
push eax
mov dword [ebp - 0x149c], ebx
mov dword [ebp - 0x14dc], edi
mov dword [ebp - 0x14c0], edi
mov dword [ebp - 0x14bc], edi
mov dword [ebp - 0x14a8], edi
mov dword [ebp - 0x14c4], edi
mov dword [ebp - 0x14d0], edi
mov dword [ebp - 0x14d8], edi
call fcn.00463ac0
xor ecx, ecx
mov dword [ebx + 0x150], ecx
lea esi, [ebx + 0xe8]
add esp, 0xc
mov ecx, ebx
mov dword [ebp - 0x14a4], esi
mov dword [ebx + 0x148], edi
call fcn.0040ea50
test eax, eax
je 0x40f9a2
mov eax, dword [ebx + 0x15c]
cmp eax, dword [ebx + 0x158]
jbe 0x410d0e
mov ecx, ebx
call fcn.0040f240
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
mov eax, ebx
call fcn.0040ee50
test eax, eax
je 0x40fa0a
mov eax, dword [ebx + 0x154]
cmp dword [ebx + 0x15c], eax
jbe 0x410d0e
cmp eax, dword [ebx + 0x158]
jae 0x40f9e6
mov cl, 0xd
lea esp, [esp]
cmp byte [eax], 0
jne 0x40f9dd
cmp byte [eax - 1], cl
jne 0x40f9dd
mov byte [eax], 0xa
inc eax
cmp eax, dword [ebx + 0x158]
jb 0x40f9d0
mov ecx, dword [ebx + 0x154]
mov dword [ebx + 0x158], ecx
mov ecx, ebx
call fcn.0040f240
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
mov edi, esi
mov ecx, ebx
call fcn.0040a9d0
mov dword [ebp - 0x14b4], eax
test eax, eax
jne 0x40fa40
push str.gateway_spec_is_NULL______This_cant_happen_
push 0x4000
call fcn.004090c0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
cmp dword [0x4c1f14], 0
je 0x40fa5a
mov esi, ebx
call fcn.00411f30
test eax, eax
jne 0x410d0e
mov esi, edi
mov eax, ebx
call fcn.0040f830
cmp eax, 1
je 0x410d0e
mov eax, 0x4a9810
mov ecx, ebx
call fcn.0040de90
test eax, eax
jne 0x410d0e
cmp dword [esi + 0x28], eax
jne 0x40fac2
mov eax, dword [ebx + 0x164]
cmp dword [eax], 0
je 0x40faa5
mov edx, dword [eax]
push edx
call fcn.0045d483
mov eax, dword [ebx + 0x164]
add esp, 4
mov dword [eax], 0
mov ecx, dword [ebp - 0x14b4]
mov esi, dword [ebx + 0x164]
push ecx
mov edi, ebx
call fcn.0040df00
mov esi, dword [ebp - 0x14a4]
add esp, 4
lea edi, [ebx + 4]
call fcn.0040dc60
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
push edx
push eax
push str._s_s
push 1
call fcn.004090c0
mov ecx, dword [ebp - 0x14b4]
mov eax, dword [ecx + 0x2c]
add esp, 0x10
test eax, eax
je 0x40fb08
mov edx, dword [esi + 0x24]
push edx
mov edx, dword [ecx + 0x30]
push edx
push eax
push str.via___s_:_d_to:__s
push 2
call fcn.004090c0
add esp, 0x14
jmp 0x40fb1b
mov eax, dword [esi + 0x24]
push eax
push str.to__s
push 2
call fcn.004090c0
add esp, 0xc
mov esi, dword [ebx + 0x90]
lea edi, [ebx + 0x90]
mov dword [ebp - 0x14b0], edi
cmp esi, 0xffffffff
je 0x40fb82
call fcn.0040d680
test eax, eax
je 0x40fb82
mov ecx, dword [edi + 0x2c]
mov edx, dword [ebp - 0x14a4]
cmp ecx, dword [edx + 0x1c]
jne 0x40fb82
mov ecx, dword [edi + 0x28]
mov eax, edx
mov eax, dword [eax + 0x18]
call fcn.00413be0
neg eax
sbb eax, eax
inc eax
je 0x40fb82
mov ecx, dword [ebx + 0xb4]
mov edx, dword [ebx + 0xb8]
mov eax, dword [edi]
push ecx
push edx
push eax
push str.Reusing_server_socket__d_connected_to__s._Total_requests:__u.
push 2
call fcn.004090c0
add esp, 0x14
jmp 0x40fc31
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x40fbb7
mov ecx, dword [ebx + 0xb4]
mov edx, dword [ebx + 0xb8]
push ecx
push edx
push eax
push str.Closing_server_socket__d_connected_to__s._Total_requests:__u.
push 2
call fcn.004090c0
mov eax, dword [edi]
add esp, 0x14
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, edi
call fcn.0040c300
mov ecx, dword [ebp - 0x14a4]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
push ecx
push eax
mov ecx, ebx
call fcn.0040c6c0
mov esi, eax
add esp, 8
mov dword [ebp - 0x14cc], esi
cmp esi, 0xffffffff
je 0x40fbfa
mov eax, dword [ebp - 0x14a4]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
push esi
push ecx
push edx
push str.Created_new_connection_to__s:_d_on_socket__d.
push 2
call fcn.004090c0
add esp, 0x14
mov dword [edi], esi
cmp esi, 0xffffffff
je 0x410d0e
mov ebx, dword [ebp - 0x14a4]
mov eax, dword [ebp - 0x14cc]
mov esi, edi
mov edi, dword [ebp - 0x14b4]
call fcn.0040e180
mov eax, dword [ebp - 0x149c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x78]
mov dword [eax + 0xb0], edx
mov ebx, eax
mov eax, dword [ebp - 0x14a4]
inc dword [ebx + 0xb4]
cmp dword [eax + 0x28], 0
jne 0x40feb9
lea esi, [ebx + 0x164]
mov eax, esi
mov dword [ebp - 0x14c8], esi
call fcn.004125f0
mov edi, eax
mov dword [ebp - 0x14a0], edi
test edi, edi
jne 0x40fc78
push str.Out_of_memory_parsing_client_header
push 0x4000
call fcn.004090c0
add esp, 8
push esi
call fcn.004125a0
add esp, 4
cmp dword [0x4c5c98], 0
je 0x40fdd7
mov esi, ebx
call fcn.0040f890
test eax, eax
je 0x40fdd7
push 0xd
push edi
call fcn.0045d560
add esp, 8
test eax, eax
je 0x40fe26
mov ecx, eax
sub ecx, edi
mov ebx, 0x4ae3c0
mov eax, edi
call fcn.00403e20
mov edx, eax
mov dword [ebp - 0x14cc], edx
test edx, edx
jne 0x40fd51
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fcd5
sub eax, edx
mov ecx, dword [ebp - 0x14b0]
mov ebx, dword [ecx]
jne 0x40fcec
xor eax, eax
jmp 0x40fcf9
mov edi, dword [ebp - 0x14a0]
mov esi, eax
call fcn.0040cd80
xor edx, edx
test eax, eax
setne dl
mov esi, edx
mov ebx, dword [ebp - 0x149c]
test edi, edi
je 0x40fd1f
push edi
call fcn.0045d483
add esp, 4
mov dword [ebp - 0x14a0], 0
test esi, esi
je 0x40fe31
mov edx, dword [ebp - 0x14a4]
mov eax, dword [edx + 0x24]
push eax
push str.Failed_sending_request_headers_to:__s:__E
push 2
call fcn.004090c0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14b0]
mov ebx, dword [eax]
mov esi, edx
sub esi, edi
add esi, 2
jne 0x40fd66
xor eax, eax
jmp 0x40fd77
mov edi, dword [ebp - 0x14a0]
call fcn.0040cd80
mov edx, dword [ebp - 0x14cc]
xor ecx, ecx
test eax, eax
setne cl
mov esi, ecx
test esi, esi
jne 0x40fd02
mov ecx, edi
lea esi, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40fd90
mov eax, dword [ebp - 0x14b0]
mov ebx, dword [eax]
sub ecx, esi
sub ecx, edx
lea esi, [ecx + edi - 2]
test esi, esi
jne 0x40fdbb
xor ecx, ecx
xor eax, eax
test eax, eax
setne cl
mov esi, ecx
jmp 0x40fd02
lea edi, [edx + 2]
call fcn.0040cd80
mov edi, dword [ebp - 0x14a0]
xor ecx, ecx
test eax, eax
setne cl
mov esi, ecx
jmp 0x40fd02
mov eax, edi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40fde0
sub eax, edx
mov edx, dword [ebp - 0x14b0]
mov ecx, dword [edx]
jne 0x40fe03
xor ecx, ecx
xor eax, eax
test eax, eax
setne cl
mov esi, ecx
jmp 0x40fd08
mov edi, dword [ebp - 0x14a0]
mov esi, eax
mov ebx, ecx
call fcn.0040cd80
mov ebx, dword [ebp - 0x149c]
xor ecx, ecx
test eax, eax
setne cl
mov esi, ecx
jmp 0x40fd08
mov esi, dword [ebp - 0x14d8]
jmp 0x40fd08
mov ecx, dword [ebx + 0x1a0]
mov eax, dword [ebx + 0x15c]
mov esi, dword [ebx + 0x1a4]
sub eax, dword [ebx + 0x158]
mov edx, ecx
or edx, esi
je 0x40fe64
test eax, eax
jle 0x40fe64
cdq
sub ecx, eax
sbb esi, edx
mov dword [ebx + 0x1a0], ecx
mov dword [ebx + 0x1a4], esi
test dword [ebx + 0xd8], 0x800000
jne 0x40ff02
mov eax, dword [ebp - 0x14b0]
mov ecx, dword [eax]
add ebx, 0x154
push ecx
call fcn.00415290
add esp, 4
test eax, eax
jns 0x40fefc
mov edx, dword [ebp - 0x14a4]
mov eax, dword [edx + 0x24]
push eax
push str.Failed_sending_request_body_to:__s:__E
push 2
call fcn.004090c0
add esp, 0xc
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
lea eax, [ebx + 0x164]
push eax
mov dword [ebp - 0x14c8], eax
call fcn.004125a0
mov ebx, dword [ebx + 0x84]
add esp, 4
mov esi, 0x41
mov edi, str.HTTP_1.1_200_Connection_established_r_nProxy_Agent:_Privoxy_2.1_r_n_r_n
call fcn.0040cd80
test eax, eax
jne 0x410d0e
mov esi, dword [ebp - 0x149c]
add esi, 0x154
call fcn.004153e0
mov ebx, dword [ebp - 0x149c]
mov ecx, dword [ebp - 0x14a4]
mov edx, dword [ecx + 0x24]
push edx
push str.to__s_successful
push 2
call fcn.004090c0
add esp, 0xc
push 0
call fcn.0045ec8e
mov ecx, dword [ebp - 0x14b0]
mov ecx, dword [ecx]
mov dword [ebx + 0xa0], eax
mov eax, dword [ebx + 0x84]
add esp, 4
mov dword [ebx + 0xa4], edx
mov dword [ebp - 0x14d4], eax
cmp eax, ecx
ja 0x40ff4f
mov dword [ebp - 0x14d4], ecx
mov eax, dword [ebx + 0xd8]
shr eax, 0x17
not eax
and eax, 1
mov dword [ebp - 0x14b4], 0
mov dword [ebp - 0x14cc], eax
xor eax, eax
mov dword [ebp - 0x1498], eax
cmp dword [ebp - 0x14cc], eax
jne 0x40ff8d
mov edx, dword [ebp - 0x14b0]
mov ecx, dword [edx]
mov dword [ebp - 0x14d4], ecx
jmp 0x40ffa4
mov edx, dword [ebx + 0x84]
mov eax, 1
mov dword [ebp - 0x1494], edx
mov dword [ebp - 0x1498], eax
mov ecx, dword [ebp - 0x14b0]
mov edx, dword [ecx]
mov dword [ebp + eax*4 - 0x1494], edx
mov eax, dword [ebx + 0xd8]
inc dword [ebp - 0x1498]
test al, 2
je 0x41002a
test eax, 0x4000
jne 0x41002a
mov eax, dword [ebx + 0x13c]
mov ecx, eax
sub ecx, dword [ebx + 0x138]
cmp ecx, 5
jl 0x41002a
cmp dword [eax - 5], 0xd0a0d30
jne 0x41002a
cmp byte [eax - 1], 0xa
jne 0x41002a
push str.Looks_like_we_got_the_last_chunk_together_with_the_server_headers_but_didnt_detect_it_earlier._We_better_stop_reading.
push 2
call fcn.004090c0
mov eax, dword [ebx + 0x13c]
sub eax, dword [ebx + 0x138]
add esp, 8
or dword [ebx + 0xd8], 0x4000
cdq
mov dword [ebp - 0x14c0], eax
mov dword [ebp - 0x14bc], edx
mov dword [ebx + 0x198], eax
mov dword [ebx + 0x19c], edx
cmp dword [ebp - 0x14b4], 0
je 0x4100b3
mov edi, dword [ebp - 0x14bc]
mov esi, dword [ebp - 0x14c0]
push edi
push esi
mov eax, ebx
call fcn.0040e0e0
add esp, 8
test eax, eax
je 0x4100b3
mov eax, dword [ebx + 0x198]
mov ecx, dword [ebx + 0x19c]
cmp eax, esi
jne 0x41008c
cmp ecx, edi
jne 0x41008c
mov edx, dword [ebp - 0x14a8]
push edx
push edi
push esi
push str.Done_reading_from_server._Content_length:__llu_as_expected._Bytes_most_recently_read:__d.
push 2
call fcn.004090c0
add esp, 0x14
xor edi, edi
mov dword [ebp - 0x14a8], edi
jmp 0x4103b0
mov edx, dword [ebp - 0x14a8]
push edx
push edi
push esi
push ecx
push eax
push str.Done_reading_from_server._Expected_content_length:__llu._Actual_content_length:__llu._Bytes_most_recently_read:__d.
push 2
call fcn.004090c0
add esp, 0x1c
xor edi, edi
mov dword [ebp - 0x14a8], edi
jmp 0x4103b0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x74]
lea edx, [ebp - 0x14e4]
push edx
push 0
mov dword [ebp - 0x14e4], ecx
mov ecx, dword [ebp - 0x14d4]
push 0
lea eax, [ebp - 0x1498]
push eax
inc ecx
push ecx
mov dword [ebp - 0x14e0], 0
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x410cd7
js 0x410cf5
mov eax, dword [ebx + 0x84]
mov esi, dword [sym.imp.WS2_32.dll___WSAFDIsSet]
lea edx, [ebp - 0x1498]
push edx
push eax
call esi
test eax, eax
je 0x410254
test dword [ebx + 0xd8], 0x10000
mov esi, 0x1387
je 0x410162
mov esi, dword [ebx + 0x84]
push 0
call fcn.0040cde0
mov ecx, dword [ebx + 0x84]
add esp, 4
test eax, eax
je 0x410d1f
push ecx
push str.Stopping_to_watch_the_client_socket__d._Theres_already_another_request_waiting.
push 2
mov dword [ebp - 0x14cc], 0
call fcn.004090c0
add esp, 0xc
jmp 0x40ff6d
mov ecx, dword [ebx + 0x1a0]
mov eax, dword [ebx + 0x1a4]
mov edx, ecx
or edx, eax
je 0x410194
test eax, eax
ja 0x410184
jb 0x41017e
cmp ecx, esi
jae 0x410184
mov esi, dword [ebx + 0x1a0]
push esi
push str.Waiting_for_up_to__d_bytes_from_the_client.
push 2
call fcn.004090c0
add esp, 0xc
mov ecx, dword [ebx + 0x84]
test esi, esi
jg 0x4101a2
xor esi, esi
jmp 0x4101b9
mov eax, esi
lea edi, [ebp - 0x1390]
mov ebx, ecx
call fcn.0040cdb0
mov ebx, dword [ebp - 0x149c]
mov esi, eax
mov dword [ebp - 0x14a8], esi
test esi, esi
jle 0x410d38
mov eax, dword [ebx + 0x1a0]
mov ecx, dword [ebx + 0x1a4]
mov edx, eax
or edx, ecx
je 0x410224
xor edx, edx
sub eax, esi
push esi
sbb ecx, edx
push ecx
push eax
push str.Expected_client_content_length_set_to__llu_after_reading__d_bytes.
push 2
mov dword [ebx + 0x1a0], eax
mov dword [ebx + 0x1a4], ecx
call fcn.004090c0
mov edx, dword [ebx + 0x1a0]
add esp, 0x14
or edx, dword [ebx + 0x1a4]
jne 0x410224
push str.Done_reading_from_the_client.
push 2
call fcn.004090c0
add esp, 8
or dword [ebx + 0xd8], 0x10000
mov eax, dword [ebp - 0x14b0]
mov eax, dword [eax]
test esi, esi
je 0x40ff6d
lea edi, [ebp - 0x1390]
mov ebx, eax
call fcn.0040cd80
test eax, eax
jne 0x410d44
mov ebx, dword [ebp - 0x149c]
jmp 0x40ff6d
mov edx, dword [ebp - 0x14b0]
mov eax, dword [edx]
lea ecx, [ebp - 0x1498]
push ecx
push eax
call esi
test eax, eax
je 0x410d07
cmp dword [ebp - 0x14c4], 0
je 0x410295
mov esi, dword [ebx + 0x84]
call fcn.0040d680
test eax, eax
jne 0x410295
push str.The_server_still_wants_to_talk__but_the_client_may_already_have_hung_up_on_us.
push 2
call fcn.004090c0
add esp, 8
mov ecx, dword [ebp - 0x14b0]
mov edi, dword [ecx]
push 0
push 0x1387
lea edx, [ebp - 0x1390]
push edx
push edi
call dword [sym.imp.WS2_32.dll_recv]
mov esi, eax
test esi, esi
jle 0x4102d3
lea eax, [ebp - 0x1390]
push eax
push esi
push edi
push str.from_socket__d:__N
push 0x8000
call fcn.004090c0
add esp, 0x14
mov dword [ebp - 0x14a8], esi
test esi, esi
jns 0x410326
mov esi, dword [ebp - 0x14a4]
mov ecx, dword [esi + 0x18]
push ecx
push str.read_from:__s_failed:__E
push 0x2000
call fcn.004090c0
add esp, 0xc
cmp dword [esi + 0x28], 0
jne 0x410d68
mov edx, dword [ebp - 0x14c0]
or edx, dword [ebp - 0x14bc]
jne 0x410d8b
mov esi, ebx
call fcn.0040e440
mov dword [ebp - 0x14a8], 0
test byte [ebx + 0xd8], 2
je 0x4103aa
cmp dword [ebp - 0x14a8], 5
jl 0x4103aa
mov eax, dword [ebp - 0x14a8]
cmp dword [ebp + eax - 0x1395], 0xd0a0d30
lea eax, [ebp + eax - 0x1395]
jne 0x4103aa
cmp byte [eax + 4], 0xa
jne 0x4103aa
push str.Looks_like_we_reached_the_end_of_the_last_chunk._We_better_stop_reading.
push 2
call fcn.004090c0
mov eax, dword [ebp - 0x14a8]
mov ecx, dword [ebp - 0x14c0]
cdq
add esp, 8
add ecx, eax
mov eax, dword [ebp - 0x14bc]
adc eax, edx
or dword [ebx + 0xd8], 0x4000
mov dword [ebp - 0x14c0], ecx
mov dword [ebp - 0x14bc], eax
mov dword [ebx + 0x198], ecx
mov dword [ebx + 0x19c], eax
mov dword [ebp - 0x14d8], 1
mov edi, dword [ebp - 0x14a8]
mov byte [ebp + edi - 0x1390], 0
test edi, edi
jne 0x4103e3
cmp dword [ebp - 0x14b4], edi
jne 0x410d95
mov eax, dword [ebp - 0x14a4]
cmp dword [eax + 0x28], edi
jne 0x410d95
mov dword [ebp - 0x14dc], 1
jmp 0x4103f0
cmp dword [ebp - 0x14b4], 0
jne 0x410920
mov ecx, dword [ebp - 0x14a4]
cmp dword [ecx + 0x28], 0
jne 0x410920
mov eax, dword [ebx]
lea edx, [ebp - 0x1390]
push edi
lea esi, [ebx + 0x134]
push edx
mov edx, dword [eax + 0x64]
mov eax, esi
mov dword [ebp - 0x14ac], esi
call fcn.004152f0
add esp, 8
test eax, eax
jne 0x410ef1
cmp edi, 4
jl 0x410449
mov ecx, dword [esi]
push 4
mov eax, str.HTTP
call fcn.00413c50
add esp, 4
test eax, eax
jne 0x410f14
push ebx
call fcn.0040da10
add esp, 4
cmp eax, 4
jne 0x410480
cmp dword [ebp - 0x14dc], 0
jne 0x410f2c
mov ecx, dword [ebx + 0x84]
push edi
push ecx
push str.Continuing_buffering_server_headers_from_socket__d._Bytes_most_recently_read:__d.
push 2
call fcn.004090c0
add esp, 0x10
jmp 0x40ff6d
mov eax, dword [ebx + 0x13c]
sub eax, dword [ebx + 0x138]
mov esi, dword [ebp - 0x14c8]
cdq
mov dword [ebp - 0x14c0], eax
mov eax, dword [esi]
xor edi, edi
mov dword [ebp - 0x14bc], edx
cmp eax, edi
je 0x410f5a
mov ecx, dword [eax]
push 4
mov eax, str.HTTP
call fcn.00413c50
add esp, 4
test eax, eax
je 0x4104db
mov edx, dword [esi]
mov ecx, dword [edx]
push 3
mov eax, 0x4aebb0
call fcn.00413c50
add esp, 4
test eax, eax
jne 0x410fef
push 1
push ebx
call fcn.004162c0
add esp, 8
test eax, eax
je 0x4104fc
push str.Failed_to_parse_server_headers.
push 0x4000
call fcn.004090c0
add esp, 8
mov eax, dword [ebx + 0xd8]
test al, 2
je 0x410524
test eax, 0x4000
je 0x410524
and eax, 0xffffbfff
mov dword [ebx + 0x198], edi
mov dword [ebx + 0x19c], edi
mov dword [ebx + 0xd8], eax
mov eax, dword [ebx + 0xd8]
test al, 2
je 0x410595
test eax, 0x4000
jne 0x410595
mov eax, dword [ebx + 0x13c]
mov ecx, eax
sub ecx, dword [ebx + 0x138]
cmp ecx, 5
jl 0x410595
cmp dword [eax - 5], 0xd0a0d30
jne 0x410595
cmp byte [eax - 1], 0xa
jne 0x410595
push str.Looks_like_we_got_the_last_chunk_together_with_the_server_headers._We_better_stop_reading.
push 2
call fcn.004090c0
mov eax, dword [ebx + 0x13c]
sub eax, dword [ebx + 0x138]
add esp, 8
or dword [ebx + 0xd8], 0x4000
cdq
mov dword [ebp - 0x14c0], eax
mov dword [ebp - 0x14bc], edx
mov dword [ebx + 0x198], eax
mov dword [ebx + 0x19c], edx
push edi
call fcn.0045ec8e
mov dword [ebx + 0xa8], eax
add esp, 4
mov eax, 0x4a9830
mov ecx, ebx
mov dword [ebx + 0xac], edx
call fcn.0040de90
test eax, eax
jne 0x410d07
mov edx, dword [ebp - 0x14a4]
cmp dword [edx + 0x28], edi
jne 0x410643
cmp dword [0x4c1f14], edi
je 0x410643
test dword [ebx + 0xd8], 0x4000
je 0x4105eb
mov eax, dword [ebx + 0x198]
or eax, dword [ebx + 0x19c]
je 0x410643
cmp dword [ebx + 0x178], edi
je 0x410631
mov eax, dword [ebx + 0x11c]
cmp eax, edi
je 0x41060c
push eax
call fcn.0045d483
add esp, 4
mov dword [ebx + 0x11c], edi
mov edx, dword [ebx + 0xf4]
mov ecx, dword [ebx + 0x100]
call fcn.00403320
mov dword [ebx + 0x11c], eax
cmp eax, edi
je 0x410631
mov dword [ebp - 0x14c4], 2
mov esi, ebx
call fcn.0040b000
test eax, eax
je 0x410643
or dword [ebp - 0x14c4], 4
mov eax, dword [ebp - 0x14c4]
test eax, eax
jne 0x4106dc
mov eax, dword [ebp - 0x14c8]
call fcn.004125f0
mov edi, eax
mov dword [ebp - 0x14a0], edi
test edi, edi
jne 0x41067a
push str.Out_of_memory_parsing_server_header
push 0x4000
call fcn.004090c0
add esp, 8
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410680
sub eax, edx
mov ecx, dword [ebx + 0x84]
je 0x4106ae
mov esi, eax
mov ebx, ecx
call fcn.0040cd80
mov edi, dword [ebp - 0x14a0]
test eax, eax
jne 0x411073
mov ebx, dword [ebp - 0x149c]
mov ecx, dword [ebx + 0x84]
mov ebx, dword [ebp - 0x14ac]
push ecx
call fcn.00415290
add esp, 4
mov dword [ebp - 0x14a8], eax
test eax, eax
js 0x411073
mov ebx, dword [ebp - 0x149c]
jmp 0x41089b
cmp eax, 2
jne 0x41089b
xor eax, eax
test byte [ebx + 0x174], 0x30
mov dword [ebp - 0x14b4], eax
mov dword [ebx + 0x148], eax
mov dword [ebx + 0x14c], eax
mov dword [ebx + 0x144], eax
je 0x410716
push str.Content_Encoding:
push ebx
call fcn.00419000
add esp, 8
test dword [ebx + 0xd8], 0x4000
je 0x410730
push str.Content_Length:
push ebx
call fcn.00419000
add esp, 8
mov ecx, dword [ebx + 0xf8]
mov eax, str.HTTP_1.1
call fcn.00413be0
test eax, eax
mov eax, dword [ebx + 0xd8]
je 0x41075e
test eax, 0x1000
je 0x410789
and eax, 0xffffefff
mov dword [ebx + 0xd8], eax
jmp 0x410789
mov dword [ebp - 0x14d0], 1
test al, 2
jne 0x410782
mov edi, dword [ebp - 0x14c8]
mov ebx, str.Transfer_Encoding:_chunked
call fcn.004123b0
mov ebx, dword [ebp - 0x149c]
mov eax, ebx
call fcn.004190d0
mov eax, dword [ebp - 0x14c8]
call fcn.004125f0
mov ecx, eax
mov dword [ebp - 0x14a0], eax
lea esi, [ecx + 1]
nop
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4107a0
sub ecx, esi
mov edx, dword [ebx + 0x84]
je 0x4107ca
mov esi, ecx
mov edi, eax
mov ebx, edx
call fcn.0040cd80
test eax, eax
jne 0x41109e
mov ebx, dword [ebp - 0x149c]
mov eax, dword [ebx + 0x138]
mov esi, dword [ebx + 0x13c]
sub esi, eax
test byte [ebx + 0xd8], 2
mov dword [ebp - 0x14ac], esi
je 0x41082b
call fcn.00404900
mov dword [ebx + 0x144], eax
test esi, esi
je 0x41089b
mov edx, dword [ebx + 0x138]
push esi
push edx
lea edi, [ebp - 0x14ac]
call fcn.00404960
mov esi, dword [ebp - 0x14ac]
mov dword [ebp - 0x14b4], eax
mov eax, dword [ebx + 0x138]
lea ecx, [eax + esi]
add esp, 8
mov dword [ebx + 0x13c], ecx
test esi, esi
je 0x41088e
test byte [ebx + 0x174], 0x30
je 0x41085a
mov edi, ebx
call fcn.00423db0
cmp eax, 7
je 0x41089b
test eax, eax
jne 0x410d07
mov eax, dword [ebx + 0x138]
mov esi, dword [ebx + 0x13c]
sub esi, eax
test esi, esi
je 0x41088e
cmp dword [ebp - 0x14d0], 0
jne 0x410874
push esi
push eax
push ebx
call fcn.00419510
add esp, 0xc
jmp 0x410886
mov edx, dword [ebp - 0x14b4]
push edx
push esi
push eax
push ebx
call fcn.00419170
add esp, 0x10
test eax, eax
js 0x410d07
cmp dword [ebp - 0x14b4], 1
je 0x4110c0
mov eax, dword [ebp - 0x14a0]
test eax, eax
je 0x4108b8
push eax
call fcn.0045d483
add esp, 4
mov dword [ebp - 0x14a0], 0
cmp dword [ebp - 0x14dc], 0
mov dword [ebp - 0x14b4], 1
je 0x40ff6d
push str.Closed_server_connection_detected._Applying_the_MS_IIS5_hack_didnt_help.
push 0x2000
call fcn.004090c0
mov edx, dword [ebp - 0x14a4]
mov eax, dword [edx]
mov ecx, dword [ebx + 0xdc]
push eax
push ecx
push str._s_______T____s__502_0
push 0x200
call fcn.004090c0
mov ebx, dword [ebx + 0x84]
add esp, 0x18
mov esi, 0x7b
mov edi, str.HTTP_1.1_502_Server_or_forwarder_response_invalid_r_nBad_response._The_server_or_forwarder_response_doesnt_look_like_HTTP._r_n
call fcn.0040cd80
mov esi, dword [ebp - 0x149c]
jmp 0x410d09
cmp dword [ebp - 0x14d8], 0
jne 0x410938
mov eax, edi
cdq
add dword [ebp - 0x14c0], eax
adc dword [ebp - 0x14bc], edx
mov eax, dword [ebp - 0x14c4]
cmp eax, 2
jne 0x410b7f
mov dword [ebp - 0x14ac], 0
lea esi, [ebp - 0x1390]
test byte [ebx + 0xd8], al
je 0x410983
push edi
mov eax, esi
push eax
mov eax, dword [ebx + 0x144]
lea edi, [ebp - 0x14a8]
call fcn.00404960
mov edi, dword [ebp - 0x14a8]
add esp, 8
mov dword [ebp - 0x14ac], eax
test edi, edi
je 0x40ff6d
test byte [ebx + 0x174], 0x30
je 0x4109f5
cmp dword [ebx + 0x14c], 0
jne 0x4109f5
mov eax, dword [ebp - 0x14a8]
test eax, eax
jle 0x4109fb
mov edx, dword [ebx]
mov edx, dword [edx + 0x64]
push eax
lea ecx, [ebp - 0x1390]
push ecx
lea eax, [ebx + 0x134]
call fcn.004152f0
add esp, 8
test eax, eax
jne 0x410d07
mov edi, ebx
call fcn.00423db0
test eax, eax
jne 0x410d07
mov eax, dword [ebx + 0x138]
mov ecx, dword [ebx + 0x13c]
sub ecx, eax
mov dword [ebp - 0x14a8], ecx
mov esi, eax
je 0x40ff6d
mov eax, dword [ebp - 0x14a8]
cmp dword [ebp - 0x14d0], 0
jne 0x410a11
push eax
push esi
push ebx
call fcn.00419510
add esp, 0xc
jmp 0x410a23
mov ecx, dword [ebp - 0x14ac]
push ecx
push eax
push esi
push ebx
call fcn.00419170
add esp, 0x10
test eax, eax
js 0x410d07
cmp dword [ebp - 0x14ac], 1
mov eax, dword [ebx + 0x134]
mov dword [ebx + 0x138], eax
mov dword [ebx + 0x13c], eax
jne 0x40ff6d
mov esi, dword [ebx + 0x144]
call fcn.00404930
mov edx, dword [ebp - 0x14c0]
mov eax, dword [ebp - 0x14bc]
mov dword [ebx + 0x198], edx
mov dword [ebx + 0x19c], eax
or dword [ebx + 0xd8], 0x4000
mov dword [ebx + 0x144], 0
cmp word [ebx + 0x150], 0
jne 0x410aca
cmp dword [ebp - 0x14c4], 2
jne 0x410aca
cmp dword [ebp - 0x14d0], 0
je 0x410aca
mov esi, dword [ebx + 0x84]
push str.0_r_n_r_n
push 5
push esi
push str.to_socket__d:__N
push 0x10
call fcn.004090c0
add esp, 0x14
push 0
push 5
push str.0_r_n_r_n
push esi
call dword [sym.imp.WS2_32.dll_send]
mov ecx, dword [ebx + 0x190]
or ecx, dword [ebx + 0x194]
mov edx, dword [ebp - 0x14c0]
mov esi, dword [ebp - 0x14bc]
jne 0x410af0
mov dword [ebx + 0x190], edx
mov dword [ebx + 0x194], esi
test dword [ebx + 0xd8], 0x4000
je 0x410b2a
mov eax, dword [ebx + 0x198]
mov ecx, dword [ebx + 0x19c]
cmp eax, edx
jne 0x410b10
cmp ecx, esi
je 0x410b2a
push ecx
push eax
push esi
push edx
push str.Received__llu_bytes_while_expecting__llu.
push 2
call fcn.004090c0
add esp, 0x18
mov esi, ebx
call fcn.0040e440
mov edx, dword [ebx + 0x194]
mov eax, dword [ebx + 0x190]
mov ecx, dword [ebp - 0x14a4]
push edx
mov edx, dword [ecx + 4]
push eax
mov eax, dword [ebx + 0xdc]
push edx
push eax
push str._s_______T____s__200__llu
push 0x200
call fcn.004090c0
push 0
call fcn.0045ec8e
add esp, 0x1c
mov dword [ebx + 0x98], eax
mov dword [ebx + 0x9c], edx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
test al, 4
je 0x410ca3
mov eax, dword [ebx]
lea edx, [ebp - 0x1390]
push edi
lea esi, [ebx + 0x134]
push edx
mov edx, dword [eax + 0x64]
mov eax, esi
mov dword [ebp - 0x14ac], esi
call fcn.004152f0
add esp, 8
test eax, eax
je 0x40ff6d
push str.Flushing_header_and_buffers._Stepping_back_from_filtering.
push 0x1000
call fcn.004090c0
mov eax, dword [ebp - 0x14c8]
add esp, 8
call fcn.004125f0
mov edi, eax
mov dword [ebp - 0x14a0], edi
test edi, edi
je 0x4110e8
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410be2
sub eax, edx
mov ecx, dword [ebx + 0x84]
je 0x410c16
mov esi, eax
mov ebx, ecx
call fcn.0040cd80
test eax, eax
jne 0x41110f
mov edi, dword [ebp - 0x14a0]
mov ebx, dword [ebp - 0x149c]
mov esi, dword [ebp - 0x14ac]
mov ecx, dword [ebx + 0x84]
push ecx
mov ebx, esi
call fcn.00415290
add esp, 4
mov dword [ebp - 0x14ac], eax
test eax, eax
js 0x411115
mov esi, dword [ebp - 0x14a8]
mov edx, dword [ebp - 0x149c]
mov ebx, dword [edx + 0x84]
test esi, esi
je 0x410c6a
lea edi, [ebp - 0x1390]
call fcn.0040cd80
test eax, eax
jne 0x41110f
mov edi, dword [ebp - 0x14a0]
mov eax, dword [ebp - 0x14ac]
cdq
push edi
mov dword [ebp - 0x14c0], eax
mov dword [ebp - 0x14bc], edx
call fcn.0045d483
mov ebx, dword [ebp - 0x149c]
add esp, 4
xor eax, eax
mov dword [ebp - 0x14a0], eax
mov dword [ebp - 0x14c4], eax
mov dword [ebp - 0x14b4], 1
jmp 0x40ff6d
mov eax, dword [ebx + 0x84]
test edi, edi
je 0x40ff6d
mov esi, dword [ebp - 0x14a8]
lea edi, [ebp - 0x1390]
mov ebx, eax
call fcn.0040cd80
test eax, eax
jne 0x411135
mov ebx, dword [ebp - 0x149c]
jmp 0x40ff6d
mov eax, dword [ebp - 0x14a4]
mov ecx, dword [eax + 0xc]
push ecx
push str.Didnt_receive_data_in_time:__s
push 0x2000
call fcn.004090c0
add esp, 0xc
jmp 0x410d07
push str.select___failed_:__E
push 0x2000
call fcn.004090c0
add esp, 8
mov esi, ebx
call fcn.0040e440
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x14b0]
mov eax, dword [edx]
push eax
push ecx
push str.The_client_closed_socket__d_while_the_server_socket__d_is_still_open.
push 2
call fcn.004090c0
add esp, 0x10
mov esi, ebx
call fcn.0040e440
jmp 0x410a81
mov edx, dword [ebp - 0x14a4]
mov eax, dword [edx + 0x18]
push eax
push str.write_to:__s_failed:__E
push 0x2000
call fcn.004090c0
mov esi, dword [ebp - 0x149c]
add esp, 0xc
jmp 0x410d09
push str.CONNECT_already_confirmed._Unable_to_tell_the_client_about_the_problem.
push 0x2000
call fcn.004090c0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
push str.Already_forwarded_the_original_headers._Unable_to_tell_the_client_about_the_problem.
jmp 0x410cfa
mov eax, dword [ebp - 0x14c4]
test al, 4
je 0x410a81
push eax
mov esi, ebx
call fcn.0040aee0
mov esi, eax
add esp, 4
mov dword [ebp - 0x14ac], esi
test esi, esi
jne 0x410dd2
mov ecx, dword [ebx + 0x13c]
sub ecx, dword [ebx + 0x138]
mov dword [ebx + 0x194], eax
mov dword [ebx + 0x190], ecx
push ebx
call fcn.00416430
add esp, 4
test eax, eax
je 0x410df1
push str.Failed_to_update_server_headers._after_filtering.
push 0x4000
call fcn.004090c0
add esp, 8
mov eax, dword [ebp - 0x14c8]
call fcn.004125f0
mov edi, eax
mov dword [ebp - 0x14a0], edi
test edi, edi
jne 0x410e1a
push str.Out_of_memory_parsing_server_header
push 0x4000
call fcn.004090c0
add esp, 8
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410e20
sub eax, edx
mov ecx, dword [ebx + 0x84]
je 0x410e50
mov esi, eax
mov ebx, ecx
call fcn.0040cd80
test eax, eax
jne 0x410eae
mov edi, dword [ebp - 0x14a0]
mov ebx, dword [ebp - 0x149c]
mov esi, dword [ebp - 0x14ac]
mov ecx, esi
test esi, esi
jne 0x410e5c
mov ecx, dword [ebx + 0x138]
mov esi, dword [ebx + 0x190]
mov eax, dword [ebx + 0x84]
test esi, esi
je 0x410e85
mov edi, ecx
mov ebx, eax
call fcn.0040cd80
test eax, eax
jne 0x410eae
mov edi, dword [ebp - 0x14a0]
mov ebx, dword [ebp - 0x149c]
test edi, edi
je 0x410e92
push edi
call fcn.0045d483
add esp, 4
mov eax, dword [ebp - 0x14ac]
test eax, eax
je 0x410a81
push eax
call fcn.0045d483
add esp, 4
jmp 0x410a81
push str.write_modified_content_to_client_failed:__E
push 0x2000
call fcn.004090c0
mov eax, dword [ebp - 0x14a0]
add esp, 8
test eax, eax
je 0x410ed3
push eax
call fcn.0045d483
add esp, 4
mov eax, dword [ebp - 0x14ac]
test eax, eax
je 0x410ee6
push eax
call fcn.0045d483
add esp, 4
mov esi, dword [ebp - 0x149c]
jmp 0x410d09
lea edx, [ebp - 0x1390]
push edi
push edx
mov ecx, ebx
call fcn.0040f4f0
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
mov esi, ebx
call fcn.0040efb0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0045d3b4
mov esp, ebp
pop ebp
ret
mov edi, dword [ebx + 0x134]
mov eax, dword [ebx + 0x13c]
sub eax, edi
test eax, eax
jle 0x410d07
mov ebx, dword [ebx + 0x84]
mov esi, eax
call fcn.0040cd80
mov ebx, dword [ebp - 0x149c]
jmp 0x410d07
test dword [ebx + 0xd8], 0x100000
je 0x410fb7
mov eax, dword [ebx + 0x84]
mov ecx, dword [ebp - 0x14b0]
mov edx, dword [ecx]
push eax
push edx
push str.No_server_or_forwarder_response_received_on_socket__d._Closing_client_socket__d_without_sending_data.
push 0x2000
call fcn.004090c0
mov eax, dword [ebp - 0x14a4]
mov ecx, dword [eax]
mov edx, dword [ebx + 0xdc]
push ecx
push edx
push str._s_______T____s__502_0
push 0x200
call fcn.004090c0
mov esi, dword [ebp - 0x14a4]
add esp, 0x20
call fcn.004202b0
jmp 0x410d07
mov eax, dword [ebp - 0x14b0]
mov ecx, dword [eax]
push ecx
push str.No_server_or_forwarder_response_received_on_socket__d.
push 0x2000
call fcn.004090c0
add esp, 0xc
xor eax, eax
call fcn.0040dca0
mov esi, dword [ebp - 0x14a4]
mov ebx, dword [ebp - 0x149c]
call fcn.004202b0
jmp 0x410d07
mov edx, dword [esi]
mov edx, dword [edx]
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x410ff8
sub eax, esi
cmp eax, 0x1e
jbe 0x411009
mov byte [edx + 0x1e], cl
mov eax, dword [ebp - 0x14c8]
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
push str.Invalid_server_or_forwarder_response._Starts_with:__s
push 0x2000
call fcn.004090c0
mov eax, dword [ebp - 0x14a4]
mov ecx, dword [eax]
mov edx, dword [ebx + 0xdc]
add esp, 0xc
push ecx
push edx
push str._s_______T____s__502_0
push 0x200
call fcn.004090c0
mov ebx, dword [ebx + 0x84]
add esp, 0x10
mov esi, 0x7b
mov edi, str.HTTP_1.1_502_Server_or_forwarder_response_invalid_r_nBad_response._The_server_or_forwarder_response_doesnt_look_like_HTTP._r_n
call fcn.0040cd80
mov esi, dword [ebp - 0x14a4]
call fcn.004202b0
mov esi, dword [ebp - 0x149c]
jmp 0x410d09
push str.write_header_to_client_failed:__E
push 2
call fcn.004090c0
add esp, 8
test edi, edi
je 0x410ee6
push edi
call fcn.0045d483
mov esi, dword [ebp - 0x149c]
add esp, 4
jmp 0x410d09
mov eax, dword [ebp - 0x14a0]
test eax, eax
je 0x410ee6
push eax
call fcn.0045d483
mov esi, dword [ebp - 0x149c]
add esp, 4
jmp 0x410d09
mov esi, dword [ebx + 0x144]
call fcn.00404930
mov eax, dword [ebp - 0x14c0]
mov ecx, dword [ebp - 0x14bc]
mov dword [ebx + 0x198], eax
mov dword [ebx + 0x19c], ecx
jmp 0x410a6d
push str.Out_of_memory_while_trying_to_flush.
push 0x2000
call fcn.004090c0
add esp, 8
mov eax, 0x4c3a44
call fcn.0040dca0
mov esi, dword [ebp - 0x149c]
jmp 0x410d09
mov edi, dword [ebp - 0x14a0]
push str.Flush_header_and_buffers_to_client_failed:__E
push 2
call fcn.004090c0
push edi
call fcn.0045d483
mov esi, dword [ebp - 0x149c]
add esp, 0xc
jmp 0x410d09
push str.write_to_client_failed:__E
push 0x2000
call fcn.004090c0
mov esi, dword [ebp - 0x149c]
add esp, 8
jmp 0x410d09