Function at 0x407590
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x418191
mov eax, dword fs:[0]
push eax
sub esp, 0x8cc
mov eax, dword [0x42000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x880], ecx
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
push edi
push dword [ebp + 0x14]
mov dword [ebp - 0x888], edx
push eax
push edx
mov dword [ebp - 0x878], eax
mov dword [ebp - 0x884], esi
mov dword [ebp - 0x87c], edi
mov dword [ebp - 0x844], 0
call fcn.00407150
test al, al
je 0x407d1c
push esi
push dword [ebp - 0x878]
mov esi, dword [ebp - 0x888]
push esi
call fcn.00404fa0
test al, al
je 0x407d16
xorps xmm0, xmm0
lea eax, [ebp - 0x810]
movups xmmword [ebp - 0x840], xmm0
mov dword [ebp - 0x840], esi
movq qword [ebp - 0x820], xmm0
movups xmmword [ebp - 0x830], xmm0
mov dword [ebp - 0x83c], eax
mov dword [ebp - 0x838], 0x800
mov dword [ebp - 0x834], 0
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x81c], 0xf
mov byte [ebp - 0x830], 0
lea ecx, [ebp - 0x840]
mov dword [ebp - 4], 0
call fcn.004027e0
test al, al
je 0x407757
mov ecx, dword [ebp - 0x820]
mov edi, dword [ebp - 0x830]
mov edx, dword [ebp - 0x834]
mov esi, dword [ebp - 0x83c]
test ecx, ecx
jne 0x4076ba
lea eax, [edx + esi]
mov dword [ebp - 0x870], edx
jmp 0x4076d2
cmp dword [ebp - 0x81c], 0x10
lea eax, [ebp - 0x830]
mov dword [ebp - 0x870], ecx
cmovae eax, edi
add eax, ecx
cmp dword [ebp - 0x870], 2
jb 0x40773e
cmp byte [eax - 2], 0xd
jne 0x40773e
cmp byte [eax - 1], 0xa
jne 0x40773e
test ecx, ecx
mov eax, ecx
cmove eax, edx
cmp eax, 2
je 0x407795
test ecx, ecx
jne 0x4076ff
mov eax, esi
jmp 0x407711
cmp dword [ebp - 0x81c], 0x10
lea eax, [ebp - 0x830]
mov edx, ecx
cmovae eax, edi
add eax, 0xfffffffe
add edx, eax
mov eax, dword [ebp - 0x884]
add eax, 0x34
test ecx, ecx
je 0x407733
cmp dword [ebp - 0x81c], 0x10
lea esi, [ebp - 0x830]
cmovae esi, edi
push eax
mov ecx, esi
call fcn.0040ba30
add esp, 4
lea ecx, [ebp - 0x840]
call fcn.004027e0
test al, al
jne 0x407693
mov edi, dword [ebp - 0x87c]
mov edx, dword [ebp - 0x81c]
cmp edx, 0x10
jb 0x407d16
mov ecx, dword [ebp - 0x830]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407d0c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x407d0c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x81c]
cmp eax, 0x10
jb 0x4077ce
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x4077c4
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40778f
push ecx
push edi
call fcn.00416d22
add esp, 8
mov edi, dword [ebp - 0x884]
mov esi, dword [edi + 0x18]
cmp esi, 0xcc
je 0x407c0c
mov ecx, dword [ebp - 0x878]
mov edx, str.HEAD
call fcn.0040b860
test al, al
jne 0x407c0c
mov ecx, dword [ebp - 0x878]
mov edx, str.CONNECT
call fcn.0040b860
test al, al
jne 0x407c0c
lea eax, [esi - 0x12d]
cmp eax, 0x62
ja 0x407831
mov eax, dword [ebp - 0x880]
cmp byte [eax + 0x161], 0
je 0x407831
mov al, 1
jmp 0x407833
xor al, al
mov esi, dword [ebp - 0x878]
mov byte [ebp - 0x811], al
mov ecx, dword [esi + 0x114]
test ecx, ecx
je 0x40786a
test al, al
jne 0x40786a
mov eax, dword [ecx]
push edi
mov eax, dword [eax + 8]
call eax
test al, al
jne 0x40786a
mov eax, dword [ebp - 0x87c]
mov dword [eax], 7
jmp 0x407d1c
cmp dword [esi + 0x13c], 0
je 0x4078d2
mov ecx, dword [ebp - 0x81c]
lea eax, [ebp - 0x811]
mov dword [ebp - 0x824], eax
mov eax, dword [ebp - 0x87c]
mov dword [ebp - 0x8a4], eax
lea eax, [ebp - 0x8b0]
mov dword [ebp - 0x88c], eax
mov edi, eax
mov eax, 1
mov dword [ebp - 0x820], esi
movq xmm0, qword [ebp - 0x824]
mov dword [ebp - 0x870], eax
lea eax, [ebp - 0x88c]
mov dword [ebp - method.std::_Func_impl_no_alloc_class__lambda_dce5d51a8b0a08c36ebe11fd9e57e7a9___bool__char_const___unsigned_int__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__.virtual_0], vtable.std::_Func_impl_no_alloc_class__lambda_dce5d51a8b0a08c36ebe11fd9e57e7a9___bool__char_const___unsigned_int__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__.0
movq qword [ebp - 0x8ac], xmm0
jmp 0x407901
mov eax, 2
mov dword [ebp - 0x83c], edi
lea ecx, [ebp - 0x840]
mov dword [ebp - 0x870], eax
mov dword [ebp - method.std::_Func_impl_no_alloc_class__lambda_4a0e6fa22e26bf1c2dc20746aedb6c9e___bool__char_const___unsigned_int__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__.virtual_0], vtable.std::_Func_impl_no_alloc_class__lambda_4a0e6fa22e26bf1c2dc20746aedb6c9e___bool__char_const___unsigned_int__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__.0
lea eax, [ebp - 0x81c]
mov dword [ebp - 0x81c], ecx
mov edi, ecx
mov esi, dword [edi + 0x24]
xor edx, edx
mov dword [ebp - 0x818], eax
mov dword [ebp - 0x848], edx
test esi, esi
je 0x40796e
cmp esi, edi
jne 0x40795a
mov eax, dword [esi]
lea ecx, [ebp - 0x86c]
push ecx
mov ecx, esi
mov eax, dword [eax + 4]
call eax
mov edx, eax
mov eax, dword [ebp - 0x818]
mov dword [ebp - 0x848], edx
mov ecx, dword [eax]
test ecx, ecx
je 0x407968
mov eax, dword [ecx]
cmp ecx, edi
mov edx, dword [eax + 0x10]
setne al
push eax
call edx
mov edx, dword [ebp - 0x848]
mov dword [edi + 0x24], 0
jmp 0x407968
mov edx, esi
mov dword [eax], 0
mov dword [ebp - 0x848], edx
mov ecx, dword [ebp - 0x81c]
mov eax, dword [ebp - 0x870]
mov dword [ebp - 4], 1
test al, 2
je 0x4079b5
and eax, 0xfffffffd
mov dword [ebp - 0x870], eax
test ecx, ecx
je 0x4079b5
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x840]
cmp ecx, eax
setne al
push eax
call edx
mov edx, dword [ebp - 0x848]
mov eax, dword [ebp - 0x870]
mov dword [ebp - 0x81c], 0
test al, 1
je 0x4079dc
mov ecx, dword [ebp - 0x88c]
test ecx, ecx
je 0x4079dc
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x8b0]
cmp ecx, eax
setne al
push eax
call edx
mov edx, dword [ebp - 0x848]
mov eax, dword [ebp - 0x880]
mov dword [ebp - 0x88c], 0
mov al, byte [eax + 0x199]
mov byte [ebp - 0x870], al
test edx, edx
je 0x407a4b
lea eax, [ebp - 0x86c]
cmp edx, eax
jne 0x407a3b
mov eax, dword [edx]
lea ecx, [ebp - 0x8b0]
push ecx
mov ecx, edx
mov eax, dword [eax + 4]
call eax
mov ecx, dword [ebp - 0x848]
mov dword [ebp - 0x88c], eax
test ecx, ecx
je 0x407a4b
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x86c]
cmp ecx, eax
setne al
push eax
call edx
jmp 0x407a41
mov dword [ebp - 0x88c], edx
mov dword [ebp - 0x848], 0
mov eax, dword [ebp - 0x878]
mov dword [ebp - 0x824], eax
lea eax, [ebp - 0x811]
mov dword [ebp - 0x820], eax
mov eax, dword [ebp - 0x87c]
movq xmm0, qword [ebp - 0x824]
mov dword [ebp - 0x8cc], eax
lea eax, [ebp - 0x8d8]
mov dword [ebp - method.std::_Func_impl_no_alloc_class__lambda_54085e878976e95a66856a10703f2250___bool__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__.virtual_0], vtable.std::_Func_impl_no_alloc_class__lambda_54085e878976e95a66856a10703f2250___bool__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__.0
movq qword [ebp - 0x8d4], xmm0
mov dword [ebp - 0x8b4], eax
mov dword [ebp - 0x818], 0xffffffff
mov eax, dword [ebp - 0x888]
lea ecx, [ebp - 0x844]
mov edi, dword [ebp - 0x884]
sub esp, 0x14
mov byte [ebp - 4], 3
mov dword [ebp - 0x828], eax
lea eax, [ebp - 0x818]
mov dword [ebp - 0x824], eax
lea eax, [ebp - 0x8d8]
mov dword [ebp - 0x820], eax
mov eax, esp
push dword [ebp - 0x870]
mov dword [ebp - 0x82c], edi
movups xmm0, xmmword [ebp - 0x82c]
sub esp, 0x28
mov esi, esp
movups xmmword [eax], xmm0
mov dword [eax + 0x10], ecx
mov dword [esi + 0x24], 0
mov ecx, dword [ebp - 0x88c]
test ecx, ecx
je 0x407b48
lea eax, [ebp - 0x8b0]
cmp ecx, eax
jne 0x407b3b
mov eax, dword [ecx]
push esi
mov eax, dword [eax + 4]
call eax
mov dword [esi + 0x24], eax
mov ecx, dword [ebp - 0x88c]
test ecx, ecx
je 0x407b48
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x8b0]
cmp ecx, eax
setne al
push eax
call edx
jmp 0x407b3e
mov dword [esi + 0x24], ecx
mov dword [ebp - 0x88c], 0
lea edx, [ebp - 0x844]
mov ecx, edi
call fcn.0040f320
mov ecx, dword [ebp - 0x8b4]
add esp, 0x40
mov byte [ebp - 0x871], al
test ecx, ecx
je 0x407b85
mov edx, dword [ecx]
lea eax, [ebp - 0x8d8]
cmp ecx, eax
setne al
mov esi, dword [edx + 0x10]
push eax
call esi
mov dword [ebp - 0x8b4], 0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x88c]
test ecx, ecx
je 0x407ba6
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
lea eax, [ebp - 0x8b0]
cmp ecx, eax
setne al
push eax
call edx
cmp byte [ebp - 0x871], 0
jne 0x407be7
mov eax, dword [ebp - 0x87c]
cmp dword [eax], 7
je 0x407bc0
mov dword [eax], 4
mov ecx, dword [ebp - 0x848]
test ecx, ecx
je 0x407d1c
mov edx, dword [ecx]
lea eax, [ebp - 0x86c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
jmp 0x407d1c
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x848]
test ecx, ecx
je 0x407c0c
mov edx, dword [ecx]
lea eax, [ebp - 0x86c]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
sub esp, 8
lea ecx, [edi + 0x34]
mov edx, str.Connection
call fcn.00402be0
mov edx, eax
mov dword [ebp - 0x820], 0
mov ecx, edx
mov dword [ebp - 0x81c], 0xf
add esp, 8
mov byte [ebp - 0x830], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407c41
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x830]
call fcn.0040aaf0
mov edx, str.close
lea ecx, [ebp - 0x830]
call fcn.0040b860
test al, al
jne 0x407c95
mov edx, str.HTTP_1.0
mov ecx, edi
call fcn.0040b860
test al, al
je 0x407c8c
lea ecx, [edi + 0x1c]
mov edx, str.Connection_established
call fcn.0040b860
test al, al
je 0x407c95
mov byte [ebp - 0x811], 0
jmp 0x407c9c
mov byte [ebp - 0x811], 1
mov edx, dword [ebp - 0x81c]
cmp edx, 0x10
jb 0x407cd8
mov ecx, dword [ebp - 0x830]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407cce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x407cce
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.00416d22
add esp, 8
cmp byte [ebp - 0x811], 0
je 0x407cec
mov ecx, dword [ebp - 0x880]
call fcn.00404ef0
mov eax, dword [ebp - 0x880]
mov ecx, dword [eax + 0x23c]
test ecx, ecx
je 0x407d08
mov eax, dword [ecx]
push edi
push dword [ebp - 0x878]
call dword [eax + 8]
mov al, 1
jmp 0x407d1e
push edx
push ecx
call fcn.00416d22
add esp, 8
mov dword [edi], 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00416887
mov esp, ebp
pop ebp
ret 0x14