Function at 0x43fe80
Capabilities:
Check http status code
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], edi
mov dword [ebp - 0x24], eax
mov ebx, dword [edi + 0x6cc]
mov edx, dword [edi + edx*4 + 0x420]
mov esi, dword [edi]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], edx
test ebx, ebx
je 0x44023f
cmp dword [ebx + 0x20], 2
je 0x44023f
mov byte [edi + 0x51c], 0
nop
cmp dword [ebx + 0x20], 0
jne 0x440131
push ecx
push eax
push str.Establish_HTTP_proxy_tunnel_to__s:_d_n
push esi
call fcn.004511c0
push dword [esi + 0x12c]
call dword [0x731670]
add esp, 0x14
mov dword [esi + 0x12c], 0
push dword [ebp - 0x28]
push dword [ebp - 0x24]
push str._s:_d
call fcn.00447430
add esp, 0xc
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4408b9
push 1
push eax
mov edx, str.CONNECT
mov dword [ebp - 0x38], 0
mov ecx, edi
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0x20000
call fcn.0043ab00
push dword [ebp - 0x1c]
mov edi, eax
call dword [0x731670]
add esp, 0xc
test edi, edi
jne 0x440101
mov edx, dword [ebp - 4]
mov ecx, 0x717df4
mov eax, 0x717df8
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x20], 0x70c6f4
cmp dword [edx + 0x358], 1
cmovne eax, ecx
mov cl, byte [edx + 0x524]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [edx + 0x304]
je 0x43ffa4
push 0x3a
push eax
call fcn.00614850
add esp, 8
test eax, eax
setne cl
push dword [ebp - 0x28]
test cl, cl
mov edx, 0x70c6f4
mov eax, 0x7130a4
cmove eax, edx
push eax
push dword [ebp - 0x24]
mov eax, 0x7130a0
cmove eax, edx
push eax
push str._s_s_s:_d
call fcn.00447430
add esp, 0x14
mov dword [ebp - 8], eax
test eax, eax
je 0x4408ad
mov ecx, dword [ebp - 4]
mov edx, str.Host
call fcn.0043a160
test eax, eax
jne 0x440009
push dword [ebp - 8]
push str.Host:__s_r_n
call fcn.00447430
mov edi, eax
add esp, 8
mov dword [ebp - 0x10], edi
test edi, edi
je 0x4408a1
mov ecx, dword [ebp - 4]
mov edx, str.Proxy_Connection
call fcn.0043a160
test eax, eax
mov ecx, 0x70c6f4
mov eax, str.Proxy_Connection:_Keep_Alive_r_n
mov edx, str.User_Agent
cmove ecx, eax
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp - 4]
call fcn.0043a160
test eax, eax
jne 0x44004a
cmp dword [esi + 0x9fc], eax
je 0x44004a
mov eax, dword [esi + 0x10e8]
mov dword [ebp - 0x20], eax
push dword [ebp - 0x1c]
mov eax, dword [esi + 0x10e4]
mov edx, 0x70c6f4
push dword [ebp - 0x20]
test eax, eax
mov ecx, edx
cmovne ecx, eax
mov eax, edx
push ecx
test edi, edi
cmovne eax, edi
push eax
push dword [ebp - 0x14]
lea eax, [ebp - 0x38]
push dword [ebp - 8]
push str.CONNECT__s_HTTP__s_r_n_s_s_s_s
push eax
call fcn.0042f0f0
mov edi, eax
add esp, 0x20
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x440095
push eax
call dword [0x731670]
add esp, 4
push dword [ebp - 8]
call dword [0x731670]
add esp, 4
test edi, edi
jne 0x4400f3
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x38]
push eax
mov dl, 1
call fcn.0043b960
mov edi, eax
add esp, 4
test edi, edi
jne 0x4400f3
push 2
mov edx, 0x716b00
lea ecx, [ebp - 0x38]
call fcn.0042f040
mov edi, eax
add esp, 4
test edi, edi
jne 0x4400f3
push dword [ebp - 0x18]
mov edx, dword [ebp - 4]
lea ecx, [ebp - 0x38]
push eax
lea eax, [esi + 0x1168]
push eax
call fcn.0043b100
mov edi, eax
add esp, 0xc
test edi, edi
je 0x440101
push str.Failed_sending_CONNECT_to_proxy
push esi
call fcn.004512d0
add esp, 8
push dword [ebp - 0x38]
call dword [0x731670]
add esp, 4
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
test edi, edi
jne 0x4408c5
mov dword [ebx + 0x20], 1
mov edx, dword [esi + 0x63c]
mov eax, 0x493e0
xor ecx, ecx
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x638]
xor edi, edi
test eax, eax
setg cl
test edx, edx
jle 0x440155
or ecx, 2
sub ecx, 1
je 0x44016d
sub ecx, 1
je 0x44016b
sub ecx, 1
jne 0x440173
cmp eax, edx
cmovge eax, edx
jmp 0x44016d
mov eax, edx
cdq
mov dword [ebp - 8], eax
mov edi, edx
lea eax, [ebp - 0x58]
push eax
call fcn.0045e520
movups xmm0, xmmword [esi + 0xc10]
sub esp, 0xc
mov ecx, esp
sub esp, 0x10
movups xmmword [ecx], xmm0
mov ecx, esp
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
call fcn.0045e5d0
mov ecx, dword [ebp - 8]
add esp, 0x20
sub ecx, eax
mov eax, ecx
sbb edi, edx
or eax, edi
je 0x440a18
test edi, edi
jl 0x440a18
jg 0x4401c1
test ecx, ecx
je 0x440a18
mov edi, dword [ebp - 4]
mov ecx, edi
mov edx, dword [ebp - 0x18]
call fcn.00428f10
test al, al
je 0x44023f
cmp dword [ebx + 0x10], 0
mov dword [ebp - 0x1c], 0
je 0x4406f9
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp eax, dword [edi + 0x424]
mov edx, 1
mov eax, dword [edi]
sete cl
mov dword [ebp - 0x10], 0x38
mov dword [ebp - 0x14], 0
mov eax, dword [eax + 0x91c]
cmp eax, 1
cmova eax, edx
lea edx, [ebp - 0x10]
push edx
push eax
lea eax, [ebp - 9]
push eax
mov eax, dword [edi + ecx*4 + 0x438]
push ecx
push edi
call eax
add esp, 0x14
mov dword [ebp - 0x20], eax
test eax, eax
jns 0x440248
mov edi, dword [ebp - 0x10]
mov dword [ebp - 0x20], 0
cmp edi, 0x51
jne 0x44024d
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x14], eax
xor edi, edi
mov ecx, dword [ebp - 4]
call fcn.0044f330
test eax, eax
jne 0x440a0c
test edi, edi
jne 0x4406ef
cmp dword [ebp - 0x20], edi
jbe 0x4407f2
cmp dword [ebx + 0x10], 2
jne 0x4402f1
mov ecx, dword [ebx + 0x18]
mov eax, ecx
mov edx, dword [ebx + 0x1c]
or eax, edx
je 0x4402ad
sub ecx, 1
mov dword [ebx + 0x18], ecx
sbb edx, edi
mov dword [ebx + 0x1c], edx
js 0x4406e8
jg 0x44029b
test ecx, ecx
je 0x4406e8
mov edi, dword [ebp - 4]
cmp dword [ebx + 0x10], 0
jne 0x4401e3
jmp 0x4406f9
mov edi, dword [ebp - 4]
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push 1
lea edx, [ebp - 9]
mov ecx, edi
call fcn.0043f4c0
add esp, 0xc
cmp eax, 0xffffffff
jne 0x44029e
push str.chunk_reading_DONE_n
push esi
call fcn.004511c0
add esp, 8
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x20], 2
jmp 0x44029e
push 1
lea edx, [ebp - 9]
mov ecx, ebx
call fcn.0042f040
add esp, 4
test eax, eax
jne 0x4408ce
cmp byte [ebp - 9], 0xa
jne 0x44029b
cmp byte [esi + 0xb42], 0
mov eax, dword [ebx + 4]
mov edi, dword [ebx]
mov dword [ebp - 8], eax
je 0x4403a4
cmp dword [esi + 0x600], 0
je 0x440379
mov eax, dword [esi + 0x7c]
test eax, eax
jne 0x44033a
mov eax, dword [esi + 0x78]
test eax, eax
je 0x440341
mov byte [eax + 0xe6], 1
push dword [esi + 0x594]
mov eax, dword [esi + 0x600]
push dword [ebp - 8]
push edi
push 1
push esi
call eax
mov eax, dword [esi + 0x7c]
add esp, 0x14
test eax, eax
je 0x440369
mov byte [eax + 0xe6], 0
jmp 0x4403a1
mov eax, dword [esi + 0x78]
test eax, eax
je 0x4403a1
mov byte [eax + 0xe6], 0
jmp 0x4403a1
push dword [esi + 0x590]
push 1
push 2
push 0x71163f
call fcn.00629d40
push dword [esi + 0x590]
push 1
push dword [ebp - 8]
push edi
call fcn.00629d40
add esp, 0x20
mov eax, dword [ebp - 8]
cmp byte [esi + 0xb55], 0
jne 0x4403ef
xor edx, edx
mov ecx, eax
cmp byte [esi + 0xb3d], dl
setne dl
add edx, 2
test eax, eax
jne 0x4403da
mov ecx, edi
lea eax, [ecx + 1]
mov dword [ebp - 0x10], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4403d0
sub ecx, dword [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 4]
push edi
call fcn.00451800
add esp, 8
test eax, eax
jne 0x440241
mov eax, dword [ebp - 8]
cdq
add dword [esi + 0x1160], eax
adc dword [esi + 0x1164], edx
mov al, byte [edi]
cmp al, 0xd
je 0x440626
cmp al, 0xa
je 0x440626
push 0x11
mov edx, edi
mov ecx, str.WWW_Authenticate:
call fcn.00459a40
add esp, 4
test eax, eax
je 0x440436
mov eax, dword [esi + 0xf0]
mov dword [ebp - 0x10], eax
cmp eax, 0x191
je 0x44045b
push 0x13
mov edx, edi
mov ecx, str.Proxy_authenticate:
call fcn.00459a40
add esp, 4
test eax, eax
je 0x44049f
mov eax, dword [esi + 0xf0]
mov dword [ebp - 0x10], eax
cmp eax, 0x197
jne 0x44049f
mov ecx, edi
call fcn.0043a1e0
mov edi, eax
test edi, edi
je 0x4408b9
cmp dword [ebp - 0x10], 0x197
mov ecx, dword [ebp - 4]
push edi
sete dl
call fcn.0043ac10
add esp, 4
mov dword [ebp - 0x14], eax
push edi
call dword [0x731670]
mov eax, dword [ebp - 0x14]
add esp, 4
test eax, eax
jne 0x440241
jmp 0x44060c
push 0xf
mov edx, edi
mov ecx, str.Content_Length:
call fcn.00459a40
add esp, 4
test eax, eax
je 0x4404f1
mov ecx, dword [esi + 0xf0]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x4404d9
push ecx
push str.Ignoring_Content_Length_in_CONNECT__03d_response_n
push esi
call fcn.004511c0
add esp, 0xc
jmp 0x44060c
lea eax, [ebx + 0x18]
xor edx, edx
push eax
push 0xa
lea ecx, [edi + 0xf]
call fcn.0045a450
add esp, 8
jmp 0x44060c
push str.close
mov edx, str.Connection:
mov ecx, edi
call fcn.0043b420
add esp, 4
test al, al
jne 0x440608
push 0x12
mov edx, edi
mov ecx, str.Transfer_Encoding:
call fcn.00459a40
add esp, 4
test eax, eax
je 0x4405c4
mov ecx, dword [esi + 0xf0]
lea eax, [ecx - 0xc8]
cmp eax, 0x64
jae 0x44054b
push ecx
push str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
push esi
call fcn.004511c0
add esp, 0xc
jmp 0x44060c
push str.chunked
mov edx, str.Transfer_Encoding:
mov ecx, edi
call fcn.0043b420
add esp, 4
test al, al
je 0x44060c
push str.CONNECT_responded_chunked_n
push esi
call fcn.004511c0
mov edi, dword [ebp - 4]
add esp, 8
mov byte [ebx + 0x24], 1
mov dword [edi + 0x28c], 0
mov dword [edi + 0x2a0], 0
mov dword [edi + 0x290], 0
mov dword [edi + 0x5f4], 0
mov dword [edi + 0x5f8], 0
mov dword [edi + 0x5fc], 0
mov dword [edi + 0x600], 0x1000
jmp 0x44060f
push str.close
mov edx, str.Proxy_Connection:
mov ecx, edi
call fcn.0043b420
add esp, 4
test al, al
jne 0x440608
lea eax, [esi + 0xf0]
push eax
lea eax, [ebp - 0x40]
push eax
push str.HTTP_1._d__d
push edi
call fcn.004165a0
add esp, 0x10
cmp eax, 2
jne 0x44060c
mov eax, dword [esi + 0xf0]
mov dword [esi + 0x114c], eax
jmp 0x44060c
mov byte [ebx + 0x25], 1
mov edi, dword [ebp - 4]
cmp dword [ebx + 4], 0
je 0x44061a
mov eax, dword [ebx]
mov byte [eax], 0
mov dword [ebx + 4], 0
jmp 0x44029e
cmp dword [esi + 0xf0], 0x197
jne 0x4406c6
cmp byte [esi + 0x1111], 0
jne 0x4406c6
mov edx, dword [ebx + 0x18]
mov eax, edx
mov ecx, dword [ebx + 0x1c]
or eax, ecx
mov dword [ebx + 0x10], 2
je 0x440668
push ecx
push edx
push str.Ignore__I64d_bytes_of_response_body_n
push esi
call fcn.004511c0
add esp, 0x10
jmp 0x4406cd
cmp byte [ebx + 0x24], 0
je 0x4406c6
push str.Ignore_chunked_response_body_n
push esi
call fcn.004511c0
lea eax, [edi + 1]
mov byte [esi + 0x587], 1
cmp byte [eax], 0xa
cmove edi, eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x14]
push eax
lea edx, [edi + 1]
mov edi, dword [ebp - 4]
push 1
mov ecx, edi
call fcn.0043f4c0
add esp, 0x14
cmp eax, 0xffffffff
jne 0x4406d0
push str.chunk_reading_DONE_n
push esi
call fcn.004511c0
add esp, 8
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x20], 2
jmp 0x4406d0
mov dword [ebx + 0x10], 0
mov edi, dword [ebp - 4]
mov eax, dword [ebx + 0x18]
or eax, dword [ebx + 0x1c]
jne 0x44029e
mov dword [ebx + 0x20], 2
jmp 0x44029e
mov dword [ebx + 0x20], 2
mov edi, dword [ebp - 4]
mov dword [ebx + 0x10], 0
mov ecx, edi
call fcn.0044f330
test eax, eax
jne 0x440a0c
cmp dword [ebp - 0x1c], eax
jne 0x4408dc
mov eax, dword [esi + 0x114c]
sub eax, 0xc8
cmp eax, 0x64
jb 0x44073c
mov ecx, edi
call fcn.0043a530
test eax, eax
jne 0x440241
cmp byte [edi + 0x51d], al
je 0x44073c
mov byte [ebx + 0x25], 1
cmp byte [ebx + 0x25], 0
je 0x44083e
cmp dword [esi + 0x12c], 0
je 0x440889
mov eax, dword [ebp - 0x18]
mov ecx, edi
mov edx, dword [edi + eax*4 + 0x420]
call fcn.00428d10
mov eax, dword [ebp - 0x18]
mov dword [edi + eax*4 + 0x420], 0xffffffff
mov eax, dword [esi + 0x114c]
sub eax, 0xc8
cmp eax, 0x64
jb 0x440999
cmp byte [ebx + 0x25], 0
je 0x4408e8
cmp dword [esi + 0x12c], 0
je 0x4408e8
push str.Connect_me_again_please_n
push esi
mov byte [edi + 0x51c], 1
call fcn.004511c0
mov edi, dword [edi + 0x6cc]
mov dword [edi + 0x20], 2
push dword [edi]
call dword [0x731670]
add esp, 0xc
mov dword [edi], 0
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov edi, dword [ebp - 4]
push str.CONNECT_phase_completed__n
push dword [edi]
call fcn.004511c0
add esp, 8
jmp 0x440946
cmp dword [esi + 0x5b8], 0
je 0x440821
cmp dword [esi + 0xe00], 0
je 0x440821
mov edi, dword [ebp - 4]
push str.Proxy_CONNECT_connection_closed_n
push esi
mov byte [edi + 0x51c], 1
call fcn.004511c0
add esp, 8
jmp 0x4406f2
push str.Proxy_CONNECT_aborted
push esi
mov dword [ebp - 0x1c], 1
call fcn.004512d0
mov edi, dword [ebp - 4]
add esp, 8
jmp 0x4406f2
cmp dword [esi + 0x12c], 0
je 0x440772
cmp dword [ebx + 0x20], 2
jne 0x440889
mov ecx, dword [edi + 0x6cc]
cmp dword [ecx + 4], 0
je 0x440862
mov eax, dword [ecx]
mov byte [eax], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x10], 1
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 0
mov byte [ecx + 0x25], 0
cmp dword [esi + 0x12c], 0
je 0x440772
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
jmp 0x43fed0
push dword [ebp - 8]
call dword [0x731670]
add esp, 4
push dword [ebp - 0x38]
call dword [0x731670]
add esp, 4
mov eax, 0x1b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.CONNECT_response_too_large_
push esi
call fcn.004512d0
add esp, 8
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esi + 0x12c]
call dword [0x731670]
mov dword [esi + 0x12c], 0
add esp, 4
mov eax, dword [edi + 0x568]
mov eax, dword [eax + 0x48]
and eax, 0x200
sete cl
test eax, 0x200
jne 0x440927
cmp cl, byte [edi + 0x51d]
je 0x440927
mov byte [edi + 0x51d], cl
mov eax, dword [ebp - 0x18]
mov ecx, edi
mov edx, dword [edi + eax*4 + 0x420]
call fcn.00428d10
mov eax, dword [ebp - 0x18]
mov dword [edi + eax*4 + 0x420], 0xffffffff
mov dword [ebx + 0x20], 0
cmp byte [edi + 0x51c], 0
jne 0x44023f
push dword [ebx]
call dword [0x731670]
add esp, 4
mov dword [ebx], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
push dword [esi + 0xf0]
push str.Received_HTTP_code__d_from_proxy_after_CONNECT
push esi
call fcn.004512d0
add esp, 0xc
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x20], 2
push dword [esi + 0x10e4]
call dword [0x731670]
add esp, 4
mov dword [esi + 0x10e4], 0
mov word [esi + 0xe04], 1
push dword [esi + 0x114c]
push str.Proxy_replied__d_to_CONNECT_request_n
push esi
call fcn.004511c0
add esp, 0xc
mov byte [esi + 0x587], 0
mov byte [edi + 0x52a], 0
push dword [ebx]
call dword [0x731670]
add esp, 4
mov dword [ebx], 0
mov dword [ebx + 8], 0
xor eax, eax
mov dword [ebx + 4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x2a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.Proxy_CONNECT_aborted_due_to_timeout
push esi
call fcn.004512d0
add esp, 8
mov eax, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret