Function at 0x14038f620
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
lea rcx, [rbp - 0x18]
call fcn.14038e940
mov ecx, dword [0x140578e38]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x14055e718]
mov edx, ecx
xor edx, 0x27bd685d
mov r8d, ecx
and r8d, 0x27bd685d
lea r8d, [rdx + r8*2]
xor edx, edx
div r8d
add ecx, 0x27bd685b
cmp edx, ecx
jne 0x14038f698
movsxd rdi, dword [0x14045f738]
mov eax, dword [0x140578e38]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14038f703
mov eax, 0x27bd685c
lea rcx, [fcn.14038f620]
add ecx, ecx
add ecx, 0x640
jmp 0x14038f6bb
mov edx, dword [0x140578e3c]
cmp edx, 0x5d
jl 0x14038f680
mov edx, dword [0x14055e718]
add edx, eax
test ecx, edx
jne 0x14038f6f0
nop word [rax + rax]
mov edx, dword [0x14045f738]
mov edx, dword [0x140578e3c]
cmp edx, 0x13
jl 0x14038f6b0
nop word cs:[rax + rax]
mov edx, dword [0x14045f738]
mov edx, dword [0x140578e3c]
cmp edx, 0x5e
jge 0x14038f6f0
jmp 0x14038f6d0
lea rax, [fcn.14038f620]
lea ecx, [rax + rax]
add ecx, 0x1540
mov r8d, 0x27bd687f
mov r9d, 0x27bd685b
mov r10b, 1
nop word cs:[rax + rax]
mov eax, dword [0x14055e718]
mov edx, eax
xor edx, 0x27bd685c
and eax, 0x27bd685c
lea eax, [rdx + rax*2]
test ecx, eax
mov edx, dword [0x140578e38]
lea eax, [rdx - 1]
imul eax, edx
mov edx, dword [0x14055e718]
mov r11d, edx
xor r11d, 0x27bd685d
and edx, 0x27bd685d
lea r11d, [r11 + rdx*2]
xor edx, edx
div r11d
test edx, edx
jne 0x14038f748
mov eax, dword [0x140578e3c]
mov edx, dword [0x14055e718]
add edx, r8d
cmp eax, edx
jge 0x14038f7a0
mov eax, dword [0x140578e3c]
cmp eax, 0x21
jl 0x14038f7e3
nop word cs:[rax + rax]
mov eax, dword [0x140578e38]
lea edx, [rax - 1]
imul edx, eax
and edx, 1
mov eax, dword [0x14055e718]
add eax, r9d
cmp edx, eax
je 0x14038f7c1
test r10b, r10b
je 0x14038f7a0
mov eax, dword [0x140578e38]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
jne 0x14038f7bc
mov eax, dword [0x140578e3c]
cmp eax, 0x52
jge 0x14038f730
jmp 0x14038f78a
lea rax, [0x14045f738]
add rdi, rax
mov eax, dword [0x140578e38]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x14055e718]
mov edx, eax
xor edx, 0x27bd685b
and eax, 0x27bd685b
lea eax, [rdx + rax*2]
cmp ecx, eax
je 0x14038fbaa
jmp 0x14038fc03
lea rdx, [rbp - 0x18]
mov rcx, rsi
call fcn.1403b4e30
mov eax, dword [0x140578e3c]
cmp eax, 0x60
jle 0x14038f85f
mov ecx, 0x27bd685d
nop dword [rax + rax]
mov edx, dword [0x140578e38]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x14055e718]
add r8d, ecx
xor edx, edx
div r8d
test edx, edx
jne 0x14038f840
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14038fb96
mov r8, qword [0x1405769e8]
add r8, qword [rbp - 8]
lea rax, [fcn.14038f620]
add eax, eax
add eax, 0x3ea0
mov edx, eax
not edx
mov r9d, 0x27bd6876
nop
mov r10d, dword [0x140578e3c]
cmp r10d, 0x5b
jg 0x14038f8a1
test edx, eax
je 0x14038f8b9
mov r10d, dword [0x140578e3c]
mov r11d, dword [0x14055e718]
add r11d, r9d
cmp r10d, r11d
jge 0x14038f890
jmp 0x14038f89d
mov r9d, dword [0x140578e20]
mov r10d, r9d
not r10d
neg r10d
mov dword [0x140578e20], r10d
mov edx, dword [0x140578e38]
lea eax, [rdx - 1]
imul eax, edx
mov r11d, dword [0x14055e718]
lea r14d, [r11 + 0x27bd685d]
xor edx, edx
div r14d
add r11d, 0x27bd685b
cmp edx, r11d
nop dword [rax]
mov eax, dword [0x140578e38]
lea edx, [rax + 1]
imul edx, eax
test dl, 1
jne 0x14038f900
xor r9d, r10d
not r9d
mov eax, dword [0x140578e3c]
nop dword [rax]
mov eax, dword [0x140578e3c]
cmp eax, 0x26
jg 0x14038f920
xor edx, edx
test r9d, r10d
jne 0x14038f9de
test ebx, ebx
jle 0x14038f9de
xor eax, eax
mov r11d, 0x27bd685b
xor edx, edx
nop dword [rax + rax]
movsxd r15, eax
add r15, rdi
nop word cs:[rax + rax]
mov r14d, dword [r15]
mov r12d, dword [0x140578e38]
lea r13d, [r12 - 1]
imul r13d, r12d
and r13d, 1
mov r12d, dword [0x14055e718]
add r12d, r11d
cmp r13d, r12d
je 0x14038f9b0
nop word cs:[rax + rax]
mov r14d, dword [r15]
mov r14d, dword [0x140578e38]
lea r12d, [r14 - 1]
imul r12d, r14d
test r12b, 1
jne 0x14038f990
jmp 0x14038f960
mov r15d, dword [0x140578e3c]
cmp r15d, 0x5a
mov r15d, dword [0x140578e38]
lea r12d, [r15 - 1]
imul r12d, r15d
test r12b, 1
jne 0x14038f9bb
xor edx, r14d
add eax, 4
cmp eax, ebx
jl 0x14038f950
sub r8, rcx
cmp r8, 0xfff
jbe 0x14038fb82
mov rax, qword [rcx - 8]
cmp byte [0x1405759f1], 0
jne 0x14038fa0c
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14038fb4e
add r8, 0x27
mov ecx, 0x27bd686a
nop word cs:[rax + rax]
mov r11d, dword [0x140578e3c]
mov edi, dword [0x14055e718]
add edi, ecx
cmp r11d, edi
jge 0x14038fa41
mov r11d, dword [0x140578e3c]
cmp r11d, 0x3e
jle 0x14038fa58
mov r11d, dword [0x140578e38]
lea edi, [r11 - 1]
imul edi, r11d
test dil, 1
jne 0x14038fa20
jmp 0x14038fa34
mov ecx, dword [0x140578e38]
mov r11d, dword [0x14055e718]
neg r11d
add r11d, ecx
add r11d, 0xd84297a4
imul r11d, ecx
test r11b, 1
je 0x14038fa91
nop dword [rax]
mov ecx, dword [0x14045f73c]
mov ecx, dword [0x140578e3c]
cmp ecx, 0x5f
jge 0x14038fa80
mov ecx, dword [0x14045f73c]
nop word [rax + rax]
mov r11d, dword [0x140578e38]
lea edi, [r11 - 1]
imul edi, r11d
test dil, 1
jne 0x14038faa0
mov edi, r9d
and edi, r10d
xor r11d, r11d
cmp edi, 1
sbb r11d, r11d
mov edi, 0x27bd685c
add edi, dword [0x14055e718]
lea rbx, [fcn.14038f620]
add ebx, ebx
add ebx, 0x3360
xor ebx, edi
not ebx
test ebx, edi
jne 0x14038faa0
mov r9d, dword [0x140578e3c]
cmp r9d, 0x1f
nop word cs:[rax + rax]
mov r9d, dword [0x140578e38]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
jne 0x14038fb00
sub ecx, edx
mov edx, dword [0x140578e38]
mov r9d, dword [0x14055e718]
mov r10d, edx
sub r10d, r9d
add r10d, 0xd84297a4
imul r10d, edx
and r10d, 1
add r9d, 0x27bd685b
cmp r10d, r9d
je 0x14038fc8d
jmp 0x14038fca1
mov eax, dword [0x140578e3c]
mov ecx, 0x27bd68a0
add ecx, dword [0x14055e718]
cmp eax, ecx
jge 0x14038fb70
jmp 0x14038fb65
mov eax, dword [0x140578e3c]
cmp eax, 0x51
jl 0x14038fb7d
mov eax, dword [0x140578e3c]
cmp eax, 0x5a
jge 0x14038fb70
jmp 0x14038fb65
call fcn.1403d599c
mov rdx, r8
mov r8d, 0x5bb6a3ba
mov r9d, 0xa4448092
call fcn.1400a87c0
mov rax, rsi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [0x140578e3c]
cmp eax, 0xf
jg 0x14038fbe6
mov ebx, dword [0x14045f734]
mov eax, 0x27bd685c
add eax, dword [0x14055e718]
lea rcx, [fcn.14038f620]
add ecx, ecx
add ecx, 0x2c80
mov edx, ecx
xor edx, eax
not eax
not ecx
and ecx, eax
or ecx, edx
cmp ecx, 0xffffffff
je 0x14038fbee
mov eax, dword [0x14045f734]
jmp 0x14038fbb5
mov eax, dword [0x140578e38]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14038f81f
mov eax, 0x27bd685c
lea rcx, [fcn.14038f620]
add ecx, ecx
add ecx, 0x37a0
mov edx, ecx
not edx
mov r8d, 0x27bd68b8
jmp 0x14038fc4c
mov r9d, dword [0x14045f734]
mov r9d, dword [0x140578e38]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x14038fc6b
mov r9d, dword [0x14055e718]
add r9d, eax
mov r10d, ecx
xor r10d, r9d
not r9d
and r9d, edx
or r9d, r10d
cmp r9d, 0xffffffff
jne 0x14038fc30
mov r9d, dword [0x14045f734]
mov r9d, dword [0x140578e3c]
mov r10d, dword [0x14055e718]
add r10d, r8d
cmp r9d, r10d
jge 0x14038fc30
jmp 0x14038fbaa
movzx edx, byte [0x1405759f1]
mov r9d, dword [0x140578e3c]
cmp r9d, 0x35
jl 0x14038fcac
mov edx, dword [0x140578e3c]
cmp edx, 0xd
jmp 0x14038fc8d
xor r9d, r9d
test r9b, r9b
jne 0x14038fcc1
mov r9d, dword [0x140578e3c]
cmp r9d, 0x3b
jl 0x14038fce7
mov r9d, 0x27bd68ad
nop word [rax + rax]
mov r10d, dword [0x140578e3c]
mov edi, dword [0x14055e718]
add edi, r9d
cmp r10d, edi
jge 0x14038fcd0
jmp 0x14038fcb4
mov r9d, dword [0x14055e718]
mov r10d, r9d
xor r10d, 0x27bd685c
and r9d, 0x27bd685c
lea r9d, [r10 + r9*2]
lea r10, [fcn.14038f620]
add r10d, r10d
add r10d, 0x780
test r10d, r9d
jne 0x14038fd43
test ecx, r11d
setne r9b
or r9b, dl
and r9b, 1
mov byte [0x1405759f1], r9b
mov r9d, dword [0x140578e38]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x14038fd53
mov r9d, edx
and r9b, 1
mov byte [0x1405759f1], r9b
jmp 0x14038fd19
mov ecx, dword [0x140578e3c]
nop dword [rax]
mov ecx, dword [0x140578e3c]
cmp ecx, 0x2f
jge 0x14038fd60
mov rcx, rax
jmp 0x14038fb82