Function at 0x140040b40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov r14, r9
mov r15, r8
mov rsi, rdx
mov eax, dword [0x141f32bc8]
sub eax, dword [0x141f32bcc]
mov qword [rbp - 0x10], rcx
or eax, 0xad489f4
and eax, 0x8add89f4
cmp eax, 0xc54879a7
jne 0x140040bc0
mov eax, 0x20
call fcn.1400f4d10
sub rsp, rax
mov eax, 0x40
call fcn.1400f4d10
sub rsp, rax
mov eax, 0x40
call fcn.1400f4d10
sub rsp, rax
mov eax, 0x10
call fcn.1400f4d10
sub rsp, rax
mov eax, 0x20
call fcn.1400f4d10
sub rsp, rax
xor edx, edx
nop word cs:[rax + rax]
mov eax, 0x20
call fcn.1400f4d10
sub rsp, rax
mov r12, rsp
mov eax, 0x40
call fcn.1400f4d10
sub rsp, rax
mov r13, rsp
mov eax, 0x40
call fcn.1400f4d10
sub rsp, rax
mov rbx, rsp
mov eax, 0x10
call fcn.1400f4d10
sub rsp, rax
mov r9, rsp
mov eax, 0x20
call fcn.1400f4d10
sub rsp, rax
mov r8, rsp
test dl, dl
jne 0x140040bd0
cmp rsi, 0x41
jae 0x140040d04
nop
mov eax, dword [0x141f32bf8]
and eax, dword [0x141f32bfc]
imul rdx, rax, 0x13b45d5d
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1e
xor eax, 0xd10e7053
add eax, 0x47f36434
cmp eax, 0xcf0ddc6c
ja 0x140040c30
mov eax, dword [str.pRC]
xor eax, dword [0x141f32c04]
add eax, 0x7b1fb83b
mov edx, 0x96f62fa9
imul rdx, rax
shr rdx, 0x3e
xor edx, 0x9768b249
cmp edx, 0x9f4e06f2
mov rcx, qword [rbp - 0x10]
jbe 0x140040cb0
mov dword [r9], esi
mov qword [r8], r9
mov qword [r8 + 8], 4
mov qword [r8 + 0x10], r15
mov qword [r8 + 0x18], r14
nop word [rax + rax]
mov eax, dword [0x141f32c08]
sub eax, dword [0x141f32c0c]
xor eax, 0xdc6f31b
imul rax, rax, 0x6c2ef99d
shr rax, 0x3d
mov dword [r9], esi
mov qword [r8], r9
mov qword [r8 + 8], 4
mov qword [r8 + 0x10], r15
mov qword [r8 + 0x18], r14
cmp eax, 0x81bf9a6b
ja 0x140040cb0
sub rsp, 0x20
mov r9d, 2
mov rdx, rsi
call fcn.14003fac0
add rsp, 0x20
jmp 0x1400411b0
xorps xmm0, xmm0
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx], xmm0
mov eax, dword [0x141f32bd0]
or eax, dword [0x141f32bd4]
xor eax, 0x3c5c314f
imul eax, eax, 0x4552f517
or eax, 0xaf601b5e
cmp eax, 0x5df6cd1c
jae 0x140040d58
movups xmmword [r13 + 0x30], xmm0
movups xmmword [r13 + 0x20], xmm0
movups xmmword [r13 + 0x10], xmm0
movups xmmword [r13], xmm0
mov dword [rbp - 8], esi
lea rax, [rbp - 8]
mov qword [r12], rax
lea rax, [rbp - 8]
nop dword [rax]
mov ecx, dword [0x141f32bd8]
xor ecx, dword [0x141f32bdc]
imul ecx, ecx, 0x556de46d
add ecx, 0x53fd4798
imul rdx, rcx, 0x1bbfae97
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1f
movups xmmword [r13 + 0x30], xmm0
movups xmmword [r13 + 0x20], xmm0
movups xmmword [r13 + 0x10], xmm0
movups xmmword [r13], xmm0
mov dword [rbp - 8], esi
mov qword [r12], rax
cmp ecx, 0x14188e45
je 0x140040d60
mov eax, dword [0x141f32be0]
and eax, dword [0x141f32be4]
imul eax, eax, 0xa04084bf
xor eax, 0x2a7f881a
imul eax, eax, 0xbb8317cb
cmp eax, 0xfb2e4f2e
jbe 0x140040e16
mov qword [r12 + 8], 4
mov qword [r12 + 0x10], r15
mov qword [r12 + 0x18], r14
sub rsp, 0x20
mov edx, 0x40
mov r9d, 2
mov rcx, rbx
mov r8, r12
call fcn.14003fac0
add rsp, 0x20
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
mov rax, qword [rbp - 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov qword [rbp - 0x20], rsi
lea rax, [rsi - 0x20]
mov qword [rbp - 0x18], rax
mov rsi, qword [rbp - 0x10]
nop word cs:[rax + rax]
mov eax, dword [0x141f32be8]
add eax, dword [0x141f32bec]
imul rax, rax, 0x265d9c6b
shr rax, 0x3b
or eax, 0xc8dd9bee
imul edi, eax, 0xe99d3497
mov qword [r12 + 8], 4
mov qword [r12 + 0x10], r15
mov qword [r12 + 0x18], r14
sub rsp, 0x20
mov edx, 0x40
mov r9d, 2
mov rcx, rbx
mov r8, r12
call fcn.14003fac0
add rsp, 0x20
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
cmp edi, 0x46a3e77f
je 0x140040e30
mov r15d, 0x20
mov r14, qword [rbp - 0x18]
cmp r14, 0x41
mov rsi, qword [rbp - 0x20]
jb 0x1400410ea
nop word cs:[rax + rax]
mov eax, dword [0x141f32bf0]
add eax, dword [0x141f32bf4]
imul eax, eax, 0x7efe1e5f
and eax, 0x4ab393a5
imul eax, eax, 0x3a9e30de
cmp eax, 0xf46b24a7
jae 0x140040ec0
mov r12d, 0x20
nop word [rax + rax]
xor eax, eax
test al, al
lea r15, [rbp - 8]
jne 0x140040f73
nop word [rax + rax]
mov edi, dword [0x141f32c10]
xor edi, dword [0x141f32c14]
xor edi, 0x2dd48440
add edi, 0xfeec46fa
and edi, 0xc1b0079d
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmm3, xmmword [rbx + 0x30]
movups xmmword [r13 + 0x30], xmm3
movups xmmword [r13 + 0x20], xmm2
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
mov qword [rbp - 8], r13
mov qword [rbp], 0x40
sub rsp, 0x20
mov edx, 0x40
mov r9d, 1
mov rcx, rbx
mov r8, r15
call fcn.14003fac0
add rsp, 0x20
cmp edi, 0x38583bda
jae 0x140040fd0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movups xmm3, xmmword [rbx + 0x30]
movups xmmword [r13 + 0x30], xmm3
movups xmmword [r13 + 0x20], xmm2
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
mov qword [rbp - 8], r13
mov qword [rbp], 0x40
sub rsp, 0x20
mov edx, 0x40
mov r9d, 1
mov rcx, rbx
mov r8, r15
call fcn.14003fac0
add rsp, 0x20
jmp 0x140040f00
cmp r12, 0xffffffffffffffe0
je 0x140041239
lea r15, [r12 + 0x20]
nop
mov eax, dword [0x141f32c30]
imul eax, dword [0x141f32c34]
imul eax, eax, 0xbd6ad07a
or eax, 0x389d3bf3
xor eax, 0xa5ae5b52
cmp eax, 0xa1f706fa
ja 0x140040fe0
nop word cs:[rax + rax]
mov eax, dword [0x141f32c38]
mov ecx, dword [0x141f32c3c]
add eax, ecx
add eax, 0xb5fe66df
imul rcx, rax, 0x1e4e1c3b
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
cmp eax, 0x13fa05ef
je 0x140041010
cmp r15, rsi
ja 0x1400411e4
add r12, qword [rbp - 0x10]
mov eax, dword [0x141f32c40]
xor edx, edx
div dword [0x141f32c44]
imul eax, eax, 0x8a5443be
add eax, 0x58e63614
cmp eax, 0x2678e3ed
jae 0x140041080
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
nop dword [rax]
mov eax, dword [0x141f32c48]
xor eax, dword [0x141f32c4c]
or eax, 0x5ab53c3f
imul eax, eax, 0xca77f9b4
xor eax, 0xfcf02ae2
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
cmp eax, 0x4ba8b923
ja 0x140041080
add r14, 0xffffffffffffffe0
nop dword [rax]
mov eax, dword [0x141f32c50]
sub eax, dword [0x141f32c54]
xor eax, 0x1002101
and eax, 0x1072101
cmp eax, 0xb6f03552
ja 0x1400410c0
mov r12, r15
cmp r14, 0x40
ja 0x140040ef0
mov eax, dword [0x141f32c18]
or eax, dword [0x141f32c1c]
add eax, 0x431300b5
or eax, 0x69949ff8
imul eax, eax, 0xa44606c5
cmp eax, 0x7eb4baa6
mov r12, qword [rbp - 0x10]
jne 0x14004113e
mov rdx, rsi
sub rdx, r15
lea rcx, [r12 + r15]
mov qword [rbp - 8], rbx
mov qword [rbp], 0x40
sub rsp, 0x20
lea r8, [rbp - 8]
mov r9d, 1
call fcn.14003fac0
add rsp, 0x20
sub rsi, r15
add r12, r15
lea r14, [rbp - 8]
nop dword [rax + rax]
mov eax, dword [0x141f32c20]
or eax, dword [0x141f32c24]
and eax, 0xf706de74
shr eax, 2
imul rdi, rax, 0x5b9993f
shr rdi, 0x35
or edi, 0x837a61a9
mov qword [rbp - 8], rbx
mov qword [rbp], 0x40
sub rsp, 0x20
mov r9d, 1
mov rcx, r12
mov rdx, rsi
mov r8, r14
call fcn.14003fac0
add rsp, 0x20
cmp edi, 0x8a7d9096
ja 0x140041150
nop word cs:[rax + rax]
mov eax, dword [0x141f32c28]
or eax, dword [0x141f32c2c]
or eax, 0x88840384
and eax, 0xed96039e
imul eax, eax, 0xd5a6d798
cmp eax, 0xc7dc9f35
je 0x1400411b0
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [str.O_n_G6C]
and eax, dword [0x141f32c5c]
shr eax, 3
imul rax, rax, 0x24e93795
shr rax, 0x3a
imul eax, eax, 0xd25726f4
and eax, 0x17c8f2bc
cmp eax, 0x62817440
ja 0x140041235
mov eax, dword [0x141f32c60]
add eax, dword [0x141f32c64]
imul eax, eax, 0x46ed820c
add eax, 0xe6647a5
xor eax, 0x3a9e0c24
ud2
ud2
ud2