Function at 0x1401e5820
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x120]
sub rsp, 0x220
mov rbx, rdx
mov r14, rcx
mov qword [rsp + 0x60], rcx
xor r13d, r13d
lea r8, str.connection_write_http_response
mov edx, 0x400
mov rcx, qword [rcx + 0x5108]
call fcn.1401a9de0
mov esi, 8
mov rax, qword gs:[0x58]
add rsi, qword [rax]
lea r15, [0x1405df1d8]
lea r12, vtable.websocketpp::error::category.0
mov eax, dword [rsi]
cmp dword [0x1405deec0], eax
jle 0x1401e58d1
lea rcx, [0x1405deec0]
call fcn.14045a944
cmp dword [0x1405deec0], 0xffffffff
jne 0x1401e58d1
mov qword [0x1405df1e0], r15
mov qword [0x1405df1d8], r12
lea rcx, [0x14049ecd0]
call fcn.14045a858
lea rcx, [0x1405deec0]
call fcn.14045a8d8
mov rcx, qword [rbx + 8]
mov rax, qword [0x1405df1e0]
cmp qword [rcx + 8], rax
jne 0x1401e5920
cmp dword [rbx], 0x15
jne 0x1401e5920
lea r8, str.An_HTTP_handler_took_over_the_connection.
mov edx, 0x1000
mov rcx, qword [r14 + 0x5108]
call fcn.1401a9de0
lea r11, [rsp + 0x220]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
cmp dword [r14 + 0x50b0], r13d
jne 0x1401e5a23
mov dword [r14 + 0x50b0], 0x1f4
mov edx, 0x1f4
lea rcx, [rbp + 0xb8]
call fcn.140170e20
mov rdi, rax
lea rbx, [r14 + 0x5078]
cmp rbx, rax
je 0x1401e59be
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x1401e5992
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x1401e598d
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1401e6024
mov rcx, r8
call fcn.14045a270
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], r13b
movups xmm0, xmmword [rdi]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x10], xmm1
mov qword [rdi + 0x10], r13
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], r13b
lea rcx, [rbp + 0xb8]
call fcn.14014c8d0
mov eax, dword [rsi]
cmp dword [0x1405deec0], eax
jle 0x1401e5a0f
lea rcx, [0x1405deec0]
call fcn.14045a944
cmp dword [0x1405deec0], 0xffffffff
jne 0x1401e5a0f
mov qword [0x1405df1e0], r15
mov qword [0x1405df1d8], r12
lea rcx, [0x14049ecd0]
call fcn.14045a858
lea rcx, [0x1405deec0]
call fcn.14045a8d8
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x58], r15
movups xmm0, xmmword [rsp + 0x50]
jmp 0x1401e5a26
movups xmm0, xmmword [rbx]
mov rax, r14
movups xmmword [r14 + 0x5180], xmm0
lea r12, [rax + 0x5008]
mov qword [rsp + 0x48], r12
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x38], r13
mov r8d, 8
lea rdx, str.HTTP_1.1
lea rcx, [rbp - 0x50]
call fcn.1401336a0
nop
lea rax, [rbp - 0x50]
cmp r12, rax
je 0x1401e5a87
lea rdx, [rbp - 0x50]
cmp qword [rbp - 0x38], 0x10
cmovae rdx, qword [rbp - 0x50]
mov r8, qword [rbp - 0x40]
mov rcx, r12
call fcn.1401ace00
nop
lea rcx, [rbp - 0x50]
call fcn.14014c8d0
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x78], r13
mov r8d, 6
lea rdx, str.Server
lea rcx, [rsp + 0x70]
call fcn.1401336a0
lea r13, [r14 + 0x5028]
mov qword [rsp + 0x68], r13
mov rbx, qword [r13]
mov qword [rsp + 0x40], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x1401e5ba7
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea r13, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
setae r8b
cmovae r13, qword [rsp + 0x70]
add r13, qword [rbp - 0x80]
lea r14, [rsp + 0x70]
test r8b, r8b
cmovne r14, qword [rsp + 0x70]
cmp qword [r9 + 0x18], 0x10
jb 0x1401e5b1d
mov r12, qword [r9]
mov rsi, r12
add r12, qword [r9 + 0x10]
jmp 0x1401e5b27
mov r12, qword [r9 + 0x10]
add r12, r9
mov rsi, r9
cmp rsi, r12
je 0x1401e5b72
nop dword [rax]
cmp r14, r13
je 0x1401e5b82
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.140470a3c
mov ebx, eax
mov ecx, edi
call fcn.140470a3c
cmp ebx, eax
jl 0x1401e5b77
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.140470a3c
mov ebx, eax
mov ecx, edi
call fcn.140470a3c
cmp ebx, eax
jl 0x1401e5b82
inc rsi
inc r14
cmp rsi, r12
jne 0x1401e5b30
cmp r14, r13
je 0x1401e5b82
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x40]
jmp 0x1401e5b8d
mov rbx, r15
mov qword [rsp + 0x40], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401e5ae0
mov r14, qword [rsp + 0x60]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0x68]
lea rsi, [0x1405d3f50]
cmp byte [rbx + 0x19], 0
jne 0x1401e5bd2
lea r8, [rbx + 0x20]
lea rdx, [rsp + 0x70]
call fcn.140170880
test al, al
jne 0x1401e5bd2
cmp rbx, qword [r13]
je 0x1401e5bd2
add rbx, 0x50
jmp 0x1401e5bd5
mov rbx, rsi
mov rbx, qword [rbx]
lea rcx, [rsp + 0x70]
call fcn.14014c8d0
test rbx, rbx
jne 0x1401e5c77
xorps xmm0, xmm0
xorps xmm1, xmm1
lea r8d, [rbx + 6]
lea rdx, str.Server
cmp qword [r14 + 0xad0], rbx
je 0x1401e5c50
movups xmmword [rbp - 0x10], xmm0
movdqu xmmword [rbp], xmm1
lea rcx, [rbp - 0x10]
call fcn.1401336a0
nop
lea rbx, [r14 + 0xac0]
lea rdx, [rbp - 0x10]
mov rcx, r13
call fcn.1401a6a50
cmp rax, rbx
je 0x1401e5c4a
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x1401e5c3e
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.1401ace00
nop
lea rcx, [rbp - 0x10]
jmp 0x1401e5c72
movups xmmword [rbp + 0x10], xmm0
movdqu xmmword [rbp + 0x20], xmm1
lea rcx, [rbp + 0x10]
call fcn.1401336a0
lea rdx, [rbp + 0x10]
mov rcx, r12
call fcn.140171fe0
lea rcx, [rbp + 0x10]
call fcn.14014c8d0
mov rcx, qword [r14 + 0x4ec8]
lea rdi, [r14 + 0x4ea8]
mov qword [rsp + 0x48], rdi
test rcx, rcx
je 0x1401e5cb3
mov rax, qword [rcx]
mov r8, r12
lea rdx, [rbp + 0xd8]
call qword [rax + 0x48]
mov rdx, rax
mov rcx, rdi
call fcn.1401a7da0
lea rcx, [rbp + 0xd8]
jmp 0x1401e5cd4
lea rdx, [rbp + 0xf8]
mov rcx, r12
call fcn.140173aa0
mov rdx, rax
mov rcx, rdi
call fcn.1401a7da0
lea rcx, [rbp + 0xf8]
call fcn.14014c8d0
mov rbx, qword [r14 + 0x5108]
mov eax, dword [rbx + 0x50]
shr eax, 0xa
test al, 1
je 0x1401e5f62
mov rcx, qword [rdi + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0x18
jb 0x1401e6018
mov rax, rdi
cmp qword [rdi + 0x18], 0x10
jb 0x1401e5d16
mov rax, qword [rdi]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x18
lea r9, str.Raw_Handshake_response:_n
lea rcx, [rbp + 0x98]
call fcn.1401bb670
nop
lea r8, [rbp + 0x98]
mov edx, 0x400
mov rcx, rbx
call fcn.1401ae530
nop
lea rcx, [rbp + 0x98]
call fcn.14014c8d0
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp - 0x30]
call fcn.1401336a0
mov rdi, qword [r13]
mov rbx, qword [rdi + 8]
cmp byte [rbx + 0x19], 0
jne 0x1401e5db4
lea rdx, [rbx + 0x20]
lea r8, [rbp - 0x30]
call fcn.140170880
test al, al
je 0x1401e5da8
mov rbx, qword [rbx + 0x10]
jmp 0x1401e5dae
mov rdi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x1401e5d91
cmp byte [rdi + 0x19], 0
jne 0x1401e5dd5
lea r8, [rdi + 0x20]
lea rdx, [rbp - 0x30]
call fcn.140170880
test al, al
jne 0x1401e5dd5
cmp rdi, qword [r13]
je 0x1401e5dd5
lea rsi, [rdi + 0x50]
mov rbx, qword [rsi]
lea rcx, [rbp - 0x30]
call fcn.14014c8d0
test rbx, rbx
je 0x1401e5f5d
mov rdi, qword [r14 + 0x5108]
mov qword [rsp + 0x50], rdi
xorps xmm0, xmm0
movups xmmword [rbp - 0x70], xmm0
xor eax, eax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
lea r8d, [rax + 0x12]
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp - 0x70]
call fcn.1401336a0
nop
mov rbx, qword [r13]
mov qword [rsp + 0x40], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x1401e5f07
nop dword [rax]
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], 0x10
setae r8b
cmovae rdx, qword [rbp - 0x70]
mov r13, qword [rbp - 0x60]
add r13, rdx
lea r14, [rbp - 0x70]
test r8b, r8b
cmovne r14, qword [rbp - 0x70]
cmp qword [r9 + 0x18], 0x10
jb 0x1401e5e7c
mov r12, qword [r9]
mov rsi, r12
add r12, qword [r9 + 0x10]
jmp 0x1401e5e86
mov r12, qword [r9 + 0x10]
add r12, r9
mov rsi, r9
cmp rsi, r12
je 0x1401e5ed2
nop dword [rax + rax]
cmp r14, r13
je 0x1401e5ee2
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.140470a3c
mov ebx, eax
mov ecx, edi
call fcn.140470a3c
cmp ebx, eax
jl 0x1401e5ed7
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.140470a3c
mov ebx, eax
mov ecx, edi
call fcn.140470a3c
cmp ebx, eax
jl 0x1401e5ee2
inc rsi
inc r14
cmp rsi, r12
jne 0x1401e5e90
cmp r14, r13
je 0x1401e5ee2
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x40]
jmp 0x1401e5eed
mov rbx, r15
mov qword [rsp + 0x40], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x1401e5e40
mov rdi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
cmp byte [rbx + 0x19], 0
jne 0x1401e5f28
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x70]
call fcn.140170880
test al, al
jne 0x1401e5f28
cmp rbx, qword [r13]
lea rdx, [rbx + 0x40]
jne 0x1401e5f2f
lea rdx, [0x1405d3f40]
lea rcx, [rbp + 0x70]
call fcn.140170940
nop
mov r8, rax
mov edx, 0x400
mov rcx, rdi
call fcn.1401ae530
nop
lea rcx, [rbp + 0x70]
call fcn.14014c8d0
nop
lea rcx, [rbp - 0x70]
call fcn.14014c8d0
mov rdi, qword [rsp + 0x48]
mov rdx, qword [r14 + 8]
test rdx, rdx
je 0x1401e601e
mov eax, dword [rdx + 8]
test eax, eax
je 0x1401e601e
nop word [rax + rax]
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x1401e5f94
test eax, eax
je 0x1401e601e
jmp 0x1401e5f80
mov rcx, qword [r14]
mov rdx, qword [r14 + 8]
lea rax, [0x1401e8700]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], 0
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rbp + 0x70], xmm1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
lea rax, [0x140581038]
mov qword [rbp + 0x30], rax
movups xmmword [rbp + 0x38], xmm1
movzx eax, byte [rbp + 0x80]
mov byte [rbp + 0x48], al
mov qword [rbp + 0x50], rcx
mov qword [rbp + 0x58], rdx
movdqu xmmword [rbp + 0x88], xmm0
lea rax, [rbp + 0x30]
mov qword [rbp + 0x68], rax
cmp qword [rdi + 0x18], 0x10
jb 0x1401e5ffc
mov rdi, qword [rdi]
lea r9, [rbp + 0x30]
mov r8, qword [r14 + 0x4eb8]
mov rdx, rdi
mov rcx, r14
call fcn.1401da0b0
nop
jmp 0x1401e58ff
call fcn.1401329a0
int3
call fcn.14016da90
int3
call fcn.140470888
int3