Function at 0x412160
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, 0x42e8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.007228f0
sub rsp, rax
vmovups xmmword [rsp + 0x42d0], xmm6
mov rax, qword [0x007a7480]
mov r12, qword [rax]
mov rax, qword [0x007a7490]
mov eax, dword [rax]
mov dword [rsp + 0x48], eax
test eax, eax
jne 0x4121ad
mov rax, qword [0x007a74e0]
cmp byte [rax], 0
jne 0x412ae6
test r12, r12
je 0x412331
mov rcx, r12
call sub.msvcrt.dll_strlen
lea rdx, [rax + 1]
mov ecx, 1
call sub.msvcrt.dll_calloc
mov r13, rax
mov rdx, r12
test rax, rax
je 0x413362
mov rcx, r13
call sub.msvcrt.dll_strcpy
movzx esi, byte [r13]
test sil, sil
je 0x4132c5
mov edx, esi
mov ecx, 1
nop dword [rax + rax]
inc rax
cmp dl, 0x2c
sete dl
movzx edx, dl
add ecx, edx
movzx edx, byte [rax]
test dl, dl
jne 0x412200
movsxd rcx, ecx
mov edx, 0xc
call sub.msvcrt.dll_calloc
mov qword [0x007bce28], rax
test rax, rax
je 0x41334e
mov dword [0x007330f0], 0
vmovdqu xmm6, xmmword [0x0073b680]
mov r15, r13
xor ebx, ebx
test sil, sil
je 0x412321
nop word [rax + rax]
cmp sil, 0x20
jne 0x41226e
nop
movzx esi, byte [r15 + 1]
inc r15
cmp sil, 0x20
je 0x412260
cmp sil, 9
je 0x412260
lea rbp, [r15 + 1]
cmp sil, 0x2c
je 0x412311
mov edx, 0x2c
mov rcx, r15
call sub.msvcrt.dll_strchr
xor ebp, ebp
test rax, rax
je 0x41229d
mov byte [rax], 0
lea rbp, [rax + 1]
mov rdi, qword [sym.imp.msvcrt.dll_toupper]
mov ecx, 0x52
call rdi
movsx r14d, byte [r15]
mov esi, eax
mov ecx, r14d
call qword [sym.imp.msvcrt.dll_isalpha]
test eax, eax
je 0x4122c9
cmp byte [r15 + 1], 0x3a
je 0x4127a0
movsxd rax, ebx
lea rdx, [rax + rax*2]
mov rax, qword [0x007bce28]
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 0x4126d0
mov qword [r14], 0
inc ebx
mov dword [0x007330f0], ebx
test rbp, rbp
je 0x412321
movzx esi, byte [rbp]
mov r15, rbp
test sil, sil
jne 0x412258
mov rcx, r13
call sub.msvcrt.dll_free
test ebx, ebx
je 0x412ac9
mov edx, 8
mov ecx, 1
call sub.msvcrt.dll_calloc
mov rdi, qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x3e8
mov rbx, 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 qword [rbx], rax
mov r14, rax
cmp rax, 0xffffffffffffffff
je 0x412d0c
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 0x412d97
mov eax, dword [rsp + 0x48]
lea r13, [rsp + 0x70]
movzx ecx, ax
movzx r15d, ax
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 rsi, rax
mov r12, qword [sym.imp.WS2_32.dll_bind]
jmp 0x412434
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
xor ecx, ecx
mov rbx, rax
call rbp
sub rax, rsi
cmp rax, 0x3d
jg 0x412d4e
mov rax, qword [0x007a7590]
cmp byte [rax], 0
je 0x412419
mov rax, qword [0x007a74e0]
cmp byte [rax], 0
je 0x41242d
mov r8d, r15d
lea rdx, str.API_bind_to_port__d_failed___trying_again_in_20sec
mov ecx, 1
call fcn.0040b1a0
mov ecx, 0x4e20
call rdi
mov r8d, 0x10
mov rdx, r13
mov rcx, r14
call r12
test eax, eax
js 0x4123e0
mov edx, 0xa
mov rcx, r14
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x412e1e
mov edx, 0x4001
mov ecx, 1
call sub.msvcrt.dll_calloc
mov qword [0x007bce20], rax
mov edx, dword [0x007bce10]
test edx, edx
jne 0x412751
lea rbp, [rsp + 0x60]
lea rbx, [rsp + 0x80]
lea r15, str.127.0.0.1
mov r8, rbp
mov rdx, rbx
mov rcx, r14
mov dword [rsp + 0x60], 0x10
call qword [sym.imp.WS2_32.dll_accept]
movsxd r12, eax
cmp eax, 0xffffffff
je 0x412dc1
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_inet_ntoa]
mov r13, rax
mov rax, qword [0x007a7480]
cmp qword [rax], 0
je 0x412670
mov ecx, dword [rsp + 0x84]
call qword [sym.imp.WS2_32.dll_htonl]
mov edx, dword [0x007330f0]
mov ecx, eax
test edx, edx
jle 0x412710
mov rax, qword [0x007bce28]
dec edx
lea rdx, [rdx + rdx*2]
lea r8, [rax + rdx*4 + 0xc]
jmp 0x41251d
add rax, 0xc
cmp r8, rax
je 0x412710
mov edx, dword [rax + 4]
and edx, ecx
cmp edx, dword [rax]
jne 0x412510
mov rsi, qword [0x007a74e0]
cmp byte [rsi], 0
je 0x412542
mov rax, qword [0x007a7560]
cmp byte [rax], 0
jne 0x4126a9
lea r13, [rsp + 0x2d0]
xor r9d, r9d
mov r8d, 0x400
mov rdx, r13
mov rcx, r12
call qword [sym.imp.WS2_32.dll_recv]
mov ebx, eax
cmp eax, 0xffffffff
je 0x412a7d
test eax, eax
jle 0x412a8a
lea eax, [rax - 1]
movsxd rdx, eax
cmp byte [rsp + rdx + 0x2d0], 0xa
je 0x412deb
movsxd rax, ebx
mov byte [rsp + rax + 0x2d0], 0
lea rdx, str.GET__
mov rcx, r13
call sub.msvcrt.dll_strstr
mov r15, rax
test rax, rax
je 0x4125bd
mov rcx, r15
call sub.msvcrt.dll_strlen
cmp rax, 5
ja 0x412b13
xor r15d, r15d
mov edx, 0x7c
mov rcx, r13
call sub.msvcrt.dll_strchr
xor edi, edi
test rax, rax
je 0x4125d8
mov byte [rax], 0
lea rdi, [rax + 1]
cmp byte [rsi], 0
jne 0x412a95
mov rdx, qword [str.summary]
mov rcx, r13
call sub.msvcrt.dll_strcmp
movsxd rbx, eax
test ebx, ebx
je 0x412e56
mov rdx, qword [str.threads]
mov rcx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x412e51
mov rdx, qword [str.seturl]
mov rcx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x41346b
mov rdx, qword [str.quit]
mov rcx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x413475
mov rdx, qword [str.help]
mov rcx, r13
call sub.msvcrt.dll_strcmp
mov ebx, 4
test eax, eax
je 0x412e56
mov rcx, r12
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x412474
mov rsi, r13
mov ecx, 0xa
mov rdi, r15
repe cmpsb byte [rsi], byte [rdi]
mov rsi, qword [0x007a74e0]
seta al
sbb al, 0
cmp byte [rsi], 0
movsx eax, al
je 0x412790
mov rdx, qword [0x007a7560]
cmp byte [rdx], 0
je 0x412790
test eax, eax
jne 0x412728
lea r9, str.Accepted
mov r8, r13
lea rdx, str.API:_connection_from__s____s
mov ecx, 4
call fcn.0040b1a0
jmp 0x412542
mov edx, 0x2f
mov rcx, r15
call sub.msvcrt.dll_strchr
test rax, rax
je 0x412a70
mov byte [rax], 0
lea rcx, [rax + 1]
call sub.msvcrt.dll_atoi
lea r8d, [rax - 1]
mov edx, eax
cmp r8d, 0x1f
jbe 0x4127e0
mov ebx, dword [0x007330f0]
jmp 0x41230c
mov rax, qword [0x007a74e0]
cmp byte [rax], 0
je 0x412743
mov rax, qword [0x007a7560]
cmp byte [rax], 0
je 0x412743
lea r9, str.Ignored
mov r8, r13
lea rdx, str.API:_connection_from__s____s
mov ecx, 4
call fcn.0040b1a0
mov eax, dword [0x007bce10]
test eax, eax
je 0x412496
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_free
mov rcx, qword [0x007bce20]
call sub.msvcrt.dll_free
nop
vmovups xmm6, xmmword [rsp + 0x42d0]
add rsp, 0x42e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test eax, eax
jne 0x412743
jmp 0x412542
mov ecx, r14d
call rdi
mov ecx, 0x57
mov r14d, eax
call rdi
cmp r14d, eax
je 0x4127d4
mov ecx, 0x41
call rdi
mov r8d, eax
mov eax, r14d
sub eax, r8d
cdqe
lea rdx, [0x007bcd40]
cmp qword [rdx + rax*8], 0
je 0x4127d7
mov esi, r14d
add r15, 2
jmp 0x4122c9
movsxd rax, dword [0x007330f0]
lea r10d, [rdx + 1]
lea rcx, [rax + rax*2]
mov rax, qword [0x007bce28]
lea r14, [rax + rcx*4]
mov eax, r8d
cmp edx, 6
jbe 0x4132bb
vpbroadcastd ymm3, edx
mov ecx, r10d
vpaddd ymm3, ymm3, ymmword [0x0073b5e0]
shr ecx, 3
xor eax, eax
vpxor xmm4, xmm4, xmm4
vmovdqu ymm1, ymm3
vpsrad ymm0, ymm1, 0x1f
vpsrld ymm2, ymm0, 0x1d
vpaddd ymm0, ymm2, ymm1
vpand ymm0, ymm0, ymmword [0x0073b620]
vmovdqu ymm5, ymmword [0x0073b640]
vpsubd ymm0, ymm0, ymm2
vpsllvd ymm0, ymm5, ymm0
vmovdqu ymm5, ymmword [0x0073b660]
vpsrad ymm1, ymm1, 3
vpsubd ymm1, ymm5, ymm1
vpslld ymm1, ymm1, 3
vpsllvd ymm0, ymm0, ymm1
inc eax
vpaddd ymm3, ymm3, ymmword [0x0073b600]
vpor ymm4, ymm4, ymm0
cmp eax, ecx
jne 0x412820
vextracti128 xmm0, ymm4, 1
vpor xmm4, xmm0, xmm4
vpsrldq xmm0, xmm4, 8
vpor xmm0, xmm4, xmm0
vpsrldq xmm1, xmm0, 4
mov r9d, r10d
vpor xmm0, xmm0, xmm1
and r9d, 0xfffffff8
mov eax, r8d
vmovd ecx, xmm0
sub eax, r9d
cmp r9d, r10d
je 0x4132ac
vzeroupper
sub edx, r9d
lea r8d, [rdx + 1]
cmp edx, 2
jbe 0x412932
vpbroadcastd xmm1, eax
vpaddd xmm1, xmm1, xmm6
vpsrad xmm2, xmm1, 0x1f
vpsrld xmm2, xmm2, 0x1d
vpaddd xmm0, xmm1, xmm2
vpand xmm0, xmm0, xmmword [0x0073b690]
vpsrad xmm1, xmm1, 3
vpsubd xmm2, xmm0, xmm2
vmovdqu xmm0, xmmword [0x0073b6a0]
vpsllvd xmm0, xmm0, xmm2
vmovdqu xmm2, xmmword [0x0073b6b0]
vpsubd xmm1, xmm2, xmm1
vpslld xmm1, xmm1, 3
vpsllvd xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 8
vpor xmm0, xmm0, xmm1
vpsrldq xmm1, xmm0, 4
vpor xmm0, xmm0, xmm1
vmovd edx, xmm0
or ecx, edx
mov edx, r8d
and edx, 0xfffffffc
sub eax, edx
cmp edx, r8d
je 0x4129e2
mov r8d, eax
sar r8d, 0x1f
shr r8d, 0x1d
mov r11d, eax
mov r9d, 3
lea edx, [rax + r8]
sar r11d, 3
mov r10d, r9d
and edx, 7
sub r10d, r11d
sub edx, r8d
shl r10d, 3
mov r8d, 1
shlx edx, r8d, edx
shlx edx, edx, r10d
lea r10d, [rax - 1]
or ecx, edx
test eax, eax
js 0x4129e2
mov r11d, r10d
sar r11d, 0x1f
shr r11d, 0x1d
lea edx, [r10 + r11]
and edx, 7
mov ebx, r10d
sub edx, r11d
sar ebx, 3
mov r11d, r9d
sub r11d, ebx
shl r11d, 3
shlx edx, r8d, edx
shlx edx, edx, r11d
or ecx, edx
lea edx, [rax - 2]
test r10d, r10d
js 0x4129e2
mov r10d, edx
sar r10d, 0x1f
shr r10d, 0x1d
lea eax, [rdx + r10]
and eax, 7
sub eax, r10d
shlx r8d, r8d, eax
mov eax, edx
sar eax, 3
sub r9d, eax
lea eax, [r9*8]
shlx eax, r8d, eax
or ecx, eax
mov dword [r14 + 4], ecx
mov dword [r14], 0
mov esi, 0x18
xor edi, edi
jmp 0x412a08
cmp edi, 3
jg 0x412a63
mov r15, r14
mov edx, 0x2e
mov rcx, r15
call sub.msvcrt.dll_strchr
xor r14d, r14d
test rax, rax
je 0x412a24
mov byte [rax], 0
lea r14, [rax + 1]
mov rcx, r15
call sub.msvcrt.dll_atoi
cmp eax, 0xff
ja 0x412702
movsxd rdx, dword [0x007330f0]
shlx eax, eax, esi
lea rcx, [rdx + rdx*2]
mov rbx, rdx
mov rdx, qword [0x007bce28]
inc edi
lea rdx, [rdx + rcx*4]
or eax, dword [rdx]
mov dword [rdx], eax
sub esi, 8
test r14, r14
jne 0x412a00
and eax, dword [rdx + 4]
mov dword [rdx], eax
jmp 0x412304
mov dword [r14 + 4], 0xffffffff
jmp 0x4129e6
mov byte [rsp + 0x2d0], 0
jmp 0x412474
je 0x412586
jmp 0x412591
mov rax, qword [0x007a7560]
cmp byte [rax], 0
je 0x4125e1
test ebx, ebx
jle 0x4125e1
mov r9, rdi
mov r8, r13
lea rdx, str.API:_exec_command__s__s_
mov ecx, 4
call fcn.0040b1a0
jmp 0x4125e1
lea r8, str.___API_will_not_be_available
lea rdx, str.API_not_running__no_valid_IPs_specified__s
mov ecx, 1
call fcn.0040b1a0
jmp 0x412331
vmovups xmm6, xmmword [rsp + 0x42d0]
lea rdx, str.API_disabled
mov ecx, 4
add rsp, 0x42e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0040b1a0
lea rbx, [rsp + 0x1d0]
lea rcx, [r15 + 5]
lea rdx, [0x0073b1e0]
mov r8, rbx
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
mov qword [rsp + 0x270], 0
mov qword [rsp + 0x278], 0
mov qword [rsp + 0x280], 0
mov qword [rsp + 0x288], 0
mov qword [rsp + 0x290], 0
mov qword [rsp + 0x298], 0
mov qword [rsp + 0x2a0], 0
mov qword [rsp + 0x2a8], 0
mov qword [rsp + 0x2b0], 0
mov qword [rsp + 0x2b8], 0
mov qword [rsp + 0x2c0], 0
mov qword [rsp + 0x2c8], 0
call fcn.00412130
mov edx, 0x2f
mov rcx, rbx
call sub.msvcrt.dll_strchr
test rax, rax
je 0x412cd8
mov byte [rax], 0x7c
mov edx, 0x2f
mov rcx, rbx
call sub.msvcrt.dll_strchr
test rax, rax
je 0x412cd8
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 0x4132cf
mov r8, rbx
lea rdx, [0x0073b1eb]
mov rcx, r13
call fcn.00411c80
mov ebx, eax
jmp 0x4125bd
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
nop
vmovups xmm6, xmmword [rsp + 0x42d0]
mov r8, rax
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_failed___s__s
xor ecx, ecx
add rsp, 0x42e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0040b1a0
lea rax, str.___API_will_not_be_available
mov qword [rsp + 0x20], rax
mov r9, rbx
mov r8d, r15d
lea rdx, str.API_bind_to_port__d_failed___s__s
mov ecx, 1
call fcn.0040b1a0
mov rcx, qword [rsp + 0x50]
vmovups xmm6, xmmword [rsp + 0x42d0]
add rsp, 0x42e8
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_2_failed___s__s
xor ecx, ecx
call fcn.0040b1a0
jmp 0x412771
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
xor ecx, ecx
call fcn.0040b1a0
jmp 0x412751
mov byte [rsp + rdx + 0x2d0], 0
test eax, eax
je 0x4132b4
lea edx, [rbx - 2]
movsxd rdx, edx
cmp byte [rsp + rdx + 0x2d0], 0xd
mov ebx, eax
jne 0x412586
mov byte [rsp + rdx + 0x2d0], 0
jmp 0x412586
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, dword [rax]
call sub.msvcrt.dll_strerror
mov r8, rax
xor ecx, ecx
lea r9, str.___API_will_not_be_available
lea rdx, str.API_initialisation_3_failed___s__s
call fcn.0040b1a0
mov rcx, r14
call qword [sym.imp.WS2_32.dll_closesocket]
jmp 0x412d71
mov ebx, 1
test rdi, rdi
je 0x412e75
cmp byte [rdi], 0
je 0x412e75
mov rcx, rdi
call sub.msvcrt.dll_strlen
lea rax, [rdi + rax - 1]
cmp byte [rax], 0x7c
jne 0x412e75
mov byte [rax], 0
shl rbx, 4
mov rcx, rdi
lea rax, str.summary
call qword [rax + rbx + 8]
mov qword [rsp + 0x48], rax
test r15, r15
je 0x4133eb
mov rax, qword [0x007a7560]
mov qword [rsp + 0x150], 0
cmp byte [rax], 0
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], 0
mov qword [rsp + 0x168], 0
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
jne 0x413321
lea rbx, [rsp + 0x150]
mov r8, r15
lea rdx, str._s258EAFA5_E914_47DA_95CA_C5AB0DC85B11
lea r13, [rsp + 0xf0]
mov rcx, rbx
call fcn.00411c80
mov rcx, r13
call sub.libcrypto_1_1_x64.dll_SHA1_Init
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov r8, rax
mov rdx, rbx
mov rcx, r13
lea rbx, [rsp + 0x90]
call sub.libcrypto_1_1_x64.dll_SHA1_Update
mov rdx, r13
mov rcx, rbx
call sub.libcrypto_1_1_x64.dll_SHA1_Final
lea rax, [rsp + 0xb0]
mov edx, 0x1e
mov ecx, 1
mov qword [rsp + 0x58], 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 r13, rax
test rax, rax
je 0x413173
mov ebp, 0x14
xor r15d, r15d
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
lea rdi, str._c_c_c_c
movzx eax, byte [rbx + 1]
movzx r8d, byte [rbx]
mov r10d, eax
shl eax, 2
and eax, 0x3c
lea rcx, [r13 + r15]
shr r10b, 4
mov r11d, eax
cmp ebp, 2
je 0x4130f0
movzx edx, byte [rbx + 2]
mov r9d, r8d
mov rax, rdx
and eax, 0x3f
movsx eax, byte [rsi + rax]
shl r8d, 4
mov dword [rsp + 0x30], eax
mov eax, edx
shr al, 6
or eax, r11d
and r8d, 0x30
and eax, 0x3f
movsx eax, byte [rsi + rax]
or r10d, r8d
and r10d, 0x3f
mov dword [rsp + 0x28], eax
movsx eax, byte [rsi + r10]
shr r9b, 2
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.00412100
add r15, 4
test ebp, ebp
jne 0x413056
jmp 0x41313f
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.00412100
add r15, 4
mov rdi, qword [rsp + 0x58]
mov r9, r13
mov rcx, rdi
lea r8, [0x0073b1eb]
mov rdx, r15
call fcn.00411d70
mov rcx, rdi
call sub.msvcrt.dll_strlen
cmp rax, 0x1b
je 0x41333a
mov rcx, r13
call sub.msvcrt.dll_free
mov r8, qword [rsp + 0x58]
lea rbx, [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, rbx
call fcn.00411c80
xor ecx, ecx
mov word [rsp + 0x6e], cx
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x66], 0
mov byte [rsp + 0x66], 0x81
call sub.msvcrt.dll_strlen
mov rdi, rax
cmp rax, 0x7d
jbe 0x41330d
cmp rax, 0xffff
ja 0x41347f
mov byte [rsp + 0x67], 0x7e
movbe word [rsp + 0x68], ax
mov ebp, 4
mov r15d, 4
mov rcx, rbx
call sub.msvcrt.dll_strlen
lea rdx, [r15 + rdi + 1]
add rdx, rax
mov ecx, 1
mov rsi, rax
call sub.msvcrt.dll_calloc
mov r13, rax
test rax, rax
je 0x41265c
cmp esi, 0x20
jae 0x41337b
test sil, 0x10
jne 0x4134d1
test sil, 8
jne 0x4134b9
test sil, 4
jne 0x413507
test esi, esi
je 0x413243
movzx eax, byte [rbx]
mov byte [r13], al
test sil, 2
jne 0x41351d
lea rdx, [r13 + rsi]
lea rcx, [rsp + 0x66]
mov eax, r15d
cmp r15d, 8
jae 0x41341a
test r15b, 4
jne 0x4134f4
test eax, eax
je 0x413277
movzx r8d, byte [rcx]
mov byte [rdx], r8b
test al, 2
jne 0x41352f
lea rcx, [rdx + r15]
mov rdx, qword [rsp + 0x48]
mov r8, rdi
call sub.msvcrt.dll_memcpy
lea eax, [rbp + rdi + 1]
mov rcx, r12
xor r9d, r9d
lea r8d, [rax + rsi]
mov rdx, r13
call qword [sym.imp.WS2_32.dll_send]
mov rcx, r13
call sub.msvcrt.dll_free
jmp 0x41265c
vzeroupper
jmp 0x4129e2
xor ebx, ebx
jmp 0x412586
xor r9d, r9d
xor ecx, ecx
jmp 0x4128b1
mov ecx, 1
jmp 0x412218
mov edx, 0xd
mov rcx, rax
call sub.msvcrt.dll_strchr
test rax, rax
je 0x4132e4
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 0x412cf3
inc r15
cmp byte [r15], 0x20
je 0x4132ff
jmp 0x412cf3
mov byte [rsp + 0x67], al
mov ebp, 2
mov r15d, 2
jmp 0x4131de
mov r8, r15
lea rdx, str.clientkey:__s
mov ecx, 4
call fcn.0040b1a0
jmp 0x412f65
mov r8d, 0x3d
mov word [rsp + 0xcb], r8w
jmp 0x41316b
mov ecx, 1
call fcn.004041d0
movzx esi, byte [r13]
jmp 0x412232
mov ecx, 1
call fcn.004041d0
mov rax, qword [0x007a7480]
mov rdx, qword [rax]
jmp 0x4121db
mov eax, esi
lea rdx, [r13 + rax]
add rax, rbx
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
lea ecx, [rsi - 1]
mov rax, qword [rax - 8]
mov qword [rdx - 8], rax
cmp ecx, 0x20
jb 0x413243
and ecx, 0xffffffe0
xor edx, edx
mov eax, edx
mov r11, qword [rbx + rax]
mov r10, qword [rbx + rax + 8]
mov r9, qword [rbx + rax + 0x10]
mov r8, qword [rbx + rax + 0x18]
add edx, 0x20
mov qword [r13 + rax], r11
mov qword [r13 + rax + 8], r10
mov qword [r13 + rax + 0x10], r9
mov qword [r13 + rax + 0x18], r8
cmp edx, ecx
jb 0x4133b6
jmp 0x413243
cmp qword [rsp + 0x48], 0
je 0x41349b
mov rcx, rax
mov rdi, rax
call sub.msvcrt.dll_strlen
lea r8d, [rax + 1]
xor r9d, r9d
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.WS2_32.dll_send]
jmp 0x41265c
mov rax, qword [rsp + 0x66]
lea r8, [rdx + 8]
mov qword [rdx], rax
and r8, 0xfffffffffffffff8
mov rax, qword [rcx + r15 - 8]
mov qword [rdx + r15 - 8], rax
mov rax, rdx
sub rax, r8
sub rcx, rax
add eax, r15d
and eax, 0xfffffff8
cmp eax, 8
jb 0x413277
and eax, 0xfffffff8
xor r9d, r9d
mov r10d, r9d
mov r11, qword [rcx + r10]
add r9d, 8
mov qword [r8 + r10], r11
cmp r9d, eax
jb 0x413452
jmp 0x413277
mov ebx, 2
jmp 0x412e56
mov ebx, 3
jmp 0x412e56
mov byte [rsp + 0x67], 0x7f
movbe qword [rsp + 0x68], rax
mov ebp, 0xa
mov r15d, 0xa
jmp 0x4131de
xor r9d, r9d
mov r8d, 1
lea rdx, [0x0073b515]
mov rcx, r12
call qword [sym.imp.WS2_32.dll_send]
jmp 0x41265c
mov rax, qword [rbx]
mov qword [r13], rax
mov eax, esi
mov rdx, qword [rbx + rax - 8]
mov qword [r13 + rax - 8], rdx
jmp 0x413243
vmovdqu8 xmm6, xmmword [rbx]
vmovdqu8 xmmword [rax], xmm6
mov eax, esi
vmovdqu8 xmm6, xmmword [rbx + rax - 0x10]
vmovdqu8 xmmword [r13 + rax - 0x10], xmm6
jmp 0x413243
mov r8d, dword [rcx]
mov dword [rdx], r8d
mov ecx, dword [rcx + rax - 4]
mov dword [rdx + rax - 4], ecx
jmp 0x413277
mov eax, dword [rbx]
mov dword [r13], eax
mov eax, esi
mov edx, dword [rbx + rax - 4]
mov dword [r13 + rax - 4], edx
jmp 0x413243
mov eax, esi
movzx edx, word [rbx + rax - 2]
mov word [r13 + rax - 2], dx
jmp 0x413243
movzx ecx, word [rcx + rax - 2]
mov word [rdx + rax - 2], cx
jmp 0x413277