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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov edi, dword [ebx + 0x7b0]
test edi, edi
je 0x45adb5
mov dword [esp + 0x40], 0
mov eax, dword [edi + 0x4018]
cmp eax, 2
je 0x45aa76
mov ecx, dword [esp + 0x74]
mov esi, dword [ebx]
lea ecx, [ebx + ecx*4]
mov ebp, esi
mov dword [esp + 0x3c], ecx
mov ecx, dword [ecx + 0x408]
mov dword [esp + 0x2c], ecx
lea ecx, [esi + 0xec8]
and byte [ebx + 0x4f2], 0x7f
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x45a7a4
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], str.Establish_HTTP_proxy_tunnel_to__s:_d_n
mov dword [esp], ebp
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call sym._Curl_infof
mov eax, dword [ebp + 0x11c]
mov dword [esp], eax
call dword [0x5bcc2c]
mov dword [ebp + 0x11c], 0
call sym._Curl_add_buffer_init
test eax, eax
mov dword [esp + 0x4c], eax
je 0x45ad31
mov eax, dword [esp + 0x7c]
mov dword [esp], str._s:_d
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
call sym._curl_maprintf
test eax, eax
mov esi, eax
je 0x45ad25
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], str.CONNECT
mov dword [esp], ebx
call sym._Curl_http_output_auth
mov dword [esp], esi
mov dword [esp + 0x28], eax
call dword [0x5bcc2c]
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x45ac00
cmp dword [ebx + 0x358], 1
mov eax, 0x5d34b6
mov edx, 0x5d34ba
mov ecx, dword [ebx + 0x304]
cmovne eax, edx
mov dword [esp + 0x30], eax
movzx eax, byte [ebx + 0x4f1]
shr al, 2
and eax, 1
cmp dword [esp + 0x78], ecx
je 0x45a581
mov eax, dword [esp + 0x78]
mov dword [esp + 4], 0x3a
mov dword [esp], eax
call sym._strchr
test eax, eax
setne al
test al, al
mov edx, 0x5d34be
mov eax, 0x5d34c1
mov ecx, 0x5d34bf
mov dword [esp], str._s_s_s:_d
cmove ecx, edx
cmovne edx, eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
call sym._curl_maprintf
test eax, eax
mov esi, eax
je 0x45ad25
mov dword [esp + 4], str.Host
mov dword [esp], ebx
call sym._Curl_checkProxyheaders
test eax, eax
mov dword [esp + 0x28], 0
je 0x45ad00
mov dword [esp + 4], str.Proxy_Connection
mov dword [esp], ebx
call sym._Curl_checkProxyheaders
mov edx, str.Proxy_Connection:_Keep_Alive_r_n
test eax, eax
mov eax, 0x5d34be
cmove eax, edx
mov dword [esp + 4], 0x5d3543
mov dword [esp], ebx
mov dword [esp + 0x34], eax
call sym._Curl_checkProxyheaders
test eax, eax
mov edx, 0x5d34be
je 0x45ad81
mov eax, dword [ebx + 0x528]
mov ecx, 0x5d34be
test eax, eax
cmove eax, ecx
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x45ad40
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], edx
lea edx, [esp + 0x4c]
mov dword [esp + 8], esi
mov dword [esp + 4], str.CONNECT__s_HTTP__s_r_n_s_s_s_s
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0xc], ecx
call sym._Curl_add_bufferf
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call dword [0x5bcc2c]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov dword [esp], esi
call dword [0x5bcc2c]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x45a710
mov esi, ebp
mov dword [esp + 0x4c], 0
mov dword [esp + 4], str.Failed_sending_CONNECT_to_proxy
mov dword [esp], esi
mov dword [esp + 0x28], eax
call sym._Curl_failf
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call sym._Curl_add_buffer_free
mov eax, dword [esp + 0x28]
mov esi, eax
mov edi, dword [ebx + 0x7b0]
mov eax, dword [ebx]
mov dword [edi + 0x4018], 2
mov dword [esp + 4], str.CONNECT_phase_completed__n
mov dword [esp], eax
call sym._Curl_infof
add esp, 0x5c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call sym._Curl_add_custom_headers
test eax, eax
jne 0x45a6a8
lea eax, [esp + 0x4c]
mov dword [esp + 4], 0x5d354e
mov dword [esp], eax
call sym._Curl_add_bufferf
test eax, eax
jne 0x45a6a8
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], 0
mov dword [esp + 4], ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
lea eax, [esp + 0x4c]
mov dword [esp], eax
call sym._Curl_add_buffer_send
test eax, eax
mov dword [esp + 0x4c], 0
jne 0x45b1fb
lea eax, [esp + 0x4c]
mov dword [esp], eax
call sym._Curl_add_buffer_free
mov dword [edi + 0x4018], 1
mov dword [edi + 0x4000], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], ebp
call sym._Curl_timeleft
cmp edx, 0
jle 0x45aba4
mov eax, dword [esp + 0x74]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._Curl_conn_data_pending
test al, al
je 0x45aa70
lea eax, [edi + 0x4000]
mov ecx, dword [edi + 0x4004]
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x45a8bd
mov eax, dword [edi + 0x400c]
cmp eax, dword [esp + 0x28]
jae 0x45adf0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x44]
mov dword [esp + 0xc], 1
mov dword [esp], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
call sym._Curl_read
cmp eax, 0x51
mov esi, eax
je 0x45aa70
mov dword [esp], ebx
call sym._Curl_pgrsUpdate
test eax, eax
jne 0x45ade5
test esi, esi
jne 0x45ae40
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x45ae50
mov ecx, dword [edi + 0x4004]
cmp ecx, 1
jle 0x45a9a1
mov edx, dword [edi + 0x4014]
mov eax, dword [edi + 0x4010]
mov dword [edi + 0x400c], edi
mov esi, edx
or esi, eax
je 0x45a9d0
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [edi + 0x4010], eax
cmp edx, 0
mov dword [edi + 0x4014], edx
jg 0x45a7ed
jl 0x45a8a9
cmp eax, 0
ja 0x45a7ed
mov dword [edi + 0x4004], 0
mov dword [edi + 0x4018], 2
mov dword [esp], ebx
call sym._Curl_pgrsUpdate
test eax, eax
jne 0x45ade5
mov eax, dword [ebp + 0xeb4]
sub eax, 0xc8
cmp eax, 0x63
ja 0x45abd0
test byte [edi + 0x401c], 2
je 0x45aaa0
mov ecx, dword [ebp + 0x11c]
mov esi, ebp
test ecx, ecx
jne 0x45b02b
mov eax, dword [esi + 0xeb4]
sub eax, 0xc8
cmp eax, 0x63
jbe 0x45aa10
test byte [edi + 0x401c], 2
mov eax, dword [esi + 0x11c]
je 0x45afe3
test eax, eax
je 0x45afe3
or byte [ebx + 0x4f2], 0x80
mov dword [esp + 4], str.Connect_me_again_please_n
mov dword [esp], esi
call sym._Curl_infof
mov eax, dword [ebx]
mov edx, dword [ebx + 0x7b0]
mov dword [edx + 0x4018], 2
mov dword [esp + 4], str.CONNECT_phase_completed__n
mov dword [esp], eax
call sym._Curl_infof
mov dword [edi + 0x4018], 0
cmp byte [ebx + 0x4f2], 0
js 0x45aa70
mov eax, dword [esi + 0xf0]
mov dword [esp], esi
mov esi, 0x38
mov dword [esp + 4], str.Received_HTTP_code__d_from_proxy_after_CONNECT
mov dword [esp + 8], eax
call sym._Curl_failf
jmp 0x45a6e0
mov eax, dword [edi + 0x4000]
lea esi, [eax + 1]
mov eax, dword [edi + 0x400c]
mov dword [edi + 0x4000], esi
cmp byte [eax], 0xa
je 0x45aae2
add eax, 1
mov dword [edi + 0x400c], eax
jmp 0x45a7ed
lea eax, [esp + 0x48]
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0xc], eax
call sym._Curl_httpchunk_read
cmp eax, 0xffffffff
je 0x45ada0
mov ecx, dword [edi + 0x4004]
jmp 0x45a7ed
mov eax, dword [ebx + 0x528]
mov dword [edi + 0x4018], 2
mov dword [esp], eax
call dword [0x5bcc2c]
movzx eax, byte [esi + 0xcb8]
mov dword [ebx + 0x528], 0
or eax, 1
and eax, 0xfffffffd
mov byte [esi + 0xcb8], al
mov eax, dword [esi + 0xeb4]
mov dword [esp + 4], str.Proxy_replied__d_to_CONNECT_request_n
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._Curl_infof
and byte [esi + 0x564], 0xf7
and byte [ebx + 0x4f2], 0xfd
nop
mov edi, dword [ebx + 0x7b0]
test edi, edi
je 0x45adde
xor esi, esi
cmp dword [edi + 0x4018], 2
je 0x45a6e6
add esp, 0x5c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebp + 0x11c]
test edx, edx
je 0x45b202
mov eax, dword [edi + 0x4018]
cmp eax, 2
jne 0x45a48a
mov edx, 1
mov eax, ebx
call sym._connect_init
mov eax, dword [ebp + 0x11c]
test eax, eax
je 0x45b202
mov eax, dword [edi + 0x4018]
jmp 0x45a48a
test byte [ebp + 0xabf], 0x40
jne 0x45ae10
test byte [ebp + 0xac2], 4
jne 0x45ab31
movzx eax, byte [ebp + 0xabf]
mov dword [esp + 0xc], esi
mov edx, dword [edi + 0x4008]
mov dword [esp], ebx
and eax, 2
mov dword [esp + 8], edx
cmp al, 1
sbb eax, eax
add eax, 3
mov dword [esp + 4], eax
call sym._Curl_client_write
test eax, eax
jne 0x45b050
mov esi, dword [edi + 0x4000]
mov eax, esi
cdq
add dword [ebp + 0xec0], esi
adc dword [ebp + 0xec4], edx
add dword [ebp + 0xa8], esi
adc dword [ebp + 0xac], edx
mov edx, dword [edi + 0x4008]
movzx eax, byte [edx]
cmp al, 0xd
je 0x45ab61
cmp al, 0xa
jne 0x45ac10
cmp dword [ebp + 0xf0], 0x197
mov dword [edi + 0x400c], edi
je 0x45aeb0
mov dword [edi + 0x4004], 0
xor ecx, ecx
mov eax, dword [edi + 0x4014]
or eax, dword [edi + 0x4010]
jne 0x45a7ed
mov dword [edi + 0x4018], 2
jmp 0x45a7ed
jl 0x45abaf
cmp eax, 0
ja 0x45a7c5
mov dword [esp + 4], str.Proxy_CONNECT_aborted_due_to_timeout
mov dword [esp], ebp
mov esi, 0x1c
call sym._Curl_failf
jmp 0x45a6e0
mov dword [esp], ebx
call sym._Curl_http_auth_act
test eax, eax
jne 0x45b050
test byte [ebx + 0x4f0], 1
je 0x45a8e1
or byte [edi + 0x401c], 2
jmp 0x45a8e1
lea edx, [esp + 0x4c]
mov dword [esp + 0x30], edx
jmp 0x45a6ca
mov byte [edx + esi], 0
mov dword [esp + 8], 0x11
mov eax, dword [edi + 0x4008]
mov dword [esp], str.WWW_Authenticate:
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x45ac47
mov eax, dword [ebp + 0xf0]
cmp eax, 0x191
je 0x45af14
mov dword [esp + 8], 0x13
mov eax, dword [edi + 0x4008]
mov dword [esp], str.Proxy_authenticate:
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x45ac7a
mov eax, dword [ebp + 0xf0]
cmp eax, 0x197
je 0x45af14
mov dword [esp + 8], 0xf
mov eax, dword [edi + 0x4008]
mov dword [esp], str.Content_Length:
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x45af8e
mov eax, dword [ebp + 0xf0]
lea edx, [eax - 0xc8]
cmp edx, 0x63
jbe 0x45aefb
lea eax, [edi + 0x4010]
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x4008]
add eax, 0xf
mov dword [esp], eax
call sym._curlx_strtoofft
mov dword [edi + 0x4000], 0
mov dword [edi + 0x400c], edi
mov dword [edi + 0x4008], edi
jmp 0x45aa05
mov dword [esp + 4], esi
mov dword [esp], str.Host:__s_r_n
call sym._curl_maprintf
test eax, eax
mov dword [esp + 0x28], eax
jne 0x45a5e6
mov dword [esp], esi
call dword [0x5bcc2c]
lea eax, [esp + 0x4c]
mov dword [esp], eax
call sym._Curl_add_buffer_free
mov esi, 0x1b
jmp 0x45a6e0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], 0x5d34be
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x4c]
mov dword [esp + 4], str.CONNECT__s_HTTP__s_r_n_s_s_s_s
mov dword [esp + 0x1c], ecx
mov dword [esp], eax
mov dword [esp + 0x30], eax
call sym._Curl_add_bufferf
jmp 0x45a693
mov eax, dword [ebp + 0x9b4]
test eax, eax
je 0x45a626
mov edx, dword [ebx + 0x52c]
jmp 0x45a626
mov dword [esp + 4], str.chunk_reading_DONE_n
mov dword [esp], ebp
call sym._Curl_infof
jmp 0x45a8a9
xor edx, edx
mov eax, ebx
call sym._connect_init
test eax, eax
mov esi, eax
jne 0x45a702
mov edi, dword [ebx + 0x7b0]
mov dword [esp + 0x40], 0
test edi, edi
jne 0x45a451
xor esi, esi
jmp 0x45a6e6
mov esi, 0x2a
jmp 0x45a6e0
mov dword [esp + 4], str.CONNECT_response_too_large_
mov dword [esp], ebp
mov esi, 0x38
call sym._Curl_failf
jmp 0x45a6e0
mov dword [esp + 0xc], esi
mov eax, dword [edi + 0x4008]
mov dword [esp + 4], 1
mov dword [esp], ebp
mov dword [esp + 8], eax
call sym._Curl_debug
mov esi, dword [edi + 0x4000]
jmp 0x45aaef
mov dword [edi + 0x4004], 0
jmp 0x45a8bd
mov eax, dword [ebp + 0x590]
test eax, eax
je 0x45ae68
mov esi, dword [ebp + 0xcb4]
test esi, esi
jne 0x45af70
mov dword [esp + 4], str.Proxy_CONNECT_aborted
mov dword [esp], ebp
mov esi, 1
call sym._Curl_failf
mov dword [edi + 0x4004], 0
mov dword [esp], ebx
call sym._Curl_pgrsUpdate
test eax, eax
jne 0x45ade5
test esi, esi
je 0x45a8cd
mov esi, 0x38
jmp 0x45a6e0
test byte [ebp + 0xe84], 0x20
jne 0x45ab77
mov eax, dword [edi + 0x4014]
mov edx, dword [edi + 0x4010]
mov dword [edi + 0x4004], 2
mov ecx, eax
or ecx, edx
jne 0x45afc0
test byte [edi + 0x401c], 1
jne 0x45b057
mov dword [edi + 0x4004], 0
xor ecx, ecx
jmp 0x45ab95
mov dword [esp + 8], eax
mov dword [esp + 4], str.Ignoring_Content_Length_in_CONNECT__03d_response_n
mov dword [esp], ebp
call sym._Curl_infof
jmp 0x45ace0
cmp eax, 0x197
sete al
mov esi, eax
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._Curl_copy_header_value
test eax, eax
je 0x45ad31
mov dword [esp + 8], eax
mov dword [esp + 0x30], eax
mov eax, esi
movzx esi, al
mov dword [esp], ebx
mov dword [esp + 4], esi
call sym._Curl_http_input_auth
mov edx, dword [esp + 0x30]
mov esi, eax
mov dword [esp], edx
call dword [0x5bcc2c]
test esi, esi
je 0x45ace0
jmp 0x45a6e0
or byte [ebx + 0x4f2], 0x80
mov dword [esp + 4], str.Proxy_CONNECT_connection_closed_n
xor esi, esi
mov dword [esp], ebp
call sym._Curl_infof
jmp 0x45ae7d
mov dword [esp + 8], str.close
mov dword [esp + 4], str.Connection:
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._Curl_compareheader
test al, al
je 0x45b0b9
or byte [edi + 0x401c], 2
jmp 0x45ace0
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.Ignore__I64d_bytes_of_response_body_n
mov dword [esp], ebp
call sym._Curl_infof
mov ecx, dword [edi + 0x4004]
jmp 0x45ab83
mov dword [esp], eax
call dword [0x5bcc2c]
mov dword [esi + 0x11c], 0
mov dword [esp + 4], 2
mov dword [esp], ebx
call sym._Curl_conncontrol
mov ebp, dword [esp + 0x3c]
mov eax, dword [ebp + 0x408]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [ebp + 0x408], 0xffffffff
jmp 0x45a966
mov ebp, dword [esp + 0x3c]
mov eax, dword [ebp + 0x408]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [ebp + 0x408], 0xffffffff
jmp 0x45a8fe
mov esi, eax
jmp 0x45a6e0
mov dword [esp + 4], str.Ignore_chunked_response_body_n
mov dword [esp], ebp
call sym._Curl_infof
or byte [ebp + 0x564], 8
mov eax, dword [edi + 0x4008]
cmp byte [eax + 1], 0xa
je 0x45b109
lea edx, [esp + 0x4c]
add eax, 1
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
mov dword [esp + 0x10], edx
lea edx, [esp + 0x44]
mov dword [esp + 0xc], edx
call sym._Curl_httpchunk_read
cmp eax, 0xffffffff
je 0x45b1d0
mov ecx, dword [edi + 0x4004]
jmp 0x45ab83
mov dword [esp + 8], 0x12
mov eax, dword [edi + 0x4008]
mov dword [esp], str.Transfer_Encoding:
mov dword [esp + 4], eax
call sym._curl_strnequal
test eax, eax
je 0x45b161
mov eax, dword [ebp + 0xf0]
lea edx, [eax - 0xc8]
cmp edx, 0x63
ja 0x45b117
mov dword [esp + 8], eax
mov dword [esp + 4], str.Ignoring_Transfer_Encoding_in_CONNECT__03d_response_n
mov dword [esp], ebp
call sym._Curl_infof
jmp 0x45ace0
add eax, 1
mov dword [edi + 0x4008], eax
jmp 0x45b07e
mov dword [esp + 8], 0x5d370d
mov dword [esp + 4], str.Transfer_Encoding:
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._Curl_compareheader
test al, al
je 0x45ace0
mov dword [esp + 4], str.CONNECT_responded_chunked_n
mov dword [esp], ebp
call sym._Curl_infof
or byte [edi + 0x401c], 1
mov dword [esp], ebx
call sym._Curl_httpchunk_init
jmp 0x45ace0
mov dword [esp + 8], str.close
mov dword [esp + 4], str.Proxy_Connection:
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._Curl_compareheader
test al, al
jne 0x45afb4
lea eax, [ebp + 0xf0]
mov dword [esp + 4], str.HTTP_1._d__d
mov dword [esp + 0xc], eax
lea eax, [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [edi + 0x4008]
mov dword [esp], eax
call sym._sscanf
cmp eax, 2
jne 0x45ace0
mov eax, dword [ebp + 0xf0]
mov dword [ebp + 0xeb4], eax
jmp 0x45ace0
mov dword [esp + 4], str.chunk_reading_DONE_n
mov dword [esp], ebp
call sym._Curl_infof
mov dword [edi + 0x4004], 0
mov dword [edi + 0x4018], 2
xor ecx, ecx
jmp 0x45ab83
mov esi, ebp
jmp 0x45a6b2
mov esi, ebp
jmp 0x45a8fe