Function at 0x140011fc0
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, 0x4318
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.14019b1c0
sub rsp, rax
vmovups xmmword [rsp + 0x42d0], xmm6
vmovups xmmword [rsp + 0x42e0], xmm7
vmovups xmmword [rsp + 0x42f0], xmm8
vmovups xmmword [rsp + 0x4300], xmm9
mov rax, qword [0x1401fd660]
mov rbp, qword [rax]
mov rax, qword [0x1401fd670]
mov r12d, dword [rax]
test r12d, r12d
jne 0x140012026
mov rax, qword [0x1401fd6b0]
cmp byte [rax], 0
jne 0x140012a48
test rbp, rbp
je 0x1400121b5
mov rcx, rbp
call sym.strlen
mov ecx, 1
lea rdx, [rax + 1]
call sym.calloc
mov rdx, rbp
mov r13, rax
test rax, rax
je 0x1400130c9
mov rcx, r13
call sym.strcpy
movsx ebx, byte [r13]
test bl, bl
je 0x140012eae
mov edx, ebx
mov ecx, 1
inc rax
cmp dl, 0x2c
sete dl
movzx edx, dl
add ecx, edx
movzx edx, byte [rax]
test dl, dl
jne 0x140012070
movsxd rcx, ecx
mov edx, 0xc
call sym.calloc
mov qword [0x140209968], rax
test rax, rax
je 0x1400130b5
xor r15d, r15d
mov r14, r13
mov dword [rsp + 0x48], r12d
vmovdqu xmm6, xmmword [0x1401b3c20]
mov r12d, r15d
mov dword [0x1401ac0b0], 0
mov r15, r13
mov r13, rbp
test bl, bl
je 0x140012196
cmp bl, 9
je 0x1400120e0
cmp bl, 0x20
jne 0x1400120f2
nop word [rax + rax]
movsx ebx, byte [r14 + 1]
inc r14
cmp bl, 0x20
je 0x1400120e0
cmp bl, 9
je 0x1400120e0
lea rsi, [r14 + 1]
cmp bl, 0x2c
je 0x140012188
mov edx, 0x2c
mov rcx, r14
xor esi, esi
call sym.strchr
test rax, rax
je 0x14001211e
mov byte [rax], 0
movsx ebx, byte [r14]
lea rsi, [rax + 1]
mov ecx, 0x52
mov rbp, qword [sym.imp.msvcrt.dll_toupper]
call rbp
mov ecx, ebx
mov edi, eax
call qword [sym.imp.msvcrt.dll_isalpha]
test eax, eax
je 0x140012145
cmp byte [r14 + 1], 0x3a
je 0x140012660
movsxd rax, r12d
mov rcx, r14
lea rdx, [rax + rax*2]
mov rax, qword [0x140209968]
lea rbx, [rax + rdx*4]
lea rdx, str.0.0.0.0
mov byte [rbx + 8], dil
call sym.strcmp
test eax, eax
jne 0x140012560
mov qword [rbx], 0
inc r12d
mov dword [0x1401ac0b0], r12d
test rsi, rsi
je 0x140012196
movsx ebx, byte [rsi]
mov r14, rsi
test bl, bl
jne 0x1400120d0
mov rbp, r13
mov r13, r15
mov r15d, r12d
mov r12d, dword [rsp + 0x48]
mov rcx, r13
call sym.free
test r15d, r15d
je 0x140012a2b
mov edx, 8
mov ecx, 1
call sym.calloc
mov ecx, 0x3e8
mov rdi, qword [sym.imp.KERNEL32.dll_Sleep]
mov rsi, rax
mov qword [rsp + 0x50], rax
call rdi
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov r15, rax
mov qword [rsi], rax
cmp rax, 0xffffffffffffffff
je 0x140012bbf
mov qword [rsp + 0x72], 0
mov word [rsp + 0x70], 2
mov qword [rsp + 0x78], 0
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x74], eax
cmp eax, 0xffffffff
je 0x140012c1c
movzx eax, r12w
lea r13, [rsp + 0x70]
mov ecx, eax
mov dword [rsp + 0x48], eax
call qword [sym.imp.WS2_32.dll_htons]
mov rbp, qword [sym.imp.msvcrt.dll__time64]
mov word [rsp + 0x72], ax
xor ecx, ecx
call rbp
mov rsi, rax
mov r12, qword [sym.imp.WS2_32.dll_bind]
mov r14, qword [sym.imp.msvcrt.dll__errno]
jmp 0x1400122c3
call r14
mov ecx, dword [rax]
call sym.strerror
xor ecx, ecx
mov rbx, rax
call rbp
sub rax, rsi
cmp rax, 0x3d
jg 0x140012b58
mov rax, qword [0x1401fd720]
cmp byte [rax], 0
je 0x1400122a6
mov rax, qword [0x1401fd6b0]
cmp byte [rax], 0
je 0x1400122bc
mov r8d, dword [rsp + 0x48]
lea rdx, str.API_bind_to_port__d_failed___trying_again_in_20sec
mov ecx, 1
call sym.applog
mov ecx, 0x4e20
call rdi
mov r8d, 0x10
mov rdx, r13
mov rcx, r15
call r12
test eax, eax
js 0x140012270
mov edx, 0xa
mov rcx, r15
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x140012c9b
mov edx, 0x4001
mov ecx, 1
call sym.calloc
mov r14, qword [sym.imp.WS2_32.dll_accept]
mov qword [0x140209960], rax
mov rdi, qword [0x1401fd6b0]
mov eax, dword [0x140209950]
test eax, eax
jne 0x1400125e9
mov dword [rsp + 0x60], 0x10
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x60]
mov rcx, r15
call r14
mov rbx, rax
cmp eax, 0xffffffff
je 0x140012c46
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov rsi, rax
mov rax, qword [0x1401fd660]
cmp qword [rax], 0
je 0x140012500
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_htonl]
movsxd rcx, dword [0x1401ac0b0]
test ecx, ecx
jle 0x1400125a0
mov rdx, qword [0x140209968]
lea rcx, [rcx + rcx*2]
lea r8, [rdx + rcx*4]
jmp 0x1400123ad
add rdx, 0xc
cmp rdx, r8
je 0x1400125a0
mov ecx, dword [rdx + 4]
and ecx, eax
cmp ecx, dword [rdx]
jne 0x1400123a0
mov rbp, qword [0x1401fd6b0]
cmp byte [rbp], 0
je 0x1400123d3
mov rax, qword [0x1401fd6f0]
cmp byte [rax], 0
jne 0x140012533
movsxd rbx, ebx
lea r12, [rsp + 0x2d0]
xor r9d, r9d
mov r8d, 0x400
mov rdx, r12
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp eax, 0xffffffff
je 0x14001288c
test eax, eax
jle 0x1400129ea
lea eax, [rax - 1]
movsxd rdx, eax
cmp byte [rsp + rdx + 0x2d0], 0xa
je 0x140012c70
movsxd rax, esi
mov byte [rsp + rax + 0x2d0], 0
lea rdx, str.GET__
mov rcx, r12
call sym.strstr
mov rdi, rax
test rax, rax
je 0x140012450
mov rcx, rax
call sym.strlen
cmp rax, 5
ja 0x140012a90
xor edi, edi
mov edx, 0x7c
mov rcx, r12
xor r13d, r13d
call sym.strchr
test rax, rax
je 0x14001246c
lea r13, [rax + 1]
mov byte [rax], 0
cmp byte [rbp], 0
jne 0x1400129f7
mov rdx, qword [str.a_e_]
mov rcx, r12
call sym.strcmp
movsxd rsi, eax
test esi, esi
je 0x140012cd3
mov rdx, qword [str.i_e_]
mov rcx, r12
call sym.strcmp
test eax, eax
je 0x140012cce
mov rdx, qword [str.q_e_]
mov rcx, r12
call sym.strcmp
test eax, eax
je 0x140013181
mov rdx, qword [str.quit]
mov rcx, r12
call sym.strcmp
test eax, eax
je 0x14001318b
mov rdx, qword [str.help]
mov rcx, r12
mov esi, 4
call sym.strcmp
test eax, eax
je 0x140012cd3
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x14001230a
lea rdx, str.127.0.0.1
mov rcx, rsi
mov rbp, rdi
call sym.strcmp
cmp byte [rdi], 0
je 0x140012650
mov rdx, qword [0x1401fd6f0]
cmp byte [rdx], 0
je 0x140012650
test eax, eax
jne 0x1400125c0
lea r9, str.Accepted
mov r8, rsi
lea rdx, str.API:_connection_from__s____s
mov ecx, 4
call sym.applog
jmp 0x1400123d3
mov edx, 0x2f
mov rcx, r14
call sym.strchr
test rax, rax
je 0x140012800
mov byte [rax], 0
lea rcx, [rax + 1]
call sym.atoi
lea r10d, [rax - 1]
cmp r10d, 0x1f
jbe 0x1400126a0
mov r12d, dword [0x1401ac0b0]
jmp 0x140012183
mov rax, qword [0x1401fd6b0]
cmp byte [rax], 0
je 0x140012311
mov rax, qword [0x1401fd6f0]
cmp byte [rax], 0
je 0x140012311
lea r9, str.Ignored
mov r8, rsi
lea rdx, str.API:_connection_from__s____s
mov ecx, 4
call sym.applog
mov eax, dword [0x140209950]
test eax, eax
je 0x14001231f
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [rsp + 0x50]
call sym.free
mov rcx, qword [0x140209960]
call sym.free
nop
vmovups xmm6, xmmword [rsp + 0x42d0]
vmovups xmm7, xmmword [rsp + 0x42e0]
vmovups xmm8, xmmword [rsp + 0x42f0]
vmovups xmm9, xmmword [rsp + 0x4300]
add rsp, 0x4318
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test eax, eax
jne 0x140012311
jmp 0x1400123d3
mov ecx, ebx
call rbp
mov ecx, 0x57
mov ebx, eax
call rbp
cmp ebx, eax
je 0x14001268e
mov ecx, 0x41
call rbp
mov edx, eax
mov eax, ebx
sub eax, edx
lea rdx, [0x140209880]
cdqe
cmp qword [rdx + rax*8], 0
je 0x140012690
mov edi, ebx
add r14, 2
jmp 0x140012145
movsxd rdx, dword [0x1401ac0b0]
mov r8d, r10d
lea rcx, [rdx + rdx*2]
mov rdx, qword [0x140209968]
lea r9, [rdx + rcx*4]
lea edx, [rax + 1]
cmp eax, 6
jbe 0x140012ea0
vmovd xmm7, eax
mov r8d, 7
mov ecx, edx
vpbroadcastd ymm7, xmm7
vpaddd ymm1, ymm7, ymmword [0x1401b3ba0]
vmovd xmm3, r8d
mov r8d, 1
vmovd xmm0, r8d
mov r8d, 3
vpbroadcastd ymm3, xmm3
shr ecx, 3
vmovd xmm2, r8d
vpbroadcastd ymm0, xmm0
vpaddd ymm8, ymm7, ymmword [0x1401b3bc0]
vpbroadcastd ymm2, xmm2
vpand ymm4, ymm1, ymm3
vpsrad ymm1, ymm1, 3
vpsubd ymm1, ymm2, ymm1
vpsllvd ymm4, ymm0, ymm4
vpslld ymm1, ymm1, 3
vpsllvd ymm4, ymm4, ymm1
vmovdqa ymm5, ymm4
cmp ecx, 1
je 0x140012899
vpand ymm5, ymm8, ymm3
vpsrad ymm1, ymm8, 3
vpsubd ymm1, ymm2, ymm1
vpaddd ymm9, ymm7, ymmword [0x1401b3be0]
vpsllvd ymm5, ymm0, ymm5
vpslld ymm1, ymm1, 3
vpsllvd ymm5, ymm5, ymm1
vpor ymm5, ymm4, ymm5
cmp ecx, 2
je 0x140012899
vpand ymm4, ymm9, ymm3
vpaddd ymm1, ymm7, ymmword [0x1401b3c00]
vpsllvd ymm7, ymm0, ymm4
vpsrad ymm4, ymm9, 3
vpsubd ymm4, ymm2, ymm4
vpslld ymm4, ymm4, 3
vpsllvd ymm4, ymm7, ymm4
vpor ymm5, ymm5, ymm4
cmp ecx, 4
jne 0x140012899
vpand ymm3, ymm1, ymm3
vpsrad ymm1, ymm1, 3
vpsubd ymm1, ymm2, ymm1
vpslld ymm1, ymm1, 3
vpsllvd ymm0, ymm0, ymm3
vpsllvd ymm0, ymm0, ymm1
vpor ymm0, ymm0, ymm5
vextracti128 xmm1, ymm0, 1
vpor xmm0, xmm1, xmm0
vpsrldq xmm1, xmm0, 8
vpor xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpor xmm0, xmm0, xmm1
vmovd ecx, xmm0
cmp edx, 0x20
jne 0x140012eb8
vzeroupper
jmp 0x1400129da
mov rax, qword [0x1401b3c20]
mov qword [rbx], rax
mov ebx, 0x18
xor edi, edi
jmp 0x140012828
cmp edi, 3
jg 0x140012882
mov r14, rbp
mov edx, 0x2e
mov rcx, r14
xor ebp, ebp
call sym.strchr
test rax, rax
je 0x140012843
lea rbp, [rax + 1]
mov byte [rax], 0
mov rcx, r14
call sym.atoi
cmp eax, 0xff
ja 0x140012590
movsxd rdx, dword [0x1401ac0b0]
shlx eax, eax, ebx
inc edi
sub ebx, 8
lea rcx, [rdx + rdx*2]
mov r12, rdx
mov rdx, qword [0x140209968]
lea rdx, [rdx + rcx*4]
or eax, dword [rdx]
mov dword [rdx], eax
test rbp, rbp
jne 0x140012820
and eax, dword [rdx + 4]
mov dword [rdx], eax
jmp 0x140012179
mov byte [rsp + 0x2d0], 0
jmp 0x14001230a
vextracti128 xmm3, ymm5, 1
mov r11d, edx
vpor xmm3, xmm3, xmm5
and r11d, 0xfffffff8
vpsrldq xmm0, xmm3, 8
vpor xmm0, xmm3, xmm0
sub r10d, r11d
and edx, 7
vpsrldq xmm1, xmm0, 4
vpor xmm0, xmm0, xmm1
mov r8d, r10d
vmovd ecx, xmm0
je 0x1400127e9
vzeroupper
sub eax, r11d
lea edx, [rax + 1]
cmp eax, 2
jbe 0x14001295a
mov eax, 7
vmovd xmm7, r8d
vmovd xmm2, eax
vpshufd xmm1, xmm7, 0
mov eax, 1
vpaddd xmm1, xmm1, xmm6
vmovd xmm0, eax
vpshufd xmm2, xmm2, 0
mov eax, 3
vpand xmm2, xmm1, xmm2
vpshufd xmm0, xmm0, 0
vpsllvd xmm0, xmm0, xmm2
vpsrad xmm2, xmm1, 3
vmovd xmm1, eax
vpshufd xmm1, xmm1, 0
vpsubd xmm1, xmm1, xmm2
vpslld xmm1, xmm1, 3
vpsllvd xmm0, xmm0, xmm1
vpor xmm0, xmm0, xmm3
vpsrldq xmm1, xmm0, 8
vpor xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpor xmm0, xmm0, xmm1
vmovd ecx, xmm0
test dl, 3
je 0x1400129da
and edx, 0xfffffffc
sub r8d, edx
mov ebx, r8d
mov edx, 3
mov r10d, r8d
mov eax, 1
sar ebx, 3
mov r11d, edx
and r10d, 7
sub r11d, ebx
shlx r10d, eax, r10d
shl r11d, 3
shlx r10d, r10d, r11d
lea r11d, [r8 - 1]
or ecx, r10d
cmp r8d, 0xffffffff
je 0x1400129da
mov edi, r11d
mov r10d, r11d
mov ebx, edx
sub r8d, 2
sar edi, 3
and r10d, 7
sub ebx, edi
shlx r10d, eax, r10d
shl ebx, 3
shlx r10d, r10d, ebx
or ecx, r10d
cmp r11d, 0xffffffff
je 0x1400129da
mov r10d, r8d
sar r8d, 3
and r10d, 7
sub edx, r8d
shlx eax, eax, r10d
shl edx, 3
shlx eax, eax, edx
or ecx, eax
mov dword [r9 + 4], ecx
mov dword [r9], 0
jmp 0x14001280a
jne 0x140012425
xor esi, esi
jmp 0x14001241a
mov rax, qword [0x1401fd6f0]
cmp byte [rax], 0
je 0x140012476
test esi, esi
jle 0x140012476
mov r9, r13
mov r8, r12
lea rdx, str.API:_exec_command__s__s_
mov ecx, 4
call sym.applog
jmp 0x140012476
lea r8, str.___API_will_not_be_available
lea rdx, str.API_not_running__no_valid_IPs_specified__s
mov ecx, 1
call sym.applog
jmp 0x1400121b5
vmovups xmm6, xmmword [rsp + 0x42d0]
vmovups xmm7, xmmword [rsp + 0x42e0]
lea rdx, str.API_disabled
mov ecx, 4
vmovups xmm8, xmmword [rsp + 0x42f0]
vmovups xmm9, xmmword [rsp + 0x4300]
add rsp, 0x4318
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.applog
vpxor xmm0, xmm0, xmm0
lea rsi, [rsp + 0x1d0]
lea rcx, [rdi + 5]
lea rdx, [0x1401b37c0]
vmovdqu ymmword [rsp + 0x1d0], ymm0
vmovdqu ymmword [rsp + 0x1f0], ymm0
vmovdqu ymmword [rsp + 0x210], ymm0
mov r8, rsi
vmovdqu ymmword [rsp + 0x230], ymm0
vmovdqu ymmword [rsp + 0x250], ymm0
vmovdqu ymmword [rsp + 0x270], ymm0
vmovdqu ymmword [rsp + 0x290], ymm0
vmovdqu ymmword [rsp + 0x2b0], ymm0
vzeroupper
call sym.sscanf.constprop.0
mov edx, 0x2f
mov rcx, rsi
call sym.strchr
test rax, rax
je 0x140012b24
mov byte [rax], 0x7c
mov edx, 0x2f
mov rcx, rsi
call sym.strchr
test rax, rax
je 0x140012b24
mov byte [rax], 0
mov rcx, rdi
lea rdx, str.Sec_WebSocket_Key
call sym.strstr
mov rdi, rax
test rax, rax
jne 0x140012ec4
mov r8, rsi
lea rdx, [0x1401b37cb]
mov rcx, r12
call sym.sprintf_2
mov esi, eax
jmp 0x140012450
mov r8d, dword [rsp + 0x48]
lea rax, str.___API_will_not_be_available
mov r9, rbx
lea rdx, str.API_bind_to_port__d_failed___s__s
mov qword [rsp + 0x20], rax
mov ecx, 1
call sym.applog
nop
vmovups xmm6, xmmword [rsp + 0x42d0]
vmovups xmm7, xmmword [rsp + 0x42e0]
vmovups xmm8, xmmword [rsp + 0x42f0]
vmovups xmm9, xmmword [rsp + 0x4300]
mov rcx, qword [rsp + 0x50]
add rsp, 0x4318
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 + 0x42d0]
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_failed___s__s
vmovups xmm7, xmmword [rsp + 0x42e0]
vmovups xmm8, xmmword [rsp + 0x42f0]
mov r8, rax
xor ecx, ecx
vmovups xmm9, xmmword [rsp + 0x4300]
add rsp, 0x4318
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
xor ecx, ecx
mov r8, rax
call sym.applog
jmp 0x140012609
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
xor ecx, ecx
mov r8, rax
call sym.applog
jmp 0x1400125e9
mov byte [rsp + rdx + 0x2d0], 0
test eax, eax
je 0x1400129f0
lea edx, [rsi - 2]
movsxd rdx, edx
cmp byte [rsp + rdx + 0x2d0], 0xd
je 0x140012f1d
mov esi, eax
jmp 0x14001241a
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sym.strerror
xor ecx, ecx
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_3_failed___s__s
mov r8, rax
call sym.applog
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x140012b7e
mov esi, 1
test r13, r13
je 0x140012cf4
cmp byte [r13], 0
je 0x140012cf4
mov rcx, r13
call sym.strlen
lea rax, [r13 + rax - 1]
cmp byte [rax], 0x7c
jne 0x140012cf4
mov byte [rax], 0
shl rsi, 4
lea rax, str.a_e_
mov rcx, r13
call qword [rax + rsi + 8]
mov qword [rsp + 0x48], rax
test rdi, rdi
je 0x140013156
mov rax, qword [0x1401fd6f0]
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [rsp + 0x150], ymm0
vmovdqu ymmword [rsp + 0x170], ymm0
vmovdqu ymmword [rsp + 0x190], ymm0
vmovdqu ymmword [rsp + 0x1b0], ymm0
cmp byte [rax], 0
jne 0x140012f01
vzeroupper
lea rsi, [rsp + 0x150]
mov r8, rdi
lea rdx, str._s258EAFA5_E914_47DA_95CA_C5AB0DC85B11
lea rdi, [rsp + 0xf0]
mov rcx, rsi
call sym.sprintf_2
mov rcx, rdi
call sym.SHA1_Init
mov rcx, rsi
call sym.strlen
mov rdx, rsi
mov rcx, rdi
lea rsi, [rsp + 0x90]
mov r8, rax
call sym.SHA1_Update
mov rdx, rdi
mov rcx, rsi
call sym.SHA1_Final
vpxor xmm0, xmm0, xmm0
lea rax, [rsp + 0xb0]
mov edx, 0x1e
mov qword [rsp + 0x58], rax
vmovdqu ymmword [rsp + 0xb0], ymm0
vmovdqu ymmword [rsp + 0xd0], ymm0
mov ecx, 1
vzeroupper
call sym.calloc
mov rbp, rax
test rax, rax
je 0x140012faf
mov r13d, 0x14
xor r12d, r12d
lea rdi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
movzx eax, byte [rsi + 1]
movzx r8d, byte [rsi]
lea rcx, [rbp + r12]
mov r10d, eax
shl eax, 2
and eax, 0x3c
shr r10b, 4
mov r11d, eax
cmp r13d, 2
je 0x140012f2c
movzx edx, byte [rsi + 2]
mov r9d, r8d
sub r13d, 3
add rsi, 3
shr r9b, 2
add r12, 4
and r9d, 0x3f
movsx r9d, byte [rdi + r9]
mov rax, rdx
and eax, 0x3f
movsx eax, byte [rdi + rax]
mov dword [rsp + 0x30], eax
mov eax, edx
mov edx, 5
shr al, 6
or eax, r11d
and eax, 0x3f
movsx eax, byte [rdi + rax]
mov dword [rsp + 0x28], eax
mov eax, r8d
lea r8, str._c_c_c_c
shl eax, 4
and eax, 0x30
or eax, r10d
and eax, 0x3f
movsx eax, byte [rdi + rax]
mov dword [rsp + 0x20], eax
call sym.snprintf.constprop.0_1
test r13d, r13d
jne 0x140012df3
jmp 0x140012f7b
vpxor xmm3, xmm3, xmm3
xor r11d, r11d
xor ecx, ecx
jmp 0x1400128d2
mov ecx, 1
jmp 0x140012088
lea r8d, [rax - 0x21]
vzeroupper
jmp 0x14001295a
mov edx, 0xd
mov rcx, rax
call sym.strchr
test rax, rax
je 0x140012ed9
mov byte [rax], 0
mov rcx, rdi
mov edx, 0x3a
call sym.strchr
cmp byte [rax + 1], 0x20
lea rdi, [rax + 1]
jne 0x140012b3f
inc rdi
cmp byte [rdi], 0x20
je 0x140012ef4
jmp 0x140012b3f
mov r8, rdi
lea rdx, str.clientkey:__s
mov ecx, 4
vzeroupper
call sym.applog
jmp 0x140012d4f
mov byte [rsp + rdx + 0x2d0], 0
mov esi, eax
jmp 0x14001241a
movzx eax, al
mov esi, r10d
mov r10, rcx
mov edx, r8d
movsx eax, byte [rdi + rax]
mov ecx, esi
shr dl, 2
add r12, 4
and edx, 0x3f
movsx r9d, byte [rdi + rdx]
mov edx, 5
mov dword [rsp + 0x28], eax
mov eax, r8d
lea r8, str._c_c_c
shl eax, 4
and eax, 0x30
or eax, ecx
mov rcx, r10
and eax, 0x3f
movsx eax, byte [rdi + rax]
mov dword [rsp + 0x20], eax
call sym.snprintf.constprop.0_1
mov rdi, qword [rsp + 0x58]
mov r9, rbp
lea r8, [0x1401b37cb]
mov rdx, r12
mov rcx, rdi
call sym.snprintf_2
mov rcx, rdi
call sym.strlen
cmp rax, 0x1b
je 0x140013195
mov rcx, rbp
call sym.free
mov r8, qword [rsp + 0x58]
lea rsi, [rsp + 0x1d0]
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, rsi
call sym.sprintf_2
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x66], 0
mov word [rsp + 0x6e], 0
mov byte [rsp + 0x66], 0x81
call sym.strlen
mov r13, rax
lea rdi, [rax + 1]
cmp rax, 0x7d
ja 0x140013132
mov byte [rsp + 0x67], al
mov r12d, 2
mov ebp, 2
mov rcx, rsi
call sym.strlen
mov ecx, 1
lea rdx, [rax + rbp]
mov qword [rsp + 0x58], rax
add rdx, rdi
call sym.calloc
mov rdi, rax
test rax, rax
je 0x1400124f1
mov r8, qword [rsp + 0x58]
mov rdx, rsi
mov rcx, rax
call sym.memcpy
mov rax, qword [rsp + 0x58]
lea rcx, [rsp + 0x66]
lea rdx, [rdi + rax]
mov eax, ebp
cmp ebp, 8
jae 0x1400130e2
test bpl, 4
jne 0x1400131de
test eax, eax
je 0x14001307c
movzx r8d, byte [rsp + 0x66]
mov byte [rdx], r8b
test al, 2
jne 0x1400131f3
lea rcx, [rdx + rbp]
mov rdx, qword [rsp + 0x48]
mov r8, r13
call sym.memcpy
mov eax, dword [rsp + 0x58]
mov rcx, rbx
xor r9d, r9d
mov rdx, rdi
add r12d, eax
lea r8d, [r12 + r13 + 1]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, rdi
call sym.free
jmp 0x1400124f1
mov ecx, 1
call sym.proper_exit
movsx ebx, byte [r13]
jmp 0x1400120a2
mov ecx, 1
call sym.proper_exit
mov rax, qword [0x1401fd660]
mov rdx, qword [rax]
jmp 0x140012054
mov rax, qword [rsp + 0x66]
lea r10, [rdx + 8]
and r10, 0xfffffffffffffff8
mov qword [rdx], rax
mov rax, qword [rcx + rbp - 8]
mov qword [rdx + rbp - 8], rax
mov rax, rdx
sub rax, r10
sub rcx, rax
add eax, ebp
and eax, 0xfffffff8
cmp eax, 8
jb 0x14001307c
and eax, 0xfffffff8
xor r8d, r8d
mov r9d, r8d
add r8d, 8
mov r11, qword [rcx + r9]
mov qword [r10 + r9], r11
cmp r8d, eax
jb 0x140013119
jmp 0x14001307c
cmp rax, 0xffff
ja 0x1400131a4
mov byte [rsp + 0x67], 0x7e
movbe word [rsp + 0x68], ax
mov r12d, 4
mov ebp, 4
jmp 0x14001300a
cmp qword [rsp + 0x48], 0
je 0x1400131c0
mov rcx, rax
mov rdi, rax
call sym.strlen
xor r9d, r9d
mov rdx, rdi
mov rcx, rbx
lea r8d, [rax + 1]
call qword [sym.imp.WS2_32.dll_send]
jmp 0x1400124f1
mov esi, 2
jmp 0x140012cd3
mov esi, 3
jmp 0x140012cd3
mov word [rsp + 0xcb], 0x3d
jmp 0x140012fa7
mov byte [rsp + 0x67], 0x7f
movbe qword [rsp + 0x68], rax
mov r12d, 0xa
mov ebp, 0xa
jmp 0x14001300a
xor r9d, r9d
mov r8d, 1
lea rdx, [0x1401b3add]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_send]
jmp 0x1400124f1
mov r8d, dword [rsp + 0x66]
mov dword [rdx], r8d
mov ecx, dword [rcx + rax - 4]
mov dword [rdx + rax - 4], ecx
jmp 0x14001307c
movzx ecx, word [rcx + rax - 2]
mov word [rdx + rax - 2], cx
jmp 0x14001307c