Function at 0x411dd0
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.006eaeb0
sub rsp, rax
mov rax, qword [0x0075b000]
mov r12, qword [rax]
mov rax, qword [0x0075b010]
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
test eax, eax
jne 0x411e14
mov rax, qword [0x0075b070]
cmp byte [rax], 0
jne 0x4127e8
test r12, r12
je 0x411f9d
mov rcx, r12
call sub.msvcrt.dll_strlen
lea rdx, [rax + 1]
mov ecx, 1
call sub.msvcrt.dll_calloc
mov qword [rsp + 0x48], rax
mov rdx, r12
test rax, rax
je 0x41310a
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]
inc rax
cmp dl, 0x2c
sete dl
movzx edx, dl
add ecx, edx
movzx edx, byte [rax]
test dl, dl
jne 0x411e68
movsxd rcx, ecx
mov edx, 0xc
call sub.msvcrt.dll_calloc
mov qword [0x0076f718], rax
test rax, rax
je 0x4130f3
mov dword [0x006f30d0], 0
mov r15, qword [rsp + 0x48]
mov r13, qword [sym.imp.msvcrt.dll_toupper]
xor ebx, ebx
test sil, sil
je 0x411f8b
nop dword [rax + rax]
cmp sil, 0x20
jne 0x411ede
nop word cs:[rax + rax]
movzx esi, byte [r15 + 1]
inc r15
cmp sil, 0x20
je 0x411ed0
cmp sil, 9
je 0x411ed0
lea rbp, [r15 + 1]
cmp sil, 0x2c
je 0x411f7b
mov edx, 0x2c
mov rcx, r15
call sub.msvcrt.dll_strchr
xor ebp, ebp
test rax, rax
je 0x411f0d
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 0x411f33
cmp byte [r15 + 1], 0x3a
je 0x412408
movsxd rax, ebx
lea rdx, [rax + rax*2]
mov rax, qword [0x0076f718]
mov ecx, 8
lea r14, [rax + rdx*4]
mov byte [r14 + 8], sil
lea rdi, str.0.0.0.0
mov rsi, r15
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x412340
mov qword [r14], 0
inc ebx
mov dword [0x006f30d0], ebx
test rbp, rbp
je 0x411f8b
movzx esi, byte [rbp]
mov r15, rbp
test sil, sil
jne 0x411ec0
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
test ebx, ebx
je 0x4127c8
mov edx, 8
mov ecx, 1
call sub.msvcrt.dll_calloc
mov rsi, qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x3e8
mov rdi, rax
mov qword [rsp + 0x58], rax
call rsi
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 0x412a48
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov r9d, 2
mov rcx, r12
mov word [rsp + 0x70], r9w
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x74], eax
cmp eax, 0xffffffff
je 0x412a78
mov eax, dword [rsp + 0x50]
lea r12, [rsp + 0x70]
movzx ecx, ax
movzx r15d, ax
call qword [sym.imp.WS2_32.dll_htons]
mov rdi, qword [sym.imp.msvcrt.dll__time64]
xor ecx, ecx
mov word [rsp + 0x72], ax
call rdi
mov rbx, rax
mov rbp, qword [sym.imp.WS2_32.dll_bind]
mov r14, qword [sym.imp.msvcrt.dll__errno]
jmp 0x4120ab
call r14
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
xor ecx, ecx
mov qword [rsp + 0x48], rax
call rdi
sub rax, rbx
cmp rax, 0x3d
jg 0x412a00
mov rax, qword [0x0075b110]
cmp byte [rax], 0
je 0x412090
mov rax, qword [0x0075b070]
cmp byte [rax], 0
je 0x4120a4
mov r8d, r15d
lea rdx, str.API_bind_to_port__d_failed___trying_again_in_20sec
mov ecx, 2
call fcn.0040af80
mov ecx, 0x4e20
call rsi
mov r8d, 0x10
mov rdx, r12
mov rcx, r13
call rbp
test eax, eax
js 0x412058
mov edx, 0xa
mov rcx, r13
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x412b20
mov edx, 0x4001
mov ecx, 1
call sub.msvcrt.dll_calloc
mov qword [0x0076f710], rax
mov edx, dword [0x0076f700]
test edx, edx
jne 0x4123c1
lea rbp, [rsp + 0x60]
lea rbx, [rsp + 0x80]
lea r15, str.127.0.0.1
mov r8, rbp
mov rdx, rbx
mov rcx, r13
mov dword [rsp + 0x60], 0x10
call qword [sym.imp.WS2_32.dll_accept]
movsxd r12, eax
cmp eax, 0xffffffff
je 0x412aa8
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov r14, rax
mov rax, qword [0x0075b000]
cmp qword [rax], 0
je 0x4122e0
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [0x006f30d0]
test ecx, ecx
jle 0x412380
mov rdx, qword [0x0076f718]
dec ecx
lea rcx, [rcx + rcx*2]
lea r8, [rdx + rcx*4 + 0xc]
jmp 0x41218d
add rdx, 0xc
cmp rdx, r8
je 0x412380
mov ecx, dword [rdx + 4]
and ecx, eax
cmp ecx, dword [rdx]
jne 0x412180
mov rsi, qword [0x0075b070]
cmp byte [rsi], 0
je 0x4121b2
mov rax, qword [0x0075b0e0]
cmp byte [rax], 0
jne 0x412319
lea r14, [rsp + 0x270]
xor r9d, r9d
mov r8d, 0x400
mov rdx, r14
mov rcx, r12
call qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
cmp eax, 0xffffffff
je 0x412770
test eax, eax
jle 0x412780
lea eax, [rax - 1]
movsxd rdx, eax
cmp byte [rsp + rdx + 0x270], 0xa
je 0x412ad8
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 0x41222d
mov rcx, r15
call sub.msvcrt.dll_strlen
cmp rax, 5
ja 0x412800
xor r15d, r15d
mov edx, 0x7c
mov rcx, r14
call sub.msvcrt.dll_strchr
xor edi, edi
test rax, rax
je 0x412248
mov byte [rax], 0
lea rdi, [rax + 1]
cmp byte [rsi], 0
jne 0x412790
mov rdx, qword [str.summary]
mov rcx, r14
call sub.msvcrt.dll_strcmp
mov ebx, eax
test eax, eax
je 0x412b60
mov rdx, qword [str.threads]
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x41320e
mov rdx, qword [str.seturl]
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x413218
mov rdx, qword [str.quit]
mov rcx, r14
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x412b56
mov rdx, qword [str.help]
mov rcx, r14
call sub.msvcrt.dll_strcmp
mov ebx, 4
test eax, eax
je 0x412b60
mov rcx, r12
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x4120ea
mov rsi, r14
mov ecx, 0xa
mov rdi, r15
repe cmpsb byte [rsi], byte [rdi]
mov rsi, qword [0x0075b070]
seta al
sbb al, 0
cmp byte [rsi], 0
movsx eax, al
je 0x4123f8
mov rdx, qword [0x0075b0e0]
cmp byte [rdx], 0
je 0x4123f8
test eax, eax
jne 0x412398
lea r9, str.Accepted
mov r8, r14
lea rdx, str.API:_connection_from__s____s
mov ecx, 5
call fcn.0040af80
jmp 0x4121b2
mov edx, 0x2f
mov rcx, r15
call sub.msvcrt.dll_strchr
test rax, rax
je 0x412760
mov byte [rax], 0
lea rcx, [rax + 1]
call sub.msvcrt.dll_atoi
lea ecx, [rax - 1]
cmp ecx, 0x1f
jbe 0x412448
mov ebx, dword [0x006f30d0]
jmp 0x411f76
mov rax, qword [0x0075b070]
cmp byte [rax], 0
je 0x4123b3
mov rax, qword [0x0075b0e0]
cmp byte [rax], 0
je 0x4123b3
lea r9, str.Ignored
mov r8, r14
lea rdx, str.API:_connection_from__s____s
mov ecx, 5
call fcn.0040af80
mov eax, dword [0x0076f700]
test eax, eax
je 0x41210c
mov rcx, r13
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [rsp + 0x58]
call sub.msvcrt.dll_free
mov rcx, qword [0x0076f710]
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 0x4123b3
jmp 0x4121b2
mov ecx, r14d
call r13
mov ecx, 0x57
mov edi, eax
call r13
cmp edi, eax
je 0x412439
mov ecx, 0x41
call r13
mov edx, edi
sub edx, eax
movsxd rax, edx
lea rdx, [0x0078fda0]
cmp qword [rdx + rax*8], 0
je 0x41243b
mov esi, edi
add r15, 2
jmp 0x411f33
movsxd rdx, dword [0x006f30d0]
lea r8, [rdx + rdx*2]
mov rdx, qword [0x0076f718]
lea r14, [rdx + r8*4]
lea r8d, [rax + 1]
cmp eax, 6
jbe 0x41305a
vpbroadcastd ymm3, eax
mov edx, r8d
vpaddd ymm3, ymm3, ymmword [0x006fa4a0]
shr edx, 3
xor eax, eax
vpxor xmm4, xmm4, xmm4
nop dword [rax]
vmovdqu64 ymm1, ymm3
vpsrad ymm0, ymm1, 0x1f
vpsrld ymm2, ymm0, 0x1d
vpaddd ymm0, ymm2, ymm1
vpand ymm0, ymm0, ymmword [0x006fa4e0]
vmovdqu64 ymm5, ymmword [0x006fa500]
vpsubd ymm0, ymm0, ymm2
vpsllvd ymm0, ymm5, ymm0
vmovdqu64 ymm5, ymmword [0x006fa520]
vpsrad ymm1, ymm1, 3
vpsubd ymm1, ymm5, ymm1
vpslld ymm1, ymm1, 3
vpsllvd ymm0, ymm0, ymm1
inc eax
vpaddd ymm3, ymm3, ymmword [0x006fa4c0]
vpor ymm4, ymm4, ymm0
cmp eax, edx
jne 0x412488
vextracti128 xmm0, ymm4, 1
vpor xmm4, xmm0, xmm4
vpsrldq xmm0, xmm4, 8
vpor xmm4, xmm4, xmm0
vpsrldq xmm0, xmm4, 4
mov eax, r8d
vpor xmm4, xmm4, xmm0
and eax, 0xfffffff8
vmovd edx, xmm4
sub ecx, eax
cmp eax, r8d
je 0x412b10
mov r8d, ecx
sar r8d, 0x1f
shr r8d, 0x1d
lea eax, [rcx + r8]
and eax, 7
sub eax, r8d
mov r8d, eax
mov r9d, ecx
mov eax, 1
shlx eax, eax, r8d
sar r9d, 3
mov r8d, 3
sub r8d, r9d
shl r8d, 3
shlx eax, eax, r8d
or edx, eax
lea eax, [rcx - 1]
test ecx, ecx
js 0x412b10
vzeroupper
mov r8d, eax
sar r8d, 0x1f
mov r10d, eax
mov r9d, 3
shr r8d, 0x1d
sar r10d, 3
mov edi, r9d
lea ecx, [rax + r8]
sub edi, r10d
and ecx, 7
mov r10d, edi
sub ecx, r8d
shl r10d, 3
mov r8d, 1
shlx ecx, r8d, ecx
shlx ecx, ecx, r10d
lea r10d, [rax - 1]
or edx, ecx
test eax, eax
js 0x4126da
mov r11d, r10d
sar r11d, 0x1f
shr r11d, 0x1d
lea ecx, [r10 + r11]
and ecx, 7
sub ecx, r11d
mov r11d, r10d
sar r11d, 3
mov edi, r9d
sub edi, r11d
mov r11d, edi
shl r11d, 3
shlx ecx, r8d, ecx
shlx ecx, ecx, r11d
lea r11d, [rax - 2]
or edx, ecx
test r10d, r10d
js 0x4126da
mov r10d, r11d
sar r10d, 0x1f
shr r10d, 0x1d
lea ecx, [r11 + r10]
and ecx, 7
sub ecx, r10d
mov r10d, r11d
sar r10d, 3
mov ebx, r9d
sub ebx, r10d
mov r10d, ebx
shl r10d, 3
shlx ecx, r8d, ecx
shlx ecx, ecx, r10d
lea r10d, [rax - 3]
or edx, ecx
test r11d, r11d
js 0x4126da
mov r11d, r10d
sar r11d, 0x1f
shr r11d, 0x1d
lea ecx, [r10 + r11]
and ecx, 7
sub ecx, r11d
mov r11d, r10d
sar r11d, 3
mov edi, r9d
sub edi, r11d
mov r11d, edi
shl r11d, 3
shlx ecx, r8d, ecx
shlx ecx, ecx, r11d
lea r11d, [rax - 4]
or edx, ecx
test r10d, r10d
js 0x4126da
mov r10d, r11d
sar r10d, 0x1f
shr r10d, 0x1d
lea ecx, [r11 + r10]
and ecx, 7
sub ecx, r10d
mov r10d, r11d
sar r10d, 3
mov ebx, r9d
sub ebx, r10d
mov r10d, ebx
shl r10d, 3
shlx ecx, r8d, ecx
sub eax, 5
shlx ecx, ecx, r10d
or edx, ecx
test r11d, r11d
js 0x4126da
mov r10d, eax
sar r10d, 0x1f
shr r10d, 0x1d
lea ecx, [rax + r10]
sar eax, 3
and ecx, 7
sub r9d, eax
sub ecx, r10d
shl r9d, 3
shlx r8d, r8d, ecx
shlx r8d, r8d, r9d
or edx, r8d
mov dword [r14 + 4], edx
mov dword [r14], 0
mov edi, 0x18
xor esi, esi
jmp 0x4126f8
cmp esi, 3
jg 0x412753
mov r15, r14
mov edx, 0x2e
mov rcx, r15
call sub.msvcrt.dll_strchr
xor r14d, r14d
test rax, rax
je 0x412714
mov byte [rax], 0
lea r14, [rax + 1]
mov rcx, r15
call sub.msvcrt.dll_atoi
cmp eax, 0xff
ja 0x41236e
movsxd rdx, dword [0x006f30d0]
shlx eax, eax, edi
lea rcx, [rdx + rdx*2]
mov rbx, rdx
mov rdx, qword [0x0076f718]
inc esi
lea rdx, [rdx + rcx*4]
or eax, dword [rdx]
mov dword [rdx], eax
sub edi, 8
test r14, r14
jne 0x4126f0
and eax, dword [rdx + 4]
mov dword [rdx], eax
jmp 0x411f6e
mov dword [r14 + 4], 0xffffffff
jmp 0x4126de
mov byte [rsp + 0x270], 0
jmp 0x4120ea
je 0x4121f6
jmp 0x412201
mov rax, qword [0x0075b0e0]
cmp byte [rax], 0
je 0x412251
test ebx, ebx
jle 0x412251
mov r9, rdi
mov r8, r14
lea rdx, str.API:_exec_command__s__s_
mov ecx, 5
call fcn.0040af80
jmp 0x412251
lea r8, str.___API_will_not_be_available
lea rdx, str.API_not_running__no_valid_IPs_specified__s
mov ecx, 2
call fcn.0040af80
jmp 0x411f9d
lea rdx, str.API_disabled
mov ecx, 5
call fcn.0040af80
jmp 0x4123e1
lea rdi, [rsp + 0x170]
lea rcx, [r15 + 5]
lea rdx, [0x006fa0c0]
mov r8, rdi
mov qword [rsp + 0x170], 0
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, rdi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x4129c5
mov byte [rax], 0x7c
mov edx, 0x2f
mov rcx, rdi
call sub.msvcrt.dll_strchr
test rax, rax
je 0x4129c5
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 0x413085
mov r8, rdi
lea rdx, [0x006fa2f7]
mov rcx, r14
call sub.msvcrt.dll_sprintf
mov ebx, eax
jmp 0x41222d
lea rax, str.___API_will_not_be_available
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x48]
mov r8d, r15d
lea rdx, str.API_bind_to_port__d_failed___s__s
mov ecx, 2
call fcn.0040af80
mov rcx, qword [rsp + 0x58]
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
mov r8, rax
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_failed___s__s
mov ecx, 1
call fcn.0040af80
jmp 0x4123e1
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov r8, rax
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_2_failed___s__s
mov ecx, 1
call fcn.0040af80
jmp 0x4123e1
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov r8, rax
lea r9, str.___API_will_not_be_available
lea rdx, str.API_failed___s__s
mov ecx, 1
call fcn.0040af80
jmp 0x4123c1
mov byte [rsp + rdx + 0x270], 0
test eax, eax
je 0x413040
lea edx, [rbx - 2]
movsxd rdx, edx
cmp byte [rsp + rdx + 0x270], 0xd
mov ebx, eax
jne 0x4121f6
mov byte [rsp + rdx + 0x270], 0
jmp 0x4121f6
vzeroupper
jmp 0x4126da
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov r8, rax
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_3_failed___s__s
mov ecx, 1
call fcn.0040af80
mov rcx, r13
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x412a25
mov ebx, 3
nop dword [rax + rax]
test rdi, rdi
je 0x412b80
cmp byte [rdi], 0
je 0x412b80
mov rcx, rdi
call sub.msvcrt.dll_strlen
lea rax, [rdi + rax - 1]
cmp byte [rax], 0x7c
jne 0x412b80
mov byte [rax], 0
nop
movsxd rax, ebx
shl rax, 4
mov rcx, rdi
lea rdx, str.summary
call qword [rdx + rax + 8]
mov qword [rsp + 0x50], rax
test r15, r15
je 0x413191
mov rax, qword [0x0075b0e0]
mov qword [rsp + 0xf0], 0
cmp byte [rax], 0
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 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 0x4130da
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]
andn eax, edx, eax
and eax, 0x80808080
je 0x412c90
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [r8 + 2]
cmove r8, rdx
mov edi, eax
add dil, al
sbb r8, 3
lea rbx, [rsp + 0x90]
sub r8, r14
mov rdx, r14
mov rcx, rbx
call fcn.005bbde0
lea rax, [rsp + 0xb0]
mov edx, 0x1e
mov ecx, 1
mov qword [rsp + 0x48], 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 0x412e82
mov ebp, 0x14
xor r14d, r14d
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea rdi, str._c_c_c_c
nop dword [rax + rax]
movzx edx, byte [rbx + 1]
movzx r8d, byte [rbx]
mov r10d, edx
shl edx, 2
mov eax, edx
lea rcx, [r15 + r14]
shr r10b, 4
and eax, 0x3c
cmp ebp, 2
je 0x412fe6
movzx edx, byte [rbx + 2]
mov r9d, r8d
mov r11, rdx
shr dl, 6
or edx, eax
shl r8d, 4
and edx, 0x3f
and r8d, 0x30
movsx eax, byte [rsi + rdx]
or r10d, r8d
and r10d, 0x3f
and r11d, 0x3f
mov dword [rsp + 0x28], eax
movsx r11d, byte [rsi + r11]
movsx eax, byte [rsi + r10]
shr r9b, 2
mov dword [rsp + 0x30], r11d
mov dword [rsp + 0x20], eax
and r9d, 0x3f
movsx r9d, byte [rsi + r9]
mov r8, rdi
mov edx, 5
sub ebp, 3
add rbx, 3
call fcn.00411da0
add r14, 4
test ebp, ebp
jne 0x412d80
nop dword [rax]
mov rdi, qword [rsp + 0x48]
mov rdx, r14
mov r9, r15
lea r8, [0x006fa2f7]
mov rcx, rdi
call fcn.00411a20
mov rdx, rdi
mov ecx, dword [rdx]
add rdx, 4
lea eax, [rcx - 0x1010101]
andn eax, ecx, eax
and eax, 0x80808080
je 0x412e35
mov ecx, eax
shr ecx, 0x10
test eax, 0x8080
cmove eax, ecx
lea rcx, [rdx + 2]
cmove rdx, rcx
mov edi, eax
add dil, al
sbb rdx, 3
sub rdx, qword [rsp + 0x48]
cmp rdx, 0x1b
je 0x41323e
mov rcx, r15
call sub.msvcrt.dll_free
mov r8, qword [rsp + 0x48]
lea rdi, [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, rdi
call sub.msvcrt.dll_sprintf
xor ecx, ecx
mov word [rsp + 0x6e], cx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x66], 0
mov byte [rsp + 0x66], 0x81
call sub.msvcrt.dll_strlen
mov rbp, rax
cmp rax, 0x7d
jbe 0x4130c6
cmp rax, 0xffff
ja 0x413222
mov byte [rsp + 0x67], 0x7e
movbe word [rsp + 0x68], ax
mov esi, 4
mov r15d, 4
mov rbx, rdi
mov edx, dword [rbx]
add rbx, 4
lea eax, [rdx - 0x1010101]
andn eax, edx, eax
and eax, 0x80808080
je 0x412ef0
mov edx, eax
shr edx, 0x10
test eax, 0x8080
cmove eax, edx
lea rdx, [rbx + 2]
cmove rbx, rdx
mov edx, eax
add dl, al
sbb rbx, 3
sub rbx, rdi
lea rdx, [r15 + rbp + 1]
add rdx, rbx
mov ecx, 1
call sub.msvcrt.dll_calloc
mov r14, rax
test rax, rax
je 0x4122cb
mov edx, ebx
cmp ebx, 0x20
jae 0x413123
test bl, 0x10
jne 0x413270
test dl, 8
jne 0x41328d
test dl, 4
jne 0x4132b5
test edx, edx
je 0x412f7f
movzx eax, byte [rdi]
mov byte [r14], al
test dl, 2
jne 0x4132c8
lea rdx, [r14 + rbx]
lea r8, [rsp + 0x66]
mov eax, r15d
cmp r15d, 8
jae 0x4131c0
test r15b, 4
jne 0x4132a2
test eax, eax
je 0x412fb1
movzx ecx, byte [r8]
mov byte [rdx], cl
test al, 2
jne 0x4132d8
lea rcx, [rdx + r15]
mov rdx, qword [rsp + 0x50]
mov r8, rbp
call sub.msvcrt.dll_memcpy
lea eax, [rsi + rbp + 1]
mov rcx, r12
xor r9d, r9d
lea r8d, [rax + rbx]
mov rdx, r14
call qword [sym.imp.WS2_32.dll_send]
mov rcx, r14
call sub.msvcrt.dll_free
jmp 0x4122cb
mov edi, r10d
mov edx, r8d
shl r8d, 4
mov r10, rcx
and r8d, 0x30
mov ecx, edi
movzx eax, al
movsx eax, byte [rsi + rax]
or ecx, r8d
and ecx, 0x3f
mov dword [rsp + 0x28], eax
movsx eax, byte [rsi + rcx]
shr dl, 2
and edx, 0x3f
mov dword [rsp + 0x20], eax
movsx r9d, byte [rsi + rdx]
lea r8, str._c_c_c
mov edx, 5
mov rcx, r10
call fcn.00411da0
add r14, 4
jmp 0x412e18
xor ebx, ebx
jmp 0x4121f6
mov ecx, 1
jmp 0x411e80
mov r8d, ecx
mov edx, 1
and r8d, 7
shlx r8d, edx, r8d
sar ecx, 3
mov edx, 3
sub edx, ecx
shl edx, 3
sub eax, 2
shlx edx, r8d, edx
jmp 0x412562
mov edx, 0xd
mov rcx, rax
call sub.msvcrt.dll_strchr
test rax, rax
je 0x41309a
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 0x4129e0
nop dword [rax]
inc r15
cmp byte [r15], 0x20
je 0x4130b8
jmp 0x4129e0
mov byte [rsp + 0x67], al
mov esi, 2
mov r15d, 2
jmp 0x412eed
mov r8, r15
lea rdx, str.clientkey:__s
mov ecx, 5
call fcn.0040af80
jmp 0x412c73
mov ecx, 1
call fcn.004043a0
mov rax, qword [rsp + 0x48]
movzx esi, byte [rax]
jmp 0x411e9a
mov ecx, 1
call fcn.004043a0
mov rax, qword [0x0075b000]
mov rdx, qword [rax]
jmp 0x411e44
mov eax, ebx
lea rdx, [r14 + rax]
add rax, rdi
mov rcx, qword [rax - 0x20]
mov qword [rdx - 0x20], rcx
mov rcx, qword [rax - 0x18]
mov qword [rdx - 0x18], rcx
mov rcx, qword [rax - 0x10]
mov qword [rdx - 0x10], rcx
mov rax, qword [rax - 8]
mov qword [rdx - 8], rax
lea edx, [rbx - 1]
cmp edx, 0x20
jb 0x412f7f
and edx, 0xffffffe0
xor ecx, ecx
mov eax, ecx
mov r11, qword [rdi + rax]
mov r10, qword [rdi + rax + 8]
mov r9, qword [rdi + rax + 0x10]
mov r8, qword [rdi + rax + 0x18]
add ecx, 0x20
mov qword [r14 + rax], r11
mov qword [r14 + rax + 8], r10
mov qword [r14 + rax + 0x10], r9
mov qword [r14 + rax + 0x18], r8
cmp ecx, edx
jb 0x41315d
jmp 0x412f7f
cmp qword [rsp + 0x50], 0
je 0x413252
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_strlen
lea r8d, [rax + 1]
xor r9d, r9d
mov rdx, rbx
mov rcx, r12
call qword [sym.imp.WS2_32.dll_send]
jmp 0x4122cb
mov rax, qword [rsp + 0x66]
lea r9, [rdx + 8]
mov qword [rdx], rax
and r9, 0xfffffffffffffff8
mov rax, qword [r8 + r15 - 8]
mov qword [rdx + r15 - 8], rax
mov rax, rdx
sub rax, r9
sub r8, rax
add eax, r15d
and eax, 0xfffffff8
cmp eax, 8
jb 0x412fb1
and eax, 0xfffffff8
xor ecx, ecx
mov r10d, ecx
mov r11, qword [r8 + r10]
add ecx, 8
mov qword [r9 + r10], r11
cmp ecx, eax
jb 0x4131f7
jmp 0x412fb1
mov ebx, 1
jmp 0x412b60
mov ebx, 2
jmp 0x412b60
mov byte [rsp + 0x67], 0x7f
movbe qword [rsp + 0x68], rax
mov esi, 0xa
mov r15d, 0xa
jmp 0x412eed
mov r8d, 0x3d
mov word [rsp + 0xcb], r8w
jmp 0x412e7a
xor r9d, r9d
mov r8d, 1
lea rdx, [0x006fa3e5]
mov rcx, r12
call qword [sym.imp.WS2_32.dll_send]
jmp 0x4122cb
vmovdqu8 xmm3, xmmword [rdi]
vmovups xmmword [rax], xmm3
vmovdqu8 xmm3, xmmword [rdi + rdx - 0x10]
vmovups xmmword [rax + rdx - 0x10], xmm3
jmp 0x412f7f
mov rax, qword [rdi]
mov qword [r14], rax
mov rax, qword [rdi + rdx - 8]
mov qword [r14 + rdx - 8], rax
jmp 0x412f7f
mov ecx, dword [r8]
mov dword [rdx], ecx
mov ecx, dword [r8 + rax - 4]
mov dword [rdx + rax - 4], ecx
jmp 0x412fb1
mov eax, dword [rdi]
mov dword [r14], eax
mov eax, dword [rdi + rdx - 4]
mov dword [r14 + rdx - 4], eax
jmp 0x412f7f
movzx eax, word [rdi + rdx - 2]
mov word [r14 + rdx - 2], ax
jmp 0x412f7f
movzx ecx, word [r8 + rax - 2]
mov word [rdx + rax - 2], cx
jmp 0x412fb1