Function at 0x41b8a0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r13d, r9d
mov r15, r8
mov r14, rdx
mov r12, rcx
movzx eax, byte [r8 + 1]
mov dword [rsp + 0x2c], eax
movzx esi, byte [r8]
mov al, byte [r8 + 3]
mov byte [rsp + 0x28], al
xor eax, eax
mov qword [rsp + 0x30], rax
mov r11d, 0xfffd
mov r10d, 1
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x38], esi
mov rdi, r12
movzx ebp, byte [rdi]
mov r12, rdi
add r12, 1
test bpl, bpl
js 0x41b920
test bpl, bpl
jne 0x41b9f0
jmp 0x41c2cd
cmp bpl, 0xc0
jb 0x41b9f0
add ebp, 0xffffff40
lea rax, [0x005fc440]
movzx eax, byte [rbp + rax]
mov bl, byte [r12]
mov ecx, ebx
xor cl, 0x3f
and cl, bl
cmp cl, 0x80
jne 0x41b9a2
mov rcx, r12
nop
lea r12, [rcx + 1]
shl eax, 6
mov edx, ebx
xor dl, 0xc0
and dl, bl
movzx edx, dl
mov ebp, eax
not ebp
mov ebx, edx
not ebx
mov edi, ebp
and edi, 0x8d5a1bb
and eax, 0xf72a5e40
or eax, edi
or ebp, ebx
and ebx, 0x8d5a1bb
and edx, 0x44
or edx, ebx
xor edx, eax
not ebp
or ebp, edx
movzx ebx, byte [rcx + 1]
mov edx, ebx
not dl
or dl, 0x3f
mov rcx, r12
mov eax, ebp
cmp dl, 0x7f
je 0x41b950
jmp 0x41b9a4
mov ebp, eax
cmp ebp, 0x80
setb al
mov ecx, ebp
xor ecx, 0x7ff
and ecx, ebp
cmp ecx, 0xd800
sete cl
mov edx, eax
and dl, cl
xor al, cl
or al, dl
mov ecx, ebp
not ecx
or ecx, 1
cmp ecx, 0xffff0001
setne cl
sete dl
xor dl, al
mov edi, 0xfffd
jne 0x41b9fa
xor al, 1
or cl, al
xor cl, 1
jne 0x41b9fa
nop dword [rax]
cmp ebp, esi
je 0x41c1a4
mov edi, ebp
cmp edi, r13d
jne 0x41c067
cmp byte [r15 + 2], 0
je 0x41bfac
movzx r13d, byte [r14]
add r14, 1
cmp r13d, 0xc0
jb 0x41bac0
add r13d, 0xffffff40
lea rax, [0x005fc440]
movzx eax, byte [r13 + rax]
mov cl, byte [r14]
mov edx, ecx
not dl
or dl, 0x3f
cmp dl, 0x7f
jne 0x41ba70
nop word [rax + rax]
shl eax, 6
and cl, 0x3f
movzx ecx, cl
or eax, ecx
movzx ecx, byte [r14 + 1]
add r14, 1
mov edx, ecx
xor dl, 0x3f
and dl, cl
cmp dl, 0x80
je 0x41ba50
cmp eax, 0x80
setb cl
mov ebx, eax
not ebx
mov edx, ebx
or edx, 0x7ff
cmp edx, 0xffff27ff
sete r8b
mov edx, ecx
and dl, r8b
xor cl, r8b
or cl, dl
or ebx, 1
cmp ebx, 0xffff0001
sete dl
xor dl, cl
cmovne eax, r11d
test cl, cl
mov r13d, eax
cmovne r13d, r11d
cmp ebx, 0xffff0001
cmovne r13d, eax
jmp 0x41bac9
test r13b, r13b
je 0x41c18c
lea rdi, [r12 + 1]
movzx r15d, byte [r12]
cmp r15d, 0xc0
jb 0x41bba0
add r15d, 0xffffff40
lea rax, [0x005fc440]
movzx edx, byte [r15 + rax]
mov al, byte [rdi]
mov ecx, eax
xor cl, 0x3f
and cl, al
cmp cl, 0x80
jne 0x41bb39
nop word cs:[rax + rax]
nop
shl edx, 6
mov ecx, eax
xor cl, 0xc0
and cl, al
movzx eax, cl
mov ecx, edx
and ecx, eax
xor edx, eax
or edx, ecx
movzx eax, byte [rdi + 1]
add rdi, 1
mov ecx, eax
not cl
or cl, 0x3f
cmp cl, 0x7f
je 0x41bb10
cmp edx, 0x7f
seta r8b
cmp edx, 0x80
setb r9b
mov eax, edx
not eax
mov ebx, eax
or ebx, 0x7ff
cmp ebx, 0xffff27ff
setne bl
sete cl
xor cl, r9b
or bl, r8b
xor bl, 1
or bl, cl
or eax, 1
test bl, bl
mov r15d, edx
cmovne r15d, r11d
cmp eax, 0xffff0001
sete al
cmovne r15d, edx
xor al, bl
cmovne r15d, r11d
xor r9d, r9d
xor r8d, r8d
jmp 0x41bd70
xor r8d, r8d
mov r9d, 0
cmp r15b, 0x5e
jne 0x41bc4d
movzx r15d, byte [r12 + 1]
add r12, 2
mov r9d, 1
cmp r15d, 0xc0
jb 0x41bc4a
add r15d, 0xffffff40
lea rax, [0x005fc440]
movzx edx, byte [r15 + rax]
mov al, byte [r12]
mov ecx, eax
xor cl, 0x3f
and cl, al
cmp cl, 0x80
jne 0x41bd0d
nop word [rax + rax]
lea rdi, [r12 + 1]
shl edx, 6
and al, 0x3f
movzx eax, al
mov ecx, edx
not ecx
mov ebx, eax
not ebx
and ecx, 0x660cd61c
and edx, 0x99f329c0
or edx, ecx
and ebx, 0x660cd61c
and eax, 0xffffffe3
or eax, ebx
xor edx, eax
movzx eax, byte [r12 + 1]
mov ecx, eax
not cl
or cl, 0x3f
mov r12, rdi
cmp cl, 0x7f
je 0x41bc00
jmp 0x41bd10
mov rdi, r12
cmp r15d, 0x5d
jne 0x41bd70
xor r8d, r8d
cmp r13d, 0x5d
sete r8b
movzx r15d, byte [rdi]
add rdi, 1
cmp r15d, 0xc0
jb 0x41bd70
add r15d, 0xffffff40
lea rax, [0x005fc440]
movzx eax, byte [r15 + rax]
mov cl, byte [rdi]
mov edx, ecx
not dl
or dl, 0x3f
cmp dl, 0x7f
jne 0x41bcbf
nop dword [rax]
shl eax, 6
and cl, 0x3f
movzx ecx, cl
or eax, ecx
movzx ecx, byte [rdi + 1]
add rdi, 1
mov edx, ecx
xor dl, 0x3f
and dl, cl
cmp dl, 0x80
je 0x41bca0
cmp eax, 0x80
setb cl
mov edx, eax
not edx
or edx, 0x7ff
cmp edx, 0xffff27ff
sete dl
mov ebx, ecx
and bl, dl
xor cl, dl
or cl, bl
mov edx, eax
xor edx, 1
and edx, eax
cmp edx, 0xfffe
sete bl
xor bl, cl
cmovne eax, r11d
test cl, cl
mov r15d, eax
cmovne r15d, r11d
cmp edx, 0xfffe
cmovne r15d, eax
jmp 0x41bd70
mov rdi, r12
cmp edx, 0x80
setb al
mov ecx, edx
xor ecx, 0x7ff
and ecx, edx
cmp ecx, 0xd800
sete cl
mov ebx, eax
and bl, cl
xor al, cl
or al, bl
mov ecx, edx
not ecx
or ecx, 1
cmp ecx, 0xffff0001
sete bl
xor bl, al
cmovne edx, r11d
test al, al
mov r15d, edx
cmovne r15d, r11d
cmp ecx, 0xffff0001
cmovne r15d, edx
mov r9d, 1
nop word cs:[rax + rax]
nop dword [rax]
xor r12d, r12d
jmp 0x41bdd2
cmp edx, 0x7f
seta bpl
cmp edx, 0x80
setb cl
mov esi, edx
xor esi, 0x7ff
and esi, edx
cmp esi, 0xd800
setne bl
sete al
xor al, cl
or bl, bpl
xor bl, 1
or bl, al
mov eax, edx
not eax
or eax, 1
test bl, bl
mov r15d, edx
cmovne r15d, r11d
cmp eax, 0xffff0001
cmovne r15d, edx
sete al
xor al, bl
cmovne r15d, r11d
cmp r15d, 0x2d
je 0x41bdf0
test r15d, r15d
je 0x41c18c
cmp r15d, 0x5d
jne 0x41bdf8
jmp 0x41bf90
movzx ecx, byte [rdi]
cmp ecx, 0x5d
jne 0x41be70
cmp r13d, r15d
cmove r8d, r10d
mov r12d, r15d
movzx r15d, byte [rdi]
add rdi, 1
cmp r15d, 0xc0
jb 0x41bdd2
add r15d, 0xffffff40
lea rax, [0x005fc440]
movzx edx, byte [r15 + rax]
mov al, byte [rdi]
mov ecx, eax
not cl
or cl, 0x3f
cmp cl, 0x7f
jne 0x41bd80
nop dword [rax]
shl edx, 6
mov ecx, eax
xor cl, 0xc0
and cl, al
movzx eax, cl
mov ecx, edx
and ecx, eax
xor edx, eax
or edx, ecx
movzx eax, byte [rdi + 1]
add rdi, 1
mov ecx, eax
xor cl, 0x3f
and cl, al
cmp cl, 0x80
je 0x41be40
jmp 0x41bd80
test r12d, r12d
je 0x41bdf8
test cl, cl
je 0x41bdf8
mov al, 1
test al, al
je 0x41bdf8
add rdi, 1
cmp cl, 0xc0
jb 0x41bf59
add ecx, 0xffffff40
lea rax, [0x005fc440]
movzx edx, byte [rcx + rax]
mov cl, byte [rdi]
mov eax, ecx
not al
or al, 0x3f
cmp al, 0x7f
jne 0x41bf05
nop dword [rax]
lea rax, [rdi + 1]
shl edx, 6
and cl, 0x3f
movzx ecx, cl
mov esi, edx
not esi
mov ebp, ecx
not ebp
and esi, 0x54ee5ff2
and edx, 0xab11a000
or edx, esi
and ebp, 0x54ee5ff2
and ecx, 0xd
or ecx, ebp
xor edx, ecx
movzx ecx, byte [rdi + 1]
mov ebx, ecx
not bl
or bl, 0x3f
mov rdi, rax
cmp bl, 0x7f
je 0x41bec0
jmp 0x41bf08
mov rax, rdi
cmp edx, 0x7f
seta cl
mov esi, edx
xor esi, 0x7ff
and esi, edx
cmp esi, 0xd800
setne sil
mov ebx, ecx
xor bl, sil
or cl, sil
xor cl, 1
or cl, bl
mov esi, edx
not esi
or esi, 1
cmp esi, 0xffff0001
sete bl
xor bl, cl
cmovne edx, r11d
test cl, cl
mov ecx, edx
cmovne ecx, r11d
cmp esi, 0xffff0001
cmovne ecx, edx
mov rdi, rax
cmp r13d, r12d
setb al
cmp r13d, ecx
seta dl
xor dl, al
mov eax, 1
cmovne eax, r8d
cmp r13d, ecx
cmovbe r8d, eax
cmp r13d, r12d
cmovae r8d, eax
xor r15d, r15d
jmp 0x41bdff
cmp r8d, r9d
mov r13d, dword [rsp + 0x3c]
mov r15, qword [rsp + 0x40]
mov esi, dword [rsp + 0x38]
jne 0x41b8f5
jmp 0x41c18c
movzx edi, byte [r12]
add r12, 1
cmp edi, 0xc0
jb 0x41c003
add edi, 0xffffff40
lea rax, [0x005fc440]
movzx eax, byte [rdi + rax]
mov cl, byte [r12]
nop word cs:[rax + rax]
mov edx, ecx
not dl
or dl, 0x3f
cmp dl, 0x7f
jne 0x41c015
shl eax, 6
and cl, 0x3f
movzx ecx, cl
or eax, ecx
movzx ecx, byte [r12 + 1]
add r12, 1
jmp 0x41bfe0
mov rax, r12
mov qword [rsp + 0x30], r12
test dil, dil
jne 0x41c067
jmp 0x41c18c
cmp eax, 0x80
setb cl
mov edx, eax
xor edx, 0x7ff
and edx, eax
cmp edx, 0xd800
sete dl
mov ebx, ecx
and bl, dl
xor cl, dl
or cl, bl
mov edx, eax
not edx
or edx, 1
cmp edx, 0xffff0001
sete bl
xor bl, cl
cmovne eax, r11d
test cl, cl
mov edi, eax
cmovne edi, r11d
cmp edx, 0xffff0001
cmovne edi, eax
mov rax, r12
mov qword [rsp + 0x30], r12
movzx eax, byte [r14]
add r14, 1
cmp eax, 0xc0
jb 0x41c11f
add eax, 0xffffff40
lea rcx, [0x005fc440]
movzx ebp, byte [rax + rcx]
mov al, byte [r14]
mov ecx, eax
not cl
or cl, 0x3f
cmp cl, 0x7f
jne 0x41c0ca
nop dword [rax]
shl ebp, 6
mov ecx, eax
xor cl, 0xc0
and cl, al
movzx eax, cl
mov ecx, ebp
and ecx, eax
xor ebp, eax
or ebp, ecx
movzx eax, byte [r14 + 1]
add r14, 1
mov ecx, eax
xor cl, 0x3f
and cl, al
cmp cl, 0x80
je 0x41c0a0
cmp ebp, 0x7f
seta al
cmp ebp, 0x80
setb cl
mov edx, ebp
not edx
or edx, 0x7ff
cmp edx, 0xffff27ff
setne dl
sete bl
xor bl, cl
or dl, al
xor dl, 1
or dl, bl
mov ecx, ebp
xor ecx, 1
and ecx, ebp
cmp ecx, 0xfffe
sete al
xor al, dl
cmovne ebp, r11d
test dl, dl
mov eax, ebp
cmovne eax, r11d
cmp ecx, 0xfffe
cmovne eax, ebp
cmp edi, eax
je 0x41b8f2
cmp byte [rsp + 0x28], 0
je 0x41c16a
mov ecx, eax
and ecx, edi
mov edx, eax
xor edx, edi
or edx, ecx
cmp edx, 0x7f
ja 0x41c16a
mov ecx, edi
xor ecx, 0xffffff00
and ecx, edi
mov edx, eax
xor edx, 0xffffff00
and edx, eax
lea rbp, [0x005fade0]
mov dl, byte [rdx + rbp]
cmp byte [rcx + rbp], dl
jne 0x41c16a
mov cl, 1
test cl, cl
jne 0x41b8f2
mov ebp, 1
cmp edi, dword [rsp + 0x2c]
jne 0x41c191
cmp r12, qword [rsp + 0x30]
je 0x41c191
test eax, eax
je 0x41c191
mov al, 1
test al, al
jne 0x41b8f2
jmp 0x41c191
mov ebp, 1
mov eax, ebp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rsp + 0x2c], 0
je 0x41c2dc
mov ecx, 0xfffd
mov edi, dword [rsp + 0x2c]
jmp 0x41c1c8
cmp eax, edi
je 0x41c28f
movzx eax, byte [r12]
add r12, 1
cmp eax, 0xc0
jb 0x41c270
add eax, 0xffffff40
lea rdx, [0x005fc440]
movzx ebp, byte [rax + rdx]
mov bl, byte [r12]
mov eax, ebx
xor al, 0x3f
and al, bl
cmp al, 0x80
jne 0x41c228
nop
shl ebp, 6
mov eax, ebx
xor al, 0xc0
and al, bl
movzx eax, al
mov edx, ebp
and edx, eax
xor ebp, eax
or ebp, edx
movzx ebx, byte [r12 + 1]
add r12, 1
mov eax, ebx
not al
or al, 0x3f
cmp al, 0x7f
je 0x41c200
cmp ebp, 0x7f
seta al
mov edx, ebp
not edx
or edx, 0x7ff
cmp edx, 0xffff27ff
setne dl
mov ebx, eax
xor bl, dl
or al, dl
xor al, 1
or al, bl
mov edx, ebp
xor edx, 1
and edx, ebp
cmp edx, 0xfffe
sete bl
xor bl, al
cmovne ebp, ecx
test al, al
mov eax, ebp
cmovne eax, ecx
cmp edx, 0xfffe
cmovne eax, ebp
cmp eax, esi
sete dl
cmp eax, edi
sete bl
test dl, bl
jne 0x41c1c0
xor dl, bl
jne 0x41c1c0
jmp 0x41c422
mov al, byte [r14]
add r14, 1
cmp al, 0xbf
jbe 0x41c2bb
mov al, byte [r14]
nop dword [rax]
mov edx, eax
xor dl, 0x3f
and dl, al
cmp dl, 0x80
jne 0x41c1c8
movzx eax, byte [r14 + 1]
add r14, 1
jmp 0x41c2a0
mov ebp, 2
test al, al
jne 0x41c1c8
jmp 0x41c191
xor ebp, ebp
cmp byte [r14], 0
setne bpl
jmp 0x41c191
mov r10d, 0xfffd
mov edi, dword [rsp + 0x2c]
nop word cs:[rax + rax]
movzx eax, byte [r12]
add r12, 1
cmp eax, 0xc0
jb 0x41c3cf
add eax, 0xffffff40
lea rcx, [0x005fc440]
movzx ecx, byte [rax + rcx]
mov dl, byte [r12]
mov eax, edx
not al
or al, 0x3f
cmp al, 0x7f
jne 0x41c376
nop word cs:[rax + rax]
lea rbx, [r12 + 1]
shl ecx, 6
and dl, 0x3f
movzx eax, dl
mov edx, ecx
not edx
mov ebp, eax
not ebp
and edx, 0x3e995c5a
and ecx, 0xc166a380
or ecx, edx
and ebp, 0x3e995c5a
and eax, 0xffffffe5
or eax, ebp
xor ecx, eax
movzx edx, byte [r12 + 1]
mov eax, edx
not al
or al, 0x3f
mov r12, rbx
cmp al, 0x7f
je 0x41c330
jmp 0x41c379
mov rbx, r12
cmp ecx, 0x7f
seta r8b
cmp ecx, 0x80
setb r9b
mov edx, ecx
xor edx, 0x7ff
and edx, ecx
cmp edx, 0xd800
setne dl
sete al
xor al, r9b
or dl, r8b
xor dl, 1
or dl, al
mov ebp, ecx
not ebp
or ebp, 1
test dl, dl
mov eax, ecx
cmovne eax, r10d
cmp ebp, 0xffff0001
cmovne eax, ecx
sete cl
xor cl, dl
cmovne eax, r10d
mov r12, rbx
cmp eax, esi
jne 0x41c422
cmp sil, dil
jne 0x41c2f0
mov al, byte [r14]
add r14, 1
cmp al, 0xc0
jb 0x41c410
mov al, byte [r14]
mov ecx, eax
xor cl, 0x3f
and cl, al
cmp cl, 0x80
jne 0x41c2f0
movzx eax, byte [r14 + 1]
add r14, 1
not al
or al, 0x3f
cmp al, 0x7f
je 0x41c3fa
jmp 0x41c2f0
mov ebp, 2
test al, al
jne 0x41c2f0
jmp 0x41c191
test eax, eax
je 0x41c495
cmp eax, r13d
jne 0x41c531
cmp byte [r15 + 2], 0
je 0x41c49c
mov bl, byte [r14]
mov ebp, 2
test bl, bl
je 0x41c191
add r12, 0xffffffffffffffff
jmp 0x41c45b
add r14, 1
mov bl, byte [r14]
test bl, bl
je 0x41c191
mov rcx, r12
mov rdx, r14
mov r8, r15
mov r9d, r13d
call fcn.0041b8a0
cmp eax, 1
jne 0x41c6ab
cmp bl, 0xc0
jb 0x41c44c
nop
movzx ebx, byte [r14 + 1]
add r14, 1
mov eax, ebx
not al
or al, 0x3f
cmp al, 0x7f
je 0x41c480
jmp 0x41c453
xor ebp, ebp
jmp 0x41c191
movzx eax, byte [r12]
add r12, 1
cmp eax, 0xc0
jb 0x41c4e3
add eax, 0xffffff40
lea rcx, [0x005fc440]
movzx eax, byte [rax + rcx]
mov cl, byte [r12]
mov edx, ecx
xor dl, 0x3f
and dl, cl
cmp dl, 0x80
jne 0x41c4f1
shl eax, 6
and cl, 0x3f
movzx ecx, cl
or eax, ecx
movzx ecx, byte [r12 + 1]
add r12, 1
jmp 0x41c4c0
test al, al
jne 0x41c531
mov ebp, 2
jmp 0x41c191
cmp eax, 0x80
setb cl
mov edx, eax
xor edx, 0x7ff
and edx, eax
cmp edx, 0xd800
sete dl
mov ebx, ecx
and bl, dl
xor cl, dl
or cl, bl
mov edx, eax
xor edx, 1
and edx, eax
cmp edx, 0xfffe
sete dl
mov edi, 0xfffd
test dl, cl
jne 0x41c576
xor dl, cl
jne 0x41c576
cmp eax, 0x81
jae 0x41c574
cmp byte [rsp + 0x28], 0
je 0x41c669
mov ecx, eax
lea rdx, [0x005fb0a0]
mov bl, byte [rcx + rdx]
mov edx, ebx
xor dl, 0xdf
and dl, bl
not al
or al, dl
not al
mov byte [rsp + 0x29], al
lea rax, [0x005fade0]
mov al, byte [rcx + rax]
mov byte [rsp + 0x2b], 0
jmp 0x41c66f
mov edi, eax
mov esi, 0xfffd
nop dword [rax + rax]
movzx ecx, byte [r14]
add r14, 1
test cl, cl
js 0x41c599
test cl, cl
jne 0x41c640
jmp 0x41c4e7
cmp cl, 0xc0
jb 0x41c640
add ecx, 0xffffff40
lea rax, [0x005fc440]
movzx ebp, byte [rcx + rax]
mov cl, byte [r14]
mov edx, ecx
xor dl, 0x3f
and dl, cl
cmp dl, 0x80
jne 0x41c5f0
nop word cs:[rax + rax]
shl ebp, 6
and cl, 0x3f
movzx ecx, cl
or ebp, ecx
movzx ecx, byte [r14 + 1]
add r14, 1
mov edx, ecx
not dl
or dl, 0x3f
cmp dl, 0x7f
je 0x41c5d0
cmp ebp, 0x7f
seta cl
cmp ebp, 0x80
setb dl
mov eax, ebp
xor eax, 0x7ff
and eax, ebp
cmp eax, 0xd800
setne al
sete bl
xor bl, dl
or al, cl
xor al, 1
or al, bl
mov edx, ebp
not edx
or edx, 1
cmp edx, 0xffff0001
sete cl
xor cl, al
cmovne ebp, esi
test al, al
mov ecx, ebp
cmovne ecx, esi
cmp edx, 0xffff0001
cmovne ecx, ebp
cmp ecx, edi
jne 0x41c580
mov rcx, r12
mov rdx, r14
mov r8, r15
mov r9d, r13d
call fcn.0041b8a0
mov ebp, eax
cmp eax, 1
je 0x41c580
jmp 0x41c191
mov byte [rsp + 0x29], al
xor eax, eax
mov byte [rsp + 0x2a], al
lea rsi, [rsp + 0x29]
mov rcx, r14
mov rdx, rsi
call fcn.005f4be8
cmp byte [r14 + rax], 0
je 0x41c4e7
add r14, rax
add r14, 1
mov rcx, r12
mov rdx, r14
mov r8, r15
mov r9d, r13d
call fcn.0041b8a0
cmp eax, 1
je 0x41c678
mov ebp, eax
jmp 0x41c191