Function at 0x140064680
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r8, rdx
mov rsi, rcx
mov rcx, qword [rcx]
nop dword [rax]
mov eax, dword [0x141f36c68]
xor edx, edx
div dword [0x141f36c6c]
imul eax, eax, 0x628cdb78
imul rax, rax, 0x14fe8f13
shr rax, 0x3b
imul eax, eax, 0xb4a8b5ce
cmp eax, 0xca12835f
je 0x1400646a0
test rcx, rcx
je 0x140064712
mov r15, qword [rsi + 8]
mov rdi, qword [r8]
mov rbx, qword [r8 + 8]
mov r12, qword [r8 + 0x10]
mov rbp, qword [r8 + 0x18]
mov qword [rsp + 0x28], rdi
mov eax, dword [0x141f36c70]
and eax, dword [0x141f36c74]
imul eax, eax, 0x4086c8ff
xor eax, 0x1b31688d
imul eax, eax, 0xa08f73bd
cmp eax, 0x81d87410
jae 0x140064774
jmp 0x1400647a7
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140064720
mov eax, dword [0x141f36c80]
xor edx, edx
div dword [0x141f36c84]
nop word cs:[rax + rax]
mov eax, dword [0x141f36c88]
or eax, dword [0x141f36c8c]
xor eax, 0x888892c1
and eax, 0xc8caf6d3
add eax, 0xd17767b5
cmp eax, 0x853ebdcc
ja 0x140064740
mov rcx, qword [rsi + 0x20]
mov rdx, qword [rsi + 0x28]
call fcn.140064ff0
jmp 0x140064fc0
mov eax, dword [0x141f36c78]
imul eax, dword [0x141f36c7c]
add eax, 0x8bd95a6b
and eax, 0x54246e48
imul eax, eax, 0x1e6f1507
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], rbp
cmp eax, 0x5ba1f691
jne 0x1400647b8
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], rbp
jmp 0x140064774
mov r14d, dword [rsi + 0x30]
mov eax, dword [rsi + 0x34]
movzx ecx, byte [rsi + 0x38]
test al, 8
mov byte [rsp + 0x23], cl
jne 0x1400647d3
mov edi, r14d
mov r13, r15
jmp 0x140064844
mov dword [rsp + 0x24], r14d
mov eax, dword [0x141f36c90]
xor edx, edx
div dword [0x141f36c94]
nop word cs:[rax + rax]
mov eax, dword [0x141f36c98]
mov ecx, dword [0x141f36c9c]
add eax, ecx
add eax, 0xdab692f4
and eax, 0xe0bf8101
imul eax, eax, 0x8f747638
cmp eax, 0xf431f75b
je 0x1400647f0
mov r14, qword [rsi + 0x20]
mov eax, dword [str._X_]
add eax, dword [0x141f36ca4]
and eax, 0x8c110005
xor eax, 0x90121003
or eax, 0x63cc6ff8
cmp eax, 0x5625a349
jae 0x140064cb8
jmp 0x140064ceb
lea rax, [rbp*2]
add rax, rbp
lea r8, [r12 + rax*8]
nop word cs:[rax + rax]
mov eax, dword [0x141f36cb0]
mov edx, dword [0x141f36cb4]
add eax, edx
add eax, 0xee551d0b
and eax, 0x9f3202cd
cmp eax, 0xd9e26fa0
ja 0x140064860
test rbp, rbp
je 0x140064ac0
xor r9d, r9d
mov r10d, 0xcbcf7ab1
nop word cs:[rax + rax]
mov eax, dword [0x141f36cb8]
xor edx, edx
div dword [0x141f36cbc]
add eax, 0xe3617fef
xor eax, 0x45e45504
add eax, 0x6a8de011
cmp eax, 0x786c4906
ja 0x1400648a0
movzx eax, word [r12]
test rax, rax
je 0x140064a4c
cmp eax, 1
jne 0x1400649a0
mov eax, dword [0x141f36cc8]
xor edx, edx
div dword [str._Mn]
imul eax, eax, 0xcc5731b6
imul rax, r10
shr rax, 0x3e
and eax, 0xfffffffe
cmp eax, 0x100871d
je 0x1400648db
test r9b, r9b
jne 0x140064901
movzx edx, word [r12 + 2]
movzx r11d, dx
cmp r11d, 0x3e8
jae 0x1400649f0
nop dword [rax]
mov eax, dword [0x141f36cf0]
sub eax, dword [0x141f36cf4]
or eax, 0xf5fdd74e
add eax, 0xd4bc0c31
cmp eax, 0xf695f8f7
ja 0x140064920
nop dword [rax]
test r9b, r9b
jne 0x140064940
mov eax, 1
cmp dx, 0xa
jb 0x140064a89
cmp dx, 0x64
mov eax, 3
sbb rax, 0
nop word cs:[rax + rax]
mov edx, dword [0x141f36cf8]
imul edx, dword [0x141f36cfc]
imul edx, edx, 0xc867f353
add edx, 0x1aaa9f5d
cmp edx, 0x70c4b626
ja 0x140064970
jmp 0x140064a89
mov eax, dword [0x141f36cd0]
add eax, dword [0x141f36cd4]
or eax, 0x3c905508
add eax, 0x993c2a00
cmp eax, 0x8a90410b
ja 0x1400649a0
nop dword [rax]
mov eax, dword [0x141f36cd8]
xor edx, edx
div dword [0x141f36cdc]
or eax, 0xdd442994
xor eax, 0x18d37cb8
add eax, 0x797a8f5d
cmp eax, 0x8b360920
ja 0x1400649c0
mov rax, qword [r12 + 0x10]
jmp 0x140064a89
mov eax, dword [0x141f36ce0]
xor edx, edx
div dword [0x141f36ce4]
xor eax, 0xcbe7f05d
imul eax, eax, 0x8e1bcf1b
xor eax, 0xee0ac7a0
cmp eax, 0xd87ab931
ja 0x1400649f0
nop word cs:[rax + rax]
mov edx, dword [0x141f36ce8]
xor edx, dword [0x141f36cec]
and edx, 0xd003880
cmp r11d, 0x2710
mov eax, 5
sbb rax, 0
cmp edx, 0x64f34b32
je 0x140064a20
jmp 0x140064a89
mov rax, qword [r12 + 8]
nop word cs:[rax + rax]
mov edx, dword [0x141f36cc0]
imul edx, dword [0x141f36cc4]
imul rdx, rdx, 0x464f900d
shr rdx, 0x3c
and edx, 0xfffffffc
imul edx, edx, 0x1537e9ff
cmp edx, 0x8efdc202
jae 0x140064a60
add r12, 0x18
nop dword [rax]
mov edx, dword [0x141f36d00]
imul edx, dword [0x141f36d04]
or edx, 0xc59439db
imul edx, edx, 0x595a51c4
cmp edx, 0x110fe128
je 0x140064a90
add rbx, rax
cmp r12, r8
jne 0x1400648a0
nop dword [rax]
mov eax, dword [0x141f36d08]
and eax, dword [0x141f36d0c]
imul eax, eax, 0xf553e1a
cmp eax, 0xe23044e7
je 0x140064ac0
sub r13, rbx
jbe 0x140064b91
nop word cs:[rax + rax]
mov eax, dword [0x141f36d28]
or eax, dword [0x141f36d2c]
imul eax, eax, 0x11d199f0
or eax, 0x36d4a513
cmp eax, 0x4dbac4d2
jb 0x140064af0
movzx eax, cl
nop word cs:[rax + rax]
mov ecx, dword [0x141f36d30]
xor ecx, dword [0x141f36d34]
add ecx, 0x22421e43
or ecx, 0x9671454c
add ecx, 0xef31f6ec
cmp ecx, 0x7a9bb2da
jb 0x140064b20
lea rcx, [0x141f266bc]
movsxd rdx, dword [rcx + rax*4]
add rdx, rcx
mov dword [rsp + 0x24], r14d
jmp rdx
mov rdi, qword [rsi + 0x20]
mov eax, dword [0x141f36d50]
xor edx, edx
div dword [0x141f36d54]
nop word cs:[rax + rax]
mov eax, dword [0x141f36d58]
xor eax, dword [0x141f36d5c]
or eax, 0xbc7f410c
cmp eax, 0xa73ad754
je 0x140064bb0
mov eax, dword [0x141f36d60]
imul eax, dword [0x141f36d64]
add eax, 0x7476df74
xor eax, 0x44802102
or eax, 0xb83dd86d
cmp eax, 0xca98c327
jne 0x140064e09
jmp 0x140064e38
mov eax, dword [0x141f36ca8]
xor eax, dword [0x141f36cac]
imul r13d, eax, 0xa3cdeaaf
and r13d, 0xdedacbcf
mov rax, qword [rsi + 0x28]
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call qword [rax + 0x18]
cmp r13d, 0x9ffeaa3
jne 0x140064cfd
mov rax, qword [rsi + 0x28]
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call qword [rax + 0x18]
jmp 0x140064cb8
test al, al
jne 0x140064de0
mov eax, dword [0x141f36d10]
xor edx, edx
div dword [0x141f36d14]
add eax, 0xa6226af4
or eax, 0x4a75d730
add eax, 0x2010130a
cmp eax, 0x38f2343c
ja 0x140064d7a
mov eax, dword [0x141f36d18]
xor r13d, r13d
xor edx, edx
div dword [0x141f36d1c]
imul rax, rax, 0x2d152fcf
shr rax, 0x3a
imul eax, eax, 0xa1f19793
or eax, 0x2d4bf5aa
mov rcx, r15
sub rcx, rbx
cmovae r13, rcx
mov qword [rsp + 0x28], 1
mov qword [rsp + 0x30], 0
mov dword [rsi + 0x30], 0x30
cmp eax, 0xc537c36a
jbe 0x140064d95
mov qword [rsp + 0x28], 1
mov qword [rsp + 0x30], 0
mov dword [rsi + 0x30], 0x30
jmp 0x140064d29
mov byte [rsi + 0x38], 1
xor ebx, ebx
mov r14d, dword [rsp + 0x24]
mov eax, dword [0x141f36d20]
xor edx, edx
div dword [0x141f36d24]
imul rax, rax, 0x24fe5c03
shr rax, 0x3d
add eax, 0x9e529f65
and eax, 0x8e009303
cmp eax, 0x3b8326d2
jb 0x140064da0
mov cl, 1
mov edi, 0x30
jmp 0x140064844
mov eax, dword [0x141f36da0]
and eax, dword [0x141f36da4]
xor eax, 0x23400
or eax, 0x9000214
and eax, 0xb223614
cmp eax, 0x550e521
je 0x140064de0
mov al, 1
jmp 0x140064fc0
mov ebx, dword [0x141f36d68]
add ebx, dword [0x141f36d6c]
or ebx, 0x3ff336ac
mov rdx, qword [rsi + 0x28]
lea r8, [rsp + 0x28]
mov rcx, rdi
call fcn.140064ff0
cmp ebx, 0x9141988d
jne 0x140064fa8
mov rdx, qword [rsi + 0x28]
lea r8, [rsp + 0x28]
mov rcx, rdi
call fcn.140064ff0
jmp 0x140064e09
mov dword [rsi + 0x30], r14d
movzx ecx, byte [rsp + 0x23]
mov byte [rsi + 0x38], cl
nop word cs:[rax + rax]
mov ecx, dword [0x141f36da8]
sub ecx, dword [0x141f36dac]
imul ecx, ecx, 0x5d792627
cmp ecx, 0xe9ed3fd0
je 0x140064fc0
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret