Function at 0x140012740
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, 0x42b8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1402a1600
sub rsp, rax
vmovups xmmword [rsp + 0x4270], xmm6
vmovups xmmword [rsp + 0x4280], xmm7
vmovups xmmword [rsp + 0x4290], xmm8
vmovups xmmword [rsp + 0x42a0], xmm9
mov rax, qword [str.p_2_]
mov rbp, qword [rax]
mov rax, qword [str.l_2_]
mov r12d, dword [rax]
test r12d, r12d
jne 0x1400127a6
mov rax, qword [0x140311c80]
cmp byte [rax], 0
jne 0x14001315a
test rbp, rbp
je 0x14001293f
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 0x140013a01
mov rcx, r13
call sym.strcpy
movsx ebx, byte [r13]
test bl, bl
je 0x140013956
mov edx, ebx
mov ecx, 1
add rax, 1
cmp dl, 0x2c
sete dl
movzx edx, dl
add ecx, edx
movzx edx, byte [rax]
test dl, dl
jne 0x1400127f0
movsxd rcx, ecx
mov edx, 0xc
call sym.calloc
mov qword [0x140326da8], rax
test rax, rax
je 0x1400139ed
xor r15d, r15d
mov dword [rsp + 0x40], r12d
mov r14, r13
vmovdqu xmm6, xmmword [0x1402b96c0]
mov dword [0x1402b20d0], 0
mov r12d, r15d
mov r15, r13
mov r13, rbp
test bl, bl
je 0x140012920
nop dword [rax]
cmp bl, 9
je 0x140012868
cmp bl, 0x20
jne 0x14001287b
nop word [rax + rax]
movsx ebx, byte [r14 + 1]
add r14, 1
cmp bl, 0x20
je 0x140012868
cmp bl, 9
je 0x140012868
lea rsi, [r14 + 1]
cmp bl, 0x2c
je 0x140012912
mov edx, 0x2c
mov rcx, r14
xor esi, esi
call sym.strchr
test rax, rax
je 0x1400128a7
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 0x1400128ce
cmp byte [r14 + 1], 0x3a
je 0x140012dd0
movsxd rax, r12d
mov rcx, r14
lea rdx, [rax + rax*2]
mov rax, qword [0x140326da8]
lea rbx, [rax + rdx*4]
lea rdx, str.0.0.0.0
mov byte [rbx + 8], dil
call sym.strcmp
test eax, eax
jne 0x140012cd8
mov qword [rbx], 0
add r12d, 1
mov dword [0x1402b20d0], r12d
test rsi, rsi
je 0x140012920
movsx ebx, byte [rsi]
mov r14, rsi
test bl, bl
jne 0x140012858
mov rbp, r13
mov r13, r15
mov r15d, r12d
mov r12d, dword [rsp + 0x40]
mov rcx, r13
call sym.free
test r15d, r15d
je 0x14001313d
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 + 0x48], rax
call rdi
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov qword [rsi], rax
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x140013402
mov r8d, 2
mov rcx, rbp
mov qword [rsp + 0x72], 0
mov word [rsp + 0x70], r8w
mov qword [rsp + 0x78], 0
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x74], eax
cmp eax, 0xffffffff
je 0x140013461
movzx eax, r12w
lea r13, [rsp + 0x70]
mov ecx, eax
mov dword [rsp + 0x40], eax
call qword [sym.imp.WS2_32.dll_htons]
mov rbp, qword [sym.imp.msvcrt.dll__time64]
xor ecx, ecx
mov word [rsp + 0x72], ax
call rbp
mov r12, qword [sym.imp.WS2_32.dll_bind]
mov r14, qword [sym.imp.msvcrt.dll__errno]
mov rsi, rax
jmp 0x140012a4b
call r14
mov ecx, dword [rax]
call sym.strerror
xor ecx, ecx
mov rbx, rax
call rbp
sub rax, rsi
cmp rax, 0x3d
jg 0x14001339b
mov rax, qword [str.Uf2_]
cmp byte [rax], 0
je 0x140012a2e
mov rax, qword [0x140311c80]
cmp byte [rax], 0
je 0x140012a44
mov r8d, dword [rsp + 0x40]
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
mov rdx, r13
mov rcx, r15
call r12
test eax, eax
js 0x1400129f8
mov edx, 0xa
mov rcx, r15
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x1400134e6
mov edx, 0x4001
mov ecx, 1
call sym.calloc
mov r14, qword [sym.imp.WS2_32.dll_accept]
mov qword [0x140326da0], rax
mov rdi, qword [0x140311c80]
mov eax, dword [0x140326d90]
test eax, eax
jne 0x140012d61
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 0x14001348e
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov rsi, rax
mov rax, qword [str.p_2_]
cmp qword [rax], 0
je 0x140012c80
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_htonl]
movsxd rcx, dword [0x1402b20d0]
test ecx, ecx
jle 0x140012d18
mov rdx, qword [0x140326da8]
lea rcx, [rcx + rcx*2]
lea r8, [rdx + rcx*4]
jmp 0x140012b2d
add rdx, 0xc
cmp rdx, r8
je 0x140012d18
mov ecx, dword [rdx + 4]
and ecx, eax
cmp ecx, dword [rdx]
jne 0x140012b20
mov rbp, qword [0x140311c80]
cmp byte [rbp], 0
je 0x140012b53
mov rax, qword [str._f2_]
cmp byte [rax], 0
jne 0x140012cb3
movsxd rbx, ebx
xor r9d, r9d
lea r12, [rsp + 0x270]
mov r8d, 0x400
mov rdx, r12
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_recv]
mov esi, eax
cmp eax, 0xffffffff
je 0x1400130ef
test eax, eax
jle 0x1400130fc
lea eax, [rax - 1]
movsxd rdx, eax
cmp byte [rsp + rdx + 0x270], 0xa
je 0x1400134bb
movsxd rax, esi
mov byte [rsp + rax + 0x270], 0
lea rdx, str.GET__
mov rcx, r12
call sym.strstr
mov rdi, rax
test rax, rax
je 0x140012bd0
mov rcx, rax
call sym.strlen
cmp rax, 5
ja 0x1400131a2
xor edi, edi
mov edx, 0x7c
mov rcx, r12
xor r13d, r13d
call sym.strchr
test rax, rax
je 0x140012bec
mov byte [rax], 0
lea r13, [rax + 1]
cmp byte [rbp], 0
jne 0x140013109
mov rdx, qword [str.summary]
mov rcx, r12
call sym.strcmp
movsxd rsi, eax
test esi, esi
je 0x140013521
mov rdx, qword [str.threads]
mov rcx, r12
call sym.strcmp
test eax, eax
je 0x14001351c
mov rdx, qword [str.seturl]
mov rcx, r12
call sym.strcmp
test eax, eax
je 0x140013ab6
mov rdx, qword [str.quit]
mov rcx, r12
call sym.strcmp
test eax, eax
je 0x140013ac0
mov rdx, qword [str.help]
mov rcx, r12
mov esi, 4
call sym.strcmp
test eax, eax
je 0x140013521
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x140012a92
lea rdx, str.127.0.0.1
mov rcx, rsi
mov rbp, rdi
call sym.strcmp
cmp byte [rdi], 0
je 0x140012dc0
mov rdx, qword [str._f2_]
cmp byte [rdx], 0
je 0x140012dc0
test eax, eax
jne 0x140012d38
lea r9, str.Accepted
mov r8, rsi
mov ecx, 5
lea rdx, str.API:_connection_from__s____s
call sym.applog
jmp 0x140012b53
mov edx, 0x2f
mov rcx, r14
call sym.strchr
test rax, rax
je 0x1400130e0
mov byte [rax], 0
lea rcx, [rax + 1]
call sym.atoi
lea edx, [rax - 1]
cmp edx, 0x1f
jbe 0x140012e10
mov r12d, dword [0x1402b20d0]
jmp 0x14001290d
mov rax, qword [0x140311c80]
cmp byte [rax], 0
je 0x140012a99
mov rax, qword [str._f2_]
cmp byte [rax], 0
je 0x140012a99
lea r9, str.Ignored
mov r8, rsi
mov ecx, 5
lea rdx, str.API:_connection_from__s____s
call sym.applog
mov eax, dword [0x140326d90]
test eax, eax
je 0x140012aa7
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [rsp + 0x48]
call sym.free
mov rcx, qword [0x140326da0]
call sym.free
nop
vmovups xmm6, xmmword [rsp + 0x4270]
vmovups xmm7, xmmword [rsp + 0x4280]
vmovups xmm8, xmmword [rsp + 0x4290]
vmovups xmm9, xmmword [rsp + 0x42a0]
add rsp, 0x42b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test eax, eax
jne 0x140012a99
jmp 0x140012b53
mov ecx, ebx
call rbp
mov ecx, 0x57
mov ebx, eax
call rbp
cmp ebx, eax
je 0x140012dfe
mov ecx, 0x41
call rbp
mov edx, eax
mov eax, ebx
sub eax, edx
lea rdx, [0x140326cc0]
cdqe
cmp qword [rdx + rax*8], 0
je 0x140012e00
mov edi, ebx
add r14, 2
jmp 0x1400128ce
movsxd rcx, dword [0x1402b20d0]
mov r9d, edx
lea r8, [rcx + rcx*2]
mov rcx, qword [0x140326da8]
lea r10, [rcx + r8*4]
lea ecx, [rax + 1]
cmp eax, 6
jbe 0x140013947
mov r9d, 7
vmovd xmm7, eax
mov r8d, ecx
vmovd xmm5, r9d
mov r9d, 1
vpbroadcastd ymm7, xmm7
shr r8d, 3
vpaddd ymm1, ymm7, ymmword [0x1402b9640]
vmovd xmm2, r9d
mov r9d, 3
vpbroadcastd ymm5, xmm5
vmovd xmm3, r9d
vpbroadcastd ymm2, xmm2
vpand ymm0, ymm1, ymm5
vpbroadcastd ymm3, xmm3
vpaddd ymm4, ymm7, ymmword [0x1402b9660]
vpsrad ymm1, ymm1, 3
vpsllvd ymm0, ymm2, ymm0
vpsubd ymm1, ymm3, ymm1
vpslld ymm1, ymm1, 3
vpsllvd ymm0, ymm0, ymm1
cmp r8d, 1
je 0x140012f24
vpand ymm1, ymm4, ymm5
vpaddd ymm8, ymm7, ymmword [0x1402b9680]
vpsllvd ymm9, ymm2, ymm1
vpsrad ymm1, ymm4, 3
vpsubd ymm1, ymm3, ymm1
vpslld ymm1, ymm1, 3
vpsllvd ymm1, ymm9, ymm1
vpor ymm0, ymm0, ymm1
cmp r8d, 2
je 0x140012f24
vpand ymm4, ymm8, ymm5
vpaddd ymm1, ymm7, ymmword [0x1402b96a0]
vpsllvd ymm7, ymm2, ymm4
vpsrad ymm4, ymm8, 3
vpsubd ymm4, ymm3, ymm4
vpslld ymm4, ymm4, 3
vpsllvd ymm4, ymm7, ymm4
vpor ymm0, ymm0, ymm4
cmp r8d, 4
jne 0x140012f24
vpand ymm5, ymm1, ymm5
vpsrad ymm1, ymm1, 3
vpsllvd ymm2, ymm2, ymm5
vpsubd ymm1, ymm3, ymm1
vpslld ymm1, ymm1, 3
vpsllvd ymm1, ymm2, ymm1
vpor ymm0, ymm0, ymm1
vextracti128 xmm3, ymm0, 1
mov r11d, ecx
vpor xmm3, xmm3, xmm0
and r11d, 0xfffffff8
vpsrldq xmm0, xmm3, 8
sub edx, r11d
and ecx, 7
vpor xmm0, xmm3, xmm0
mov r9d, edx
vpsrldq xmm1, xmm0, 4
vpor xmm0, xmm0, xmm1
vmovd r8d, xmm0
je 0x14001393f
vzeroupper
sub eax, r11d
lea edx, [rax + 1]
cmp eax, 2
jbe 0x140012fe3
mov eax, 7
vmovd xmm5, r9d
vmovd xmm2, eax
vpshufd xmm1, xmm5, 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 r8d, xmm0
test dl, 3
je 0x140013053
and edx, 0xfffffffc
sub r9d, edx
mov ecx, r9d
mov edx, 1
mov ebx, r9d
mov r11d, 3
and ecx, 7
mov eax, edx
sar ebx, 3
shl eax, cl
mov ecx, r11d
sub ecx, ebx
lea ebx, [r9 - 1]
shl ecx, 3
shl eax, cl
or r8d, eax
cmp r9d, 0xffffffff
je 0x140013053
mov ecx, ebx
mov eax, edx
mov edi, ebx
and ecx, 7
sar edi, 3
shl eax, cl
mov ecx, r11d
sub ecx, edi
shl ecx, 3
shl eax, cl
or r8d, eax
lea eax, [r9 - 2]
cmp ebx, 0xffffffff
je 0x140013053
mov ecx, eax
sar eax, 3
and ecx, 7
sub r11d, eax
shl edx, cl
lea ecx, [r11*8]
shl edx, cl
or r8d, edx
mov dword [r10 + 4], r8d
mov dword [r10], 0
mov ebx, 0x18
xor edi, edi
jmp 0x140013078
cmp edi, 3
jg 0x1400130d2
mov r14, rbp
mov edx, 0x2e
mov rcx, r14
xor ebp, ebp
call sym.strchr
test rax, rax
je 0x140013093
mov byte [rax], 0
lea rbp, [rax + 1]
mov rcx, r14
call sym.atoi
cmp eax, 0xff
ja 0x140012d06
movsxd rdx, dword [0x1402b20d0]
add edi, 1
lea rcx, [rdx + rdx*2]
mov r12, rdx
mov rdx, qword [0x140326da8]
lea rdx, [rdx + rcx*4]
mov ecx, ebx
sub ebx, 8
shl eax, cl
or eax, dword [rdx]
mov dword [rdx], eax
test rbp, rbp
jne 0x140013070
and eax, dword [rdx + 4]
mov dword [rdx], eax
jmp 0x140012902
mov rax, qword [0x1402b96c0]
mov qword [rbx], rax
jmp 0x14001305e
mov byte [rsp + 0x270], 0
jmp 0x140012a92
jne 0x140012ba5
xor esi, esi
jmp 0x140012b9a
mov rax, qword [str._f2_]
cmp byte [rax], 0
je 0x140012bf6
test esi, esi
jle 0x140012bf6
mov r9, r13
mov r8, r12
mov ecx, 5
lea rdx, str.API:_exec_command__s__s_
call sym.applog
jmp 0x140012bf6
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 0x14001293f
vmovups xmm6, xmmword [rsp + 0x4270]
lea rdx, str.API_disabled
vmovups xmm7, xmmword [rsp + 0x4280]
mov ecx, 5
vmovups xmm8, xmmword [rsp + 0x4290]
vmovups xmm9, xmmword [rsp + 0x42a0]
add rsp, 0x42b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.applog
lea rsi, [rsp + 0x170]
lea rcx, [rdi + 5]
mov qword [rsp + 0x170], 0
lea rdx, [0x1402b9260]
mov r8, rsi
mov qword [rsp + 0x178], 0
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x198], 0
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x1a8], 0
mov qword [rsp + 0x1b0], 0
mov qword [rsp + 0x1b8], 0
mov qword [rsp + 0x1c0], 0
mov qword [rsp + 0x1c8], 0
mov qword [rsp + 0x1d0], 0
mov qword [rsp + 0x1d8], 0
mov qword [rsp + 0x1e0], 0
mov qword [rsp + 0x1e8], 0
mov qword [rsp + 0x1f0], 0
mov qword [rsp + 0x1f8], 0
mov qword [rsp + 0x200], 0
mov qword [rsp + 0x208], 0
mov qword [rsp + 0x210], 0
mov qword [rsp + 0x218], 0
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
mov qword [rsp + 0x230], 0
mov qword [rsp + 0x238], 0
mov qword [rsp + 0x240], 0
mov qword [rsp + 0x248], 0
mov qword [rsp + 0x250], 0
mov qword [rsp + 0x258], 0
mov qword [rsp + 0x260], 0
mov qword [rsp + 0x268], 0
call sym.sscanf.constprop.0
mov edx, 0x2f
mov rcx, rsi
call sym.strchr
test rax, rax
je 0x140013367
mov byte [rax], 0x7c
mov edx, 0x2f
mov rcx, rsi
call sym.strchr
test rax, rax
je 0x140013367
mov byte [rax], 0
mov rcx, rdi
lea rdx, str.Sec_WebSocket_Key
call sym.strstr
mov rdi, rax
test rax, rax
jne 0x140013960
mov r8, rsi
lea rdx, [0x1402b926b]
mov rcx, r12
call sym.sprintf_2
mov esi, eax
jmp 0x140012bd0
lea rax, str.___API_will_not_be_available
mov r8d, dword [rsp + 0x40]
mov r9, rbx
lea rdx, str.API_bind_to_port__d_failed___s__s
mov qword [rsp + 0x20], rax
mov ecx, 2
call sym.applog
nop
vmovups xmm6, xmmword [rsp + 0x4270]
mov rcx, qword [rsp + 0x48]
vmovups xmm7, xmmword [rsp + 0x4280]
vmovups xmm8, xmmword [rsp + 0x4290]
vmovups xmm9, xmmword [rsp + 0x42a0]
add rsp, 0x42b8
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
lea r9, str.___API_will_not_be_available
mov ecx, 1
vmovups xmm6, xmmword [rsp + 0x4270]
vmovups xmm7, xmmword [rsp + 0x4280]
mov r8, rax
lea rdx, str.API_initialisation_failed___s__s
vmovups xmm8, xmmword [rsp + 0x4290]
vmovups xmm9, xmmword [rsp + 0x42a0]
add rsp, 0x42b8
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
mov ecx, 1
lea rdx, str.API_initialisation_2_failed___s__s
mov r8, rax
call sym.applog
jmp 0x140012d81
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sym.strerror
lea r9, str.___API_will_not_be_available
mov ecx, 1
lea rdx, str.API_failed___s__s
mov r8, rax
call sym.applog
jmp 0x140012d61
mov byte [rsp + rdx + 0x270], 0
test eax, eax
je 0x140013102
lea edx, [rsi - 2]
movsxd rdx, edx
cmp byte [rsp + rdx + 0x270], 0xd
je 0x1400139cc
mov esi, eax
jmp 0x140012b9a
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sym.strerror
lea r9, str.___API_will_not_be_available
mov ecx, 1
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 0x1400133c1
mov esi, 1
test r13, r13
je 0x140013542
cmp byte [r13], 0
je 0x140013542
mov rcx, r13
call sym.strlen
lea rax, [r13 + rax - 1]
cmp byte [rax], 0x7c
jne 0x140013542
mov byte [rax], 0
shl rsi, 4
lea rax, str.summary
mov rcx, r13
call qword [rax + rsi + 8]
mov qword [rsp + 0x40], rax
test rdi, rdi
je 0x140013a8b
mov rax, qword [str._f2_]
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
cmp byte [rax], 0
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], 0
mov qword [rsp + 0x168], 0
jne 0x1400139b3
lea rbp, [rsp + 0xf0]
mov r8, rdi
lea rdx, str._s258EAFA5_E914_47DA_95CA_C5AB0DC85B11
mov rcx, rbp
lea rsi, [rsp + 0x90]
call sym.sprintf_2
mov rcx, rbp
call sym.strlen
mov rdx, rbp
mov rcx, rsi
mov r8, rax
call sym.sph_sha1_full
vpxor xmm0, xmm0, xmm0
mov edx, 0x1e
lea rax, [rsp + 0xb0]
mov ecx, 1
mov qword [rsp + 0x50], rax
vmovdqu xmmword [rsp + 0xb0], xmm0
vmovdqu xmmword [rsp + 0xc0], xmm0
vmovdqu xmmword [rsp + 0xd0], xmm0
vmovdqu xmmword [rsp + 0xe0], xmm0
call sym.calloc
mov rbp, rax
test rax, rax
je 0x1400137eb
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 0x140013768
movzx edx, byte [rsi + 2]
mov r9d, r8d
sub r13d, 3
add rsi, 3
shr r9b, 2
add r12, 4
mov rax, rdx
and r9d, 0x3f
and eax, 0x3f
movsx r9d, byte [rdi + r9]
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
test r13d, r13d
jne 0x1400136ca
jmp 0x1400137b7
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
mov dword [rsp + 0x28], eax
mov eax, r8d
movsx r9d, byte [rdi + rdx]
lea r8, str._c_c_c
shl eax, 4
mov edx, 5
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
mov rdi, qword [rsp + 0x50]
mov r9, rbp
lea r8, [0x1402b926b]
mov rdx, r12
mov rcx, rdi
call sym.snprintf_2
mov rcx, rdi
call sym.strlen
cmp rax, 0x1b
je 0x1400139db
mov rcx, rbp
call sym.free
mov r8, qword [rsp + 0x50]
lea rsi, [rsp + 0x170]
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 + 0x40]
xor edx, edx
mov qword [rsp + 0x66], 0
mov word [rsp + 0x6e], dx
mov byte [rsp + 0x66], 0x81
call sym.strlen
mov r13, rax
cmp rax, 0x7d
jbe 0x14001399e
cmp rax, 0xffff
ja 0x140013aca
rol ax, 8
mov byte [rsp + 0x67], 0x7e
mov r9d, 4
mov r8d, 4
mov word [rsp + 0x68], ax
mov rcx, rsi
mov dword [rsp + 0x5c], r9d
mov qword [rsp + 0x50], r8
call sym.strlen
mov r8, qword [rsp + 0x50]
mov ecx, 1
mov r12, rax
lea rdx, [r8 + r13 + 1]
add rdx, rax
call sym.calloc
mov rbp, rax
test rax, rax
je 0x140012c71
cmp r12d, 8
mov r8, qword [rsp + 0x50]
mov r9d, dword [rsp + 0x5c]
jae 0x140013a6b
test r12b, 4
jne 0x140013b1b
test r12d, r12d
je 0x1400138c9
movzx eax, byte [rsp + 0x170]
mov byte [rbp], al
test r12b, 2
jne 0x140013b35
lea rdx, [rbp + r12]
lea rcx, [rsp + 0x66]
mov eax, r8d
cmp r8d, 8
jae 0x140013a1a
test r8b, 4
jne 0x140013b06
test eax, eax
je 0x1400138ff
movzx r10d, byte [rsp + 0x66]
mov byte [rdx], r10b
test al, 2
jne 0x140013b47
lea rcx, [rdx + r8]
mov rdx, qword [rsp + 0x40]
mov r8, r13
mov dword [rsp + 0x50], r9d
call sym.memcpy
mov r9d, dword [rsp + 0x50]
mov rcx, rbx
mov rdx, rbp
lea eax, [r9 + r13 + 1]
xor r9d, r9d
lea r8d, [rax + r12]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, rbp
call sym.free
jmp 0x140012c71
vzeroupper
jmp 0x140013053
vpxor xmm3, xmm3, xmm3
xor r11d, r11d
xor r8d, r8d
jmp 0x140012f5e
mov ecx, 1
jmp 0x140012809
mov edx, 0xd
mov rcx, rax
call sym.strchr
test rax, rax
je 0x140013975
mov byte [rax], 0
mov rcx, rdi
mov edx, 0x3a
call sym.strchr
cmp byte [rax + 1], 0x20
lea rdi, [rax + 1]
jne 0x140013382
add rdi, 1
cmp byte [rdi], 0x20
je 0x140013990
jmp 0x140013382
mov byte [rsp + 0x67], al
mov r9d, 2
mov r8d, 2
jmp 0x140013859
mov r8, rdi
lea rdx, str.clientkey:__s
mov ecx, 5
call sym.applog
jmp 0x140013632
mov byte [rsp + rdx + 0x270], 0
mov esi, eax
jmp 0x140012b9a
mov ecx, 0x3d
mov word [rsp + 0xcb], cx
jmp 0x1400137e3
mov ecx, 1
call sym.proper_exit
movsx ebx, byte [r13]
jmp 0x140012823
mov ecx, 1
call sym.proper_exit
mov rax, qword [str.p_2_]
mov rdx, qword [rax]
jmp 0x1400127d4
mov rax, qword [rsp + 0x66]
lea r11, [rdx + 8]
and r11, 0xfffffffffffffff8
mov qword [rdx], rax
mov rax, qword [rcx + r8 - 8]
mov qword [rdx + r8 - 8], rax
mov rax, rdx
sub rax, r11
sub rcx, rax
add eax, r8d
and eax, 0xfffffff8
cmp eax, 8
jb 0x1400138ff
and eax, 0xfffffff8
xor r10d, r10d
mov esi, r10d
add r10d, 8
mov rdi, qword [rcx + rsi]
mov qword [r11 + rsi], rdi
cmp r10d, eax
jb 0x140013a52
jmp 0x1400138ff
mov eax, r12d
lea ecx, [r12 - 1]
mov rdi, rbp
mov rdx, qword [rsi + rax - 8]
shr ecx, 3
mov qword [rbp + rax - 8], rdx
rep movsq qword [rdi], qword [rsi]
jmp 0x1400138c9
cmp qword [rsp + 0x40], 0
je 0x140013ae8
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 0x140012c71
mov esi, 2
jmp 0x140013521
mov esi, 3
jmp 0x140013521
bswap rax
mov byte [rsp + 0x67], 0x7f
mov r9d, 0xa
mov r8d, 0xa
mov qword [rsp + 0x68], rax
jmp 0x140013859
xor r9d, r9d
mov r8d, 1
lea rdx, [0x1402b958d]
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_send]
jmp 0x140012c71
mov r10d, dword [rsp + 0x66]
mov dword [rdx], r10d
mov ecx, dword [rcx + rax - 4]
mov dword [rdx + rax - 4], ecx
jmp 0x1400138ff
mov eax, dword [rsp + 0x170]
mov dword [rbp], eax
mov eax, r12d
mov edx, dword [rsi + rax - 4]
mov dword [rbp + rax - 4], edx
jmp 0x1400138c9
mov eax, r12d
movzx edx, word [rsi + rax - 2]
mov word [rbp + rax - 2], dx
jmp 0x1400138c9
movzx ecx, word [rcx + rax - 2]
mov word [rdx + rax - 2], cx
jmp 0x1400138ff