Function at 0x54d9c0
Capabilities:
Check http status code

Disassembly:
mov word [rsp + 0x20], r9w
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
mov r11, rsp
sub rsp, 0xd8
mov qword [r11 - 8], rbx
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov rsi, qword [rcx]
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x38], r14
mov dword [r11 - 0x50], 0
mov eax, dword [rsi + 0x230]
test eax, eax
mov ebp, 0x36ee80
mov r12, r8
cmovne ebp, eax
xor r8d, r8d
movsxd rax, edx
mov rdi, qword [rcx + rax*8 + 0x118]
xor bl, bl
xor al, al
mov qword [r11 - 0x30], r13
mov r14, rcx
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x80], rdi
mov dword [rsp + 0x60], ebp
mov qword [rsp + 0x78], r8
mov byte [rsp + 0x50], bl
mov byte [rsp + 0x51], al
mov dword [rsp + 0x64], r8d
mov byte [rcx + 0x1b6], al
mov qword [r11 - 0x40], r15
nop
nop
cmp byte [r14 + 0x1ad], 0
jne 0x54dd77
movzx r14d, r9w
lea rdx, str.Establish_HTTP_proxy_tunnel_to__s:_hu_n
mov r8, r12
mov r9d, r14d
mov rcx, rsi
call fcn.005373d0
mov rcx, qword [rsi + 0x110]
test rcx, rcx
je 0x54daa4
call qword [fcn.00443590]
mov qword [rsi + 0x110], 0
mov edx, 0x18
lea ecx, [rdx - 0x17]
call qword [case.0x534e6c.2]
test rax, rax
mov rdi, rax
je 0x54e388
lea rcx, str._s:_hu
mov r8d, r14d
mov rdx, r12
call fcn.0052c190
test rax, rax
mov r15, rax
je 0x54e363
mov rcx, qword [rsp + 0xe0]
lea rdx, str.CONNECT
mov r9b, 1
mov r8, rax
call fcn.00549f10
test eax, eax
mov ebx, eax
jne 0x54dd46
mov rax, qword [rsp + 0xe0]
lea r13, [0x00590c04]
lea rsi, [0x005610a8]
cmp dword [rax + 0xf8], 1
lea rax, [0x00590c00]
lea rbp, [0x005610a8]
cmove r13, rax
mov rax, qword [rsp + 0x68]
lea r12, [0x005610a8]
mov rbx, qword [rax + 0x268]
test rbx, rbx
je 0x54db7a
nop
nop
nop
mov rcx, qword [rbx]
lea rdx, str.Host:
mov r8d, 5
call fcn.00553e10
test eax, eax
jne 0x54db74
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x54db50
jmp 0x54db7a
cmp qword [rbx], 0
jne 0x54db95
lea rcx, str.Host:__s_r_n
mov rdx, r15
call fcn.0052c190
test rax, rax
mov rsi, rax
je 0x54e376
mov rax, qword [rsp + 0x68]
mov rbx, qword [rax + 0x268]
test rbx, rbx
je 0x54dbda
nop
nop
nop
mov rcx, qword [rbx]
lea rdx, str.Proxy_Connection:
mov r8d, reloc.WS2_32.dll_recvfrom
call fcn.00553e10
test eax, eax
jne 0x54dbd4
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x54dbb0
jmp 0x54dbda
cmp qword [rbx], 0
jne 0x54dbe1
lea rbp, str.Proxy_Connection:_Keep_Alive_r_n
mov rbx, qword [rsp + 0x68]
mov rbx, qword [rbx + 0x268]
test rbx, rbx
je 0x54dc2a
nop
nop
nop
nop
mov rcx, qword [rbx]
lea rdx, str.User_Agent:
mov r8d, reloc.WS2_32.dll_inet_addr
call fcn.00553e10
test eax, eax
jne 0x54dc24
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x54dc00
jmp 0x54dc2a
cmp qword [rbx], 0
jne 0x54dc54
mov rbx, qword [rsp + 0x68]
cmp qword [rbx + 0x498], 0
je 0x54dc4a
mov rax, qword [rsp + 0xe0]
mov r12, qword [rax + 0x1d8]
jmp 0x54dc5c
mov rax, qword [rsp + 0xe0]
jmp 0x54dc5c
mov rax, qword [rsp + 0xe0]
mov rax, qword [rax + 0x1d0]
mov r8, qword [rsp + 0xf0]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x38], r12
test rax, rax
lea rcx, [0x005610a8]
cmovne rcx, rax
lea rdx, str.CONNECT__s:_hu_HTTP__s_r_n_s_s_s_s
mov r9d, r14d
mov qword [rsp + 0x30], rcx
mov rcx, rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r13
call fcn.0054b050
test rsi, rsi
mov ebx, eax
je 0x54dcb9
cmp byte [rsi], 0
je 0x54dcb9
mov rcx, rsi
call qword [fcn.00443590]
test ebx, ebx
jne 0x54dd14
mov rbp, qword [rsp + 0xe0]
mov rdx, rdi
mov rcx, rbp
call fcn.0054b210
test eax, eax
mov ebx, eax
jne 0x54dd1b
lea rdx, [0x005642a0]
mov rcx, rdi
call fcn.0054b050
test eax, eax
mov ebx, eax
jne 0x54dd22
mov eax, dword [rsp + 0xe8]
mov rsi, qword [rsp + 0x68]
xor r9d, r9d
lea r8, [rsi + 0x8840]
mov rdx, rbp
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.0054a4a0
mov ebx, eax
jmp 0x54dd27
mov rsi, qword [rsp + 0x68]
jmp 0x54dd27
mov rsi, qword [rsp + 0x68]
jmp 0x54dd27
mov rsi, qword [rsp + 0x68]
xor edi, edi
test ebx, ebx
je 0x54dd42
lea rdx, str.Failed_sending_CONNECT_to_proxy
mov rcx, rsi
call fcn.005374d0
mov ebp, dword [rsp + 0x60]
jmp 0x54dd46
mov ebp, dword [rsp + 0x60]
mov rcx, r15
call qword [fcn.00443590]
mov rcx, rdi
call fcn.0052cac0
test ebx, ebx
jne 0x54e392
mov r14, qword [rsp + 0xe0]
mov rdi, qword [rsp + 0x80]
mov byte [r14 + 0x1ad], 1
call fcn.00552c90
mov rdx, qword [r14 + 0x104]
mov rcx, rax
call fcn.00552cd0
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x54e399
cmp dword [rsi + 0x648], 2
jne 0x54ddb7
xor r8d, r8d
mov rcx, rdi
lea rdx, [r8 - 1]
call fcn.0054eba0
test eax, eax
je 0x54e451
mov ebp, 1
xor r12d, r12d
xor ebx, ebx
mov byte [r14 + 0x1ad], 0
lea r13, [rsi + 0x678]
lea rdi, [rsi + 0x678]
mov dword [rsp + 0x54], ebp
xor r15d, r15d
nop
test ebp, ebp
je 0x54e2cb
cmp dword [rsp + 0x64], 0
jne 0x54e416
call fcn.00552c90
mov rdx, qword [r14 + 0x104]
mov rcx, rax
call fcn.00552cd0
mov ecx, dword [rsp + 0x60]
sub ecx, eax
test ecx, ecx
jle 0x54e34a
mov r8d, 0x3e8
mov rdx, 0xffffffffffffffff
cmp ecx, r8d
cmovl r8d, ecx
mov rcx, qword [rsp + 0x80]
call fcn.0054eba0
cmp eax, 0xffffffff
je 0x54e289
test eax, eax
je 0x54e2ae
mov rdx, qword [rsp + 0x80]
lea rax, [rsp + 0x70]
mov r9d, 0x4000
sub r9, r12
mov r8, r13
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.00536f80
test eax, eax
js 0x54e2be
test eax, eax
je 0x54de84
xor ebp, ebp
mov dword [rsp + 0x54], ebp
jmp 0x54e2ae
mov rcx, qword [rsp + 0x70]
test rcx, rcx
jg 0x54decd
xor ebp, ebp
cmp dword [rsi + 0x178], ebp
mov dword [rsp + 0x54], ebp
je 0x54deb1
cmp dword [rsi + 0x8770], ebp
je 0x54deb1
mov byte [r14 + 0x1b6], 1
jmp 0x54e2ae
lea rdx, str.Proxy_CONNECT_aborted
mov rcx, rsi
mov dword [rsp + 0x64], 1
call fcn.005374d0
jmp 0x54e2ae
add r12, rcx
cmp ebp, 1
mov qword [rsp + 0x58], r12
jle 0x54df5e
mov rax, qword [rsp + 0x78]
xor r12d, r12d
lea r13, [rsi + 0x678]
test rax, rax
je 0x54df0e
sub rax, rcx
test rax, rax
mov qword [rsp + 0x78], rax
jg 0x54e2ae
xor ebp, ebp
mov dword [rsp + 0x54], ebp
jmp 0x54e2ae
mov r8, rcx
lea r9, [rsp + 0x58]
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0x58], r12
call fcn.005559e0
cmp eax, 0xffffffff
jne 0x54df45
lea rdx, str.chunk_reading_DONE_n
mov rcx, rsi
call fcn.005373d0
xor ebp, ebp
mov dword [rsp + 0x54], ebp
jmp 0x54e2ae
mov r8, qword [rsp + 0x58]
lea rdx, str.Read__zd_bytes_of_chunk__continue_n
mov rcx, rsi
call fcn.005373d0
jmp 0x54e2ae
xor r12d, r12d
test rcx, rcx
jle 0x54e2a2
nop
nop
inc ebx
inc r15
cmp byte [r13], 0xa
jne 0x54e140
cmp byte [rsi + 0x3a0], 0
je 0x54dfa1
movsxd r9, ebx
mov r8, rdi
mov edx, 1
mov rcx, rsi
mov qword [rsp + 0x20], r14
call fcn.005371d0
cmp byte [rsi + 0x393], 0
mov edx, 2
mov eax, 3
movsxd r9, ebx
mov r8, rdi
mov rcx, r14
cmovne edx, eax
call fcn.005377c0
test eax, eax
jne 0x54e453
movzx eax, byte [rdi]
cmp al, 0xd
je 0x54e160
cmp al, 0xa
je 0x54e160
movzx ebp, byte [r15 + rdi]
lea rcx, str.WWW_Authenticate:
mov r8d, reloc.WS2_32.dll_recvfrom
mov rdx, rdi
mov byte [r15 + rdi], 0
call fcn.00553e10
test eax, eax
je 0x54e00f
mov edx, dword [rsi + 0xc0]
cmp edx, 0x191
je 0x54e036
lea rcx, str.Proxy_authenticate:
mov r8d, reloc.WS2_32.dll_send
mov rdx, rdi
call fcn.00553e10
test eax, eax
je 0x54e04e
mov edx, dword [rsi + 0xc0]
cmp edx, 0x197
jne 0x54e04e
mov r8, rdi
mov rcx, r14
call fcn.0054a1e0
test eax, eax
jne 0x54e453
jmp 0x54e12e
lea rcx, str.Content_Length:
mov r8d, reloc.WS2_32.dll_ntohs
mov rdx, rdi
call fcn.00553e10
test eax, eax
je 0x54e081
xor edx, edx
lea rcx, [rdi + 0xf]
lea r8d, [rdx + 0xa]
call qword [sym.imp.msvcrt.dll__strtoi64]
mov qword [rsp + 0x78], rax
jmp 0x54e12e
lea r8, str.close
lea rdx, str.Connection:
mov rcx, rdi
call fcn.0054a7f0
test al, al
je 0x54e0a5
mov byte [rsp + 0x50], 1
jmp 0x54e12e
lea r8, str.chunked
lea rdx, str.Transfer_Encoding:
mov rcx, rdi
call fcn.0054a7f0
test al, al
je 0x54e0dd
lea rdx, str.CONNECT_responded_chunked_n
mov rcx, rsi
call fcn.005373d0
mov rcx, r14
mov byte [rsp + 0x51], 1
call fcn.005559c0
jmp 0x54e12e
lea r8, str.close
lea rdx, str.Proxy_Connection:
mov rcx, rdi
call fcn.0054a7f0
test al, al
je 0x54e0fe
mov byte [rsp + 0x50], 1
jmp 0x54e12e
lea r9, [rsi + 0xc0]
lea r8, [rsp + 0x88]
lea rdx, str.HTTP_1._d__d
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_sscanf]
cmp eax, 2
jne 0x54e12e
mov eax, dword [rsi + 0xc0]
mov dword [rsi + 0x882c], eax
mov rcx, qword [rsp + 0x70]
mov byte [r15 + rdi], bpl
xor ebx, ebx
xor r15d, r15d
lea rdi, [r13 + 1]
inc r12d
inc r13
movsxd rax, r12d
cmp rax, rcx
jl 0x54df70
mov ebp, dword [rsp + 0x54]
mov r12, qword [rsp + 0x58]
jmp 0x54e2ae
cmp dword [rsi + 0xc0], 0x197
mov qword [rsp + 0x58], 0
lea r13, [rsi + 0x678]
jne 0x54e27c
cmp byte [rsi + 0x8778], 0
jne 0x54e27c
mov r8, qword [rsp + 0x78]
mov ebp, 2
test r8, r8
mov dword [rsp + 0x54], ebp
je 0x54e1dd
lea rdx, str.Ignore__lld_bytes_of_response_body_n
mov rcx, rsi
call fcn.005373d0
mov rax, qword [rsp + 0x78]
movsxd r11, r12d
sub r11, qword [rsp + 0x70]
add rax, r11
test rax, rax
mov qword [rsp + 0x78], rax
jg 0x54e2a9
mov r12, qword [rsp + 0x58]
xor ebp, ebp
mov dword [rsp + 0x54], ebp
jmp 0x54e2ae
movzx eax, byte [rsp + 0x51]
test al, al
je 0x54e26f
mov r8, qword [rsp + 0x70]
movsxd rax, r12d
lea rdx, str._zd_bytes_of_chunk_left_n
mov rcx, rsi
sub r8, rax
mov byte [rsi + 0x105], 1
call fcn.005373d0
cmp byte [rdi + 1], 0xa
jne 0x54e217
inc rdi
inc r12d
mov r8, qword [rsp + 0x70]
movsxd rax, r12d
lea rdx, [rdi + 1]
lea r9, [rsp + 0x70]
mov rcx, r14
sub r8, rax
call fcn.005559e0
cmp eax, 0xffffffff
jne 0x54e254
lea rdx, str.chunk_reading_DONE_n
mov rcx, rsi
call fcn.005373d0
mov r12, qword [rsp + 0x58]
xor ebp, ebp
mov dword [rsp + 0x54], ebp
jmp 0x54e2ae
mov r8, qword [rsp + 0x70]
lea rdx, str.Read__zd_bytes_of_chunk__continue_n
mov rcx, rsi
call fcn.005373d0
mov r12, qword [rsp + 0x58]
jmp 0x54e2ae
mov r12, qword [rsp + 0x58]
xor ebp, ebp
mov dword [rsp + 0x54], ebp
jmp 0x54e2ae
mov r12, qword [rsp + 0x58]
xor ebp, ebp
mov dword [rsp + 0x54], ebp
jmp 0x54e2ae
lea rdx, str.Proxy_CONNECT_aborted_due_to_select_poll_error
mov rcx, rsi
mov dword [rsp + 0x64], 1
call fcn.005374d0
jmp 0x54e2ae
mov r12, qword [rsp + 0x58]
jmp 0x54e2ae
mov r12, qword [rsp + 0x58]
mov rcx, r14
call fcn.00553220
test eax, eax
jne 0x54e3b2
cmp r12, 0x4000
jb 0x54dde0
cmp dword [rsp + 0x64], 0
jne 0x54e416
cmp dword [rsi + 0x882c], 0xc8
je 0x54e303
mov rcx, r14
call fcn.0054ad50
test eax, eax
jne 0x54e453
cmp byte [r14 + 0x1a0], al
je 0x54e303
mov bl, 1
mov byte [rsp + 0x50], bl
jmp 0x54e30c
movzx ebx, byte [rsp + 0x50]
test bl, bl
je 0x54e31a
cmp qword [rsi + 0x110], 0
jne 0x54e3bc
cmp qword [rsi + 0x110], 0
je 0x54e3e1
mov rdi, qword [rsp + 0x80]
mov ebp, dword [rsp + 0x60]
mov r12, qword [rsp + 0xf0]
movzx r9d, word [rsp + 0xf8]
jmp 0x54da60
lea rdx, str.Proxy_CONNECT_aborted_due_to_timeout
mov rcx, rsi
call fcn.005374d0
mov eax, reloc.WS2_32.dll_getservbyport
jmp 0x54e453
mov rcx, rdi
call qword [fcn.00443590]
mov eax, 0x1b
jmp 0x54e453
mov rcx, rdi
call qword [fcn.00443590]
mov rcx, r15
call qword [fcn.00443590]
mov eax, 0x1b
jmp 0x54e453
mov eax, ebx
jmp 0x54e453
lea rdx, str.Proxy_CONNECT_aborted_due_to_timeout
mov rcx, rsi
call fcn.005374d0
mov eax, reloc.WS2_32.dll_getservbyport
jmp 0x54e453
mov eax, 0x2a
jmp 0x54e453
movsxd rax, dword [rsp + 0xe8]
mov rdi, rax
mov rcx, qword [r14 + rax*8 + 0x118]
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [r14 + rdi*8 + 0x118], 0xffffffffffffffff
mov r8d, dword [rsi + 0xc0]
cmp r8d, 0xc8
je 0x54e41d
lea rdx, str.Received_HTTP_code__d_from_proxy_after_CONNECT
mov rcx, rsi
call fcn.005374d0
test bl, bl
je 0x54e416
cmp qword [rsi + 0x110], 0
je 0x54e416
mov byte [r14 + 0x1b6], 1
mov eax, reloc.WS2_32.dll_getservbyport
jmp 0x54e453
mov rcx, qword [r14 + 0x1d0]
call fcn.0052cac0
mov qword [r14 + 0x1d0], 0
lea rdx, str.Proxy_replied_OK_to_CONNECT_request_n
mov rcx, rsi
mov byte [rsi + 0x8774], 1
call fcn.005373d0
mov byte [rsi + 0x105], 0
xor eax, eax
mov r15, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
mov r13, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xb8]
mov rsi, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xd0]
add rsp, 0xd8
ret