Function at 0x140015c54
Capabilities:
Check for software breakpoints

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xb8]
sub rsp, 0x190
mov rdi, r9
mov r15, r8
mov r13, rdx
mov r12, rcx
xor r14d, r14d
mov dword [rsp + 0x44], r14d
mov rbx, qword [rbp + 0xe8]
mov qword [rsp + 0x20], rbx
mov r9b, byte [rbp + 0xe0]
call fcn.140015360
test al, al
je 0x1400160eb
mov r9, rdi
mov r8, r15
mov rdx, r13
call fcn.140012f14
test al, al
je 0x1400160e5
lea rdx, [rdi + 0x48]
mov rcx, r13
call fcn.1400107d8
test al, al
je 0x1400160e5
mov esi, dword [rdi + 0x20]
cmp esi, 0xcc
je 0x140015f58
lea rdx, str.HEAD
mov rcx, r15
call fcn.140023ff8
test al, al
je 0x140015f58
lea rdx, str.CONNECT
mov rcx, r15
call fcn.140023ff8
test al, al
je 0x140015f58
lea eax, [rsi - 0x12d]
cmp eax, 0x62
ja 0x140015d2c
cmp byte [r12 + 0x1e9], r14b
mov al, 1
jne 0x140015d2f
mov al, r14b
mov byte [rsp + 0x40], al
mov rcx, qword [r15 + 0x1b8]
test rcx, rcx
je 0x140015d5b
test al, al
jne 0x140015d5b
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x140015d5b
mov dword [rbx], 7
jmp 0x1400160eb
cmp qword [r15 + 0x1f8], r14
je 0x140015d98
lea rax, [0x14006c210]
mov qword [rbp + 0x10], rax
lea rax, [rsp + 0x40]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], r15
mov qword [rbp + 0x28], rbx
lea rax, [rbp + 0x10]
mov qword [rbp + 0x48], rax
lea rsi, [rbp + 0x10]
mov r14d, 1
mov rcx, qword [rbp + 8]
jmp 0x140015db9
lea rax, [0x14006bd50]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdi
lea rcx, [rbp - 0x30]
mov qword [rbp + 8], rcx
lea rsi, [rbp - 0x30]
mov r14d, 2
xor r8d, r8d
mov qword [rbp - 0x78], r8
mov r9, qword [rsi + 0x38]
test r9, r9
je 0x140015e0e
cmp r9, rsi
jne 0x140015dfe
mov rax, qword [r9]
lea rdx, [rsp + 0x50]
mov rcx, r9
call qword [rax + reloc.WS2_32.dll_htonl]
mov r8, rax
mov qword [rbp - 0x78], rax
mov rcx, qword [rsi + 0x38]
test rcx, rcx
je 0x140015e0a
mov rax, qword [rcx]
cmp rcx, rsi
setne dl
call qword [rax + 0x20]
mov r8, qword [rbp - 0x78]
jmp 0x140015e05
mov r8, r9
mov qword [rbp - 0x78], r9
and qword [rsi + 0x38], 0
mov rcx, qword [rbp + 8]
test r14b, 2
je 0x140015e36
and r14d, 0xfffffffd
test rcx, rcx
je 0x140015e36
mov rax, qword [rcx]
lea rdx, [rbp - 0x30]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
and qword [rbp + 8], 0
mov r8, qword [rbp - 0x78]
test r14b, 1
je 0x140015e62
mov rcx, qword [rbp + 0x48]
xor r14d, r14d
test rcx, rcx
je 0x140015e65
mov rax, qword [rcx]
lea rdx, [rbp + 0x10]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
mov qword [rbp + 0x48], r14
mov r8, qword [rbp - 0x78]
jmp 0x140015e65
xor r14d, r14d
mov qword [rbp + 0x88], r14
test r8, r8
je 0x140015eb6
lea rax, [rsp + 0x50]
cmp r8, rax
jne 0x140015eab
mov rax, qword [r8]
lea rdx, [rbp + 0x50]
mov rcx, r8
call qword [rax + reloc.WS2_32.dll_htonl]
mov qword [rbp + 0x88], rax
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x140015eb6
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
jmp 0x140015eb2
mov qword [rbp + 0x88], r8
mov qword [rbp - 0x78], r14
lea rax, [0x14006c638]
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], r15
lea rax, [rsp + 0x40]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rbx
lea rax, [rbp - 0x70]
mov qword [rbp - 0x38], rax
mov al, byte [r12 + 0x239]
mov byte [rsp + 0x30], al
lea rax, [rbp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x44]
or r8, 0xffffffffffffffff
mov rdx, rdi
mov rcx, r13
call fcn.140026ff4
test al, al
jne 0x140015f3e
cmp dword [rbx], 7
je 0x140015f1b
mov dword [rbx], 4
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x1400160eb
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
jmp 0x1400160eb
mov rcx, qword [rbp - 0x78]
test rcx, rcx
je 0x140015f58
mov rax, qword [rcx]
lea rdx, [rsp + 0x50]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
lea rdx, str.Connection
lea rcx, [rdi + 0x48]
call fcn.140010728
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x60], xmm1
or r13, 0xffffffffffffffff
mov r8, r13
inc r8
cmp byte [rax + r8], r14b
jne 0x140015f7e
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.140027d34
lea rcx, [rbp - 0x70]
mov rbx, qword [rbp - 0x70]
mov r14, qword [rbp - 0x58]
cmp r14, 0xf
cmova rcx, rbx
mov r8, qword [rbp - 0x60]
cmp r8, 5
jne 0x140015fc1
lea rdx, str.close
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x140015ffc
mov rcx, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x140015fce
mov rcx, qword [rdi]
mov r8, qword [rdi + 0x10]
cmp r8, 8
jne 0x140016001
lea rdx, str.HTTP_1.0
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140016001
lea rcx, [rdi + 0x28]
lea rdx, str.Connection_established
call fcn.140023ff8
test al, al
je 0x140016001
mov sil, 1
jmp 0x140016004
xor sil, sil
cmp r14, 0xf
jbe 0x14001603e
lea rdx, [r14 + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x140016036
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140016036
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.1400571a8
test sil, sil
je 0x1400160c7
lea rbx, [r12 + 0x58]
mov qword [rsp + 0x48], rbx
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
je 0x14001606a
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
jne 0x140016085
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
lea rsi, [r12 + 0x50]
mov rax, qword [r12]
mov r8b, 1
mov rdx, rsi
mov rcx, r12
call qword [rax + 0x18]
cmp qword [rsi], r13
je 0x1400160be
mov edx, 2
mov rcx, qword [rsi]
call qword [sym.imp.WS2_32.dll_shutdown]
cmp qword [rsi], r13
je 0x1400160be
mov rcx, qword [rsi]
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rsi], r13
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov rcx, qword [r12 + 0x320]
test rcx, rcx
je 0x1400160e1
mov r9, qword [rcx]
mov r8, rdi
mov rdx, r15
call qword [r9 + reloc.WS2_32.dll_recv]
mov al, 1
jmp 0x1400160ed
mov dword [rbx], 4
xor al, al
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret