Function at 0x140012cf0
Capabilities:
Encode data using base64
Receive data
Receive data on socket
Send data
Send data on socket
Send http request

Disassembly:
push r15
mov eax, 0x42c8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.140311140
sub rsp, rax
vmovups xmmword [rsp + 0x4260], xmm6
vmovups xmmword [rsp + 0x4270], xmm7
vmovups xmmword [rsp + 0x4280], xmm8
vmovups xmmword [rsp + 0x4290], xmm9
vmovups xmmword [rsp + 0x42a0], xmm10
vmovups xmmword [rsp + 0x42b0], xmm11
mov rax, qword [0x140386c10]
mov r14, qword [rax]
mov rax, qword [0x140386c20]
mov r12d, dword [rax]
test r12d, r12d
jne 0x140012d68
mov rax, qword [0x140386c80]
cmp byte [rax], 0
jne 0x1400137dc
test r14, r14
je 0x140012ef9
mov rcx, r14
call sym.strlen
mov ecx, 1
lea rdx, [rax + 1]
call sym.calloc
mov rdx, r14
mov rbp, rax
test rax, rax
je 0x140013e6e
mov rcx, rbp
call sym.strcpy
movsx esi, byte [rbp]
test sil, sil
je 0x140013c4e
mov edx, esi
mov ecx, 1
nop word cs:[rax + rax]
nop dword [rax]
inc rax
cmp dl, 0x2c
sete dl
movzx edx, dl
add ecx, edx
movzx edx, byte [rax]
test dl, dl
jne 0x140012dc0
movsxd rcx, ecx
mov edx, 0xc
call sym.calloc
mov qword [0x14039cda8], rax
test rax, rax
je 0x140013e5b
xor edi, edi
mov rbx, rbp
mov qword [rsp + 0x48], rbp
mov dword [0x1403220d0], 0
mov ebp, edi
test sil, sil
je 0x140012ee7
nop word cs:[rax + rax]
nop dword [rax]
cmp sil, 9
je 0x140012e30
cmp sil, 0x20
jne 0x140012e43
nop dword [rax]
movsx esi, byte [rbx + 1]
inc rbx
cmp sil, 0x20
je 0x140012e30
cmp sil, 9
je 0x140012e30
lea rdi, [rbx + 1]
cmp sil, 0x2c
je 0x140012ed8
mov edx, 0x2c
mov rcx, rbx
xor edi, edi
call sym.strchr
test rax, rax
je 0x140012e6f
mov byte [rax], 0
movsx esi, byte [rbx]
lea rdi, [rax + 1]
mov ecx, 0x52
mov r15, qword [sym.imp.msvcrt.dll_toupper]
call r15
mov ecx, esi
mov r13d, eax
call qword [sym.imp.msvcrt.dll_isalpha]
test eax, eax
je 0x140012e97
cmp byte [rbx + 1], 0x3a
je 0x1400133c0
movsxd rax, ebp
mov rcx, rbx
lea rdx, [rax + rax*2]
mov rax, qword [0x14039cda8]
lea rsi, [rax + rdx*4]
lea rdx, str.0.0.0.0
mov byte [rsi + 8], r13b
call sym.strcmp
test eax, eax
jne 0x1400132b0
mov qword [rsi], 0
inc ebp
mov dword [0x1403220d0], ebp
test rdi, rdi
je 0x140012ee7
movsx esi, byte [rdi]
mov rbx, rdi
test sil, sil
jne 0x140012e20
mov rcx, qword [rsp + 0x48]
call sym.free
test ebp, ebp
je 0x1400137bf
mov edx, 8
mov ecx, 1
call sym.calloc
mov ecx, 0x3e8
mov r15, qword [sym.imp.KERNEL32.dll_Sleep]
vmovq xmm6, rax
call r15
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov rsi, rax
vmovq rax, xmm6
mov qword [rax], rsi
cmp rsi, 0xffffffffffffffff
je 0x14001395a
mov qword [rsp + 0x62], 0
mov word [rsp + 0x60], 2
mov qword [rsp + 0x68], 0
mov rcx, r14
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x64], eax
cmp eax, 0xffffffff
je 0x1400139cc
movzx eax, r12w
vmovd xmm7, eax
mov ecx, eax
call qword [sym.imp.WS2_32.dll_htons]
mov rdi, qword [sym.imp.msvcrt.dll__time64]
mov word [rsp + 0x62], ax
xor ecx, ecx
call rdi
mov rbx, qword [sym.imp.WS2_32.dll_bind]
mov r12, rax
lea rax, [rsp + 0x60]
mov r13, qword [sym.imp.msvcrt.dll__errno]
vmovq xmm8, rax
mov rax, r15
mov r14, qword [0x140386d20]
mov r15, rdi
mov rdi, rax
jmp 0x14001300e
call r13
mov ecx, dword [rax]
call sym.strerror
xor ecx, ecx
mov rbp, rax
call r15
sub rax, r12
cmp rax, 0x3d
jg 0x1400138e2
cmp byte [r14], 0
je 0x140012ff1
mov rax, qword [0x140386c80]
cmp byte [rax], 0
je 0x140013007
vmovd r8d, xmm7
lea rdx, str.API_bind_to_port__d_failed___trying_again_in_20sec
mov ecx, 2
call sym.applog
mov ecx, 0x4e20
call rdi
mov r8d, 0x10
vmovq rdx, xmm8
mov rcx, rsi
call rbx
test eax, eax
js 0x140012fc0
mov edx, 0xa
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x140013a51
mov edx, 0x4001
mov ecx, 1
call sym.calloc
mov r12, qword [sym.imp.WS2_32.dll_accept]
mov r13, qword [sym.imp.WS2_32.dll_inet_ntoa]
mov qword [0x14039cda0], rax
mov rdi, qword [0x140386c80]
mov eax, dword [0x14039cd90]
test eax, eax
jne 0x140013339
mov dword [rsp + 0x50], 0x10
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0x50]
mov rcx, rsi
call r12
mov rbx, rax
cmp eax, 0xffffffff
je 0x1400139f9
mov ecx, dword [rsp + 0x74]
call r13
mov rbp, rax
mov rax, qword [0x140386c10]
cmp qword [rax], 0
je 0x140013250
mov ecx, dword [rsp + 0x74]
call qword [sym.imp.WS2_32.dll_htonl]
movsxd rcx, dword [0x1403220d0]
test ecx, ecx
jle 0x1400132f0
mov rdx, qword [0x14039cda8]
lea rcx, [rcx + rcx*2]
lea r9, [rdx + rcx*4]
jmp 0x1400130ed
add rdx, 0xc
cmp rdx, r9
je 0x1400132f0
mov ecx, dword [rdx + 4]
and ecx, eax
cmp ecx, dword [rdx]
jne 0x1400130e0
mov r15, qword [0x140386c80]
cmp byte [r15], 0
je 0x140013113
mov rax, qword [0x140386cf0]
cmp byte [rax], 0
jne 0x140013283
movsxd rbx, ebx
lea rbp, [rsp + 0x260]
xor r9d, r9d
mov r8d, 0x400
mov rdx, rbp
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_recv]
mov edi, eax
cmp eax, 0xffffffff
je 0x14001376f
test eax, eax
jle 0x14001377c
lea eax, [rax - 1]
movsxd rdx, eax
cmp byte [rsp + rdx + 0x260], 0xa
je 0x140013a26
movsxd rax, edi
mov byte [rsp + rax + 0x260], 0
lea rdx, str.GET__
mov rcx, rbp
call sym.strstr
mov r14, rax
test rax, rax
je 0x140013191
mov rcx, rax
call sym.strlen
cmp rax, 5
ja 0x140013836
xor r14d, r14d
mov edx, 0x7c
mov rcx, rbp
call sym.strchr
vpxor xmm7, xmm7, xmm7
test rax, rax
je 0x1400131b3
lea rcx, [rax + 1]
mov byte [rax], 0
vmovq xmm7, rcx
cmp byte [r15], 0
jne 0x140013789
mov rdx, qword [str.summary]
mov rcx, rbp
call sym.strcmp
movsxd rdi, eax
test edi, edi
je 0x140013a8c
mov rdx, qword [str.threads]
mov rcx, rbp
call sym.strcmp
test eax, eax
je 0x140013a87
mov rdx, qword [str.seturl]
mov rcx, rbp
call sym.strcmp
test eax, eax
je 0x140013f27
mov rdx, qword [str.quit]
mov rcx, rbp
call sym.strcmp
test eax, eax
je 0x140013f31
mov rdx, qword [str.help]
mov rcx, rbp
mov edi, 4
call sym.strcmp
test eax, eax
je 0x140013a8c
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x14001305d
lea rdx, str.127.0.0.1
mov rcx, rbp
mov r15, rdi
call sym.strcmp
cmp byte [rdi], 0
je 0x1400133b0
mov rdx, qword [0x140386cf0]
cmp byte [rdx], 0
je 0x1400133b0
test eax, eax
jne 0x140013310
lea r9, str.Accepted
mov r8, rbp
lea rdx, str.API:_connection_from__s____s
mov ecx, 5
call sym.applog
jmp 0x140013113
mov edx, 0x2f
mov rcx, rbx
call sym.strchr
test rax, rax
je 0x140013760
mov byte [rax], 0
lea rcx, [rax + 1]
call sym.atoi
lea r8d, [rax - 1]
cmp r8d, 0x1f
jbe 0x140013400
mov ebp, dword [0x1403220d0]
jmp 0x140012ed3
mov rax, qword [0x140386c80]
cmp byte [rax], 0
je 0x140013064
mov rax, qword [0x140386cf0]
cmp byte [rax], 0
je 0x140013064
lea r9, str.Ignored
mov r8, rbp
lea rdx, str.API:_connection_from__s____s
mov ecx, 5
call sym.applog
mov eax, dword [0x14039cd90]
test eax, eax
je 0x140013072
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
vmovq rcx, xmm6
call sym.free
mov rcx, qword [0x14039cda0]
call sym.free
nop
vmovups xmm6, xmmword [rsp + 0x4260]
vmovups xmm7, xmmword [rsp + 0x4270]
vmovups xmm8, xmmword [rsp + 0x4280]
vmovups xmm9, xmmword [rsp + 0x4290]
vmovups xmm10, xmmword [rsp + 0x42a0]
vmovups xmm11, xmmword [rsp + 0x42b0]
add rsp, 0x42c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test eax, eax
jne 0x140013064
jmp 0x140013113
mov ecx, esi
call r15
mov ecx, 0x57
mov esi, eax
call r15
cmp esi, eax
je 0x1400133f1
mov ecx, 0x41
call r15
mov edx, eax
mov eax, esi
sub eax, edx
lea rdx, [0x14039ccc0]
cdqe
cmp qword [rdx + rax*8], 0
je 0x1400133f4
mov r13d, esi
add rbx, 2
jmp 0x140012e97
movsxd rdx, dword [0x1403220d0]
lea r9d, [rax + 1]
lea rcx, [rdx + rdx*2]
mov rdx, qword [0x14039cda8]
lea r11, [rdx + rcx*4]
mov ecx, r8d
cmp eax, 0xe
jbe 0x140013c40
vpbroadcastd zmm4, eax
vpaddd zmm1, zmm4, zmmword [0x140329780]
mov edx, 7
vpbroadcastd zmm5, edx
mov edx, 1
vpbroadcastd zmm2, edx
mov edx, 3
vpbroadcastd zmm3, edx
mov edx, r9d
shr edx, 4
vpandd zmm0, zmm1, zmm5
vpsrad zmm1, zmm1, 3
vpsubd zmm1, zmm3, zmm1
vpsllvd zmm0, zmm2, zmm0
vpslld zmm1, zmm1, 3
vpsllvd zmm0, zmm0, zmm1
cmp edx, 2
jne 0x1400134be
vpaddd zmm4, zmm4, zmmword [0x1403297c0]
vpandd zmm5, zmm4, zmm5
vpsrad zmm4, zmm4, 3
vpsllvd zmm1, zmm2, zmm5
vpsubd zmm2, zmm3, zmm4
vpslld zmm2, zmm2, 3
vpsllvd zmm1, zmm1, zmm2
vpord zmm0, zmm0, zmm1
vextracti32x8 ymm3, zmm0, 1
mov r10d, r9d
mov ecx, r8d
vpor ymm3, ymm3, ymm0
and r10d, 0xfffffff0
vextracti128 xmm0, ymm3, 1
sub ecx, r10d
and r9d, 0xf
vpor xmm0, xmm0, xmm3
vpsrldq xmm1, xmm0, 8
vpor xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpor xmm0, xmm0, xmm1
vmovd edx, xmm0
je 0x1400136d4
sub eax, r10d
lea r8d, [rax + 1]
cmp eax, 6
jbe 0x140013591
vpbroadcastd ymm1, ecx
vpaddd ymm1, ymm1, ymmword [0x140329800]
mov eax, 7
vpbroadcastd ymm2, eax
mov eax, 1
vpbroadcastd ymm0, eax
mov eax, 3
vpand ymm2, ymm1, ymm2
vpsllvd ymm0, ymm0, ymm2
vpsrad ymm2, ymm1, 3
vpbroadcastd ymm1, eax
mov eax, r8d
vpsubd ymm1, ymm1, ymm2
and eax, 0xfffffff8
vpslld ymm1, ymm1, 3
vpsllvd ymm0, ymm0, ymm1
vpor ymm0, ymm0, ymm3
sub ecx, eax
vextracti128 xmm1, ymm0, 1
and r8d, 7
vpor xmm0, xmm1, xmm0
vpsrldq xmm1, xmm0, 8
vpor xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpor xmm0, xmm0, xmm1
vmovd edx, xmm0
je 0x1400136d4
mov r8d, ecx
mov eax, 1
mov esi, ecx
and r8d, 7
sar esi, 3
shlx r9d, eax, r8d
mov r8d, 3
mov r10d, r8d
sub r10d, esi
shl r10d, 3
shlx r9d, r9d, r10d
lea r10d, [rcx - 1]
or edx, r9d
cmp ecx, 0xffffffff
je 0x1400136d4
mov r13d, r10d
mov r9d, r10d
mov esi, r8d
sar r13d, 3
and r9d, 7
sub esi, r13d
shlx r9d, eax, r9d
shl esi, 3
shlx r9d, r9d, esi
lea esi, [rcx - 2]
or edx, r9d
cmp r10d, 0xffffffff
je 0x1400136d4
mov r13d, esi
mov r9d, esi
mov r10d, r8d
sar r13d, 3
and r9d, 7
sub r10d, r13d
shlx r9d, eax, r9d
shl r10d, 3
shlx r9d, r9d, r10d
lea r10d, [rcx - 3]
or edx, r9d
cmp esi, 0xffffffff
je 0x1400136d4
mov r13d, r10d
mov r9d, r10d
mov esi, r8d
sar r13d, 3
and r9d, 7
sub esi, r13d
shlx r9d, eax, r9d
shl esi, 3
shlx r9d, r9d, esi
lea esi, [rcx - 4]
or edx, r9d
cmp r10d, 0xffffffff
je 0x1400136d4
mov r13d, esi
mov r9d, esi
mov r10d, r8d
sar r13d, 3
and r9d, 7
sub r10d, r13d
shlx r9d, eax, r9d
shl r10d, 3
shlx r9d, r9d, r10d
lea r10d, [rcx - 5]
or edx, r9d
cmp esi, 0xffffffff
je 0x1400136d4
mov r13d, r10d
mov r9d, r10d
mov esi, r8d
sub ecx, 6
sar r13d, 3
and r9d, 7
sub esi, r13d
shlx r9d, eax, r9d
shl esi, 3
shlx r9d, r9d, esi
or edx, r9d
cmp r10d, 0xffffffff
je 0x1400136d4
mov r9d, ecx
sar ecx, 3
and r9d, 7
sub r8d, ecx
shlx eax, eax, r9d
shl r8d, 3
shlx eax, eax, r8d
or edx, eax
mov dword [r11 + 4], edx
mov dword [r11], 0
vzeroupper
mov esi, 0x18
xor r13d, r13d
jmp 0x1400136f9
cmp r13d, 3
jg 0x140013755
mov rbx, r15
mov edx, 0x2e
mov rcx, rbx
xor r15d, r15d
call sym.strchr
test rax, rax
je 0x140013715
lea r15, [rax + 1]
mov byte [rax], 0
mov rcx, rbx
call sym.atoi
cmp eax, 0xff
ja 0x1400132e0
movsxd rdx, dword [0x1403220d0]
shlx eax, eax, esi
inc r13d
sub esi, 8
lea rcx, [rdx + rdx*2]
mov rbp, rdx
mov rdx, qword [0x14039cda8]
lea rdx, [rdx + rcx*4]
or eax, dword [rdx]
mov dword [rdx], eax
test r15, r15
jne 0x1400136f0
and eax, dword [rdx + 4]
mov dword [rdx], eax
jmp 0x140012ecb
mov rax, qword [0x140329800]
mov qword [rsi], rax
jmp 0x1400136e2
mov byte [rsp + 0x260], 0
jmp 0x14001305d
jne 0x140013165
xor edi, edi
jmp 0x14001315a
mov rax, qword [0x140386cf0]
cmp byte [rax], 0
je 0x1400131bd
test edi, edi
jle 0x1400131bd
vmovq r9, xmm7
mov r8, rbp
lea rdx, str.API:_exec_command__s__s_
mov ecx, 5
call sym.applog
jmp 0x1400131bd
lea r8, str.___API_will_not_be_available
lea rdx, str.API_not_running__no_valid_IPs_specified__s
mov ecx, 2
call sym.applog
jmp 0x140012ef9
vmovups xmm6, xmmword [rsp + 0x4260]
vmovups xmm7, xmmword [rsp + 0x4270]
lea rdx, str.API_disabled
mov ecx, 5
vmovups xmm8, xmmword [rsp + 0x4280]
vmovups xmm9, xmmword [rsp + 0x4290]
vmovups xmm10, xmmword [rsp + 0x42a0]
vmovups xmm11, xmmword [rsp + 0x42b0]
add rsp, 0x42c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.applog
vpxor xmm0, xmm0, xmm0
lea rdi, [rsp + 0x160]
lea rcx, [r14 + 5]
lea rdx, [0x140329380]
vmovdqu64 zmmword [rsp + 0x160], zmm0
vmovdqu64 zmmword [rsp + 0x1a0], zmm0
vmovdqu64 zmmword [rsp + 0x1e0], zmm0
mov r8, rdi
vmovdqu64 zmmword [rsp + 0x220], zmm0
vzeroupper
call sym.sscanf.constprop.0
mov edx, 0x2f
mov rcx, rdi
call sym.strchr
test rax, rax
je 0x1400138ae
mov byte [rax], 0x7c
mov edx, 0x2f
mov rcx, rdi
call sym.strchr
test rax, rax
je 0x1400138ae
mov byte [rax], 0
mov rcx, r14
lea rdx, str.Sec_WebSocket_Key
call sym.strstr
mov r14, rax
test rax, rax
jne 0x140013c58
mov r8, rdi
lea rdx, [0x14032938b]
mov rcx, rbp
call sym.sprintf_2
mov edi, eax
jmp 0x140013191
lea rax, str.___API_will_not_be_available
mov r9, rbp
vmovd r8d, xmm7
lea rdx, str.API_bind_to_port__d_failed___s__s
mov qword [rsp + 0x20], rax
mov ecx, 2
call sym.applog
vmovq rcx, xmm6
vmovups xmm7, xmmword [rsp + 0x4270]
vmovups xmm6, xmmword [rsp + 0x4260]
vmovups xmm8, xmmword [rsp + 0x4280]
vmovups xmm9, xmmword [rsp + 0x4290]
vmovups xmm10, xmmword [rsp + 0x42a0]
vmovups xmm11, xmmword [rsp + 0x42b0]
add rsp, 0x42c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.free
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sym.strerror
nop
vmovups xmm6, xmmword [rsp + 0x4260]
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_failed___s__s
vmovups xmm7, xmmword [rsp + 0x4270]
vmovups xmm8, xmmword [rsp + 0x4280]
mov r8, rax
mov ecx, 1
vmovups xmm9, xmmword [rsp + 0x4290]
vmovups xmm10, xmmword [rsp + 0x42a0]
vmovups xmm11, xmmword [rsp + 0x42b0]
add rsp, 0x42c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.applog
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sym.strerror
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_2_failed___s__s
mov ecx, 1
mov r8, rax
call sym.applog
jmp 0x140013359
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sym.strerror
lea r9, str.___API_will_not_be_available
lea rdx, str.API_failed___s__s
mov ecx, 1
mov r8, rax
call sym.applog
jmp 0x140013339
mov byte [rsp + rdx + 0x260], 0
test eax, eax
je 0x140013782
sub edi, 2
movsxd rdi, edi
cmp byte [rsp + rdi + 0x260], 0xd
je 0x140013cb2
mov edi, eax
jmp 0x14001315a
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sym.strerror
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_3_failed___s__s
mov ecx, 1
mov r8, rax
call sym.applog
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x140013907
mov edi, 1
vmovq rax, xmm7
test rax, rax
je 0x140013ab7
cmp byte [rax], 0
je 0x140013ab7
vmovq rcx, xmm7
call sym.strlen
vmovq rcx, xmm7
lea rax, [rcx + rax - 1]
cmp byte [rax], 0x7c
jne 0x140013ab7
mov byte [rax], 0
shl rdi, 4
lea rax, str.summary
vmovq rcx, xmm7
call qword [rax + rdi + 8]
vmovq xmm8, rax
test r14, r14
je 0x140013f00
mov rax, qword [0x140386cf0]
vpxor xmm0, xmm0, xmm0
vmovdqu64 zmmword [rsp + 0xe0], zmm0
vmovdqu64 zmmword [rsp + 0x120], zmm0
cmp byte [rax], 0
jne 0x140013c96
vzeroupper
lea rbp, [rsp + 0xe0]
mov r8, r14
lea rdx, str._s258EAFA5_E914_47DA_95CA_C5AB0DC85B11
lea rdi, [rsp + 0x80]
mov rcx, rbp
call sym.sprintf_2
mov rcx, rbp
call sym.strlen
mov rdx, rbp
mov rcx, rdi
mov r8, rax
call sym.sph_sha1_full
vpxor xmm0, xmm0, xmm0
lea rax, [rsp + 0xa0]
mov edx, 0x1e
vmovdqu8 zmmword [rsp + 0xa0], zmm0
mov ecx, 1
vmovq xmm9, rax
vzeroupper
call sym.calloc
test rax, rax
je 0x140013d4d
vmovq xmm11, rbx
mov ebp, 0x14
xor r15d, r15d
lea r14, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea r8, str._c_c_c_c
vmovq xmm10, rsi
mov rbx, rax
movzx edx, byte [rdi + 1]
movzx eax, byte [rdi]
lea r11, [rbx + r15]
mov r9d, edx
shl edx, 2
mov ecx, edx
shr r9b, 4
and ecx, 0x3c
cmp ebp, 2
je 0x140013cc1
movzx edx, byte [rdi + 2]
mov r10d, eax
shl eax, 4
sub ebp, 3
and eax, 0x30
shr r10b, 2
add rdi, 3
add r15, 4
or eax, r9d
and r10d, 0x3f
and eax, 0x3f
movsx r9d, byte [r14 + r10]
mov rsi, rdx
shr dl, 6
movsx eax, byte [r14 + rax]
or edx, ecx
and esi, 0x3f
mov rcx, r11
and edx, 0x3f
movsx esi, byte [r14 + rsi]
movsx edx, byte [r14 + rdx]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], edx
mov edx, 5
call sym.snprintf.constprop.0
test ebp, ebp
lea r8, str._c_c_c_c
jne 0x140013b98
vmovq xmm7, rbx
vmovq rsi, xmm10
vmovq rbx, xmm11
jmp 0x140013d16
vpxor xmm3, xmm3, xmm3
xor r10d, r10d
xor edx, edx
jmp 0x140013500
mov ecx, 1
jmp 0x140012dd8
mov edx, 0xd
mov rcx, rax
call sym.strchr
test rax, rax
je 0x140013c6d
mov byte [rax], 0
mov rcx, r14
mov edx, 0x3a
call sym.strchr
cmp byte [rax + 1], 0x20
lea r14, [rax + 1]
jne 0x1400138c9
inc r14
cmp byte [r14], 0x20
je 0x140013c88
jmp 0x1400138c9
mov r8, r14
lea rdx, str.clientkey:__s
mov ecx, 5
vzeroupper
call sym.applog
jmp 0x140013b06
mov byte [rsp + rdi + 0x260], 0
mov edi, eax
jmp 0x14001315a
mov edx, eax
shl eax, 4
movzx ecx, cl
lea r8, str._c_c_c
and eax, 0x30
shr dl, 2
movsx ecx, byte [r14 + rcx]
vmovq xmm7, rbx
or eax, r9d
and edx, 0x3f
vmovq rsi, xmm10
vmovq rbx, xmm11
and eax, 0x3f
movsx r9d, byte [r14 + rdx]
mov edx, 5
add r15, 4
movsx eax, byte [r14 + rax]
mov dword [rsp + 0x28], ecx
mov rcx, r11
mov dword [rsp + 0x20], eax
call sym.snprintf.constprop.0
vmovq rcx, xmm9
vmovq r9, xmm7
lea r8, [0x14032938b]
mov rdx, r15
call sym.snprintf_2
vmovq rcx, xmm9
call sym.strlen
cmp rax, 0x1b
je 0x140013f3b
vmovq rcx, xmm7
call sym.free
lea rdi, [rsp + 0x160]
vmovq r8, xmm9
lea rdx, str.HTTP_1.1_101_Switching_Protocol_r_nUpgrade:_WebSocket_r_nConnection:_Upgrade_r_nSec_WebSocket_Accept:__s_r_nSec_WebSocket_Protocol:_text_r_n_r_n
mov rcx, rdi
call sym.sprintf_2
mov qword [rsp + 0x56], 0
mov word [rsp + 0x5e], 0
mov byte [rsp + 0x56], 0x81
vmovq rcx, xmm8
call sym.strlen
mov rbp, rax
lea r15, [rax + 1]
cmp rax, 0x7d
ja 0x140013ed8
mov byte [rsp + 0x57], al
mov eax, 2
mov r14d, 2
vmovd xmm9, eax
mov rcx, rdi
call sym.strlen
mov ecx, 1
lea rdx, [rax + r14]
vmovq xmm7, rax
add rdx, r15
call sym.calloc
mov r15, rax
test rax, rax
je 0x140013238
mov rdx, rdi
mov rcx, rax
vmovq r8, xmm7
call sym.memcpy
lea rdx, [rsp + 0x56]
vmovq rax, xmm7
lea rcx, [r15 + rax]
mov eax, r14d
cmp r14d, 8
jae 0x140013e87
test r14b, 4
jne 0x140013f88
test eax, eax
je 0x140013e20
movzx r8d, byte [rsp + 0x56]
mov byte [rcx], r8b
test al, 2
jne 0x140013f9d
vmovq rdx, xmm8
add rcx, r14
mov r8, rbp
call sym.memcpy
mov rcx, rbx
xor r9d, r9d
mov rdx, r15
vmovd eax, xmm9
vmovd edi, xmm7
add eax, edi
lea r8d, [rax + rbp + 1]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, r15
call sym.free
jmp 0x140013238
mov ecx, 1
call sym.proper_exit
movsx esi, byte [rbp]
jmp 0x140012df2
mov ecx, 1
call sym.proper_exit
mov rax, qword [0x140386c10]
mov rdx, qword [rax]
jmp 0x140012d96
mov rax, qword [rsp + 0x56]
lea r10, [rcx + 8]
and r10, 0xfffffffffffffff8
mov qword [rcx], rax
mov rax, qword [rdx + r14 - 8]
mov qword [rcx + r14 - 8], rax
mov rax, rcx
sub rax, r10
sub rdx, rax
add eax, r14d
and eax, 0xfffffff8
cmp eax, 8
jb 0x140013e20
and eax, 0xfffffff8
xor r8d, r8d
mov r9d, r8d
add r8d, 8
mov r11, qword [rdx + r9]
mov qword [r10 + r9], r11
cmp r8d, eax
jb 0x140013ebf
jmp 0x140013e20
cmp rax, 0xffff
ja 0x140013f4a
movbe word [rsp + 0x58], ax
mov eax, 4
mov byte [rsp + 0x57], 0x7e
mov r14d, 4
vmovd xmm9, eax
jmp 0x140013dac
test rax, rax
je 0x140013f6a
mov rcx, rax
call sym.strlen
xor r9d, r9d
mov rcx, rbx
lea r8d, [rax + 1]
vmovq rdx, xmm8
call qword [sym.imp.WS2_32.dll_send]
jmp 0x140013238
mov edi, 2
jmp 0x140013a8c
mov edi, 3
jmp 0x140013a8c
mov word [rsp + 0xbb], 0x3d
jmp 0x140013d43
movbe qword [rsp + 0x58], rax
mov eax, 0xa
mov byte [rsp + 0x57], 0x7f
mov r14d, 0xa
vmovd xmm9, eax
jmp 0x140013dac
xor r9d, r9d
mov r8d, 1
lea rdx, [0x1403296ad]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_send]
jmp 0x140013238
mov r8d, dword [rsp + 0x56]
mov dword [rcx], r8d
mov edx, dword [rdx + rax - 4]
mov dword [rcx + rax - 4], edx
jmp 0x140013e20
movzx edx, word [rdx + rax - 2]
mov word [rcx + rax - 2], dx
jmp 0x140013e20