Function at 0x14009ae90
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x60
lea rbp, [rsp + 0x60]
mov byte [rbp - 0x19], r8b
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rcx
mov eax, dword [0x14021ae68]
or eax, dword [0x14021ae6c]
mov ecx, 0x902daea3
xor ecx, 0x7ee8995e
xor edx, edx
div ecx
xor eax, 0xf8ff7c65
mov ecx, 0xc7bdf2df
xor ecx, 0xbb454e06
xor eax, ecx
mov ecx, 0xdac83660
xor ecx, 0x9a9d043
cmp eax, ecx
ja 0x14009b1b2
mov eax, dword [0x14021ae70]
mov ecx, dword [0x14021ae74]
xor edx, edx
div ecx
xor eax, 0x6befce83
imul rax, rax, 0x61f96c2d
shr rax, 0x3e
xor eax, 0x38c665e9
mov dword [rbp - 0x2c], eax
mov eax, 0x10
mov qword [rbp - 0x48], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp - 0x48]
mov rcx, rsp
mov qword [rbp - 0x40], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x38], rax
sub rsp, 0x20
call fcn.140097a88
mov rcx, qword [rbp - 0x18]
add rsp, 0x20
mov eax, dword [rbp - 0x2c]
mov rcx, qword [rcx]
mov qword [rbp - 0x28], rcx
cmp rcx, 0
setl cl
mov byte [rbp - 0x1a], cl
cmp eax, 0x6cc6035f
je 0x14009aeea
mov al, byte [rbp - 0x1a]
test al, 1
jne 0x14009af7d
jmp 0x14009b0b0
mov eax, dword [0x14021ae78]
xor eax, dword [0x14021ae7c]
mov ecx, 0x96c5d2ad
xor ecx, 0x2d979c8
and eax, ecx
mov ecx, 0x2369aa57
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0x6cbdea5e
xor edx, 0x934215a1
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xea656add
mov edx, 0xf388528a
xor edx, 0x19ed3857
mov r8d, 0x5f703bfa
xor r8d, 0xa08fc405
xor edx, r8d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x748bfd8d
je 0x14009b1bb
mov rcx, qword [rbp - 0x28]
mov r8d, dword [0x14021ae80]
mov eax, dword [0x14021ae84]
mov edx, r8d
xor edx, 0xffffffff
xor r8d, 0xffffffff
or edx, r8d
and eax, eax
mov r8d, 0x7dc80535
xor r8d, 0x8237faca
xor eax, r8d
xor edx, 0xffffffff
xor eax, 0xffffffff
or edx, eax
mov eax, 0xc5dc9914
xor eax, 0x72e2b542
and edx, eax
mov r8d, 0xffffffff
xor r8d, 0x42180a4b
mov eax, edx
xor eax, r8d
and eax, edx
mov edx, 0x1b868ea5
xor edx, 0xb3ca91dc
or eax, edx
mov dword [rbp - 0x4c], eax
mov eax, 0xc535393b
xor eax, 0x8dbbb24b
mov dword [rbp - 0x50], eax
movabs rdx, 0xa3b8737e4ecb3135
movabs rax, 0xa3b8737e4ecb3135
xor rdx, rax
movabs r8, 0x142038b61543d455
movabs rax, 0x6bdfc749eabc2baa
fild qword [rbx + 0x49]
xor eax, eax
sub rsp, 0x20
call fcn.14000e6db
mov ecx, dword [rbp - 0x50]
mov eax, dword [rbp - 0x4c]
add rsp, 0x20
cmp eax, ecx
jb 0x14009afed
jmp 0x14009b1a9
mov eax, dword [0x14021ae88]
xor edx, edx
div dword [str._a_b_]
mov ecx, 0xffe2d6dd
xor ecx, 0xda148bb0
add eax, ecx
mov edx, 0xd9f496b5
xor edx, 0xe1e726b9
mov ecx, 0x1b6a7fe1
xor ecx, 0xe495801e
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0x3813b00c
add eax, edx
sub eax, ecx
add eax, 0x234d1c49
mov ecx, 0x1f7cb701
xor ecx, 0xa4344c43
cmp eax, ecx
ja 0x14009b1c4
mov rcx, qword [rbp - 0x10]
mov eax, dword [0x14021ae90]
or eax, dword [0x14021ae94]
mov edx, 0xddeb9ad1
xor edx, 0xc0594da2
imul eax, edx
xor eax, 0x7d0542da
mov r8d, 0x1fdcadbf
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x28]
mov dword [rbp - 0x54], eax
sub rsp, 0x20
call fcn.14001efd0
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x38]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp - 0x40]
mov r9b, byte [rbp - 0x19]
add rsp, 0x20
movabs r10, 0xbff8a4b26e05126
movabs r11, 0xbff8a4b26e05126
xor r10, r11
mov qword [r8], r10
mov r10, qword [rax]
mov qword [rcx], r10
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140098170
mov eax, dword [rbp - 0x54]
add rsp, 0x20
cmp eax, 0x6f9dc285
je 0x14009b10b
jmp 0x14009b1a9
mov rax, qword [rbp - 8]
mov rsp, rbp
pop rbp
ret
movsd dword [rdi], dword [rsi]
or edx, esp
mov esp, 0xfffd2fe9
invalid
mov edx, 0xe9d0c061
sub esi, edi
invalid
invalid