Function at 0x140323c80
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 0x140323ccd
mov ebp, 0x1c
test rax, rax
jne case.0x140324070.34
mov r10b, 1
xor r9d, r9d
xor ebx, ebx
mov al, 1
jmp 0x140324089
test rax, rax
jne 0x140323cd7
xor r9d, r9d
jmp 0x140323d0c
cmp byte [rax], 0x78
jne 0x140323cd2
cmp byte [rax + 1], 0x6d
jne 0x140323cd2
cmp byte [rax + 2], 0x6c
jne 0x140323cd2
mov cl, byte [rax + 3]
cmp cl, 0x6e
jne 0x140323d06
cmp byte [rax + 4], 0x73
jne 0x140323d06
cmp byte [rax + 5], 0
jne 0x140323d06
mov ebp, 0x27
jmp case.0x140324070.34
test cl, cl
sete r9b
mov r8b, byte [rsi + 0x1d8]
mov al, 1
xor ebx, ebx
lea r12, [fcn.140323c80]
mov r13d, 3
sub r13d, r12d
lea r15, [fcn.14031b9d0]
mov r10b, 1
mov r11b, 1
test al, 1
je 0x140323e8d
cmp rbx, 0x24
ja 0x140323e8d
mov eax, r13d
xor eax, r12d
sete al
or al, 2
movzx eax, al
movzx ecx, byte [0x14063af9b]
bt ecx, eax
jb 0x140323e80
mov al, byte [0x14063af9b]
mov ecx, 3
sub ecx, r12d
xor ecx, r12d
sete cl
or cl, 2
xor cl, 7
mov dl, 1
shl dl, cl
or dl, al
lock cmpxchg byte [0x14063af9b], dl
jne 0x140323d6a
mov ecx, 3
sub ecx, r12d
xor ecx, r12d
sete cl
or cl, 2
xor cl, 7
movzx ecx, cl
movzx eax, al
bt eax, ecx
mov rsi, qword [rsp + 0x28]
jae 0x140323dd6
mov eax, 3
sub eax, r12d
xor eax, r12d
sete al
or al, 2
movzx eax, al
movzx ecx, byte [0x14063af9b]
bt ecx, eax
jae 0x140323db2
jmp 0x140323e80
mov eax, 3
sub eax, r12d
xor ebp, ebp
xor eax, r12d
sete bpl
or rbp, 0x2de33c62
add rbp, 0x400
mov eax, ebp
and al, 7
movzx eax, al
movzx ecx, byte [0x14063af9b]
bt ecx, eax
jb 0x140323e62
mov dword [rsp + 0x34], r13d
xor eax, eax
lea r13, [0x14063af70]
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 0x140323e16
mov eax, 3
sub eax, r12d
xor eax, r12d
sete cl
or cl, 2
mov al, 1
shl al, cl
or byte [0x14063af9b], al
mov rsi, qword [rsp + 0x28]
mov r13d, dword [rsp + 0x34]
mov eax, 3
sub eax, r12d
xor eax, r12d
sete cl
or cl, 2
xor cl, 7
mov al, 0xfe
rol al, cl
and byte [0x14063af9b], al
lea rax, [0x14063af70]
cmp r14b, byte [rbx + rax]
je 0x140323e90
xor r11d, r11d
test r9b, r9b
jne 0x14032403f
test r10b, r10b
je 0x14032403f
cmp rbx, 0x1d
ja 0x14032403c
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, 3
lea eax, [rax + rdx*2]
movzx ecx, byte [0x14063afc3]
bt ecx, eax
jb 0x14032402a
mov al, byte [0x14063afc3]
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, 3
lea ecx, [rcx + rsi*2]
xor cl, 7
mov dl, 1
shl dl, cl
or dl, al
lock cmpxchg byte [0x14063afc3], dl
jne 0x140323edd
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, 3
lea ecx, [rcx + rsi*2]
xor cl, 7
movzx ecx, cl
movzx eax, al
bt eax, ecx
jae 0x140323f62
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, 3
lea eax, [rax + rdx*2]
movzx ecx, byte [0x14063afc3]
bt ecx, eax
jae 0x140323f36
jmp 0x14032402a
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, 0x6a4de493
or edx, 0x320
and edx, 0x321
lea rbp, [rax + rdx*2]
mov eax, ebp
and al, 7
movzx eax, al
movzx ecx, byte [0x14063afc3]
bt ecx, eax
jb 0x140324002
mov dword [rsp + 0x34], r13d
mov r13, rdi
xor eax, eax
lea rsi, [0x14063afa0]
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 0x140323fb2
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, 3
lea ecx, [rax + rdx*2]
mov al, 1
shl al, cl
or byte [0x14063afc3], 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, 3
lea ecx, [rax + rdx*2]
xor cl, 7
mov al, 0xfe
rol al, cl
and byte [0x14063afc3], al
lea rax, [0x14063afa0]
cmp r14b, byte [rbx + rax]
mov rsi, qword [rsp + 0x28]
je 0x14032403f
xor r10d, r10d
test r8b, r8b
je case.0x140324070.33
cmp r14b, byte [rsi + 0x37c]
jne case.0x140324070.33
movsx eax, r14b
mov ebp, 2
add eax, 0xffffffdf
cmp eax, 0x5d
ja case.0x140324070.34
lea rcx, [0x140324230]
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 0x140323d34
cmp ebx, 0x24
sete cl
and cl, al
movzx eax, r9b
movzx ecx, cl
cmp eax, ecx
je 0x1403240af
xor eax, eax
test r9b, r9b
sete al
lea ebp, [rax + rax]
add ebp, 0x26
jmp case.0x140324070.34
test r10b, r10b
je 0x1403240c2
mov ebp, 0x28
cmp ebx, 0x1d
je case.0x140324070.34
cmp byte [rsi + 0x37c], 1
sbb ebx, 0xffffffff
mov r13, qword [rsi + 0x2d8]
test r13, r13
je 0x140324125
cmp ebx, dword [r13 + 0x2c]
jle 0x140324118
mov ebp, 1
cmp ebx, 0x7fffffe7
ja case.0x140324070.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.0x140324070.34
mov qword [r13 + 0x20], rax
mov dword [r13 + 0x2c], r14d
mov rax, qword [r13 + 8]
mov qword [rsi + 0x2d8], rax
jmp 0x140324171
mov ecx, 0x30
call qword [rsi + 0x18]
mov ebp, 1
cmp ebx, 0x7fffffe7
ja case.0x140324070.34
mov r13, rax
test rax, rax
je case.0x140324070.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 0x14032416d
mov rcx, r13
call qword [rsi + 0x28]
jmp case.0x140324070.34
mov dword [r13 + 0x2c], r14d
mov dword [r13 + 0x28], ebx
mov r8d, ebx
mov rcx, qword [r13 + 0x20]
mov rdx, rdi
call fcn.1401fed70
mov al, byte [rsi + 0x37c]
test al, al
mov rdx, rsi
je 0x1403241a1
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 0x1403241dd
mov ecx, 0x130
add rcx, qword [rdx + 0x2b0]
cmp rcx, rsi
jne 0x1403241dd
xor ecx, ecx
jmp 0x1403241e0
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.0x140324070.34
mov rax, qword [rdx + 0xd8]
test rax, rax
je case.0x140324070.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