Function at 0x14012cf40
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov esi, edx
mov eax, dword [0x14055f2b4]
mov edx, 0xa5c3332b
add edx, dword [0x1404f9474]
cmp eax, edx
nop dword [rax]
mov eax, dword [0x14055f2b0]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x14012cf60
test ecx, ecx
je 0x14012d04c
test esi, esi
je 0x14012d191
nop word cs:[rax + rax]
cmp dword [0x1404f9474], 0x5a3ccce5
je 0x14012cfae
movzx eax, byte [0x1404f7fc7]
mov eax, dword [0x14055f2b4]
cmp eax, 0x51
jge 0x14012cf90
movzx eax, byte [0x1404f7fc7]
mov ecx, dword [0x14055f2b4]
cmp ecx, 0x42
jg 0x14012cf9c
cmp al, 0x2b
je 0x14012d2b5
mov ecx, 0xa5c3335e
mov dl, 0xb
nop
mov eax, dword [0x14055f2b4]
mov r8d, dword [0x1404f9474]
add r8d, ecx
cmp eax, r8d
jge 0x14012d040
nop word cs:[rax + rax]
mov al, 0x88
lock cmpxchg byte [0x1404f7fc7], dl
sete r8b
mov r9d, dword [0x14055f2b0]
mov r10d, dword [0x1404f9474]
mov r11d, r9d
sub r11d, r10d
add r11d, 0x5a3ccce4
imul r11d, r9d
and r11d, 1
add r10d, 0xa5c3331b
cmp r11d, r10d
jne 0x14012d040
test r8b, r8b
jne 0x14012d1fc
cmp al, 0x2b
jne 0x14012cfd0
jmp 0x14012d2b5
mov al, 0x88
lock cmpxchg byte [0x1404f7fc7], dl
jmp 0x14012cff0
mov ebx, 0xa5c3331d
lea rdi, [0x14012d430]
nop dword [rax + rax]
mov eax, dword [0x14055f2b0]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x14012d08d
mov ecx, dword [0x14055f2b0]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1404f9474]
add ecx, ebx
xor edx, edx
div ecx
test edx, edx
je 0x14012d0b9
mov ecx, 0x13
call fcn.1403bcbb4
mov qword [0x14055f2a8], rax
mov rcx, rdi
call fcn.1403dccbc
mov eax, dword [0x14055f2b0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14012d060
jmp 0x14012d071
test esi, esi
jne 0x14012d0d7
xor eax, eax
test al, al
je 0x14012d329
jmp 0x14012d347
movzx eax, byte [0x1404f803d]
mov eax, dword [0x14055f2b0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14012d0d0
movzx eax, byte [0x1404f803d]
mov ecx, dword [0x14055f2b0]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, 0xa5c3331b
add ecx, dword [0x1404f9474]
cmp edx, ecx
jne 0x14012d0d0
cmp al, 0xb7
je 0x14012d309
xor ecx, ecx
mov dl, 0x12
lea rax, [fcn.14012cf40]
lea r8d, [rax + rax]
add r8d, 0x2ba0
mov r9d, r8d
not r9d
nop word cs:[rax + rax]
test cl, cl
jne 0x14012d180
nop word cs:[rax + rax]
mov al, 0x54
lock cmpxchg byte [0x1404f803d], dl
sete r10b
mov r11d, dword [0x14055f2b4]
cmp r11d, 0x1e
jge 0x14012d180
test r10b, r10b
jne 0x14012d2c1
cmp al, 0xb7
jne 0x14012d140
jmp 0x14012d309
mov al, 0x54
lock cmpxchg byte [0x1404f803d], dl
test r9d, r8d
jne 0x14012d180
jmp 0x14012d150
movzx eax, byte [0x1404f7e06]
nop dword [rax + rax]
cmp al, 0x1a
je 0x14012d412
movzx ecx, byte [0x1404f9470]
mov edx, ecx
xor dl, 0x28
mov eax, ecx
and al, 0x28
add al, al
add al, dl
add cl, 0x57
lock cmpxchg byte [0x1404f7e06], cl
jne 0x14012d1a0
xor eax, eax
lea rcx, [0x1404f7df0]
lea rdx, [0x1404247f0]
nop dword [rax]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0x15
jg 0x14012d315
inc rax
jmp 0x14012d1e0
xor edx, edx
lea r8, [0x1404f7fc0]
lea r9, [0x140424990]
mov r10d, 0xa5c33322
jmp 0x14012d22a
inc edx
cmp edx, eax
jge 0x14012d2ad
mov eax, dword [0x14055f2b0]
lea ecx, [rax + 1]
imul ecx, eax
movsxd r11, edx
test cl, 1
jne 0x14012d270
nop
movzx eax, byte [r11 + r9]
mov ecx, eax
xor cl, al
not cl
and cl, byte [r11 + r8]
xor cl, al
mov byte [r11 + r8], cl
mov eax, dword [0x1404f9474]
add eax, r10d
mov ecx, dword [0x14055f2b0]
lea esi, [rcx - 1]
imul esi, ecx
test sil, 1
je 0x14012d220
movzx eax, byte [r11 + r8]
movzx ecx, byte [r11 + r9]
sub al, cl
mov ebx, eax
xor bl, cl
and cl, al
add cl, cl
add cl, bl
mov ebx, eax
xor bl, cl
and al, cl
add al, al
add al, bl
sub al, cl
mul cl
sub al, cl
mul cl
shl al, cl
xor al, cl
mov byte [r11 + r8], al
mov eax, dword [0x14055f2b4]
cmp eax, 0x50
jge 0x14012d270
jmp 0x14012d240
mov al, 0x2b
xchg byte [0x1404f7fc7], al
lea rax, [0x1404f7fc0]
jmp 0x14012d3e7
xor edx, edx
lea rax, [0x1404f8030]
lea rcx, [0x140424a00]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x1404f9474]
add edx, r8d
add edx, 0xa5c3331c
cmp edx, 0xd
jl 0x14012d2e0
mov al, 0xb7
xchg byte [0x1404f803d], al
lea rax, [0x1404f8030]
jmp 0x14012d3e7
mov eax, dword [0x14055f2b4]
cmp eax, 0x44
jl 0x14012d3ef
jmp 0x14012d408
movzx eax, byte [0x1404f7e83]
lea rcx, [fcn.14012cf40]
add ecx, ecx
add ecx, 0x44c0
mov edx, ecx
not edx
test edx, ecx
je 0x14012d350
movzx eax, byte [0x1404f7e83]
jmp 0x14012d329
cmp al, 0xa9
je 0x14012d3e0
mov cl, 0xf4
nop word [rax + rax]
mov al, 0x24
lock cmpxchg byte [0x1404f7e83], cl
je 0x14012d3a2
mov edx, dword [0x14055f2b4]
cmp edx, 0x2f
mov edx, dword [0x14055f2b4]
mov r8d, dword [0x1404f9474]
mov r9d, r8d
xor r9d, 0xa5c33348
and r8d, 0x25c33348
lea r8d, [r9 + r8*2]
cmp edx, r8d
jge 0x14012d375
cmp al, 0xa9
jne 0x14012d360
jmp 0x14012d3e0
xor eax, eax
lea rcx, [0x1404f7e80]
lea rdx, [0x140424870]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 2
jg 0x14012d3d8
inc rax
jmp 0x14012d3c0
mov al, 0xa9
xchg byte [0x1404f7e83], al
lea rax, [0x1404f7e80]
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
mov al, 0x1a
xchg byte [0x1404f7e06], al
mov eax, dword [0x14055f2b0]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14012d412
mov al, 0x1a
xchg byte [0x1404f7e06], al
jmp 0x14012d3ef
xor eax, eax
test al, al
jne 0x14012d41e
mov al, 1
test al, al
jne 0x14012d426
mov al, 1
test al, al
je 0x14012d420
jmp 0x14012d418
lea rax, [0x1404f7df0]
jmp 0x14012d3e7