Function at 0x1400547c0
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 - 0xc0]
sub rsp, 0x1c0
mov rbx, rdx
mov r12, rcx
mov qword [rsp + 0x60], rcx
xor r13d, r13d
lea r8, str.connection_write_http_response
mov edx, 0x400
mov rcx, qword [rcx + 0x5078]
call fcn.14002ad00
mov edi, 4
mov rax, qword gs:[0x58]
add rdi, qword [rax]
lea rsi, [0x140119eb0]
lea r15, vtable.websocketpp::error::category.0
mov eax, dword [rdi]
cmp dword [0x140119ef8], eax
jle 0x140054871
lea rcx, [0x140119ef8]
call fcn.1400a0e50
cmp dword [0x140119ef8], 0xffffffff
jne 0x140054871
mov qword [0x140119eb8], rsi
mov qword [0x140119eb0], r15
lea rcx, [0x1400db3b0]
call fcn.1400a12a4
lea rcx, [0x140119ef8]
call fcn.1400a0df0
mov rcx, qword [rbx + 8]
mov rax, qword [0x140119eb8]
cmp qword [rcx + 8], rax
jne 0x1400548c1
cmp dword [rbx], 0x15
jne 0x1400548c1
lea r8, str.An_HTTP_handler_took_over_the_connection.
mov edx, 0x1000
mov rcx, qword [r12 + 0x5078]
call fcn.14002ad00
lea r11, [rsp + 0x1c0]
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
lea r14, [r12 + 0x4f78]
mov qword [rsp + 0x48], r14
cmp dword [r12 + 0x5020], r13d
jne 0x14005493e
mov edx, 0x1f4
mov rcx, r14
call fcn.14001d520
mov eax, dword [rdi]
cmp dword [0x140119ef8], eax
jle 0x14005492a
lea rcx, [0x140119ef8]
call fcn.1400a0e50
cmp dword [0x140119ef8], 0xffffffff
jne 0x14005492a
mov qword [0x140119eb8], rsi
mov qword [0x140119eb0], r15
lea rcx, [0x1400db3b0]
call fcn.1400a12a4
lea rcx, [0x140119ef8]
call fcn.1400a0df0
mov dword [rsp + 0x50], 1
mov qword [rsp + 0x58], rsi
movups xmm0, xmmword [rsp + 0x50]
jmp 0x140054941
movups xmm0, xmmword [rbx]
movups xmmword [r12 + 0x50f0], xmm0
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], r13
mov r8d, 8
lea rdx, str.HTTP_1.1
lea rcx, [rbp - 0x30]
call fcn.140003a30
nop
lea rax, [rbp - 0x30]
cmp r14, rax
je 0x140054994
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
mov r8, qword [rbp - 0x20]
mov rcx, r14
call fcn.1400090d0
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400549cf
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400549ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055213
call fcn.1400a0cf0
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.140003a30
lea r13, [r12 + 0x4f98]
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 0x140054ae7
nop dword [rax + rax]
lea r9, [r15 + 0x20]
lea rdx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0x10
setae r8b
cmovae rdx, qword [rsp + 0x70]
mov r13, qword [rbp - 0x80]
add r13, rdx
lea r14, [rsp + 0x70]
test r8b, r8b
cmovne r14, qword [rsp + 0x70]
cmp qword [r9 + 0x18], 0x10
jb 0x140054a60
mov r12, qword [r9]
mov rsi, r12
add r12, qword [r9 + 0x10]
jmp 0x140054a6a
mov r12, qword [r9 + 0x10]
add r12, r9
mov rsi, r9
cmp rsi, r12
je 0x140054ab2
nop
cmp r14, r13
je 0x140054ac2
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140054ab7
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140054ac2
inc rsi
inc r14
cmp rsi, r12
jne 0x140054a70
cmp r14, r13
je 0x140054ac2
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x40]
jmp 0x140054acd
mov rbx, r15
mov qword [rsp + 0x40], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x140054a20
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
lea rsi, [0x140112ec0]
cmp byte [rbx + 0x19], 0
jne 0x140054b10
lea r8, [rbx + 0x20]
lea rdx, [rsp + 0x70]
call fcn.140019bd0
test al, al
jne 0x140054b10
cmp rbx, qword [r13]
lea rax, [rbx + 0x50]
jne 0x140054b13
mov rax, rsi
mov rbx, qword [rax]
mov rax, qword [rbp - 0x78]
cmp rax, 0x10
jb 0x140054b53
lea rdx, [rax + 1]
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054b4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055219
call fcn.1400a0cf0
test rbx, rbx
jne 0x140054c41
xorps xmm0, xmm0
xorps xmm1, xmm1
lea r8d, [rbx + 6]
lea rdx, str.Server
lea rcx, [rbp - 0x50]
movups xmmword [rbp - 0x50], xmm0
movdqu xmmword [rbp - 0x40], xmm1
cmp qword [r12 + 0xa40], rbx
je 0x140054bf5
call fcn.140003a30
nop
lea rbx, [r12 + 0xa30]
lea rdx, [rbp - 0x50]
mov rcx, r13
call fcn.1400279b0
cmp rax, rbx
je 0x140054bbd
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x140054bb1
mov rbx, qword [rbx]
mov rdx, rbx
mov rcx, rax
call fcn.1400090d0
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x140054c41
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054c3c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055201
jmp 0x140054c3c
call fcn.140003a30
lea rdx, [rbp - 0x50]
mov rcx, r14
call fcn.14001b540
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x140054c41
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054c3c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005521f
call fcn.1400a0cf0
mov rcx, qword [r12 + 0x4e38]
lea rbx, [r12 + 0x4e18]
mov qword [rsp + 0x40], rbx
lea rdx, [rbp - 0x10]
test rcx, rcx
je 0x140054d25
mov rax, qword [rcx]
mov r8, r14
call qword [rax + 0x48]
mov rdi, rax
cmp rbx, rax
je 0x140054ce2
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140054cae
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140054ca9
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140055207
mov rcx, r8
call fcn.1400a0cf0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
movups xmm0, xmmword [rdi]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x10], xmm1
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], 0
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x140054dde
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054dd9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055207
jmp 0x140054dd9
mov rcx, r14
call fcn.14001d380
mov rdi, rax
cmp rbx, rax
je 0x140054da3
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140054d6f
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x140054d6a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140055225
mov rcx, r8
call fcn.1400a0cf0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rbx], 0
movups xmm0, xmmword [rdi]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbx + 0x10], xmm1
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], 0
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x140054dde
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054dd9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055225
call fcn.1400a0cf0
mov rdi, qword [r12 + 0x5078]
mov eax, dword [rdi + 0x50]
shr eax, 0xa
test al, 1
je 0x140055146
mov rcx, qword [rbx + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0x18
jb 0x14005522b
mov rax, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x140054e1c
mov rax, qword [rbx]
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.140038140
nop
lea r8, [rbp + 0x98]
mov edx, 0x400
mov rcx, rdi
call fcn.14002ed40
nop
mov rdx, qword [rbp + 0xb0]
cmp rdx, 0x10
jb 0x140054e99
inc rdx
mov rcx, qword [rbp + 0x98]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054e94
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055231
call fcn.1400a0cf0
xorps xmm0, xmm0
movups xmmword [rbp + 0x18], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x28], xmm1
mov r8d, reloc.WS2_32.dll_select
lea rdx, str.Sec_WebSocket_Key3
lea rcx, [rbp + 0x18]
call fcn.140003a30
mov rdi, qword [r13]
mov rbx, qword [rdi + 8]
cmp byte [rbx + 0x19], 0
jne 0x140054ef3
nop dword [rax]
lea rdx, [rbx + 0x20]
lea r8, [rbp + 0x18]
call fcn.140019bd0
test al, al
je 0x140054ee7
mov rbx, qword [rbx + 0x10]
jmp 0x140054eed
mov rdi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x140054ed0
cmp byte [rdi + 0x19], 0
jne 0x140054f14
lea r8, [rdi + 0x20]
lea rdx, [rbp + 0x18]
call fcn.140019bd0
test al, al
jne 0x140054f14
cmp rdi, qword [r13]
je 0x140054f14
lea rsi, [rdi + 0x50]
mov rbx, qword [rsi]
mov rdx, qword [rbp + 0x30]
cmp rdx, 0x10
jb 0x140054f52
inc rdx
mov rcx, qword [rbp + 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140054f4d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140055237
call fcn.1400a0cf0
test rbx, rbx
je 0x140055141
mov rdi, qword [r12 + 0x5078]
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.140003a30
nop
mov rbx, qword [r13]
mov qword [rsp + 0x48], rbx
mov r15, qword [rbx + 8]
cmp byte [r15 + 0x19], 0
jne 0x140055077
nop word [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 0x140054fec
mov r12, qword [r9]
mov rsi, r12
add r12, qword [r9 + 0x10]
jmp 0x140054ff6
mov r12, qword [r9 + 0x10]
add r12, r9
mov rsi, r9
cmp rsi, r12
je 0x140055042
nop dword [rax + rax]
cmp r14, r13
je 0x140055052
movzx edi, byte [r14]
movzx ecx, byte [rsi]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140055047
movzx edi, byte [rsi]
movzx ecx, byte [r14]
call fcn.1400b06dc
mov ebx, eax
mov ecx, edi
call fcn.1400b06dc
cmp ebx, eax
jl 0x140055052
inc rsi
inc r14
cmp rsi, r12
jne 0x140055000
cmp r14, r13
je 0x140055052
mov r15, qword [r15 + 0x10]
mov rbx, qword [rsp + 0x48]
jmp 0x14005505d
mov rbx, r15
mov qword [rsp + 0x48], rbx
mov r15, qword [r15]
cmp byte [r15 + 0x19], 0
je 0x140054fb0
mov rdi, qword [rsp + 0x50]
mov r12, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
cmp byte [rbx + 0x19], 0
jne 0x140055098
lea r8, [rbx + 0x20]
lea rdx, [rbp - 0x70]
call fcn.140019bd0
test al, al
jne 0x140055098
cmp rbx, qword [r13]
lea rdx, [rbx + 0x40]
jne 0x14005509f
lea rdx, [0x140112eb0]
lea rcx, [rbp + 0x38]
call fcn.140019c90
nop
mov r8, rax
mov edx, 0x400
mov rcx, rdi
call fcn.14002ed40
nop
mov rdx, qword [rbp + 0x50]
cmp rdx, 0x10
jb 0x1400550f5
inc rdx
mov rcx, qword [rbp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400550f0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005523d
call fcn.1400a0cf0
movdqa xmm0, xmmword [0x1400f86d0]
movdqu xmmword [rbp + 0x48], xmm0
mov byte [rbp + 0x38], 0
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x140055141
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005513c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400551fb
call fcn.1400a0cf0
mov rbx, qword [rsp + 0x40]
mov rdx, qword [r12 + 8]
test rdx, rdx
je 0x14005520d
mov eax, dword [rdx + 8]
test eax, eax
je 0x14005520d
nop
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x140055174
test eax, eax
je 0x14005520d
jmp 0x140055160
mov rcx, qword [r12]
mov rdx, qword [r12 + 8]
lea rax, [0x140056e60]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], 0
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rbp - 0x10], xmm1
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
lea rax, [0x1400f7d78]
mov qword [rbp + 0x58], rax
movups xmmword [rbp + 0x60], xmm1
movzx eax, byte [rbp]
mov byte [rbp + 0x70], al
mov qword [rbp + 0x78], rcx
mov qword [rbp + 0x80], rdx
movdqu xmmword [rbp + 8], xmm0
lea rax, [rbp + 0x58]
mov qword [rbp + 0x90], rax
cmp qword [rbx + 0x18], 0x10
jb 0x1400551de
mov rbx, qword [rbx]
lea r9, [rbp + 0x58]
mov r8, qword [r12 + 0x4e28]
mov rdx, rbx
mov rcx, r12
call fcn.14004afd0
nop
jmp 0x1400548a0
call fcn.1400af8e4
int3
call fcn.1400af8e4
int3
call fcn.1400af8e4
int3
call fcn.140017f00
int3
call fcn.1400af8e4
int3
call fcn.1400af8e4
int3
call fcn.1400af8e4
int3
call fcn.1400af8e4
int3
call fcn.140001fe0
int3
call fcn.1400af8e4
int3
call fcn.1400af8e4
nop
call fcn.1400af8e4
int3