Function at 0x140052610
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov qword [rsp + 0x68], 0x20
mov byte [rsp + 0x70], 3
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rdx
mov r15, qword [r8 + 0x20]
test r15, r15
mov qword [rsp + 0x30], r8
je 0x1400529a0
nop
mov eax, dword [0x141dc7868]
and eax, dword [0x141dc786c]
imul eax, eax, 0x8b7129f9
or eax, 0x771f93a8
add eax, 0x9144a801
cmp eax, 0x42e4f509
jb 0x140052660
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140052690
mov rax, qword [r8 + 0x28]
test rax, rax
je 0x140052bdd
imul rax, rax, 0x38
add rax, r15
mov qword [rsp + 0x80], rax
mov eax, dword [0x141dc7870]
xor eax, dword [0x141dc7874]
imul eax, eax, 0x6f46d5e0
add eax, 0x15d5e0a7
and eax, 0x98c8382
cmp eax, 0x5459fe98
ja 0x1400526b0
mov rdi, qword [r8]
mov r14, qword [r8 + 0x10]
xor esi, esi
mov r13d, 0xbdb0f3f5
xor ebp, ebp
mov qword [rsp + 0x78], r14
nop dword [rax]
mov r12, rbp
shl r12, 4
mov rbx, qword [rdi + r12 + 8]
test rbx, rbx
je 0x1400527cb
mov qword [rsp + 0x28], rbp
mov rbp, rdi
add r12, rdi
mov r14, qword [rsp + 0x58]
mov eax, dword [0x141dc78d0]
xor edx, edx
div dword [0x141dc78d4]
or eax, 0x7968775
add eax, 0x1e0348de
and eax, 0x1ea8f09e
cmp eax, 0x1e82a196
ja 0x140052772
nop dword [rax]
mov edi, dword [0x141dc78d8]
sub edi, dword [0x141dc78dc]
add edi, 0x1b41ff6f
and edi, 0x44110400
mov rax, qword [rsp + 0x60]
mov rdx, qword [r12]
mov rcx, r14
mov r8, rbx
call qword [rax + 0x18]
cmp edi, 0x90b9b204
jbe 0x140052790
mov rax, qword [rsp + 0x60]
mov rdx, qword [r12]
mov rcx, r14
mov r8, rbx
call qword [rax + 0x18]
jmp 0x140052740
mov ecx, dword [0x141dc78e0]
and ecx, dword [0x141dc78e4]
xor ecx, 0xa147cc46
add ecx, 0xea2690a5
or ecx, 0x632a93dc
cmp ecx, 0xb0f3d698
jb 0x140052790
test al, al
mov rdi, rbp
mov rbp, qword [rsp + 0x28]
mov r14, qword [rsp + 0x78]
jne 0x140052c80
lea rbx, [r15 + 0x38]
inc rbp
nop word cs:[rax + rax]
test sil, sil
jne 0x1400527e0
movzx eax, byte [r15 + 0x30]
mov byte [rsp + 0x70], al
mov rax, qword [r15 + 0x28]
mov qword [rsp + 0x68], rax
mov rax, qword [r15 + 0x10]
mov rcx, qword [r15 + 0x18]
test rax, rax
je 0x140052885
cmp eax, 1
jne 0x140052890
mov eax, dword [0x141dc78f0]
add eax, dword [0x141dc78f4]
imul eax, eax, 0xe84ec2be
and eax, 0x4df9a086
xor eax, 0x213bc137
cmp eax, 0x36fab406
ja 0x140052811
shl rcx, 4
add rcx, r14
mov eax, dword [0x141dc78f8]
xor edx, edx
div dword [0x141dc78fc]
imul eax, eax, 0xb7cce3ea
cmp eax, 0x59e1fb1a
je 0x14005283b
cmp qword [rcx + 8], 0
jne 0x140052899
mov eax, dword [0x141dc7900]
and eax, dword [0x141dc7904]
imul rax, rax, 0x10ac76fb
shr rax, 0x3b
cmp eax, 0xfd5659c8
je 0x14005285d
mov rcx, qword [rcx]
nop
test sil, sil
jne 0x140052880
mov eax, 1
jmp 0x14005289b
cmp eax, 2
jne 0x140052bb0
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rcx
mov rcx, qword [r15]
mov rax, qword [r15 + 8]
test rcx, rcx
je 0x140052900
cmp ecx, 1
jne 0x1400528ef
mov ecx, dword [0x141dc7910]
and ecx, dword [0x141dc7914]
imul ecx, ecx, 0xb52519b3
xor ecx, 0x576ea9b3
mov edx, 0x8424544d
imul rcx, rdx
shr rcx, 0x3f
cmp ecx, 0x3ba20acd
ja 0x1400528b6
shl rax, 4
cmp qword [r14 + rax + 8], 0
je 0x14005292a
xor ecx, ecx
jmp 0x140052935
mov ecx, dword [0x141dc7908]
or ecx, dword [0x141dc790c]
imul rcx, r13
shr rcx, 0x3f
imul ecx, ecx, 0xe7a244b1
or ecx, 0x44fb6f8c
cmp ecx, 0x7f07caed
jb 0x140052900
jmp 0x140052930
add rax, r14
mov rax, qword [rax]
mov ecx, 1
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rax
mov rax, qword [r15 + 0x20]
shl rax, 4
mov rcx, qword [r14 + rax]
lea rdx, [rsp + 0x38]
call qword [r14 + rax + 8]
test al, al
jne 0x140052c80
mov eax, dword [0x141dc7918]
add eax, dword [0x141dc791c]
imul eax, eax, 0x3ffadbb
add eax, 0x7c08b049
cmp eax, 0x92ac6539
jb 0x14005295d
mov r15, rbx
cmp rbx, qword [rsp + 0x80]
jne 0x1400526f0
jmp 0x140052bdf
mov eax, dword [0x141dc7858]
xor eax, dword [0x141dc785c]
xor eax, 0xc0200400
or eax, 0x17578bff
cmp eax, 0x2b961893
je 0x1400529a0
mov r15, qword [r8 + 0x18]
test r15, r15
je 0x140052bdd
mov r13, qword [r8 + 0x10]
shl r15, 4
add r15, r13
xor ebp, ebp
nop word [rax + rax]
mov eax, dword [0x141dc7860]
imul eax, dword [0x141dc7864]
add eax, 0x9a9e7568
xor eax, 0x7d29a8df
add eax, 0x449f4581
cmp eax, 0xe5ebbfe9
ja 0x1400529e0
mov rdi, qword [r8]
lea r12, [rsp + 0x38]
mov qword [rsp + 0x28], rdi
mov rax, rbp
shl rax, 4
mov rbx, qword [rdi + rax + 8]
test rbx, rbx
je 0x140052a90
add rax, rdi
mov r14, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, r15
nop word cs:[rax + rax]
mov ecx, dword [0x141dc7880]
and ecx, dword [0x141dc7884]
imul ecx, ecx, 0x9737f2e8
and ecx, 0x1e3a76f0
cmp ecx, 0xf51e372a
je 0x140052a40
mov r15, qword [rax]
mov eax, dword [0x141dc7888]
imul eax, dword [0x141dc788c]
and eax, 0xa354d971
add eax, 0x6375f682
and eax, 0x87ab0930
cmp eax, 0x19468ede
jbe 0x140052b50
jmp 0x140052b81
lea r14, [r13 + 0x10]
inc rbp
nop word [rax + rax]
mov eax, dword [0x141dc7898]
xor eax, dword [0x141dc789c]
add eax, 0x680bba4e
xor eax, 0x90507c8a
add eax, 0x28496c2a
cmp eax, 0xdb80da4c
ja 0x140052aa0
mov rbx, qword [r13]
mov eax, dword [0x141dc78a0]
or eax, dword [0x141dc78a4]
imul eax, eax, 0x5316e8bc
or eax, 0xf2791059
and eax, 0xf3f99479
cmp eax, 0xb78d41fc
jb 0x140052b24
nop dword [rax]
mov eax, dword [0x141dc78a8]
xor eax, dword [0x141dc78ac]
imul eax, eax, 0x4731769f
add eax, 0x83c83af8
imul rsi, rax, 0x1dc592a7
shr rsi, 0x3c
mov rcx, rbx
mov rdx, r12
call qword [r13 + 8]
cmp esi, 0x52fc5f1d
jne 0x140052b30
mov rcx, rbx
mov rdx, r12
call qword [r13 + 8]
jmp 0x140052af0
test al, al
jne 0x140052c80
mov r13, r14
cmp r14, r15
jne 0x140052a10
jmp 0x140052bdf
mov r12d, dword [0x141dc7890]
xor r12d, dword [0x141dc7894]
add r12d, 0xba2ff531
and r12d, 0xc8852b47
mov rcx, r14
mov rdx, r15
mov r8, rbx
call qword [rsi + 0x18]
cmp r12d, 0x82e288ba
jne 0x140052b90
mov rcx, r14
mov rdx, r15
mov r8, rbx
call qword [rsi + 0x18]
jmp 0x140052b50
test al, al
mov r15, rdi
mov rdi, qword [rsp + 0x28]
lea r12, [rsp + 0x38]
je 0x140052a90
jmp 0x140052c80
mov eax, dword [0x141dc78e8]
sub eax, dword [0x141dc78ec]
xor eax, 0x39d7dfc0
shr eax, 2
imul rax, rax, 0x4655013b
shr rax, 0x35
or eax, 0xc9f4910a
cmp eax, 0xc9b6b048
jb 0x140052bb0
ud2
xor ebp, ebp
mov rcx, qword [rsp + 0x30]
nop word cs:[rax + rax]
mov eax, dword [0x141dc7878]
xor edx, edx
div dword [0x141dc787c]
add eax, 0x4db26e72
imul rax, rax, 0x51e0ffc7
shr rax, 0x3e
or eax, 0x4950cd40
cmp eax, 0x5173513
jb 0x140052bf0
cmp rbp, qword [rcx + 8]
jae 0x140052cb5
shl rbp, 4
nop dword [rax + rax]
mov eax, dword [0x141dc78b8]
xor edx, edx
div dword [0x141dc78bc]
imul eax, eax, 0xd5793166
add eax, 0x9c486e6c
cmp eax, 0x304913f5
jb 0x140052c30
mov rax, qword [rsp + 0x30]
add rbp, qword [rax]
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rbp]
mov r8, qword [rbp + 8]
call qword [rax + 0x18]
test al, al
je 0x140052cb5
nop word cs:[rax + rax]
mov eax, dword [0x141dc78b0]
sub eax, dword [0x141dc78b4]
xor eax, 0x2589268a
or eax, 0x9a30d864
imul rcx, rax, 0xb1d26eb
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x508b91c8
jae 0x140052c80
mov al, 1
jmp 0x140052cf0
mov eax, 0x8108bf7f
nop word [rax + rax]
mov ecx, dword [0x141dc78c0]
imul ecx, dword [0x141dc78c4]
imul rcx, rax
shr rcx, 0x3e
imul ecx, ecx, 0x2aeded51
add ecx, 0xe29b66f3
cmp ecx, 0xecb7cdda
ja 0x140052cc0
xor eax, eax
nop dword [rax + rax]
mov ecx, dword [0x141dc78c8]
and ecx, dword [0x141dc78cc]
add ecx, 0x4be1b3b7
and ecx, 0xea698bd
cmp ecx, 0xf239d2cd
je 0x140052cf0
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret