Function at 0x140a5afc0
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 rdi, r9
mov rsi, rcx
mov r14b, byte [r9]
mov rax, qword [rdx]
test r14b, r14b
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x38], r8
jne 0x140a5b00d
mov ebp, 0x1c
test rax, rax
jne case.0x140a5b3c1.34
mov r10b, 1
xor r9d, r9d
xor ebx, ebx
mov al, 1
jmp 0x140a5b3da
test rax, rax
jne 0x140a5b017
xor r9d, r9d
jmp 0x140a5b04c
cmp byte [rax], 0x78
jne 0x140a5b012
cmp byte [rax + 1], 0x6d
jne 0x140a5b012
cmp byte [rax + 2], 0x6c
jne 0x140a5b012
mov cl, byte [rax + 3]
cmp cl, 0x6e
jne 0x140a5b046
cmp byte [rax + 4], 0x73
jne 0x140a5b046
cmp byte [rax + 5], 0
jne 0x140a5b046
mov ebp, 0x27
jmp case.0x140a5b3c1.34
test cl, cl
sete r9b
mov r8b, byte [rsi + 0x1c8]
mov al, 1
xor ebx, ebx
lea r12, [0x140a538b0]
mov r13d, r12d
and r13d, 1
xor r13d, r12d
lea r15, [fcn.140a575d0]
mov r10b, 1
mov r11b, 1
test al, 1
je 0x140a5b1de
cmp rbx, 0x24
ja 0x140a5b1de
cmp r13d, 0xffffffff
sete al
not al
and al, 3
movzx eax, al
movzx ecx, byte [0x140d16e9b]
bt ecx, eax
jb 0x140a5b1d1
mov al, byte [0x140d16e9b]
mov ecx, r12d
and ecx, 1
xor ecx, r12d
cmp ecx, 0xffffffff
sete cl
not cl
and cl, 3
xor cl, 7
mov dl, 1
shl dl, cl
or dl, al
lock cmpxchg byte [0x140d16e9b], dl
jne 0x140a5b0ab
mov ecx, r12d
and ecx, 1
xor ecx, r12d
cmp ecx, 0xffffffff
sete cl
not cl
and cl, 3
xor cl, 7
movzx ecx, cl
movzx eax, al
bt eax, ecx
mov rsi, qword [rsp + 0x28]
jae 0x140a5b120
mov eax, r12d
and eax, 1
xor eax, r12d
cmp eax, 0xffffffff
sete al
not al
and al, 3
movzx eax, al
movzx ecx, byte [0x140d16e9b]
bt ecx, eax
jae 0x140a5b0f9
jmp 0x140a5b1d1
mov eax, r12d
and eax, 1
xor eax, r12d
xor ebp, ebp
cmp eax, 0xffffffff
sete bpl
xor rbp, 0x32e973db
add rbp, 0x840
mov eax, ebp
and al, 7
movzx eax, al
movzx ecx, byte [0x140d16e9b]
bt ecx, eax
jb 0x140a5b1b0
mov dword [rsp + 0x34], r13d
xor eax, eax
lea r13, [0x140d16e70]
mov edx, dword [r13]
xor edx, ebp
mov esi, ebp
mov ecx, eax
shl esi, cl
xor cl, 0x1f
shr ebp, cl
mov dword [r13], edx
or ebp, esi
not edx
imul ebp, edx
add r13, 4
inc eax
cmp eax, 0xa
jne 0x140a5b161
mov eax, r12d
and eax, 1
xor eax, r12d
cmp eax, 0xffffffff
sete cl
not cl
and cl, 3
mov al, 1
shl al, cl
or byte [0x140d16e9b], al
mov rsi, qword [rsp + 0x28]
mov r13d, dword [rsp + 0x34]
mov eax, r12d
and eax, 1
xor eax, r12d
cmp eax, 0xffffffff
sete cl
not cl
and cl, 3
xor cl, 7
mov al, 0xfe
rol al, cl
and byte [0x140d16e9b], al
lea rax, [0x140d16e70]
cmp r14b, byte [rbx + rax]
je 0x140a5b1e1
xor r11d, r11d
test r9b, r9b
jne 0x140a5b390
test r10b, r10b
je 0x140a5b390
cmp rbx, 0x1d
ja 0x140a5b38d
mov eax, r15d
xor eax, 2
mov ecx, r15d
or ecx, 2
xor edx, edx
add ecx, eax
sete dl
mov eax, edx
xor eax, 5
lea eax, [rax + rdx*2]
movzx ecx, byte [0x140d16ec3]
bt ecx, eax
jb 0x140a5b37b
mov al, byte [0x140d16ec3]
mov ecx, r15d
xor ecx, 2
mov edx, r15d
or edx, 2
xor esi, esi
add edx, ecx
sete sil
mov ecx, esi
xor ecx, 5
lea ecx, [rcx + rsi*2]
xor cl, 7
mov dl, 1
shl dl, cl
or dl, al
lock cmpxchg byte [0x140d16ec3], dl
jne 0x140a5b22e
mov ecx, r15d
xor ecx, 2
mov edx, r15d
or edx, 2
xor esi, esi
add edx, ecx
sete sil
mov ecx, esi
xor ecx, 5
lea ecx, [rcx + rsi*2]
xor cl, 7
movzx ecx, cl
movzx eax, al
bt eax, ecx
jae 0x140a5b2b3
mov eax, r15d
xor eax, 2
mov ecx, r15d
or ecx, 2
xor edx, edx
add ecx, eax
sete dl
mov eax, edx
xor eax, 5
lea eax, [rax + rdx*2]
movzx ecx, byte [0x140d16ec3]
bt ecx, eax
jae 0x140a5b287
jmp 0x140a5b37b
mov eax, r15d
xor eax, 2
mov ecx, r15d
or ecx, 2
xor edx, edx
add ecx, eax
sete dl
mov rax, rdx
xor rax, 0x624050f5
or edx, 0x508
and edx, 0x509
lea rbp, [rax + rdx*2]
mov eax, ebp
and al, 7
movzx eax, al
movzx ecx, byte [0x140d16ec3]
bt ecx, eax
jb 0x140a5b353
mov dword [rsp + 0x34], r13d
mov r13, rdi
xor eax, eax
lea rsi, [0x140d16ea0]
mov edx, dword [rsi]
xor edx, ebp
mov edi, ebp
mov ecx, eax
shl edi, cl
xor cl, 0x1f
shr ebp, cl
mov dword [rsi], edx
or ebp, edi
not edx
imul ebp, edx
add rsi, 4
inc eax
cmp eax, 8
jne 0x140a5b303
mov eax, r15d
xor eax, 2
mov ecx, r15d
or ecx, 2
xor edx, edx
add ecx, eax
sete dl
mov eax, edx
xor eax, 5
lea ecx, [rax + rdx*2]
mov al, 1
shl al, cl
or byte [0x140d16ec3], al
mov rdi, r13
mov r13d, dword [rsp + 0x34]
mov eax, r15d
xor eax, 2
mov ecx, r15d
or ecx, 2
xor edx, edx
add ecx, eax
sete dl
mov eax, edx
xor eax, 5
lea ecx, [rax + rdx*2]
xor cl, 7
mov al, 0xfe
rol al, cl
and byte [0x140d16ec3], al
lea rax, [0x140d16ea0]
cmp r14b, byte [rbx + rax]
mov rsi, qword [rsp + 0x28]
je 0x140a5b390
xor r10d, r10d
test r8b, r8b
je case.0x140a5b3c1.33
cmp r14b, byte [rsi + 0x36c]
jne case.0x140a5b3c1.33
movsx eax, r14b
mov ebp, 2
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x140a5b3c1.34
lea rcx, [0x140a5b580]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov r14b, byte [rdi + rbx + 1]
inc rbx
test r11b, r11b
setne al
test r14b, r14b
jne 0x140a5b075
cmp ebx, 0x24
sete cl
and cl, al
movzx eax, r9b
movzx ecx, cl
cmp eax, ecx
je 0x140a5b400
xor eax, eax
test r9b, r9b
sete al
lea ebp, [rax + rax]
add ebp, 0x26
jmp case.0x140a5b3c1.34
test r10b, r10b
je 0x140a5b413
mov ebp, 0x28
cmp ebx, 0x1d
je case.0x140a5b3c1.34
cmp byte [rsi + 0x36c], 1
sbb ebx, 0xffffffff
mov r13, qword [rsi + 0x2c8]
test r13, r13
je 0x140a5b476
cmp ebx, dword [r13 + 0x2c]
jle 0x140a5b469
mov ebp, 1
cmp ebx, 0x7fffffe7
ja case.0x140a5b3c1.34
lea r14d, [rbx + 0x18]
mov rcx, qword [r13 + 0x20]
mov rdx, r14
mov rax, qword [rsp + 0x28]
call qword [rax + 0x20]
mov rsi, qword [rsp + 0x28]
test rax, rax
je case.0x140a5b3c1.34
mov qword [r13 + 0x20], rax
mov dword [r13 + 0x2c], r14d
mov rax, qword [r13 + 8]
mov qword [rsi + 0x2c8], rax
jmp 0x140a5b4c2
mov ecx, 0x30
call qword [rsi + 0x18]
mov ebp, 1
cmp ebx, 0x7fffffe7
ja case.0x140a5b3c1.34
mov r13, rax
test rax, rax
je case.0x140a5b3c1.34
lea r14d, [rbx + 0x18]
mov rcx, r14
mov rsi, qword [rsp + 0x28]
call qword [rsi + 0x18]
mov qword [r13 + 0x20], rax
test rax, rax
jne 0x140a5b4be
mov rcx, r13
call qword [rsi + 0x28]
jmp case.0x140a5b3c1.34
mov dword [r13 + 0x2c], r14d
mov dword [r13 + 0x28], ebx
mov r8d, ebx
mov rcx, qword [r13 + 0x20]
mov rdx, rdi
call fcn.1408daa80
mov al, byte [rsi + 0x36c]
test al, al
mov rdx, rsi
je 0x140a5b4f2
mov rcx, qword [r13 + 0x20]
movsxd rdx, ebx
mov byte [rcx + rdx - 1], al
mov rdx, qword [rsp + 0x28]
mov rax, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x40]
mov qword [r13], rsi
mov rbx, qword [rsp + 0x38]
mov qword [r13 + 0x18], rbx
mov rcx, qword [rsi + 8]
mov qword [r13 + 0x10], rcx
cmp byte [rdi], 0
jne 0x140a5b52e
mov ecx, 0x130
add rcx, qword [rdx + 0x2a0]
cmp rcx, rsi
jne 0x140a5b52e
xor ecx, ecx
jmp 0x140a5b531
mov rcx, r13
mov qword [rsi + 8], rcx
mov rcx, qword [rax]
mov qword [r13 + 8], rcx
mov qword [rax], r13
xor ebp, ebp
test rbx, rbx
je case.0x140a5b3c1.34
mov rax, qword [rdx + 0xc8]
test rax, rax
je case.0x140a5b3c1.34
mov rbx, rdx
mov rdx, qword [rsi]
mov rcx, qword [rsi + 8]
test rcx, rcx
cmove rdi, rcx
mov rcx, qword [rbx + 8]
mov r8, rdi
call rax
mov eax, ebp
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret