Function at 0x411e20
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, 0x4278
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.00678900
sub rsp, rax
mov rax, qword [0x006e3980]
mov r12, qword [rax]
mov rax, qword [0x006e3990]
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x411e64
mov rax, qword [0x006e39f0]
cmp byte [rax], 0
jne 0x412808
test r12, r12
je 0x411fef
mov rcx, r12
call sub.msvcrt.dll_strlen
mov ecx, 1
lea rdx, [rax + 1]
call sub.msvcrt.dll_calloc
mov rdx, r12
mov qword [rsp + 0x48], rax
test rax, rax
je 0x41310d
mov rdi, qword [rsp + 0x48]
mov rcx, rdi
call sub.msvcrt.dll_strcpy
movzx esi, byte [rdi]
test sil, sil
je 0x413050
mov edx, esi
mov ecx, 1
nop dword [rax]
add rax, 1
cmp dl, 0x2c
sete dl
movzx edx, dl
add ecx, edx
movzx edx, byte [rax]
test dl, dl
jne 0x411eb8
movsxd rcx, ecx
mov edx, 0xc
call sub.msvcrt.dll_calloc
mov qword [0x006f6718], rax
test rax, rax
je 0x4130f6
mov r15, qword [rsp + 0x48]
mov r13, qword [sym.imp.msvcrt.dll_toupper]
xor ebx, ebx
mov dword [0x006810d0], 0
test sil, sil
je 0x411fdd
nop dword [rax]
cmp sil, 0x20
jne 0x411f2f
nop word cs:[rax + rax]
movzx esi, byte [r15 + 1]
add r15, 1
cmp sil, 0x20
je 0x411f20
cmp sil, 9
je 0x411f20
lea rbp, [r15 + 1]
cmp sil, 0x2c
je 0x411fcd
mov edx, 0x2c
mov rcx, r15
xor ebp, ebp
call sub.msvcrt.dll_strchr
test rax, rax
je 0x411f5e
mov byte [rax], 0
lea rbp, [rax + 1]
mov ecx, 0x52
call r13
movsx r14d, byte [r15]
mov esi, eax
mov ecx, r14d
call qword [sym.imp.msvcrt.dll_isalpha]
test eax, eax
je 0x411f84
cmp byte [r15 + 1], 0x3a
je 0x412458
movsxd rax, ebx
mov ecx, 8
lea rdi, str.0.0.0.0
lea rdx, [rax + rax*2]
mov rax, qword [0x006f6718]
lea r14, [rax + rdx*4]
mov byte [r14 + 8], sil
mov rsi, r15
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x412390
mov qword [r14], 0
add ebx, 1
mov dword [0x006810d0], ebx
test rbp, rbp
je 0x411fdd
movzx esi, byte [rbp]
mov r15, rbp
test sil, sil
jne 0x411f10
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
test ebx, ebx
je 0x4127e8
mov edx, 8
mov ecx, 1
call sub.msvcrt.dll_calloc
mov ecx, 0x3e8
mov rbp, qword [sym.imp.KERNEL32.dll_Sleep]
mov rdi, rax
mov qword [rsp + 0x48], rax
call rbp
xor r8d, r8d
mov edx, 1
mov ecx, 2
call qword [sym.imp.WS2_32.dll_socket]
mov qword [rdi], rax
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x412a60
mov r9d, 2
mov rcx, r12
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov word [rsp + 0x70], r9w
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x74], eax
cmp eax, 0xffffffff
je 0x412a90
movzx esi, word [rsp + 0x50]
lea r14, [rsp + 0x70]
mov ecx, esi
call qword [sym.imp.WS2_32.dll_htons]
mov r12, qword [sym.imp.msvcrt.dll__time64]
xor ecx, ecx
mov word [rsp + 0x72], ax
call r12
mov r15, qword [sym.imp.WS2_32.dll_bind]
mov rdi, rax
jmp 0x4120f5
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
xor ecx, ecx
mov rbx, rax
call r12
sub rax, rdi
cmp rax, 0x3d
jg 0x412a20
mov rax, qword [0x006e3a90]
cmp byte [rax], 0
je 0x4120da
mov rax, qword [0x006e39f0]
cmp byte [rax], 0
je 0x4120ee
mov r8d, esi
lea rdx, str.API_bind_to_port__d_failed___trying_again_in_20sec
mov ecx, 2
call fcn.0040ae30
mov ecx, 0x4e20
call rbp
mov r8d, 0x10
mov rdx, r14
mov rcx, r13
call r15
test eax, eax
js 0x4120a0
mov edx, 0xa
mov rcx, r13
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x412b30
mov edx, 0x4001
mov ecx, 1
call sub.msvcrt.dll_calloc
mov qword [0x006f6710], rax
mov edx, dword [0x006f6700]
test edx, edx
jne 0x412411
lea rbp, [rsp + 0x60]
lea rbx, [rsp + 0x80]
lea r15, str.127.0.0.1
mov dword [rsp + 0x60], 0x10
mov r8, rbp
mov rdx, rbx
mov rcx, r13
call qword [sym.imp.WS2_32.dll_accept]
movsxd r12, eax
cmp eax, 0xffffffff
je 0x412ac0
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov r14, rax
mov rax, qword [0x006e3980]
cmp qword [rax], 0
je 0x412330
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [0x006810d0]
test ecx, ecx
jle 0x4123d0
mov rdx, qword [0x006f6718]
sub ecx, 1
lea rcx, [rcx + rcx*2]
lea r8, [rdx + rcx*4 + 0xc]
jmp 0x4121dd
add rdx, 0xc
cmp rdx, r8
je 0x4123d0
mov ecx, dword [rdx + 4]
and ecx, eax
cmp ecx, dword [rdx]
jne 0x4121d0
mov rdi, qword [0x006e39f0]
cmp byte [rdi], 0
je 0x412202
mov rax, qword [0x006e3a60]
cmp byte [rax], 0
jne 0x412369
lea r14, [rsp + 0x270]
xor r9d, r9d
mov r8d, 0x400
mov rcx, r12
mov rdx, r14
call qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
cmp eax, 0xffffffff
je 0x412790
test eax, eax
jle 0x4127a0
lea eax, [rax - 1]
movsxd rdx, eax
cmp byte [rsp + rdx + 0x270], 0xa
je 0x412af0
movsxd rax, ebx
mov byte [rsp + rax + 0x270], 0
lea rdx, str.GET__
mov rcx, r14
call sub.msvcrt.dll_strstr
mov r15, rax
test rax, rax
je 0x41227d
mov rcx, r15
call sub.msvcrt.dll_strlen
cmp rax, 5
ja 0x412820
xor r15d, r15d
mov edx, 0x7c
mov rcx, r14
xor esi, esi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x412298
mov byte [rax], 0
lea rsi, [rax + 1]
cmp byte [rdi], 0
jne 0x4127b0
mov rdx, qword [str.summary]
mov rcx, r14
call sub.msvcrt.dll_strcmp
movsxd rbx, eax
test ebx, ebx
je 0x412b70
mov rdx, qword [str.threads]
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4131bd
mov rdx, qword [str.seturl]
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x4131c7
mov rdx, qword [str.quit]
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x412b66
mov rdx, qword [str.help]
mov rcx, r14
mov ebx, 4
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x412b70
mov rcx, r12
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x412135
mov rdi, r15
mov ecx, 0xa
mov rsi, r14
repe cmpsb byte [rsi], byte [rdi]
mov rdi, qword [0x006e39f0]
seta al
sbb al, 0
cmp byte [rdi], 0
movsx eax, al
je 0x412448
mov rdx, qword [0x006e3a60]
cmp byte [rdx], 0
je 0x412448
test eax, eax
jne 0x4123e8
lea r9, str.Accepted
mov r8, r14
mov ecx, 5
lea rdx, str.API:_connection_from__s____s
call fcn.0040ae30
jmp 0x412202
mov edx, 0x2f
mov rcx, r15
call sub.msvcrt.dll_strchr
test rax, rax
je 0x412780
mov byte [rax], 0
lea rcx, [rax + 1]
call sub.msvcrt.dll_atoi
lea r9d, [rax - 1]
cmp r9d, 0x1f
jbe 0x412498
mov ebx, dword [0x006810d0]
jmp 0x411fc8
mov rax, qword [0x006e39f0]
cmp byte [rax], 0
je 0x412403
mov rax, qword [0x006e3a60]
cmp byte [rax], 0
je 0x412403
lea r9, str.Ignored
mov r8, r14
mov ecx, 5
lea rdx, str.API:_connection_from__s____s
call fcn.0040ae30
mov eax, dword [0x006f6700]
test eax, eax
je 0x412157
mov rcx, r13
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
mov rcx, qword [0x006f6710]
call sub.msvcrt.dll_free
nop
add rsp, 0x4278
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test eax, eax
jne 0x412403
jmp 0x412202
mov ecx, r14d
call r13
mov ecx, 0x57
mov edi, eax
call r13
cmp edi, eax
je 0x412489
mov ecx, 0x41
call r13
mov edx, edi
sub edx, eax
movsxd rax, edx
lea rdx, [0x0070d0a0]
cmp qword [rdx + rax*8], 0
je 0x41248b
mov esi, edi
add r15, 2
jmp 0x411f84
movsxd rdx, dword [0x006810d0]
lea rcx, [rdx + rdx*2]
mov rdx, qword [0x006f6718]
lea r14, [rdx + rcx*4]
lea ecx, [rax + 1]
cmp eax, 6
jbe 0x41305a
vmovd xmm3, eax
mov edx, ecx
vpxor xmm4, xmm4, xmm4
xor eax, eax
vpbroadcastd ymm3, xmm3
vpaddd ymm3, ymm3, ymmword [0x006884c0]
shr edx, 3
nop word cs:[rax + rax]
vmovdqu ymm1, ymm3
vmovdqu ymm5, ymmword [0x00688520]
add eax, 1
vpaddd ymm3, ymm3, ymmword [0x006884e0]
vpsrad ymm0, ymm1, 0x1f
vpsrld ymm2, ymm0, 0x1d
vpaddd ymm0, ymm2, ymm1
vpand ymm0, ymm0, ymmword [0x00688500]
vpsrad ymm1, ymm1, 3
vpsubd ymm0, ymm0, ymm2
vpsllvd ymm0, ymm5, ymm0
vmovdqu ymm5, ymmword [0x00688540]
vpsubd ymm1, ymm5, ymm1
vpslld ymm1, ymm1, 3
vpsllvd ymm0, ymm0, ymm1
vpor ymm4, ymm4, ymm0
cmp eax, edx
jne 0x4124e0
vextracti128 xmm0, ymm4, 1
mov eax, ecx
mov edx, r9d
vpor xmm4, xmm0, xmm4
and eax, 0xfffffff8
vpsrldq xmm0, xmm4, 8
sub edx, eax
vpor xmm4, xmm4, xmm0
vpsrldq xmm0, xmm4, 4
vpor xmm4, xmm4, xmm0
vmovd r8d, xmm4
cmp eax, ecx
je 0x412b28
mov eax, edx
mov r9d, edx
sar eax, 0x1f
sar r9d, 3
shr eax, 0x1d
lea ecx, [rdx + rax]
and ecx, 7
sub ecx, eax
mov eax, 1
shl eax, cl
mov ecx, 3
sub ecx, r9d
shl ecx, 3
shl eax, cl
or r8d, eax
lea eax, [rdx - 1]
test edx, edx
js 0x412b28
vzeroupper
cdq
mov r9d, 3
shr edx, 0x1d
mov edi, r9d
lea ecx, [rax + rdx]
and ecx, 7
sub ecx, edx
mov edx, 1
mov r10d, edx
shl r10d, cl
mov ecx, eax
sar ecx, 3
sub edi, ecx
mov ecx, edi
shl ecx, 3
shl r10d, cl
or r8d, r10d
lea r10d, [rax - 1]
test eax, eax
js 0x4126fc
mov r11d, r10d
mov edi, r9d
sar r11d, 0x1f
shr r11d, 0x1d
lea ecx, [r10 + r11]
and ecx, 7
sub ecx, r11d
mov r11d, edx
shl r11d, cl
mov ecx, r10d
sar ecx, 3
sub edi, ecx
mov ecx, edi
shl ecx, 3
shl r11d, cl
or r8d, r11d
lea r11d, [rax - 2]
test r10d, r10d
js 0x4126fc
mov r10d, r11d
mov ebx, r9d
sar r10d, 0x1f
shr r10d, 0x1d
lea ecx, [r11 + r10]
and ecx, 7
sub ecx, r10d
mov r10d, edx
shl r10d, cl
mov ecx, r11d
sar ecx, 3
sub ebx, ecx
mov ecx, ebx
shl ecx, 3
shl r10d, cl
or r8d, r10d
lea r10d, [rax - 3]
test r11d, r11d
js 0x4126fc
mov r11d, r10d
mov edi, r9d
sar r11d, 0x1f
shr r11d, 0x1d
lea ecx, [r10 + r11]
and ecx, 7
sub ecx, r11d
mov r11d, edx
shl r11d, cl
mov ecx, r10d
sar ecx, 3
sub edi, ecx
mov ecx, edi
shl ecx, 3
shl r11d, cl
or r8d, r11d
lea r11d, [rax - 4]
test r10d, r10d
js 0x4126fc
mov r10d, r11d
mov edi, r9d
sub eax, 5
sar r10d, 0x1f
shr r10d, 0x1d
lea ecx, [r11 + r10]
and ecx, 7
sub ecx, r10d
mov r10d, edx
shl r10d, cl
mov ecx, r11d
sar ecx, 3
sub edi, ecx
mov ecx, edi
shl ecx, 3
shl r10d, cl
or r8d, r10d
test r11d, r11d
js 0x4126fc
mov r10d, eax
sar r10d, 0x1f
shr r10d, 0x1d
lea ecx, [rax + r10]
sar eax, 3
and ecx, 7
sub ecx, r10d
shl edx, cl
mov ecx, r9d
sub ecx, eax
shl ecx, 3
shl edx, cl
or r8d, edx
mov dword [r14 + 4], r8d
mov dword [r14], 0
mov edi, 0x18
xor esi, esi
jmp 0x412718
cmp esi, 3
jg 0x412773
mov r15, r14
mov edx, 0x2e
mov rcx, r15
xor r14d, r14d
call sub.msvcrt.dll_strchr
test rax, rax
je 0x412734
mov byte [rax], 0
lea r14, [rax + 1]
mov rcx, r15
call sub.msvcrt.dll_atoi
cmp eax, 0xff
ja 0x4123c0
movsxd rdx, dword [0x006810d0]
add esi, 1
lea rcx, [rdx + rdx*2]
mov rbx, rdx
mov rdx, qword [0x006f6718]
lea rdx, [rdx + rcx*4]
mov ecx, edi
sub edi, 8
shl eax, cl
or eax, dword [rdx]
mov dword [rdx], eax
test r14, r14
jne 0x412710
and eax, dword [rdx + 4]
mov dword [rdx], eax
jmp 0x411fbf
mov dword [r14 + 4], 0xffffffff
jmp 0x412700
mov byte [rsp + 0x270], 0
jmp 0x412135
je 0x412246
jmp 0x412251
mov rax, qword [0x006e3a60]
cmp byte [rax], 0
je 0x4122a1
test ebx, ebx
jle 0x4122a1
mov r9, rsi
mov r8, r14
mov ecx, 5
lea rdx, str.API:_exec_command__s__s_
call fcn.0040ae30
jmp 0x4122a1
lea r8, str.___API_will_not_be_available
lea rdx, str.API_not_running__no_valid_IPs_specified__s
mov ecx, 2
call fcn.0040ae30
jmp 0x411fef
lea rdx, str.API_disabled
mov ecx, 5
call fcn.0040ae30
jmp 0x412431
lea rsi, [rsp + 0x170]
lea rcx, [r15 + 5]
mov qword [rsp + 0x170], 0
lea rdx, [0x006880e0]
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 sub.msvcrt.dll_sscanf
mov edx, 0x2f
mov rcx, rsi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x4129e5
mov byte [rax], 0x7c
mov edx, 0x2f
mov rcx, rsi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x4129e5
mov byte [rax], 0
mov rcx, r15
lea rdx, str.Sec_WebSocket_Key
call sub.msvcrt.dll_strstr
mov r15, rax
test rax, rax
jne 0x413084
mov r8, rsi
lea rdx, [0x00688317]
mov rcx, r14
call sub.msvcrt.dll_sprintf
mov ebx, eax
jmp 0x41227d
lea rax, str.___API_will_not_be_available
mov r9, rbx
mov r8d, esi
mov ecx, 2
mov qword [rsp + 0x20], rax
lea rdx, str.API_bind_to_port__d_failed___s__s
call fcn.0040ae30
mov rcx, qword [rsp + 0x48]
add rsp, 0x4278
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sub.msvcrt.dll_free
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea r9, str.___API_will_not_be_available
mov ecx, 1
lea rdx, str.API_initialisation_failed___s__s
mov r8, rax
call fcn.0040ae30
jmp 0x412431
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_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 fcn.0040ae30
jmp 0x412431
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
lea r9, str.___API_will_not_be_available
mov ecx, 1
lea rdx, str.API_failed___s__s
mov r8, rax
call fcn.0040ae30
jmp 0x412411
mov byte [rsp + rdx + 0x270], 0
test eax, eax
je 0x413040
lea edx, [rbx - 2]
mov ebx, eax
movsxd rdx, edx
cmp byte [rsp + rdx + 0x270], 0xd
jne 0x412246
mov byte [rsp + rdx + 0x270], 0
jmp 0x412246
vzeroupper
jmp 0x4126fc
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_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 fcn.0040ae30
mov rcx, r13
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x412a43
mov ebx, 3
nop dword [rax + rax]
test rsi, rsi
je 0x412b90
cmp byte [rsi], 0
je 0x412b90
mov rcx, rsi
call sub.msvcrt.dll_strlen
lea rax, [rsi + rax - 1]
cmp byte [rax], 0x7c
jne 0x412b90
mov byte [rax], 0
nop
shl rbx, 4
lea rax, str.summary
mov rcx, rsi
call qword [rax + rbx + 8]
mov qword [rsp + 0x58], rax
test r15, r15
je 0x413192
mov rax, qword [0x006e3a60]
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 0x4130dd
lea r14, [rsp + 0xf0]
mov r8, r15
lea rdx, str._s258EAFA5_E914_47DA_95CA_C5AB0DC85B11
mov rcx, r14
call sub.msvcrt.dll_sprintf
mov r8, r14
mov edx, dword [r8]
add r8, 4
lea eax, [rdx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x412c9d
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [r8 + 2]
cmove r8, rdx
mov rdx, r14
mov ebx, eax
add bl, al
lea rbx, [rsp + 0x90]
sbb r8, 3
mov rcx, rbx
sub r8, r14
call fcn.0056a490
mov edx, 0x1e
mov ecx, 1
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
call sub.msvcrt.dll_calloc
mov r15, rax
test rax, rax
je 0x412e88
mov ebp, 0x14
xor r14d, r14d
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea rdi, str._c_c_c_c
nop word cs:[rax + rax]
movzx eax, byte [rbx + 1]
movzx r8d, byte [rbx]
lea rcx, [r15 + r14]
mov r10d, eax
shl eax, 2
shr r10b, 4
and eax, 0x3c
cmp ebp, 2
je 0x412fe1
movzx edx, byte [rbx + 2]
mov r9d, r8d
shl r8d, 4
sub ebp, 3
and r8d, 0x30
shr r9b, 2
add rbx, 3
add r14, 4
mov r11, rdx
shr dl, 6
or r10d, r8d
and r9d, 0x3f
or edx, eax
movsx r10, r10b
and r11d, 0x3f
movsx r9d, byte [rsi + r9]
movsx rax, dl
movsx r11d, byte [rsi + r11]
mov r8, rdi
mov edx, 5
movsx eax, byte [rsi + rax]
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x28], eax
movsx eax, byte [rsi + r10]
mov dword [rsp + 0x20], eax
call fcn.00411df0
test ebp, ebp
jne 0x412d90
mov rbx, qword [rsp + 0x50]
mov rdx, r14
mov r9, r15
lea r8, [0x00688317]
mov rcx, rbx
call fcn.00411a70
mov rdx, rbx
mov ecx, dword [rdx]
add rdx, 4
lea eax, [rcx - 0x1010101]
not ecx
and eax, ecx
and eax, 0x80808080
je 0x412e3d
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea rcx, [rdx + 2]
cmove rdx, rcx
mov ebx, eax
add bl, al
sbb rdx, 3
sub rdx, qword [rsp + 0x50]
cmp rdx, 0x1b
je 0x4131f0
mov rcx, r15
call sub.msvcrt.dll_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 sub.msvcrt.dll_sprintf
xor ecx, ecx
mov qword [rsp + 0x66], 0
mov word [rsp + 0x6e], cx
mov rcx, qword [rsp + 0x58]
mov byte [rsp + 0x66], 0x81
call sub.msvcrt.dll_strlen
mov r15, rax
cmp rax, 0x7d
jbe 0x4130c7
cmp rax, 0xffff
ja 0x4131d1
rol ax, 8
mov byte [rsp + 0x67], 0x7e
mov ebx, 4
mov word [rsp + 0x68], ax
mov dword [rsp + 0x50], 4
mov rbp, rsi
mov edx, dword [rbp]
add rbp, 4
lea eax, [rdx - 0x1010101]
not edx
and eax, edx
and eax, 0x80808080
je 0x412efa
mov edx, eax
mov ecx, 1
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [rbp + 2]
cmove rbp, rdx
lea rdx, [rbx + r15 + 1]
mov edi, eax
add dil, al
sbb rbp, 3
sub rbp, rsi
add rdx, rbp
call sub.msvcrt.dll_calloc
mov r14, rax
test rax, rax
je 0x41231c
mov eax, ebp
cmp ebp, 8
jae 0x413126
test bpl, 4
jne 0x413235
test eax, eax
je 0x412f78
movzx edx, byte [rsi]
mov byte [r14], dl
test al, 2
jne 0x413248
lea rdx, [r14 + rbp]
lea r9, [rsp + 0x66]
mov eax, ebx
cmp ebx, 8
jae 0x413145
test bl, 4
jne 0x413222
test eax, eax
je 0x412fa7
movzx ecx, byte [r9]
mov byte [rdx], cl
test al, 2
jne 0x413258
lea rcx, [rdx + rbx]
mov rdx, qword [rsp + 0x58]
mov r8, r15
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x50]
mov rcx, r12
xor r9d, r9d
mov rdx, r14
lea eax, [rax + r15 + 1]
lea r8d, [rax + rbp]
call qword [sym.imp.WS2_32.dll_send]
mov rcx, r14
call sub.msvcrt.dll_free
jmp 0x41231c
mov ebx, r10d
mov edx, r8d
shl r8d, 4
mov r10, rcx
and r8d, 0x30
mov ecx, ebx
movsx rax, al
shr dl, 2
movsx eax, byte [rsi + rax]
or ecx, r8d
and edx, 0x3f
add r14, 4
movsx rcx, cl
movsx r9d, byte [rsi + rdx]
lea r8, str._c_c_c
mov edx, 5
mov dword [rsp + 0x28], eax
movsx eax, byte [rsi + rcx]
mov rcx, r10
mov dword [rsp + 0x20], eax
call fcn.00411df0
jmp 0x412e20
xor ebx, ebx
jmp 0x412246
mov ecx, 1
jmp 0x411ed1
mov ecx, r9d
mov r8d, 1
mov edx, r9d
sub eax, 2
and ecx, 7
sar edx, 3
shl r8d, cl
mov ecx, 3
sub ecx, edx
shl ecx, 3
shl r8d, cl
jmp 0x4125a8
mov edx, 0xd
mov rcx, rax
call sub.msvcrt.dll_strchr
test rax, rax
je 0x413099
mov byte [rax], 0
mov rcx, r15
mov edx, 0x3a
call sub.msvcrt.dll_strchr
cmp byte [rax + 1], 0x20
lea r15, [rax + 1]
jne 0x412a00
nop dword [rax]
add r15, 1
cmp byte [r15], 0x20
je 0x4130b8
jmp 0x412a00
mov byte [rsp + 0x67], al
mov ebx, 2
mov dword [rsp + 0x50], 2
jmp 0x412ef7
mov r8, r15
lea rdx, str.clientkey:__s
mov ecx, 5
call fcn.0040ae30
jmp 0x412c80
mov ecx, 1
call fcn.004042c0
mov rax, qword [rsp + 0x48]
movzx esi, byte [rax]
jmp 0x411eeb
mov ecx, 1
call fcn.004042c0
mov rax, qword [0x006e3980]
mov rdx, qword [rax]
jmp 0x411e94
mov eax, ebp
mov rdi, r14
mov rdx, qword [rsi + rax - 8]
mov qword [r14 + rax - 8], rdx
lea eax, [rbp - 1]
shr eax, 3
mov ecx, eax
rep movsq qword [rdi], qword [rsi]
jmp 0x412f78
mov rax, qword [rsp + 0x66]
lea r10, [rdx + 8]
and r10, 0xfffffffffffffff8
mov qword [rdx], rax
mov rax, qword [r9 + rbx - 8]
mov qword [rdx + rbx - 8], rax
mov rax, rdx
sub rax, r10
sub r9, rax
add eax, ebx
and eax, 0xfffffff8
cmp eax, 8
jb 0x412fa7
and eax, 0xfffffff8
xor ecx, ecx
mov r8d, ecx
add ecx, 8
mov r11, qword [r9 + r8]
mov qword [r10 + r8], r11
cmp ecx, eax
jb 0x41317b
jmp 0x412fa7
cmp qword [rsp + 0x58], 0
je 0x413204
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_strlen
xor r9d, r9d
mov rdx, rbx
mov rcx, r12
lea r8d, [rax + 1]
call qword [sym.imp.WS2_32.dll_send]
jmp 0x41231c
mov ebx, 1
jmp 0x412b70
mov ebx, 2
jmp 0x412b70
bswap rax
mov byte [rsp + 0x67], 0x7f
mov ebx, 0xa
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x50], 0xa
jmp 0x412ef7
mov r8d, 0x3d
mov word [rsp + 0xcb], r8w
jmp 0x412e80
xor r9d, r9d
mov r8d, 1
lea rdx, [0x00688405]
mov rcx, r12
call qword [sym.imp.WS2_32.dll_send]
jmp 0x41231c
mov ecx, dword [r9]
mov dword [rdx], ecx
mov ecx, dword [r9 + rax - 4]
mov dword [rdx + rax - 4], ecx
jmp 0x412fa7
mov edx, dword [rsi]
mov dword [r14], edx
mov edx, dword [rsi + rax - 4]
mov dword [r14 + rax - 4], edx
jmp 0x412f78
movzx edx, word [rsi + rax - 2]
mov word [r14 + rax - 2], dx
jmp 0x412f78
movzx ecx, word [r9 + rax - 2]
mov word [rdx + rax - 2], cx
jmp 0x412fa7