Function at 0x14003c9a0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xa8
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rcx
mov eax, dword [0x14024caa0]
xor eax, 0x36147104
mov r8d, dword [0x14024caa4]
mov ecx, 0xf01c0bc1
xor ecx, 0xfe3f43e
mov r9d, r8d
xor r9d, ecx
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x97f2e771
xor ecx, 0x97f2e771
mov edx, 0xb9d90f17
xor edx, 0xa4a79643
sub ecx, edx
add eax, ecx
mov ecx, 0xb8b8f644
xor ecx, 0xe140e7e9
xor edx, edx
div ecx
mov ecx, 0x8b062af
xor ecx, 0xfeb4f22d
xor edx, edx
div ecx
cmp eax, 0x7f2c044a
jae 0x14003cef1
mov eax, dword [0x14024caa8]
xor eax, 0x1d8cd1ac
xor edx, edx
div dword [0x14024caac]
mov ecx, 0x1b293de5
xor ecx, 0xe6ef6a1a
and eax, ecx
and eax, 0x46beff55
sub eax, 0x42d6760b
add eax, 0xed8d49cc
add eax, 0x42d6760b
mov dword [rsp + 0x74], eax
call fcn.14003cf0c
mov rcx, qword [rsp + 0x90]
mov rdx, rax
mov eax, dword [rsp + 0x74]
mov qword [rsp + 0x78], rdx
mov rcx, qword [rcx]
mov qword [rsp + 0x80], rcx
movabs rdx, 0x3474b0306633ab9f
movabs r8, 0x3474b0306633ab9f
xor rdx, r8
cmp rcx, rdx
setl cl
mov byte [rsp + 0x8f], cl
cmp eax, 0x8e5191e8
jbe 0x14003ca42
mov al, byte [rsp + 0x8f]
test al, 1
jne 0x14003cae1
jmp 0x14003cb01
mov rcx, qword [rsp + 0x80]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
call fcn.14000d792
jmp 0x14003cee1
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x98]
call fcn.140018a7a
mov rax, qword [rsp + 0x90]
mov rdx, qword [rax]
mov rax, rdx
and rax, 0xffffffffffffffff
mov rcx, rdx
or rcx, 0xffffffffffffffff
add rax, rcx
mov qword [rsp + 0x68], rax
mov rcx, rax
xor rcx, rdx
cmp rcx, 0
setl cl
cmp rax, 0xffffffffffffffff
setg al
and al, cl
test al, 1
jne 0x14003cb83
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x90]
add rcx, 8
mov qword [rsp + 0x50], rcx
add rax, 8
mov qword [rsp + 0x58], rax
xor eax, eax
mov qword [rsp + 0x60], rax
jmp 0x14003cc4f
mov ecx, dword [0x14024cab0]
sub ecx, dword [0x14024cab4]
mov edx, 0x65ff9174
xor edx, 0xb6a97b6d
mov eax, 0x5497e87e
xor eax, 0xab681781
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
and eax, 0xbb5d8591
mov ecx, 0x49064384
xor ecx, 0x49064384
sub ecx, eax
mov eax, 0xd60e00f2
xor eax, 0xd60e00f2
mov edx, 0x84199583
xor edx, 0x8e4e1088
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0x896e920a
xor ecx, 0xa831d47f
cmp eax, ecx
je 0x14003cefa
mov eax, dword [0x14024cab8]
mov ecx, dword [0x14024cabc]
mov edx, 0xf5c111a
xor edx, 0xb9fc2a1
xor ecx, edx
and eax, ecx
mov ecx, 0xdd838157
xor edx, edx
div ecx
add eax, 0x455d7046
mov edx, 0xffffffff
xor edx, 0x82b24ad9
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0x82b24ad9
add eax, edx
sub eax, ecx
mov dword [rsp + 0x4c], eax
call fcn.140008c92
mov eax, dword [rsp + 0x4c]
cmp eax, 0x88a80165
jbe 0x14003cbee
jmp 0x14003cee1
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x40], rax
cmp rax, rcx
jg 0x14003cee1
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x98]
mov rcx, qword [rcx]
mov qword [rsp + 0x38], rcx
cmp rax, rcx
jl 0x14003ccb7
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
movabs rax, 0xc775faa47fdaf652
add rdx, rax
add rdx, 0xffffffffffffffff
movabs rax, 0xc775faa47fdaf652
sub rdx, rax
call fcn.14001284c
jmp 0x14003cee1
mov rcx, qword [rsp + 0x98]
call fcn.14003c8ea
mov rcx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rcx]
mov qword [rsp + 0x30], rcx
cmp rax, rcx
jl 0x14003ce18
mov eax, dword [0x14024cac0]
sub eax, dword [0x14024cac4]
mov edx, eax
xor edx, 0x93208ee7
xor edx, 0xffffffff
and edx, 0x93208ee7
mov ecx, 0x523aadc2
xor ecx, 0x523aadc0
imul ecx, edx
mov edx, 0x82033934
xor edx, 0x1123b7d3
sub ecx, edx
sub eax, ecx
add eax, 0x7fead69e
add eax, 0x64587c62
sub eax, 0x7fead69e
mov ecx, 0xada4b7c1
xor edx, edx
div ecx
mov ecx, 0x3e6064df
xor ecx, 0x577b43f9
cmp eax, ecx
ja 0x14003cf03
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x30]
mov eax, dword [0x14024cac8]
mov r8d, dword [0x14024cacc]
mov r9d, 0x651962b2
xor r9d, 0x11930d86
xor r8d, r9d
sub eax, r8d
or eax, 0x55303000
mov r10d, 0xffffffff
xor r10d, 0x7071ecd6
mov r9d, eax
and r9d, r10d
mov r8d, eax
or r8d, r10d
mov r10d, 0xcf999dc5
xor r10d, 0x3066623a
xor r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0x7071ecd6
or eax, 0x7071ecd6
imul eax, r9d
add eax, r8d
mov r8d, 0xd5f19596
xor r8d, 0xd013509c
mov r9d, 0xfe32d339
xor r9d, 0x1cd2cc6
xor r8d, r9d
xor r9d, r9d
sub r9d, 1
sub r8d, r9d
sub eax, r8d
mov dword [rsp + 0x2c], eax
mov rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor r8d, r8d
sub r8, 1
sub rax, r8
sub rdx, rax
call fcn.14001284c
mov eax, dword [rsp + 0x2c]
cmp eax, 0x208042ac
je 0x14003cf03
jmp 0x14003cee1
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
jne 0x14003cee1
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x50]
mov rax, qword [rax]
mov dl, byte [rax + rcx + 8]
mov byte [rsp + 0x2a], dl
mov cl, dl
add cl, 0x9f
mov al, dl
or al, al
mov r8b, 5
xor r8b, 0xfa
xor al, r8b
mov r8b, 0xff
xor r8b, 0x20
mov r9b, 0xff
xor r9b, 0x20
and r8b, r9b
mov r9b, 0x8f
xor r9b, 0x70
xor al, r9b
xor r8b, 0xff
and al, r8b
or dl, 0x20
xor dl, 0xff
mov r8b, 0x94
xor r8b, 0x6b
xor al, r8b
xor dl, 0xff
and al, dl
cmp cl, 0x1a
mov byte [rsp + 0x2b], al
jb 0x14003ce9a
mov al, byte [rsp + 0x2a]
mov byte [rsp + 0x2b], al
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x58]
mov dl, byte [rsp + 0x2b]
mov rcx, qword [rcx]
mov byte [rcx + rax + 8], dl
movabs rdx, 0x2da54b7d1207ad34
movabs rcx, 0x2da54b7d1207ad35
xor rdx, rcx
mov rcx, rax
and rcx, rdx
shl rcx, 1
xor rax, 1
add rax, rcx
mov qword [rsp + 0x60], rax
jmp 0x14003cc4f
mov rax, qword [rsp + 0xa0]
add rsp, 0xa8
ret
jg 0x14003cf5c
lahf
invalid
invalid
imul eax, dword [rax + 0x3be9d85b], 0xfffffffe
invalid
mov byte cs:[rbp + 0x2f], r8b